Improving battery technology is critical as we transition to a green economy. Battery modeling helps to achieve this by reducing costs and increasing reliability and safety. The PyBaMM package provides an open-source framework for physics-based battery models and simulations, with a growing focus on real-world experiments and battery degradation. While most of our development team works day-to-day on creating new models and better ways to solve them, the PyBaMM team also offers projects which do not require domain-specific knowledge under several open-source programs, which can be fantastic contributions to the general framework.

To find out more about PyBaMM, you can visit our website pybamm.org or read our paper.

Getting started

We mostly communicate via Slack, so you should start off by joining our Slack workspace and heading to the appropriate (#gsoc-main/#outreachy-main/#gsod-main) channel.

A comprehensive set of example notebooks is available for becoming familiar with PyBaMM. Knowledge of battery physics or mathematical modeling is not required for any of the projects, but may be beneficial for some.

All coding will be done in Python, so contributors should have some proficiency in Python, or another object-oriented programming language. Each project will follow test-driven development, and also involve writing clear documentation (via Sphinx) and examples (mainly in the form of jupyter notebooks) alongside the code. New contributors should make themselves familiar with this workflow. Finally, new contributors should read the Contributing Guidelines and be familiar with the basics of Git and GitHub.

Applications

Applicants must submit proposals based on the ideas suggested below. The open-source program’s governing organisation will decide how many projects are funded, it’s unlikely that every project will be funded. Selection for the projects will take into consideration, in strongly decreasing order of importance:

  • our interactions with you leading up to the project selection date
  • your project application
  • your background and experience

Programs

Google Summer of Code

Google Summer of Code is primarily focused on bringing new contributors to the world of open-source through dedicated mentorship from the organisation members. PyBaMM participates in Google Summer of Code as a sub-organisation under NumFOCUS; hence, the applications should be submitted to NumFOCUS on Google’s portal. If you would like to work with us on a project and would like to seek more information, you may view current or future projects at the GSoC Home.

Google Season of Docs

Google Season of Docs allows open-source organisations to hire technical writers to work on their documentation. The program usually requires previous technical writing experience and the mentors help the writers to familiarise themselves with the organisation and open-source in general. If you would like to work with us on a project, you may view our participation status and the current or future projects at the GSoD GitHub repository. We are applying to GSoD for the first time in 2024, with a proposal to improve the documentation of submodels.

Outreachy

Outreachy offers internships to open-source beginners and “people subject to systemic bias and impacted by underrepresentation in the technical industry where they are living.” The Outreachy projects are entirely based on open-source and open-science. If you would like to work with us on a project, you may view our participation status and the current or future projects at Outreachy’s portal.

NumFOCUS Small Developer Grants

PyBaMM is a NumFOCUS sponsored project, allowing it to gather funds from NumFOCUS Small Developer Grants. The program is flexible and can accommodate any type of project. There is no dedicated list of projects for this program, but the projects listed in other programs can be funded through NumFOCUS Small Developer Grants. You can also reach out to PyBaMM maintainers if you have a particular project in mind that is not listed anywhere. Each application cycle can fund exactly one project. For more information, visit the NumFOCUS Small Developer Grants page.