OpenDroneMap/NodeODM

A lightweight REST API to access aerial image processing engines such as ODM or MicMac

What it solves

Processing aerial drone images into maps and 3D models typically requires complex, engine-specific setup and scripting. NodeODM provides a standardized, easy-to-use API and a ready-to-run web server that handles the heavy lifting of communicating with processing backends like OpenDroneMap (ODM). It gives a consistent interface that other tools like CloudODM and PyODM can use, so you can launch image processing tasks from a browser or from your own code without needing to manage the underlying engine directly.

How it works

NodeODM is a Node.js application that exposes a web API defined in its own specification. When you run it, it starts a web server (default port 3000) where you can upload drone images, start a processing task, and download the results. The server talks to an ODM engine – either the official ODM Docker image or a custom one – to perform the actual photogrammetry work. It manages task orchestration, data storage, and can use GPU acceleration (via CUDA) when running the GPU-enabled Docker image with the --gpus all flag. It can be deployed in several ways: as a Docker container, as a native process, or as a self-contained Windows executable. It also supports test mode that simulates ODM calls, making it easy for developers to test the API without a full ODM setup.

Who it’s for

  • Drone enthusiasts and professionals who need a turnkey web interface to process aerial images.
  • Developers building applications that require aerial image processing, as NodeODM gives a clean REST API.
  • System administrators who want a deployable server with Docker, PM2, or on Windows.
  • Researchers working on high-performance computing clusters who need a rootless container option via Apptainer.

Highlights

  • Standardized API specification, also used by CloudODM and PyODM.
  • Production-ready reference implementation in Node.js.
  • Web interface lets you upload images and start tasks with a single click.
  • GPU acceleration for NVIDIA cards (CUDA) using a specialized Docker image.
  • Flexible deployment: Docker, native, Windows bundle, PM2, or Apptainer (rootless).
  • Test mode that simulates ODM calls, useful for development and automated tests.
  • Can point to custom ODM images for testing alternative processing engines.

Related

  • Project
  • Project
  • Project
  • Project