Repolode
dartsim

dartsim/dart

C++17 physics library with Python bindings for kinematics, dynamics and contact simulation of articulated robots and animated characters.

Open-source alternative to:MATLAB Simscape Multibody

Stars
1,224
Forks
307
Open issues
13
Last commit
8 hours ago

What is it?

DART (Dynamic Animation and Robotics Toolkit) is a C++17 library with Python bindings (dartpy) for simulating articulated rigid and soft bodies. It represents systems in generalized coordinates and computes motion with Featherstone's Articulated Body Algorithm, and exposes the mass matrix, Coriolis and gravity forces, Jacobians and their derivatives.

The engine handles contact through LCP-based solvers (Dantzig and PGS), joint limits and closed kinematic loops. Collision detection can use FCL (default), Bullet, ODE or DART's own detector. Robot and scene models are loaded from URDF, SDF, SKEL and MJCF (experimental) files, and hierarchical whole-body inverse kinematics is included. DART also serves as the physics backend for Gazebo through gz-physics.

The library is available through pip, conda-forge, vcpkg, Homebrew and several Linux distributions, and can be built from source with pixi.

Key features

  • 01Dynamics in generalized coordinates via Featherstone's Articulated Body Algorithm
  • 02LCP-based contact with Dantzig and PGS solvers, plus soft-body support
  • 03Collision detection backends including FCL, Bullet, ODE and a native detector
  • 04Model loading from URDF, SDF, SKEL and experimental MJCF files
  • 05Hierarchical whole-body inverse kinematics with analytical solver support
  • 06C++ API and dartpy Python bindings

Use cases

  • Simulating humanoid or manipulator robots for control and motion-planning research
  • Prototyping whole-body control with inverse kinematics and operational-space methods
  • Generating physically plausible character animation with articulated bodies
  • Serving as a physics backend for robotics simulators such as Gazebo

Quick start

  1. 1

    Install the Python package

    pip install dartpy
  2. 2

    Install the C++ package on Ubuntu / Debian

    sudo apt install libdart-all-dev
  3. 3

    Install the C++ package on macOS with Homebrew

    brew install dartsim

Things to know

  • Development branch main may change; stable behavior requires a tagged release or package install.
  • Distribution packages can lag behind the latest release.
  • PyPI wheels cover only the most common platforms and Python versions.

In collections

Topics

#robotics#physics-engine#simulation#inverse-kinematics#multibody-dynamics#computer-animation#python-bindings#cpp#collision-detection#cpp17

FAQ

What is dart?
C++17 physics library with Python bindings for kinematics, dynamics and contact simulation of articulated robots and animated characters. DART (Dynamic Animation and Robotics Toolkit) is a C++17 library with Python bindings (dartpy) for simulating articulated rigid and soft bodies. It represents systems in generalized coordinates and computes motion with Featherstone's Articulated Body Algorithm, and exposes the mass matrix, Coriolis and gravity forces, Jacobians and their derivatives.
Is dart free to use? What license does it have?
dart is open source under the BSD-2-Clause license. Check the license terms before using it in commercial products.
Is dart still maintained?
Actively maintained. The last commit to dart was on Nov 7, 2026.
What can I use dart for?
Simulating humanoid or manipulator robots for control and motion-planning research Prototyping whole-body control with inverse kinematics and operational-space methods Generating physically plausible character animation with articulated bodies Serving as a physics backend for robotics simulators such as Gazebo
How do I install dart?
Install the Python package: pip install dartpy Install the C++ package on Ubuntu / Debian: sudo apt install libdart-all-dev Install the C++ package on macOS with Homebrew: brew install dartsim
Where can I get dart?
The source code and installation instructions are on GitHub: https://github.com/dartsim/dart

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects