dartsim/dart
C++20 physics engine for robotics and animation with collision, constraints, and Python bindings
1K stars294 forksUpdated Jan 26, 2026
npx skills add dartsim/dartREADME
DART
DART (Dynamic Animation and Robotics Toolkit) is an open-source library that provides data structures and algorithms for kinematic and dynamic applications in robotics and computer animation. Renowned for its accuracy and stability, DART utilizes generalized coordinates to represent articulated rigid body systems and employs Featherstone's Articulated Body Algorithm to compute motion dynamics.
Why DART?
- Accuracy & Stability — Featherstone's Articulated Body Algorithm with proven numerical stability
- Unified Format Support — Load URDF, SDF, MJCF, and SKEL models through a single API
- Full-featured Collision — Multiple collision detection backends (FCL, Bullet, ODE)
- Constraint Dynamics — Joint limits, contacts, and closed-loop constraints solved together
- Cross-platform — Linux, macOS, Windows with Python bindings included
- Battle-tested — Powers Gazebo, research labs, and production systems worldwide
Quick Start
Python
import dartpy as dart
world = dart.World()
# Load a robot from URDF
urdf = dart.io.UrdfParser()
robot = urdf.parseSkeleton("dart://sample/urdf/KR5/KR5 sixx R650.urdf")
world.addSkeleton(robot)
# Simulate 100 steps
for _ in range(100):
world.step()
print(f"Positions: {robot.getPositions()}")
C++
#include <dart/dart.hpp>
int main() {
auto world = dart::simulation::World::create();
// Load a robot from URDF
auto robot = dart::io::urdf::readSkeleton("path/to/robot.urdf");
world->addSkeleton(robot);
// Simulate 100 steps
for (int i = 0; i < 100; ++i) {
world->step();
std::cout << "Positions: " << robot->getPositions().transpose() << "\n";
}
return 0;
}
Installation
Python (Recommended)
| Method | Command |
|---|---|
| uv (preferred) | uv add dartpy |
| pip | pip install dartpy |
| pixi | pixi add dartpy |
| conda | conda install -c conda-forge dartpy |
C++
| Platform | Command |
|---|---|
| Cross-platform (recommended) | pixi add dartsim-cpp or conda install -c conda-forge dartsim-cpp |
| Ubuntu | sudo apt install libdart-all-dev |
| Arch Linux | yay -S libdart |
| FreeBSD | pkg install dartsim |
| macOS | brew install dartsim |
| Windows | vcpkg install dartsim:x64-windows |
...
Publisher
Topics
Statistics
Stars1K
Forks294
Open Issues6
LicenseBSD 2-Clause "Simplified" License
CreatedSep 19, 2011