Skip to content

Contributing to PhysicsNeMo

ram-cherukuri edited this page Oct 31, 2025 · 10 revisions

Thank you for considering contributing to PhysicsNeMo. By contributing to PhysicsNeMo, you are now part of the Nvidia developer community!

The contribution process for PhysicsNeMo is similar to most open source projects, involving a collaborative open conversation between the core developers and the broader community.

Table of Contents

  • All the ways to contribute
  • Getting Started with Documentation changes
  • Getting Started with Pull Requests
    • Familiarize yourself with the codebase
    • Setup the developer environment
    • Submitting a change

All the ways to contribute

There are many ways to contribute to the PhysicsNeMo project, and we celebrate them all. Most open source contributors start with small improvements, and ramp up the scale of their work as they become more familiar. Here are some paths to becoming a PhysicsNeMo contributor, listed in no particular order:

  • Community Discussions PhysicsNeMo has an active community and we tend to use the Github Discussions. Participating in conversations here is a great way to learn about PhysicsNeMo and contribute your expertise to the community.

  • Tutorials If you are already a user of PhysicsNeMo, good places to start contributing are the PhysicsNeMo Training recipes, PhysicsNeMo CFD Model Evaluation recipes, PhysicsNeMo Data Curation recipes. The PhysicsNeMo recipes are very useful for community members, and we always welcome new contributions or updates to existing tutorials.

  • Documentation We aim to produce high-quality documentation, but typos or other inaccuracies may creep in. If you find something to fix or improve, please send in a pull request. The docs guide contains resources for you to start submitting documentation updates.

  • Reporting Issues If you happen to run into some unexpected behavior, you can help by creating an issue (if a similar one doesn't already exist on the issue list). Use the Bug Report template and supply as much information as you can, and any additional insights/guesses you might have. When reporting an issue, it's helpful to narrow down the problematic behavior to a minimal reproducible example.

  • Reproducing and Investigating Issues Another valuable way to contribute is by reproducing open issues. Sometimes the problematic behavior may be isolated to specific environments, or the reported issue is too broad. By repro'ing, you can add details about the problematic behavior, perhaps even further narrow it down towards a root cause, and offer your insights that can help developers to troubleshoot the problem.

  • Proposing New Features We welcome ideas for new features in PhysicsNeMo! A great way to share your idea with the community is by drafting a PR, especially if you have fleshed out the design and would like it reviewed. For more casual ideas, the Github disussions is a good place to start.

  • Submitting Pull Requests Fixing existing issues or implementing new features require changes to the codebase. We accept new code contributions via Github Pull Requests. The PR guide below contains resources for you to start submitting your changes to PyTorch.

  • Advocate for PhysicsNeMo As a PhysicsNeMo user, you are already a valued member of our community. Using PhysicsNeMo in your projects, examples, demos, workshops, and blogs goes a long way in raising awareness for the community. Please reach out to us here for any support with sharing your work.

Getting Started with Documentation changes

PhysicsNeMo documentation is generated from docstrings in the python source using Sphinx. This generated HTML is copied to the main folder in the xxxx.

You need to build and install PhysicsNeMo before you can develop on the docs. Here are guidelines for developing PhysicsNeMo docs:

Getting Started with Pull Requests

Here are some resources that can help you contribute pull requests.

While you can use any tool you want to work on a PR (including AI coding tools, fuzzers, linters), the PR being submitted is your own responsibility and must follow the appropriate coding practices within our codebase. Maintainers will not review the PR until it is following common coding practices inside the codebase (described below) and will deal with repeated, low quality PR, similarly to spam on the repo. When in doubt about anything, please ask on the issue for guidance.

Familiarize yourself with the codebase

  • [Core Frontend Onboarding]
  • [Codebase structure]
  • [Developer docs and notes]
  • [Workflow docs and notes]

Setup the developer environment

Submitting a change