Skip to content

Get started

InertialSim supports the development of advanced motion tracking applications by modeling and simulating inertial sensors. It is available as both a Python library and a C++ library.

Licensing

InertialSim is commercial software and requires a license to access. If you are interested, get in touch!

Versions

InertialSim follows the semantic versioning standard: major.minor.patch. The latest version can be found here.

Both Python and C++ libraries support the same set of functionality and have a very similar API. They are both released with the same version numbers at the same time. The Python library includes optional modules for symbolic processing module and for visualization in notebook environments.

It is recommended to install the Python version of InertialSim with pip, the Python package manager. It also supports modern package managers like uv, which is used internally in InertialSim development and testing.

The C++ version can be installed from Apt or DNF/YUM packages in Linux environments; or manually from installers and archives in any OS of your choice. Support is also provided for CMake based packaging.

Prerequisites

InertialSim packages are hosted on Google Cloud Artifact Registry. Users must first authenticate using the email address associated with their license.

  1. If the email address is not already associated with a Google account, create one following the official instructions under "Use an existing email address". If using a Google account is not possible in your organization, reach out for alternatives.

    Note

    Email addresses must be associated with a Google account before license permissions can be granted, so reach out after completing this step and before completing the Install steps below.

  2. Install the Google Cloud CLI for your operating system.

  3. Install system prerequisites:

    • Python 3.10 or above.

    Note

    InertialSim has been tested with Python versions 3.10 - 3.13 across Linux, macOS, and Windows environments.

    • C++ 17 compatible compiler.
    • Eigen 3 or above.

    Note

    InertialSim has been tested with AppleClang 17 on macOS 15 (Sequoia), LLVM 22 on macOS 26 (Tahoe) and with the GCC 13 on Ubuntu 24.04 (Noble). All tests use Eigen 3.4.

Install

Environment and package managers

It is a best practice and highly recommended to use a Python virtual environment tool like venv, virtualenv, pipx, or uv for development and testing.

See the following for more details on configuring and authenticating with custom package indexes. They include instructions for storing or caching package locations and authentication credentials: pip, uv, Google Artifact Registry.

Here is an example install using venv and pip. Windows users will need to adjust the shell syntax to cmd or PowerShell equivalents. Users of other package managers and virtualization tools will need to adjust the exact syntax also.:

  1. Authenticate.

    gcloud auth login
    

  2. Create and/or activate a virtual environment (make sure to use the correct Python version).

    python -m venv .venv
    source .venv/bin/activate
    

  3. Install.

    USER=oauth2accesstoken
    TOKEN=$(gcloud auth print-access-token)
    pip install --extra-index-url https://$USER:$TOKEN@us-python.pkg.dev/is-packages/inertialsim/simple "inertialsim"
    

  4. Install optional extras. Additional Python dependencies will be automatically installed.

    pip install "inertialsim[plot]"
    pip install "inertialsim[symbolic]"
    pip install "inertialsim[examples]"
    
    The [plot] extra includes dependencies necessary to use the inertialsim.plot module. The [symbolic] extra includes dependencies necessary to use the inertialsim.symbolic module. The [examples] extra includes dependencies to run the interactive notebooks in the companion inertialsim/examples repository.

  1. Authenticate.

    gcloud auth login
    

  2. Configure and install.

    1. Prepare your environment. Refer to the official Artifact Registry documentation for full details.
      # Install Apt repository signing keys
      curl https://us-apt.pkg.dev/doc/repo-signing-key.gpg \
        | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg \
        && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg \
        | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-sdk.gpg
      
      # Add AR packages
      echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \
        | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      sudo apt update
      sudo apt install apt-transport-artifact-registry
      
      # Set the license key path
      vi /etc/apt/apt.conf.d/90artifact-registry
      
    2. Add the inertialsim repository and install.
      # Add the inertialsim repository
      echo "deb ar+https://us-apt.pkg.dev/projects/is-packages apt main" \
        | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      
      # Install
      sudo apt update
      sudo apt install inertialsim
      
    1. Prepare your environment. Refer to the official Artifact Registry documentation for full details.
    2. Add the inertialsim repository and install.
      # Add Google Cloud Artifact Registry repository
      sudo dnf install yum-plugin-artifact-registry
      sudo tee -a /etc/yum.repos.d/artifact-registry.repo << EOF
      [yum]
      name=yum
      baseurl=https://us-yum.pkg.dev/projects/is-packages/yum
      enabled=1
      repo_gpgcheck=0
      gpgcheck=0
      EOF
      
      # Install
      sudo yum makecache
      sudo yum install inertialsim
      
    1. Download the appropriate artifact for your system.
      # package-name can be one of: linux-archive, macos-archive, macos-dmg
      gcloud artifacts generic download \
        --location=us \
        --repository=generic \
        --package=[package-name] \
        --version=[X.Y.Z] \
        --destination=.
      
    2. Install manually. An example manual install on a Linux machine may look like:
      tar -xvf InertialSim-[X.Y.Z]-Linux.tar.gz
      cd InertialSim-[X.Y.Z]-Linux
      sudo cp lib/libinertialsim.so /usr/local/lib
      sudo cp -r lib/cmake/* /usr/local/include/cmake
      sudo cp -r include/* /usr/local/include
      

Next steps

From here you may wish to look at the Reference pages for useful preliminaries. They detail InertialSim's fundamental software and mathematical conventions. The Examples pages provide end to end examples that can bootstrap other applications. All examples are also available as interactive notebooks in the source code. The API reference contains detailed documentation of all public interfaces provided in the source code.