An experimental implementation of Rigid Body Dynamics algorithms.
The API is designed to be close to the Pinocchio library. This project is not a direct port of Pinocchio, but rather an experimental attempt to create a similar API in Rust. The goal is to provide a high-level interface for rigid body dynamics, while also allowing for low-level access to the underlying algorithms. Examples of the Python API can be found in the examples/python directory.
Please note that this project is still in its early stages and is not recommended for production use. The API may change significantly in the future as the project evolves.
Along with classical dependencies like numpy, this project uses:
colliderfor collision detectionmeshcatfor visualization Support for other visualization libraries might be added in the future.
This project is implemented using both Rust and Python. The Python bindings are created using PyO3, and maturin as the build system.
The use of miniconda is recommended to manage the dependencies. To install the dependencies, run the following command:
conda env create -f dynamics_env.ymlTo activate the environment, run:
conda activate dynamicsmaturin can be installed directly using pip:
pip install maturinTo build the Rust code and install it directly as a Python package in the current dynamics virtual environment, run:
maturin develop --release -m dynamics-py/Cargo.tomlTo run unit test of all crates, run:
cargo test