3D Reconstruction Software
Find a file
Fabien Castan ff9a0370ac Fix node states after loading
The states of nodes were not valid the first time they were loaded, but
became valid after any topological update (such as creating or removing
a node or edge).
The reason was that the loading of the graph was done before setting the
project path (and thus the cacheDir). So the status files of the nodes
were not available during the graph creation and were not updated at the
end of the load.
Now we set the filepath/cache first, so everything is right from the
start.
2025-04-14 22:45:47 +02:00
.github [ci] Codecov: enable support for test run reports 2025-01-28 16:27:47 +01:00
bin New plugins load 2025-04-13 13:09:24 +02:00
docker [docker] Fix link to download libassimpsceneimport.so in Docker images 2024-02-01 16:19:17 +01:00
docs [docs] Update copyrights 2025-01-06 16:05:33 +01:00
meshroom Fix node states after loading 2025-04-14 22:45:47 +02:00
tests Adapt unittests to deal with graph saving 2025-04-13 19:02:26 +02:00
.git-blame-ignore-revs Update git-blame-ignore-revs 2024-12-09 10:27:32 +01:00
.gitignore [PanoramaViewer] temporary change in gitignore 2021-09-14 18:06:50 +02:00
.readthedocs.yaml [docs] commenting custom extensions 2022-10-21 14:10:00 +02:00
CHANGES.md [doc] CHANGES: Add release note for version 2023.3.0 2023-12-07 11:38:26 +01:00
CMakeLists.txt [build] CMakeLists: Remove QmlAlembic option 2023-07-25 12:28:25 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-08-08 16:36:47 +02:00
CONTRIBUTING.md [doc] Minor fix to CONTRIBUTING 2019-08-16 17:17:49 +02:00
COPYING.md [qt6] Replace all PySide2/shiboken2 imports by PySide6/shiboken6 2024-11-07 18:08:54 +01:00
dev_requirements.txt [install] use an older version of cx_freeze 2020-10-09 00:27:06 +02:00
INSTALL.md [doc] INSTALL.md: Update links for assimpsceneimport libraries 2024-02-01 17:17:00 +01:00
LICENSE-MPL2.md Add License file 2018-04-23 21:42:41 +02:00
README.md Merge pull request #2551 from alicevision/ci/reworkWindowsCI 2024-09-27 14:49:00 +02:00
RELEASING.md [doc] RELEASING: Update release note command line and add template update 2023-12-07 11:30:50 +01:00
requirements.txt [requirements] Update requirement for PySide to PySide 6.6.3.1 2024-11-07 18:08:53 +01:00
setup.py [qt6] Update setup script with the correct version of PySide 2024-11-07 18:09:09 +01:00
setupInitScriptUnix.py Linting: Clean-up files 2024-09-12 10:50:13 +02:00
start.bat [launch] 2022-04-27 14:26:40 +02:00
start.sh [nodes] Change some input/output names 2024-08-26 15:41:46 +02:00

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.