Meshroom is an open-source, node-based visual programming framework—a flexible toolbox for creating, managing, and executing complex data processing pipelines.
Meshroom uses a nodal system where each node represents a specific operation, and output attributes can seamlessly feed into subsequent steps. When a node’s attribute is modified, only the affected downstream nodes are invalidated, while cached intermediate results are reused to minimize unnecessary computation.
Meshroom supports both local and distributed execution, enabling efficient parallel processing on render farms. It also includes interactive widgets for visualizing images and 3D data. Official releases come with built-in plugins for computer vision and machine learning tasks.
You can download pre-compiled binaries for the latest release.
If you want to build it yourself, see INSTALL.md to setup the project and pre-requisites.
- Graph, Nodes and Attributes Nodes are the fundamental building blocks, each performing a specific task. A graph is a collection of interconnected nodes, defining the sequence of operations. The nodes are connected through edges that represent the flow of data between them. Each node has a set of attributes or parameters that control its behavior. Adjusting a parameter triggers the invalidation of all connected nodes.
- Templates Each plugin provides a set of pipeline templates. You can customize them and save your own templates.
- Local / Renderfarm You can perform computations either locally or by using a render farm for distributed processing. As the computations proceed, you can monitor their progress and review the logs. It also keeps track of resource consumption to monitor the efficiency and identify the bottlenecks. You can use both local and renderfarm computation at the same time, as Meshroom keeps track of locked nodes while computing externally.
- Custom Plugins You can create your custom plugin, in pure Python or through command lines to execute external software.
The Meshroom UI is divided into several key areas:
- Graph Editor: The central area where nodes are placed and connected to form a processing pipeline.
- Node Editor: It contains multiple tabs with:
- Attributes: Displays the attributes and parameters of the selected node.
- Log: Displays execution logs and error messages.
- Statistics: Displays resource consumption
- Status: Display some technical information on the node (workstation, start/end time, etc.)
- Documentation: Node Documentation.
- Notes: Change label or put some notes on the node to know why it’s used in this graph.
- 2D & 3D Viewer: Visualizes the output of certain nodes.
- Image Gallery: Visualize the list of input files.
AliceVision provides state-of-the-art 3D computer vision and machine learning algorithms that can be tested, analyzed, and reused. The project results from the collaboration between academia and industry to provide cutting-edge algorithms with the robustness and quality required for production usage. The AliceVision plugin provides pipelines for:
- 3D Reconstruction from multi-view images, see the presentation of the pipeline steps and some results on sketchfab
- Camera Tracking
- HDR fusion of multi-bracketed photographies
- Panorama stitching supports fisheye optics, but also the generation of high-resolution images using motorized head systems.
- Photometric Stereo for geometric reconstruction from a single view with multiple lightings
- Multi-View Photometric Stereo to combine photogrammetry and photometric stereo
MrSegmentation A set of nodes for image segmentation from text prompts.
MrDepthEstimation A set of nodes for depth estimation from an image sequence.
See the MeshroomHub for more plugins.
Meshroom-Research focuses on evaluating and benchmarking Machine Learning nodes for 3D Computer Vision.
An exploratory plugin providing MicMac pipelines. It does not yet support the full invalidation system of Meshroom, but is fully usable to adjust the pipeline and process it. MicMac is a free open-source photogrammetric software for 3D reconstruction under development at the National Institute of Geographic and Forestry Information (French Mapping Agency, IGN) and the National School of Geographic Sciences (ENSG) within the LASTIG lab.
The Meshroom Geolocation plugin consists of nodes that utilize the GPS data to download 2D and 3D maps. It could extract the embedded GPS data from photographs to accurately place and contextualize your 3D scans within their global geographical environment. You can retrieve a variety of maps: a 2D map (worldwide – using Open Street Map), an elevation model in 3D (worldwide – using NASA datasets), and a highly detailed 3D model from Lidar scans when available (France-only – using France’s open data IGN Lidar datasets).
The project is released under MPLv2, see COPYING.md.
@inproceedings{alicevision2021,
title={{A}liceVision {M}eshroom: An open-source {3D} reconstruction pipeline},
author={Carsten Griwodz and Simone Gasparini and Lilian Calvet and Pierre Gurdjos and Fabien Castan and Benoit Maujean and Gregoire De Lillo and Yann Lanthony},
booktitle={Proceedings of the 12th ACM Multimedia Systems Conference - {MMSys '21}},
doi = {10.1145/3458305.3478443},
publisher = {ACM Press},
year = {2021}
}
We welcome contributions! Check out our Contribution Guidelines to get started. Whether you're a developer, designer, or documentation enthusiast, there's a place for you in the Meshroom community.
Use the public mailing-list to ask questions or request features. It is also a good place for informal discussions like sharing results, interesting related technologies or publications: forum@alicevision.org
You can also contact the core team privately on: team@alicevision.org.