Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
D

dart

> 编程语言
Open source

Research-focused C++23 physics engine for robotics, animation, and machine learning, with Python bindings

1.2K stars0 likes2 views
WebsiteGitHub

About

Research-focused C++23 physics engine for robotics, animation, and machine learning, with Python bindings

DART

DART (Dynamic Animation and Robotics Toolkit) is an open-source, research-focused physics engine for robotics, animation, and machine learning. It provides transparent kinematics, dynamics, collision, and constraint-solving foundations for users who need more than a black-box simulator. DART uses generalized coordinates for articulated rigid body systems and Featherstone's Articulated Body Algorithm for accurate, stable motion dynamics.

[!IMPORTANT] Which DART is this? This main branch tracks DART 7, an in-progress redesign that is not yet recommended for production use. Its documentation is the latest site.

For a stable release, use DART 6 LTS: documentation · release-6.20 branch.

Why DART?

  • Research-grade dynamics — Featherstone algorithms, generalized coordinates, and direct access to dynamics quantities
  • Easy to start — Python and C++ packages through common package managers, plus reproducible source builds with pixi
  • Extensible foundations — Math, native collision, constraints, model loading, benchmarks, and tests that support new algorithms and baseline comparisons
  • Unified model loading — Load URDF, SDF, and MJCF models through a single API
  • Scalable compute roadmap — Cross-platform CPU support today, with roadmap work for multi-core, SIMD, and accelerator backends
  • Battle-tested ecosystem — Powers Gazebo, research labs, and production systems worldwide, with best-effort support for production use

Quick Start

Python

python
import dartpy as dart
import numpy as np

world = dart.World(time_step=1.0 / 1000.0)

# Add a 1 kg rigid body one metre above the origin.
options = dart.RigidBodyOptions()
options.mass = 1.0
options.position = np.array([0.0, 0.0, 1.0])
box = world.add_rigid_body("box", options)

# Lock topology, then simulate 100 steps.
world.enter_simulation_mode()
for _ in range(100):
    world.step()

print(f"t = {world.time:.3f} s, box z = {float(box.translation[2]):.3f} m")

C++

The DART 7 C++ simulation facade is available in source builds while the final public header transaction is still in progress. Use the C++ API shape recorded in docs/design/simulation_cpp_api.md for current source-checkout examples; DART 6 C++ snippets remain on the release-6.* branches for compatibility-line users.

Installation

The quick-start snippets above target the current main branch and DART 7 API. The tracked DART 7 wheel lane builds CPython 3.14 wheels on Linux, macOS, and Windows, but PyPI currently serves the stable DART 6 line as the latest non-yanked dartpy package. Use the source checkout path for the DART 7 Python facade until a non-yanked DART 7 wheel is published.

Python (Recommended)

Method Command
source checkout (DART 7 today) pixi run build from this repository
uv/pip (DART 7 after wheel publish) uv add dartpy --prerelease allow / pip install --pre dartpy
pixi (DART 6 stable today) pixi add dartpy
conda (DART 6 stable today) 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

All distributions →

Current DART 7 Smoke Checks

These snippets create a tiny model in code, so they do not depend on sample data files being present. The Python snippet targets a DART 7 source build; if dart.World or add_rigid_body is missing, the environment resolved a stable DART 6 package and should use the stable documentation.

Python source build

Run this after pixi run build from a source checkout:

bash
PYTHONPATH=build/default/cpp/Release/python pixi run python -

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++collision-detectioncomputer-animationcpp23dynamics

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言