Contributing to mrHelloWorld

February 26, 2026 ยท View on GitHub

Thank you for considering contributing to this project. This guide explains how to add new example nodes, write tutorials, and submit your work.

Adding a new example node

  1. Create a new file in meshroom/helloWorld/ following the naming convention: HelloYourFeature.py.
  2. The class name must match the filename (e.g., HelloYourFeature.py contains class HelloYourFeature).
  3. Follow the patterns established by the existing nodes:
    • __version__ = "1.0" at the top
    • Module-level imports: import os, from meshroom.core import desc, from meshroom.core.utils import VERBOSE_LEVEL
    • Lazy imports for heavy libraries inside processChunk
    • try/finally with logManager.start() / logManager.end()
    • Every parameter has name, label, description
    • category = "Hello World"
  4. Add comments explaining what the node demonstrates. This is a teaching repository โ€” clarity matters more than brevity.
  5. Update the nodes table in README.md.

Code style

  • Match the style of existing nodes. Consistency is more important than personal preference.
  • Use chunk.logger.info() / .warning() for user-facing messages.
  • Use .format() for string formatting to match the style of existing Meshroom plugins and nodes in this repository.
  • Keep imports organized: standard library, then meshroom, then lazy imports inside processChunk.

Writing a tutorial

  1. Create a new file in docs/tutorials/ following the numbering convention: NN-hello-your-feature.md.
  2. Structure your tutorial with these sections:
    • What you will learn
    • Prerequisites
    • The code (with annotations)
    • How to test it in Meshroom
    • Expected result
    • Screenshot placeholders
  3. Include at least one code snippet from the node file.
  4. Add at least one screenshot placeholder referencing docs/images/.

Adding screenshots

  1. Take screenshots from the Meshroom UI showing:
    • The node in the node graph
    • The parameter panel
    • The output in the 2D viewer (if applicable)
  2. Save them in docs/images/ with descriptive names: hello-your-feature-node.png, hello-your-feature-output.png.
  3. Recommended resolution: 1200px wide or larger.
  4. See docs/images/README.md for the full naming convention.

Pull request process

  1. Fork the repository and create a branch for your contribution.
  2. Implement your changes following the guidelines above.
  3. Test your node in Meshroom (set MESHROOM_PLUGINS_PATH and verify it loads and computes).
  4. Submit a pull request with a clear description of what your node demonstrates.

Ideas for future nodes

Contributions demonstrating any of these patterns are welcome:

  • HelloDocker: A node that wraps a Docker container for processing.
  • HelloShapeList: A node using desc.ShapeList for multiple shapes.
  • HelloPushButton: A node with a PushButtonParam for interactive callbacks.
  • HelloMultiDynamic: A node using MultiDynamicNodeSize with parallelization.
  • HelloGroup: A node demonstrating GroupAttribute and ListAttribute patterns.
  • HelloNetwork: A node that communicates with an external service or API.

If you have other ideas, open an issue to discuss before starting implementation.