Contributing to SimPEG#

First of all, we are glad you are here! We welcome contributions and input from the community.

In these pages we set some guidelines for contributing to the repositories hosted in the SimPEG organization on GitHub. These repositories are maintained on a volunteer basis.

Please, be considerate and respectful of others. Remember that everyone in the SimPEG community must abide by our Code of Conduct.

Ask questions#

If you have a question regarding a specific use of SimPEG, the fastest way to get a response is by posting on our Discourse discussion forum: Alternatively, if you prefer real-time chat, you can join our Mattermost Team at Please do not create an issue to ask a question.

GitHub Issues#

Issues are a place for you to suggest enhancements or raise problems you are having with the package to the developers. Feel free to open new Issues in SimPEG’s GitHub repository.


If you found a bug in SimPEG, please report it through a new Issue. Please be as descriptive as possible and provide sufficient detail to reproduce the error. Whenever possible, if you can include a small example that reproduces the error, this will help us resolve issues faster.

Suggesting enhancements#

We welcome ideas for improvements on SimPEG! When writing an issue to suggest an improvement, please

  • use a descriptive title,

  • explain where the gap in current functionality is,

  • include a pseudocode sketch of the intended functionality

We will use the issue as a place to discuss and provide feedback. Please remember that SimPEG is maintained on a volunteer basis. If you suggest an enhancement, we certainly appreciate if you are also willing to take action and start a Pull Request!

Contributing with code#

We are glad to receive contributions in form of code to SimPEG, weather it fixes a bug, adds a new feature, improves the documentation or extends our tests. In the following pages you’ll find information on how to get started to contribute with new code to SimPEG.


All code contributed to SimPEG is licensed under the MIT license which allows open and commercial use and extension of SimPEG. If you did not write the code yourself, it is your responsibility to ensure that the existing license is compatible and included in the contributed files or you can obtain permission from the original author to relicense the code.