User Guide
Build a simulation, step by step
This guide takes you from a one-file "hello, DART" simulation to building articulated robots, tuning contact, and visualizing results. Pages are ordered to be read start to finish, but each stands on its own once you know the basics.
DART 7 is the in-progress redesign of the Dynamic Animation and Robotics
Toolkit. It keeps DART’s transparent, research-grade dynamics while exposing a
smaller, Python-first API built around a single World object. This guide uses
that API throughout.
DART 7 is under active development
The DART 7 API shown here is still evolving and is not yet recommended for production. Names and behavior can change between releases. For production work, use DART 6 LTS. If something in this guide does not match your build, please open an issue.
Where to start
Add dartpy to a Python environment, or build from source for the newest DART 7 surface.
Time steps, gravity, and what actually happens on each world.step().
Mass, pose, collision shapes, and surface material for single bodies.
Build multibodies from links and joints — the heart of robot modeling.
How DART finds contacts and resolves them so bodies don't interpenetrate.
Pick the integration and contact methods that fit your accuracy and speed needs.
How this guide is organized
Getting started — installation, your first simulation, and the loop that drives every DART program.
Core concepts — the
World, rigid bodies, and articulated systems you compose into a scene.Going further — collisions and contacts, solver choices, and visualization.
Next steps — deeper topics, runnable examples, and API references.