Contributing to IR-SIM#
Thank you for your interest in improving IR-SIM! Whether you’re fixing a typo, adding a new feature, or writing documentation, your contribution is welcome by opening an issue or a pull request to the main branch. Below are a few guidelines to help you get started.
What You Can Contribute#
Source Code
New features (sensors, controllers, kinematic models)
Bug fixes and performance improvements
Documentation
Fix typos, clarify API descriptions
Add new tutorials or usage guides
Improve examples under
docs/
Usage Examples & Tests
Extend or polish the
usage/directoryAdd unit tests for new features
Discussion & Design
Propose architectural changes
Provide feedback on roadmap or UX
Code Style#
We use Ruff to format and lint Python code. Before opening a PR, run:
pip install ruff
ruff check
To enable automatic checks on each commit, install the pre-commit hook:
pip install pre-commit
pre-commit install
Documentation#
IR-SIM’s documentation lives in the docs/ directory and uses the PyData Sphinx Theme. To build the docs locally:
cd docs
make html
New tutorials or guides belong in
docs/or underusage/The API reference is auto-generated from docstrings
Adding New Features#
Current support of sensors, behaviors, and robot kinematics models can be seen in the support.
New features to support more platforms and scenarios to make IR-SIM more versatile are welcome. Please open an issue to discuss the design. If you prefer, you can also email hanrh@connect.hku.hk for a design discussion.
Testing#
We use pytest for our test suite. To run all tests:
pytest
Please add tests for any new functionality or bug fix.
Thanks again for helping make IR-SIM better!