dartsim

dart-python

"DART Python: dartpy bindings, nanobind, wheels, and API patterns"

dartsim 1,196 304 Updated 1mo ago
GitHub

Install

npx skillscat add dartsim/dart/dart-python

Install via the SkillsCat registry.

SKILL.md

DART Python Bindings (dartpy)

Load this skill when working with Python bindings or dartpy.

When a binding exposes or changes model/scene loading, dynamics,
collision/contact/constraints, simulation stepping, GUI/rendering output, or a visual
example, also load dart-verify-sim. Pair a focused Python text/behavior oracle
with an assessed, claim-tied headless capture; document a visual exception when
rendering is unavailable or not applicable.

Quick Start

import dartpy as dart

world = dart.World()
skel = dart.io.read_skeleton("dart://sample/urdf/KR5/KR5 sixx R650.urdf")
world.add_skeleton(skel)

for _ in range(100):
    world.step()

Full Documentation

For complete Python bindings guide: docs/onboarding/python-bindings.md

For module-specific details: python/AGENTS.md

Quick Commands

pixi run build-py-dev    # Build for development
pixi run test-py         # Run Python tests
pixi run generate-stubs  # Generate type stubs

Wheel Building

pixi run -e py314-wheel wheel-build
pixi run -e py314-wheel wheel-repair  # Linux only
pixi run -e py314-wheel wheel-test

Key Patterns

  • snake_case preferred (camelCase emits DeprecationWarning)
  • NumPy arrays auto-convert to Eigen types
  • GUI requires DART_BUILD_GUI=ON

Key Files

  • Package config: pyproject.toml
  • Build system: python/dartpy/CMakeLists.txt
  • Type stubs: python/stubs/dartpy/

Categories