Contributing
We welcome contributions to Simulusion! This guide covers how to get started.
Development Setup
-
Clone the repository
Terminalgit clone https://github.com/ParamThakkar123/simulusion.git cd simulusion -
Install in development mode
Terminaluv sync --devIf you are not using
uv, use the equivalent editable install:Terminalpython -m pip install -e ".[dev]" -
Install pre-commit hooks
Terminaluv run pre-commit install
Code Style
We use:
- Black for code formatting
- Ruff for linting
- MyPy for type checking
- Pre-commit for automated checks
Run checks:
Terminal
# Format code
uv run black .
# Lint
uv run ruff check .
# Type check
uv run mypy .
# All checks
uv run pre-commit run --all-filesTesting
Run the test suite:
Terminal
# All tests
pytest
# Fast subset (skip slow, GPU, and integration tests)
pytest -m "not slow and not gpu and not integration"
# Specific package-mirrored test area
pytest tests/masks/test_masks.py
# With coverage
pytest --cov=simulusion --cov-report=htmlDocumentation
Build docs locally:
Terminal
cd docs
sphinx-build -b html source build/htmlOpen docs/build/html/index.html in your browser.
Adding New Features
1. New Models
- Create model class in
simulusion/models/ - Add config class in
simulusion/configs/ - Export both from
simulusion/__init__.py - Update training scripts
- Add documentation and tests
2. New Environments
- Implement environment wrapper in
simulusion/envs/ - Add to environment registry
- Update documentation
Pull Request Process
- Fork the repository
- Create a feature branch
Terminal
git checkout -b feature/my-feature - Make your changes
- Run tests and checks
Terminal
uv run pre-commit run --all-files uv run pytest - Update documentation if needed
- Commit your changes
Terminal
git commit -m "Add feature: my feature" - Push to your fork
Terminal
git push origin feature/my-feature - Create a Pull Request
Commit Messages
Use conventional commit format:
feat:New featuresfix:Bug fixesdocs:Documentationtest:Testingrefactor:Code refactoringchore:Maintenance
Examples:
feat: add I-JEPA linear evaluationfix: resolve memory leak in dreamer trainingdocs: update inference guide
Issue Reporting
- Bug reports: Use the bug report template
- Feature requests: Use the feature request template
- Questions: Use discussions
Code of Conduct
Please follow our code of conduct in all interactions.
License
By contributing, you agree that your contributions will be licensed under the MIT License.
Edit this page on GitHub
Updated Oct 11, 2026