A fast, header-only C++ library with Python bindings for rigid body dynamics, kinematics and their analytical derivatives, used in robotics.
gbionics/jaxsim
A differentiable rigid-body physics engine built on JAX for robot control, co-design and robot learning.
- Stars
- 204
- Forks
- 22
- Open issues
- 8
- Last commit
- 5 days ago
What is it?
JaxSim is a physics engine written in Python on top of JAX, aimed at robotics researchers who need gradients through simulation. It uses reduced-coordinate multibody dynamics and supports both fixed-base and floating-base robots, loading models from SDF, with URDF supported through sdformat conversion.
Because the dynamics are differentiable with respect to hardware parameters, the same simulation can be used for gradient-based design and optimization. Functions are written in a functional style, so they can be JIT-compiled and vectorized, and run on CPUs, GPUs and TPUs. The library also exposes rigid-body dynamics algorithms such as mass matrix, bias forces, gravity and Coriolis terms, and frame Jacobians, with automatic differentiation in forward and reverse mode.
The project is experimental and its APIs may change between releases. It currently focuses on locomotion, supporting contacts only between bodies and smooth ground surfaces.
Key features
- 01Differentiable dynamics with respect to hardware and kinematic parameters.
- 02Supports fixed-base and floating-base robot models.
- 03Loads SDF models directly and URDF through sdformat conversion.
- 04JIT compilation and automatic vectorization with JAX, running on CPU, GPU and TPU.
- 05Provides mass matrix, bias forces, gravity, Coriolis and frame Jacobian computations.
Use cases
- Gradient-based robot morphology or co-design optimization.
- Robot learning experiments that need a differentiable simulator for legged locomotion.
- Using the rigid-body dynamics algorithms as a multibody dynamics library in JAX code.
Quick start
- 1
Install from PyPI with pip in a virtual environment
pip install jaxsim - 2
Run the iCub simulation example from the How to use it section (requires icub_models and jax installed)
Things to know
- Still experimental, and APIs may change between releases without notice.
- Collisions are supported only between bodies and smooth ground surfaces, focusing on locomotion.
- URDF support requires separately installing Gazebo Sim components such as sdformat.
In collections
Topics
FAQ
- What is jaxsim?
- A differentiable rigid-body physics engine built on JAX for robot control, co-design and robot learning. JaxSim is a physics engine written in Python on top of JAX, aimed at robotics researchers who need gradients through simulation. It uses reduced-coordinate multibody dynamics and supports both fixed-base and floating-base robots, loading models from SDF, with URDF supported through sdformat conversion.
- Is jaxsim free to use? What license does it have?
- jaxsim is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
- Is jaxsim still maintained?
- Actively maintained. The last commit to jaxsim was on Nov 2, 2026.
- What can I use jaxsim for?
- Gradient-based robot morphology or co-design optimization. Robot learning experiments that need a differentiable simulator for legged locomotion. Using the rigid-body dynamics algorithms as a multibody dynamics library in JAX code.
- How do I install jaxsim?
- Install from PyPI with pip in a virtual environment: pip install jaxsim Run the iCub simulation example from the How to use it section (requires icub_models and jax installed)
- Where can I get jaxsim?
- The source code and installation instructions are on GitHub: https://github.com/gbionics/jaxsim
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
C++ multiphysics library for simulating rigid and flexible multibody systems, granular media, fluid-solid interaction, and vehicles and robots.
Open-source C++ multibody dynamics library for simulating articulated systems such as robots, vehicles, and human skeletons.
C++17 physics library with Python bindings for kinematics, dynamics and contact simulation of articulated robots and animated characters.
An open-source, GPU-parallelized robot simulation and training framework built on SAPIEN, focused on manipulation skills.
A large-scale simulation framework for training and benchmarking generalist robots on everyday kitchen tasks, built on robosuite.