Contributing#

Welcome! We’re excited you’re interested in contributing to ProtoMotions.

This project thrives on community involvement. Whether you’re fixing a typo, adding a feature, or sharing your research—every contribution matters.

Ways to Contribute#

There are many ways to help, and you don’t need to be an expert:

Share Your Work

Used ProtoMotions in a project or paper? Let us know! We’d love to feature it.

Report Issues

Found a bug? Something confusing in the docs? Open an issue and tell us about it.

Improve Documentation

Spotted a typo? Have a better explanation for something? Documentation improvements are always welcome.

Add Examples

Created a cool experiment configuration or training setup? Share it with others.

Fix Bugs

Browse open issues and pick one that interests you.

Add Features

Have an idea for a new feature? Open an issue to discuss it first, then submit a PR.

Getting Started#

  1. Fork the repository on GitHub

  2. Clone your fork:

    git clone https://github.com/YOUR_USERNAME/ProtoMotions.git
    cd ProtoMotions
    
  3. Create a branch for your changes:

    git checkout -b my-contribution
    
  4. Make your changes and test them

  5. Commit with a clear message (and sign-off):

    git commit -s -m "Add feature X"
    
  6. Push to your fork:

    git push origin my-contribution
    
  7. Open a Pull Request on GitHub

That’s it! We’ll review your PR and work with you to get it merged.

Signing Your Commits#

We require that all contributors “sign-off” on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license.

To sign off on a commit, use the --signoff (or -s) option:

git commit -s -m "Add cool feature"

This appends the following to your commit message:

Signed-off-by: Your Name <your@email.com>

Note: Any contribution which contains commits that are not signed-off will not be accepted.

Code Style#

We use pre-commit to automatically format and lint code. To set it up:

pip install pre-commit
pre-commit install

This will run the following checks on every commit:

  • Ruff for linting and formatting (replaces black, isort, flake8)

  • Typos for spell checking

  • License header insertion

  • Trailing whitespace and end-of-file fixes

You can also run the checks manually:

pre-commit run --all-files

Beyond automated formatting:

  • Use meaningful variable and function names

  • Add docstrings to new functions and classes

  • Keep commits focused—one logical change per commit

Don’t worry about being perfect. We’re happy to help you polish your contribution during review.

Pull Request Tips#

  • Keep PRs focused: One feature or fix per PR is easier to review

  • Describe your changes: Help reviewers understand what you did and why

  • Test your changes: Make sure things work before submitting

  • Be patient: We’ll get to your PR as soon as we can

Questions?#

Not sure where to start? Have questions about the codebase?

  • Open a GitHub Discussion

  • Check existing issues for similar questions

  • Reach out in your PR if you get stuck

We’re here to help. Don’t hesitate to ask!

Thank You#

Every contribution—big or small—helps make ProtoMotions better for everyone. Thank you for being part of this project!