Repolode
gbionics

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. 1

    Install from PyPI with pip in a virtual environment

    pip install jaxsim
  2. 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

#robotics#physics-engine#differentiable-simulation#jax#rigid-body-dynamics#multibody-dynamics#robot-learning#aba#ad#automatic-differentiation

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