A physics engine that won't hide its math from you
DART exposes the kinematics and dynamics internals that most simulators treat as implementation details.

What it does DART is a C++20 physics engine for articulated rigid-body systems—robots, characters, anything with joints. It simulates dynamics, handles collisions, and solves constraints, with Python bindings via nanobind. It also loads URDF, SDF, MJCF, and SKEL through one API, which saves the usual format-translation headaches.
The interesting bit Most simulators are black boxes. DART is deliberately not: it gives you direct access to dynamics quantities and builds on Featherstone’s Articulated Body Algorithm with generalized coordinates. That matters when your research depends on understanding why the simulation behaved a certain way, not just that it did.
Key highlights
- Powers Gazebo and runs in research labs and production systems
- Python packages via pip/uv/pixi/conda; C++ via conda/pixi, apt, brew, vcpkg, etc.
- Active DART 7 development on
main, with DART 6.16 in maintenance mode - C++20 codebase with cross-platform CI (Ubuntu, macOS, Windows)
- BSD 2-Clause license
Caveats
- DART 7 packages aren’t published yet; package managers may pull DART 6.16 instead
- “Best-effort support for production use”—the project’s own words, not a guarantee
- Multi-core, SIMD, and accelerator backends are on the roadmap, not shipped
Verdict Grab it if you’re doing robotics or animation research and need to peer inside the dynamics. Skip if you want a polished, fully-optimized production simulator and don’t care about the underlying math.