Contributing to SSM-Simulators¶
Thank you for your interest in contributing to ssm-simulators! This directory contains guides to help you contribute effectively.
Contribution Guides¶
Adding New Models¶
The main contribution pathway for researchers is adding new sequential sampling models to the package.
๐ Complete Guide: Adding New Models
This comprehensive tutorial covers: - Level 1: Boundary/Drift Variants - Add model variants using existing simulators (~15 min) - Level 2: Python Simulators - Implement new models in Python (~20 min) - Level 3: Cython Simulators - Create high-performance implementations (~30 min)
Each level includes: - Step-by-step instructions with code examples - Testing requirements and templates - Documentation guidelines - PR submission checklist
Custom Parameter Adaptations¶
๐ Guide: Custom Parameter Adaptations
Learn how to create custom parameter transformations for your models. This guide covers: - Using built-in parameter adaptations - Creating custom adaptations - Real-world examples and best practices
Other Ways to Contribute¶
- Bug Reports: Found a bug? Open an issue with a minimal reproducible example
- Documentation: Improve tutorials, fix typos, add examples
- Feature Requests: Suggest new features or improvements
- Code Review: Review open pull requests
Quick Links¶
Code of Conduct¶
We are committed to providing a welcoming and inclusive environment for all contributors. Please be respectful and constructive in all interactions.
Getting Started¶
- Fork the repository on GitHub
- Clone your fork locally
- Set up the development environment (requires uv):
The development dependencies include JAX so RLSSM differentiable-backend
tests can run locally. For a minimal editable install with only the optional
JAX backend, use:
Or sync only the optional JAX extra for RLSSM backend work:
Or, if you want to sync all dependency groups for development:
If you don't have
uvyet: - Create a branch for your contribution
- Make your changes following the relevant guide
- Run tests to ensure nothing broke
- Submit a pull request with a clear description
Questions?¶
If you have questions about contributing:
- Search existing issues
- Post in our GitHub Discussions forum for general questions or help
- Open a new issue with the question label if needed
Thank you for helping make ssm-simulators better for the research community!