main— released / stabledevelop— integration branch; branch your work from here- feature branches:
feat/<short-name>, fixes:fix/<short-name>
Conventional commits: type(scope): description
Examples:
feat(georef): add EXIF-GPS fallbackfix(openmvs): correct RefineMesh resolution-level passthroughdocs(readme): document georeference modes
Run the local checks (same as CI):
./scripts/test.shAll must pass. If you touch the pipeline, also do a real run against a small dataset and confirm the WebODM output paths are populated.
See CLAUDE.md → "Non-negotiable constraints". In short: keep the NodeODM
contract intact, never silently drop ReconstructMesh/RefineMesh, always support
--georeference none, pin container dependencies, and never commit data or
secrets (see .gitignore).
Effigies is a focused photogrammetry node. Aerial/GPS mapping is already served by the stock ODM node — contributions should target the close-range / refine quality gap, not duplicate ODM.