Highlights
This updates NodeODM to match the latest ODM 3.6.2 release.
- GPU SIFT works. The
:gpuimage published in October 2025 was missing a CUDA library, so--feature-type siftsilently ran on the CPU. Dense reconstruction was not affected. - Paths with spaces work. A NodeODM install or dataset under a path such as
C:\Users\John Smith\no longer fails to launch ODM. - Numeric task options no longer crash the runner. Builds of master between April and August 2026, including Windows bundles, exited with
TypeError: s.replace is not a functionon any numeric option such as--min-num-features 8000. The published Docker images predate the bug.
Release process
Prior to ODM 3.5.6, NodeODM tracked the master branch of ODM. Every push to either repository triggered a new :latest image. Release tagging of images was done manually after a review period. While this worked, it was common for release tags to be missed, and it contained the same unexpected behaviour as ODM with the :latest tag moving with master.
Going forward we are making two big changes to the NodeODM release process:
- Versions will match the ODM release it wraps (ie.
nodeodm:3.6.2wrapsodm:3.6.2): This should make it easier for you to know which tag to pull and have confidence it won't be swapped out from under you. - Releases will be decoupled from ODM releases: This allows changes in ODM that affect the interface to be properly connected before releasing and for us to test the interface for regressions.
Combined we expect these to lead to a more stable experience.
Images
As mentioned above, NodeODM's version number now matches the ODM version it wraps. As part of this, the image tags have changed to be consistent with ODM:
opendronemap/nodeodm:3.6.2and:latest(amd64, arm64), built onopendronemap/odm:3.6.2.opendronemap/nodeodm:3.6.2-gpuand:gpu, built onopendronemap/odm:3.6.2-gpu.opendronemap/nodeodm:3.6.2-gpu-inteland:gpu-intel. The Intel image was previously published asgpu.intel.- Development builds are published from master as
:edge,:edge-gpuand:edge-gpu-intel.:latestand:gpuonly move on releases.
Auto-generated Changelog
What's Changed
- Update Dockerfile.gpu by @sean-kenops in #217
- fix: tmp dir creation by @kauly in #218
- fix: support v6 and v7 uuids by @frankmarazita in #221
- Update index.adoc with progress field. by @WangHan2014 in #230
- Inherit stdio when launching pythonExe, and use shell: true by @sylveon in #235
- Pin nexe and update upload-artifact task by @sylveon in #236
- added new files to export by @lucadelu in #237
- Create cutline.gpkg for tests by @smathermather in #239
- Fix start time logic by @pierotofy in #233
- FIx whitespace handling when invoking Python by @sylveon in #245
- 24.04 by @pierotofy in #253
- Pin to odm 3.5.6 until 3.6.0 fix in place by @smathermather in #261
- Add support for Azure Artifact Signing by @sylveon in #263
- Change permissions from read to write for contents by @sylveon in #264
- Add quotes around run command by @sylveon in #267
- Quote params and use shell: true by @sylveon in #268
- Fix Dockerfile.gpu: COPY sources before install_deps.sh by @haas-ac in #272
- Coerce option values to string in shQuote() by @Arm4g3ddon in #270
- Prep for release 3.6.2 by @MJohnson459 in #273
New Contributors
- @sean-kenops made their first contribution in #217
- @kauly made their first contribution in #218
- @frankmarazita made their first contribution in #221
- @WangHan2014 made their first contribution in #230
- @sylveon made their first contribution in #235
- @lucadelu made their first contribution in #237
- @haas-ac made their first contribution in #272
- @Arm4g3ddon made their first contribution in #270
- @MJohnson459 made their first contribution in #273
Full Changelog: v2.2.3...v3.6.2