gitmyhub

Meshroom

Python ★ 13k updated 1d ago

Node-based Visual Programming Toolbox

Turn photos of an object or location into a 3D model on your desktop. Load images from different angles, and Meshroom uses photogrammetry to reconstruct geometry as a textured mesh you can export.

QMLPythonC++AliceVisionCUDAsetup: hardcomplexity 4/5

Meshroom is an open-source desktop application for turning collections of photographs into 3D models. You take many photos of an object or location from different angles, load them into Meshroom, and the software figures out where each camera was positioned and reconstructs the geometry of the scene as a three-dimensional mesh. This process is called photogrammetry.

The interface uses a node-based visual layout, sometimes called a visual programming or pipeline approach. Instead of a single button that does everything, you see a graph of connected boxes where each box represents one step in the process. You can see exactly what is happening at each stage, inspect intermediate results, swap out individual steps, and resume a partially completed job without restarting from scratch. When you change a setting on one node, only the nodes that depend on it are marked for recomputation. Cached results from unchanged steps are reused.

The main 3D reconstruction capability comes from a bundled plugin called AliceVision, which was developed through collaboration between academic researchers and industry. Beyond basic reconstruction from photos, AliceVision includes pipelines for camera motion tracking, combining multiple exposures into HDR images, stitching panoramas including fisheye and motorized camera rigs, and photometric stereo which reconstructs fine surface details by varying the lighting direction.

Several additional plugins are available separately. One uses AI models to identify and isolate objects in images using text descriptions. Another estimates depth from a single photo using machine learning. A third creates a type of 3D representation called Gaussian splatting, which is a newer method for rendering scenes from novel viewpoints. There is also a geolocation plugin that pulls in map and elevation data to place a reconstruction in real-world coordinates.

Meshroom can run its pipeline locally on one machine or distribute the work across a render farm with multiple machines. Pre-compiled binaries are available for download, and the project is released under the Mozilla Public License version 2.

Where it fits