Thank you for your interest in contributing to SPIDER (Scalable Physics-Informed DExterous Retargeting)! We welcome contributions from the community to help improve our physics-based retargeting framework.
Before you begin, please review our project structure and architectural guidelines.
We recommend using uv for dependency management, though conda is also supported. The project requires Python 3.12+.
Option 1: Using uv (Recommended)
uv python install 3.12
uv sync --python 3.12
pip install --ignore-requires-python --no-deps -e .Option 2: Using conda
conda create -n spider python=3.12
conda activate spider
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install --no-deps -e .We use Ruff for all linting and formatting. Please ensure your code passes all checks before submitting a Pull Request.
- Style: Google-style docstrings
- Line Length: 88 characters
Commands:
# Run linter
ruff check .
# Auto-fix simple issues
ruff check --fix .
# Format code
ruff format .We have specific tests for individual simulator backends. Please run the relevant tests for the modules you modify.
# Test MJWP (Mujoco Warp) simulator
uv run spider/simulators/mjwp_test.py
# Test DexMachina simulator
uv run spider/simulators/dexmachina_test.py
# Test HDMI simulator
uv run spider/simulators/hdmi_test.py- Fork the repository and create your branch from
main. - Install dependencies using the setup instructions above.
- Run tests and linter. Ensure
ruff check .passes and all relevant simulator tests run successfully. - Submit a Pull Request. Provide a clear description of your changes and link to any relevant issues.
- New Robots: Requires adding MJCF assets, updating
spider/config.pyembodiment mappings, and adjusting reward weights. - New Datasets: Requires a new processor in
spider/process_datasets/that outputs standard NPZ files.
By contributing, you agree that your contributions will be licensed under the project's existing license.