Co-Pilot
Updated 24 days ago

dart

Ddartsim
1.1k
dartsim/dart
86
Agent Score

💡 Summary

DART is an open-source toolkit for dynamic simulation in robotics and animation.

🎯 Target Audience

Robotics researchersComputer animation developersGame developersSimulation engineersEducators in robotics

🤖 AI Roast:Powerful, but the setup might scare off the impatient.

Security AnalysisLow Risk

Risk: Low. Review: shell/CLI command execution; outbound network access (SSRF, data egress); filesystem read/write scope and path traversal; dependency pinning and supply-chain risk. Run with least privilege and audit before enabling in production.

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 |

All distributions →

Documentation

Developer Resources

Branches

  • main — Active development targeting DART 7
  • release-6.16 — Maintenance branch for DART 6 (critical fixes only)

Citation

If you use DART in an academic publication, please consider citing this JOSS Paper:

@article{Lee2018, doi = {10.21105/joss.00500}, url = {https://doi.org/10.21105/joss.00500}, year = {2018}, publisher = {The Open Journal}, volume = {3}, number = {22}, pages = {500}, author = {Jeongseok Lee and Michael X. Grey and Sehoon Ha and Tobias Kunz and Sumit Jain and Yuting Ye and Siddhartha S. Srinivasa and Mike Stilman and C. Karen Liu}, title = {DART: Dynamic Animation and Robotics Toolkit}, journal = {Journal of Open Source Software} }

License

DART is licensed under the BSD 2-Clause License.

5-Dim Analysis
Clarity9/10
Novelty8/10
Utility9/10
Completeness8/10
Maintainability9/10
Pros & Cons

Pros

  • High accuracy and stability in simulations.
  • Supports multiple model formats.
  • Cross-platform compatibility.
  • Active development and community support.

Cons

  • Steeper learning curve for beginners.
  • Limited documentation in some areas.
  • Dependency on external libraries.
  • Performance may vary based on system configuration.

Related Skills

pytorch

S
toolCode Lib
92/ 100

“It's the Swiss Army knife of deep learning, but good luck figuring out which of the 47 installation methods is the one that won't break your system.”

agno

S
toolCode Lib
90/ 100

“It promises to be the Kubernetes for agents, but let's see if developers have the patience to learn yet another orchestration layer.”

nuxt-skills

S
toolCo-Pilot
90/ 100

“It's essentially a well-organized cheat sheet that turns your AI assistant into a Nuxt framework parrot.”

Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.

Copyright belongs to the original author dartsim.