# ODX **Repository Path**: simplifer/odx ## Basic Information - **Project Name**: ODX - **Description**: 三维重建 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-05 - **Last Updated**: 2026-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ODX ![CPU Build](https://img.shields.io/github/actions/workflow/status/WebODM/ODX/publish-docker.yml?branch=master&label=docker%20CPU) ![GPU Build](https://img.shields.io/github/actions/workflow/status/WebODM/ODX/publish-docker-gpu.yml?branch=master&label=docker%20GPU) ![Windows Build](https://img.shields.io/github/actions/workflow/status/WebODM/ODX/publish-windows.yml?branch=master&label=windows) ![Version](https://img.shields.io/github/v/release/WebODM/ODX) ![License](https://img.shields.io/github/license/WebODM/ODX) ![Contributors](https://img.shields.io/github/contributors/WebODM/ODX) ![Updated](https://img.shields.io/github/last-commit/WebODM/ODX) > **📢 Now faster than ODM, with OpenSfM 1.0 support, GPU based feature matching, NVIDIA GeForce RTX 50 Series support, checkpoints support and tons of improvements!** [Read the announcement](https://webodm.org/blog/announcement/) > **If you like ODX, could you take a second and ⭐ the project? 🙏** A free and open source photogrammetry engine for processing aerial and ground imagery. ODX turns images into: * Classified Point Clouds * 3D Textured Models * Georeferenced Orthophotos * Georeferenced Digital Elevation Models ![ODX Pipeline](https://user-images.githubusercontent.com/1174901/96613039-7de94500-12cc-11eb-9975-ca67b188b0d3.png) The application is available for Windows, Mac and Linux and it works from the command line, making it ideal for power users, scripts and for integration with other software. If you would rather not type commands in a shell and are looking for a friendly user interface, check out [WebODM](https://webodm.org). ## Quickstart ### Windows First download the latest [Windows setup](https://github.com/WebODM/ODX/releases). After installation, open the `ODX Console`, place some images in a folder named `images` (for example `C:\Users\youruser\datasets\project\images`) and run: ```bash run c:\Users\youruser\datasets\project ``` Alternatively, you can also use [docker](https://docs.docker.com): ```bash # Windows docker run -ti --rm -v c:/Users/youruser/datasets:/datasets webodm/odx --project-path /datasets project ``` ### macOS/Linux First install [docker](https://docs.docker.com). Once you have docker installed, place some images in a folder named `images` (for example `C:\Users\youruser\datasets\project\images` or `/home/youruser/datasets/project/images`) and run from a terminal: ```bash # Mac/Linux docker run -ti --rm -v /home/youruser/datasets:/datasets webodm/odx --project-path /datasets project ``` ## Arguments You can pass [additional parameters](https://docs.webodm.org/options-flags/) by appending them to the command: ```bash run c:\Users\youruser\datasets\project [--args] ``` ```bash docker run -ti --rm -v /datasets:/datasets webodm/odx --project-path /datasets project [--args] ``` For example, to generate a DSM (`--dsm`) and increase the orthophoto resolution (`--orthophoto-resolution 2`) : ```bash docker run -ti --rm -v /datasets:/datasets webodm/odx --project-path /datasets project --dsm --orthophoto-resolution 2 ``` To see all parameters: ```bash docker run -ti --rm -v /datasets:/datasets webodm/odx --help ``` ## Viewing Results When the process finishes, the results will be organized as follows: |-- images/ |-- DJI_0001.jpg |-- ... |-- opensfm/ |-- see mapillary/opensfm repository for more info |-- odm_meshing/ |-- odm_mesh.ply # A 3D mesh |-- odm_texturing/ |-- odm_textured_model_geo.obj # Georeferenced textured mesh |-- odm_georeferencing/ |-- odm_georeferenced_model.laz # LAZ format point cloud |-- odm_orthophoto/ |-- odm_orthophoto.tif # Orthophoto GeoTiff You can use the following free and open source software to open the files generated in ODX: * .tif (GeoTIFF): [QGIS](http://www.qgis.org/) * .laz (Compressed LAS): [CloudCompare](https://www.cloudcompare.org/) * .obj (Wavefront OBJ), .ply (Stanford Triangle Format): [MeshLab](http://www.meshlab.net/) **Note!** Opening the .tif files generated by ODX in programs such as Photoshop or GIMP might not work (they are GeoTIFFs, not plain TIFFs). Use [QGIS](http://www.qgis.org/) instead. ## API ODX can be made accessible from a network via [NodeODX](https://github.com/WebODM/NodeODX). ## Documentation See http://docs.webodm.org for tutorials and more guides. ## Community See https://webodm.org/community to find a community near you. ## GPU Acceleration ODX has GPU support to speed up certain computations. On Windows, this is enabled by default. With docker, to enable it, you need to use the `webodm/odx:gpu` docker image and you need to pass the `--gpus all` flag: ``` docker run -ti --rm -v c:/Users/youruser/datasets:/datasets --gpus all webodm/odx:gpu --project-path /datasets project ``` When you run ODX, if the GPU is recognized, in the first few lines of output you should see: ``` [INFO] nvidia-smi detected ``` If you have an NVIDIA card, you can test that docker is recognizing the GPU by running: ``` docker run --rm --gpus all nvidia/cuda:13.0.0-base-ubuntu24.04 nvidia-smi ``` If you see an output that looks like this: ``` Fri Jul 24 18:51:55 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 440.82 Driver Version: 440.82 CUDA Version: 10.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | ``` You're in good shape! See https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html for information on docker/NVIDIA setup. You can disable GPU acceleration by using `--no-gpu`. ### Build Docker Images If you want to rebuild your own docker image, from the `ODX` folder you can type: ```bash docker build -t myodx --no-cache . ``` ## Video Support ODX can automatically extract images from video files (.mp4, .mov, .lrv, .ts). Just place one or more video files into the `images` folder and run the program as usual. Subtitles files (.srt) with GPS information are also supported. Place .srt files in the `images` folder, making sure that the filenames match. For example, `my_video.mp4` ==> `my_video.srt` (case-sensitive). ## Developers Help improve our software! We welcome contributions from everyone, whether to add new features, improve speed, fix existing bugs or add support for more cameras. Check [contributing guidelines](https://github.com/WebODM/WebODM/blob/master/CONTRIBUTING.md). ### Setup Development Environment Docker is recommended for setting up a development environment. It's fairly easy to setup one with Linux and macOS. On Windows, I could recommend to use WSL. Clone the repository and then run from a shell: ```bash $ DATA=/path/to/datasets ./start-dev-env.sh ``` Where `/path/to/datasets` is a directory where you can place test datasets (it can also point to an empty directory if you don't have test datasets). Run configure to set up the required third party libraries: ```bash (odxdev) [user:/code] master+* ± bash configure.sh reinstall ``` If you get kicked out by the setup, or you accidentally press CTRL+C, you can re-enter by doing: ```bash docker start odxdev docker exec -ti odxdev bash su your_username ``` (change `your_username` to your username, and if that doesn't work, use "ubuntu") You can now make changes to the ODX source. When you are ready to test the changes you can simply invoke: ```bash (odxdev) [user:/code] master+* ± ./run.sh --project-path /datasets mydataset ``` ### Stop dev container ```bash docker stop odxdev ``` ### Resume dev container (change `your_username` to your username) ```bash docker start odxdev docker exec -ti odxdev bash su your_username ``` If you have questions, join the #devtalk's channel on discord: https://webodm.org/community 1. Try to keep commits clean and simple 2. Submit a pull request with detailed changes and test results 3. Have fun! ### Troubleshooting The dev environment makes use of `webodm/nodeodx` by default. You may want to run `docker pull webodm/nodeodx` before running `./start-dev-env.sh` to avoid using an old cached version. In order to make a clean build, remove `~/.odm-dev-home` and `ODX/.setupdevenv`. ## Code signing policy Free code signing on Windows provided by [SignPath.io](https://signpath.io), certificate by [SignPath Foundation](https://signpath.org/). * Approvers, committers and reviewers: https://github.com/orgs/WebODM/people This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it. ## Credits ODX makes use of other awesome open source projects to perform its tasks. Among them we'd like to highlight: - [OpenSfM](https://github.com/OpenSfM/OpenSfM) - [OpenMVS](https://github.com/cdcseacave/openMVS/) - [PDAL](https://github.com/PDAL/PDAL) - [Entwine](https://entwine.io/) - [MVS Texturing](https://github.com/nmoehrle/mvs-texturing) - [GDAL](https://gdal.org/) - [PoissonRecon](https://github.com/mkazhdan/PoissonRecon)