Momentum provides foundational algorithms for human kinematic motion and numerical optimization solvers to apply human motion in various applications.
This page guides you through the process of building Momentum and running the examples.
Momentum binary builds are available for Windows, macOS, and Linux via Pixi or the Conda package manager.
For Windows, please install Visual Studio 2022 or greater.
# Momentum (C++)
pixi add momentum-cpp
# PyMomentum (Python)
pixi add pymomentum
# Both
pixi add momentum
conda install -c conda-forge momentum-cpp
conda install -c conda-forge pymomentum # Windows is not supported yet
conda install -c conda-forge momentum
Complete the following steps only once:
-
Install Pixi by following the instructions on https://prefix.dev/
-
Clone the repository and navigate to the root directory:
git clone https://github.com/facebookincubator/momentum cd momentum
Ensure that all subsequent commands are executed in the project's root directory unless specified otherwise.
-
Build the project with the following command (note that the first run may take a few minutes as it installs all dependencies):
pixi run build
-
Run the tests with:
pixi run test
To view all available command lines, run pixi task list
.
To run the hello_world
example:
pixi run hello_world
Alternatively, you can directly run the executable:
# Linux and macOS
./build/hello_world
# Windows
./build/Release/hello_world.exe
To run other examples:
pixi run glb_viewer --help
For more examples, please refer to the Examples page.
If you need to start over for any reason:
pixi run clean
Momentum uses the build/
directory for CMake builds, and .pixi/
for the Pixi virtual environment. You can clean up everything by either manually removing these directories or by running the command above.
To load and save Autodesk's FBX file format, you need to install the FBX SDK 2019.2 from Autodesk's website or this direct link first. After installing the SDK, you can build with MOMENTUM_BUILD_IO_FBX=ON
:
# Powershell
$env:MOMENTUM_BUILD_IO_FBX = "ON"; pixi run <target>
# cmd
set MOMENTUM_BUILD_IO_FBX=ON && pixi run <target>
For example, file conversion can be run as follows:
# Powershell
$env:MOMENTUM_BUILD_IO_FBX = "ON"; pixi run convert_model -d <input.glb> -o <out.fbx>
# cmd
set MOMENTUM_BUILD_IO_FBX=ON && pixi run convert_model -d <input.glb> -o <out.fbx>
The full documentation for Momentum can be found on our website and the C++ API documentation is available here.
Check our contributing guide to learn about how to contribute to the project.
Momentum is licensed under the MIT License. A copy of the license can be found here.