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/dart

README

DART

DART: Dynamic Animation and Robotics Toolkit

CI Ubuntu CI macOS CI Windows
Documentation Status Ask DeepWiki codecov Codacy Badge
Anaconda-Server Badge PyPI Version License

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.

Unitree G1 humanoid demo

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)

MethodCommand
uv (preferred)uv add dartpy
pippip install dartpy
pixipixi add dartpy
condaconda install -c conda-forge dartpy

C++

PlatformCommand
Cross-platform (recommended)pixi add dartsim-cpp or conda install -c conda-forge dartsim-cpp
Ubuntusudo apt install libdart-all-dev
Arch Linuxyay -S libdart
FreeBSDpkg install dartsim
macOSbrew install dartsim
Windowsvcpkg install dartsim:x64-windows

...

Read full README