Multi-View Environment

Multi-View Environment

UMVE Screenshot
UMVE Screenshot

The Multi-View Environment, MVE, is an implementation of a complete end-to-end pipeline for image-based geometry reconstruction. It features Structure-from-Motion, Multi-View Stereo and Surface Reconstruction. The individual steps of the pipeline are available as command line applications, but most features are also available from our user interface UMVE. The project is developed at TU-Darmstadt by Michael Goesele's research group.

MVE is written in C++ and comes with a set of efficient, cross-platform and easy-to-use libraries. The code runs on Linux, MacOS X and Windows. MVE has minimal dependencies on external libraries; see the diagram. It depends on libpng, libjpeg and libtiff. A front-end QT-based application called UMVE — the Ultimate MVE — is built on top of these libraries, for easy management of the multi-view datasets.

If you use our system and want to mention MVE in your publications, please cite the following paper:

MVE – A Multi-View Reconstruction Environment [Paper, 10MB]
Simon Fuhrmann, Fabian Langguth and Michael Goesele
In: Proceedings of the Eurographics Workshop on Graphics and Cultural Heritage, Darmstadt, Germany, 2014.


On a high level, MVE features:

  • An incremental Structure-from-Motion (SfM) algorithm [FLG14].
  • A Multi-View Stereo implementation based on [GSC+07].
  • Tools to export SfM points or dense MVS point clouds.
  • A surface reconstruction algorithm based on [FG14].

The MVE libraries support the following features:

  • A view container for per-view data (camera parameters, images, arbitrary data).
  • A scene management which aggregates multiple views.
  • Image loaders, writers and various image processing tools.
  • Mesh loaders, writers and various mesh processing tools.
  • Various cross-platform routines (argument parser, timer, string processing, tokenizer, endian conversion, threads and mutex, smart pointer, file system abstraction, atomic operations, sleep, …)
  • Some mathematical data types and routines (vector, matrix, quaternion, geometric predicates, …)
  • A simple OpenGL abstraction for rapid OpenGL visualization.
  • Python bindings for MVE are available here:

Structure from Motion

SfM reconstruction is part of MVE (using the sfmrecon application), but can also be performed by external aplications. The bundler output can then be imported to an MVE scene using the makescene command line application, which is included in the distribution.

  • VisualSFM, a GPU-based bundler by Changchang Wu.
  • OpenMVG with incremental and global SfM approaches by Pierre Moulon.
  • Bundler by Noah Snavely.

Multi-View Stereo

MVE includes an implementation of Michael Goesele's Multi-View Stereo algorithm that computes dense, highly accurate depth maps even from uncontrolled image collections.

  • Multi-View Stereo for Community Photo Collections [PDF, 9MB] [Website]
    Michael Goesele, Noah Snavely, Brian Curless, Hugues Hoppe and Steven M. Seitz
    In: Proceedings of ICCV 2007 (oral presentation), Rio de Janeiro, Brasil, October 14-20, 2007.

Surface Reconstruction

Surface Reconstruction

MVE includes the Floating Scale Surface Reconstruction code to create a global surface mesh from dense MVS. The following project websites might be interesting:

  • Floating Scale Surface Reconstruction [Paper]
    Simon Fuhrmann and Michael Goesele
    In: ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH 2014), Vancouver, Canada, 2014.
  • Surface Reconstruction from Multi-Resolution Sample Points [Paper] [Code]
    Patrick Mücke, Ronny Klowsky and Michael Goesele
    In: Proceedings of Vision, Modeling, and Visualization (VMV 2011), Berlin, Germany, October 4-6, 2011.

Surface Texturing

A high-quality texture from the input images for the final mesh model can be generated using the following approach. Please find the code on their website.

  • Let There Be Color! – Large-Scale Texturing of 3D Reconstructions [Website with code]
    Michael Waechter, Nils Moehrle and Michael Goesele
    In: Proceedings of European Conference on Computer Vision 2014, Zurich, Switzerland, 2014.


For an up-to-date version of the code please clone the repository at GitHub. Or download the current zip archive here [<1MB].

Windows binaries (64 bit only): [12MB]
Build instructions for Windows:


The MVE user's guide can be found here.


These example datasets can be used in conjunction with the Multi-View Environment:

  • Kermit Dataset (11 images, 9 registered) [Download 6MB]
  • Achteck-Turm Dataset (36 images) [Download 83MB]
  • Der Hass (79 images with bundle) [Download 62MB]
    This download does not contain an MVE scene, just images and a VisualSfM bundle file. Create an MVE scene using the makescene tool: makescene der_hass-20140923/bundle.nvm OUTPUT_SCENE_DIR
  • Citywall (564 images with bundle) [Download 376MB]
    This download does not contain an MVE scene, just images and a VisualSfM bundle file. Create an MVE scene using the makescene tool: makescene citywall-20140923/bundle.nvm OUTPUT_SCENE_DIR
  • Reader Dataset (539 images) [Download 1.3GB]


If you have bug reports, questions or suggestions, please create an issue on Github.