First off, thanks for your interest in contributing to PACE 💙
This project is intended as a solid, research-grade foundation for sim-to-real transfer of legged robots, and external contributions are very welcome.
This document explains how to:
- report bugs and request features
- contribute code and documentation
- add new examples (e.g. for your own robots) that may appear on the Examples page
You can help in many ways:
- Bug reports – crashes, incorrect behavior, unclear error messages
- Documentation improvements – typos, unclear sections, better explanations, new guides
- New examples – full PACE workflows for other robots (data collection, parameter fitting, evaluation)
- Core improvements – actuator models, optimization utilities, environment wrappers, etc.
If you plan a larger change (new robot integration, major API changes, etc.), please open a GitHub issue first so we can align on the design.
Follow the installation instructions in the official documentation.
A typical setup:
# 1) Clone your fork
git clone git@github.com:<your-username>/pace-sim2real.git
cd pace-sim2real
# 2) Install PACE in editable mode inside the Isaac Lab environment
python -m pip install -e source/pace_sim2real
# 3) (Optional) Install pre-commit hooks
pip install pre-commit
pre-commit installBefore pushing:
pre-commit run --all-filesThis will apply formatting and basic checks.
- Fork the repository (external contributors)
- Create a feature branch
git checkout -b feature/my-robot-example
- Make your changes (code + docs)
- Run formatting checks:
pre-commit run --all-files
- Push and open a Pull Request against
main
https://github.com/leggedrobotics/pace-sim2real
A PR should include:
- a short summary
- how it was tested (Isaac Lab version, GPU, commands)
- for examples: which robot / platform it applies to
We especially welcome examples for additional robots that demonstrate:
- data collection
- PACE parameter identification
- evaluation and visualization
- (optionally) deployment
See existing examples:
https://pace.filipbjelonic.com/examples/
Please add your scripts under scripts/pace/, for example:
scripts/pace/
data_collection_<robot>.pyGuidelines:
- Reuse existing PACE components where possible
- Avoid hard-coded absolute paths
- Document any long-running processes
- Avoid committing large binary data; provide generation scripts instead
Each example needs a documentation page under:
docs/examples/
anymal.md
<your_robot>.mdTypical structure:
- Overview
- Data collection (commands, trajectory details)
- Parameter identification
- Evaluation and visualization
- (Optional) Deployment instructions
Add it to the navigation in mkdocs.yml:
nav:
- Examples:
- Overview: examples/index.md
- ANYmal: examples/anymal.md
- <Your Robot Name>: examples/<your_robot>.md- Example runs with supported Isaac Sim / Isaac Lab versions
- Documentation matches the scripts
- No large binary files included
- Example appears correctly in the “Examples” section
Please use GitHub Issues:
https://github.com/leggedrobotics/pace-sim2real/issues
Include:
- PACE version / commit hash
- Isaac Sim / Isaac Lab version
- OS, CUDA, GPU
- exact command(s) used
- logs or error messages
Feature requests are welcome—please describe your use case (robot type, task, environment).
By contributing, you agree that your contributions are licensed under Apache-2.0, the same license as the project.
We aim to make PACE a reliable foundation for both research and industry.
If your contribution becomes part of a project, paper, or cool demo, feel free to mention it in your PR—we love seeing what people build on top of this!