← all repositories
dartsim/dart

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.

1.1k stars C++ Domain Apps
dart
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.