/Meshroom

3D Reconstruction Software

Primary LanguagePythonOtherNOASSERTION

Meshroom - 3D Reconstruction Software

CII Best Practices

Meshroom is a free, open-source 3D Reconstruction Software based on the AliceVision Photogrammetric Computer Vision framework.

Learn more details about the pipeline on AliceVision website.

See results of the pipeline on sketchfab.

Continuous integration: Build status

Photogrammetry

Photogrammetry is the science of making measurements from photographs. It infers the geometry of a scene from a set of unordered photographs or videos. Photography is the projection of a 3D scene onto a 2D plane, losing depth information. The goal of photogrammetry is to reverse this process.

See the presentation of the pipeline steps.

Manual

https://meshroom-manual.readthedocs.io

Tutorials

Customization

Custom Pipelines

You can create custom pipelines in the user interface and save it as template: File > Advanced > Save As Template. You can define the MESHROOM_PIPELINE_TEMPLATES_PATH environment variable to specific folders to make these pipelines available in Meshroom. In a standard precompiled version of Meshroom, you can also directly add custom pipelines in lib/meshroom/pipelines.

Custom Nodes

You can create custom nodes in python and make them available in Meshroom using the MESHROOM_NODES_PATH environment variable. Here is an example to launch a Blender rendering from Meshroom. In a standard precompiled version of Meshroom, you can also directly add custom nodes in lib/meshroom/nodes. To be recognized by Meshroom, a custom folder with nodes should be a Python module (an __init__.py file is needed).

License

The project is released under MPLv2, see COPYING.md.

Citation

If you use this project for a publication, please cite the paper:

@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}
}

Get the project

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.

Get the source code and install runtime requirements:

git clone --recursive git://github.com/alicevision/meshroom
cd meshroom
pip install -r requirements.txt

Start Meshroom

You need to have AliceVision installation in your PATH (and LD_LIBRARY_PATH on Linux/macOS).

  • Launch the User Interface
# Windows
set PYTHONPATH=%CD% && python meshroom/ui
# Linux/macOS
PYTHONPATH=$PWD python meshroom/ui

On Ubuntu, you may have conflicts between native drivers and mesa drivers. In that case, you need to force usage of native drivers by adding them to the LD_LIBRARY_PATH: LD_LIBRARY_PATH=/usr/lib/nvidia-340 PYTHONPATH=$PWD python meshroom/ui You may need to adjust the folder /usr/lib/nvidia-340 with the correct driver version.

  • Launch a 3D reconstruction in command line
# Windows: set PYTHONPATH=%CD% &&
# Linux/macOS: PYTHONPATH=$PWD
python bin/meshroom_batch --input INPUT_IMAGES_FOLDER --output OUTPUT_FOLDER

Start Meshroom without building AliceVision

To use Meshroom (ui) without building AliceVision

  • Download a release
  • Checkout corresponding Meshroom (ui) version/tag to avoid versions incompatibilities
  • LD_LIBRARY_PATH=~/foo/Meshroom-2023.2.0/aliceVision/lib/ PATH=$PATH:~/foo/Meshroom-2023.2.0/aliceVision/bin/ PYTHONPATH=$PWD python3 meshroom/ui

Start and Debug Meshroom in an IDE

PyCharm Community is free IDE which can be used. To start and debug a project with that IDE, right-click on Meshroom/ui/__main__.py > Debug, then Edit Configuration, in Environment variables :

  • If you want to use aliceVision built by yourself add: PATH=$PATH:/foo/build/Linux-x86_64/
  • If you want to use aliceVision release add: LD_LIBRARY_PATH=/foo/Meshroom-2023.2.0/aliceVision/lib/;PATH=$PATH:/foo/Meshroom-2023.2.0/aliceVision/bin/ (Make sure that you are on the branch matching the right version)

image

FAQ

See the Meshroom wiki for more information.

Contact

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:

alicevision@googlegroups.com http://groups.google.com/group/alicevision

You can also contact the core team privately on: alicevision-team@googlegroups.com.