Thanks for your interest in contributing! This document covers development setup and guidelines.
- Python 3.11+
- uv (recommended) or pip
- shellcheck for shell script linting
# Clone the repository
git clone https://github.com/hummat/mini-mesh.git
cd mini-mesh
# Install development dependencies
make deps # or: uv sync --group dev
# Run all checks (format, lint, type check, tests)
make check # or: scripts/lint.sh# Run all tests with coverage
make test # or: uv run pytest
# Run specific test
uv run pytest tests/ -k test_name -v
# Individual checks
make fmt # format code (ruff)
make lint # lint (shellcheck + ruff)
make type # type check (pyright)- 2-space indentation
set -eat the top of scriptssnake_casefor variables and functions- Quote variables:
"$var"not$var - Use
[[ ]]for conditionals
- 4-space indentation
- Type hints for function signatures
- Follow existing patterns in
webui.py - Run
ruff checkandpyrightbefore committing
- Model configs are Bash arrays in
config/*.sh - Follow naming convention:
{model}-{capacity}-{duration}.sh
Before making changes, read the architecture docs:
docs/agent/architecture.md- Pipeline structure and single source of truthdocs/agent/code_conventions.md- Detailed style guidedocs/agent/testing_patterns.md- Testing approach
scripts/run.sh is the canonical reference for the pipeline. When adding flags:
- Add to
scripts/run.shfirst - Update
webui.pyto expose in the UI - Update
docker/run.shif needed - Update
README.mddocumentation
- Issue templates: Use the bug report or feature request form
- Labels: Area and priority labels are defined in
.github/labels.yml; area labels are auto-applied from issue form dropdowns - Project board: 3D Reconstruction Pipeline — cross-repo board covering mini-mesh, sdfstudio, and dependencies
- Create an issue first for non-trivial changes
- Fork and branch from
main - Make your changes following the style guide
- Run
make check- all checks must pass - Update documentation if adding/changing features
- Submit PR using the template
Use Conventional Commits format:
type(scope): description
Types: feat, fix, docs, refactor, perf, test, chore, ci
Examples:
feat(export): Add glTF compression option
fix(webui): Handle missing video file gracefully
docs: Update installation instructions
chore: Bump sdfstudio to v0.8.0
See docs/agent/releases.md for full details.
- Documentation improvements
- Adding test coverage
- Bug fixes with clear reproduction steps
- New model configurations
- Export format options
- UI improvements
Please open an issue first to discuss the approach. This helps avoid duplicate work and ensures the feature aligns with project goals.
Build takes 1-2 hours (compiles COLMAP, GLOMAP, tiny-cuda-nn with CUDA support).
docker/build.sh local # Recommended: auto-detects your GPU
docker/build.sh full # Multi-GPU support (~11.6GB)
docker/build.sh slim # Core only, no optional deps (~9GB)Run docker/build.sh --help for all options.
- Open a Discussion for questions
- Check existing Issues for known problems