dartsim / dart-python

DART Python bindings (dartpy) - nanobind, wheel building, API patterns

0 views
0 installs

Skill Content

---
name: dart-python
description: DART Python bindings (dartpy) - nanobind, wheel building, API patterns
---
<!-- AUTO-GENERATED FILE - DO NOT EDIT MANUALLY -->
<!-- Source: .claude/skills/dart-python/SKILL.md -->
<!-- Sync script: scripts/sync_ai_commands.py -->
<!-- Run `pixi run sync-ai-commands` to update -->

# DART Python Bindings (dartpy)

Load this skill when working with Python bindings or dartpy.

## Quick Start

```python
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

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

## Wheel Building

```bash
pixi run -e py312-wheel wheel-build
pixi run -e py312-wheel wheel-repair  # Linux only
pixi run -e py312-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/`