frax: Fast Robot Kinematics and Dynamics in JAX
Organizations: Daniel Morton and Marco Pavone are with the Departments of Mechanical Engineering and Aeronautics & Astronautics, Stanford University, Stanford, CA 94305.
Abstract
In robot control, planning, and learning, there is a need for rigid-body dynamics libraries that are highly performant, easy to use, and compatible with CPUs and accelerators. While existing libraries often excel at either low-latency CPU execution or high-throughput GPU workloads, few provide a unified framework that targets multiple architectures without compromising performance or ease-of-use. To address this, we introduce frax, a JAX-based library for robot kinematics and dynamics, providing a high-performance, pure-Python interface across CPU, GPU, and TPU. Via a fully-vectorized approach to robot dynamics, frax enables efficient real-time control and parallelization, while supporting automatic differentiation for optimization-based methods. On CPU, frax achieves low-microsecond computation times suitable for kilohertz control rates, outperforming common libraries in Python and approaching optimized C++ implementations. On GPU, the same code scales to thousands of instances, reaching upwards of 100 million dynamics evaluations per second. We validate performance on a Franka Panda manipulator and a Unitree G1 humanoid, and release frax as an open-source library.
Figures & tables
| CPU | GPU/TPU | Automatic Differentiation | Interface | Compilation | Best For | |
| Pinocchio (C++) | ✓ | ✗ | ✗ † | C++ | ✓ | Fast dynamics and analytical derivatives on CPU |
| MuJoCo (C++) | ✓ | ✗ | ✗ | C++ | ✓ | Fast simulation and dynamics on CPU |
| Pinocchio (Python) | ✓ | ✗ | ✗ | Python | ✗ ∗ | Controller prototyping on CPU |
| MuJoCo (Python) | ✓ | ✗ | ✗ | Python | ✗ ∗ | Simulation and controller prototyping on CPU |
| BRAX | ✓ | ✓ | ✓ | Python | ✓ | GPU/TPU-parallelized simulation and RL |
| MJX | ✓ | ✓ | ✓ | Python | ✓ | GPU/TPU-parallelized simulation and RL |
| Controller | Franka Panda | Unitree G1 |
|---|---|---|
| Inverse kinematics [Diff. IK] | 4.09 | 6.71 |
| Inverse dynamics [OSC] | 7.03 | 24.6 |
Appendix figures & tables1 asset
Supplementary material from the paper’s appendix.
Appendix
| Notation | Definition | Shape |
|---|---|---|
| Ancestor mask: if else | ||
| Spatial axes | ||
| Spatial inertias | ||
| Spatial velocities | ||
| Spatial accelerations | ||
| Spatial forces |