COLMAP - Structure-from-Motion and Multi-View Stereo
C C++ Objective-C Cuda Python CMake Other



COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface. It offers a wide range of features for reconstruction of ordered and unordered image collections. The software is licensed under the GNU General Public License. If you use this project for your research, please cite:

    author = {Sch\"{o}nberger, Johannes Lutz and Frahm, Jan-Michael},
    title = {Structure-from-Motion Revisited},
    booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},

    author = {Sch\"{o}nberger, Johannes Lutz and Zheng, Enliang and Pollefeys, Marc and Frahm, Jan-Michael},
    title = {Pixelwise View Selection for Unstructured Multi-View Stereo},
    booktitle={European Conference on Computer Vision (ECCV)},

The latest source code is available at COLMAP builds on top of existing works and when using specific algorithms within COLMAP, please also cite the original authors, as specified in the source code.


Executables and other resources can be downloaded from

Getting Started

  1. Download the pre-built binaries from or build the library manually as described in the documentation.
  2. Download one of the provided datasets at or use your own images.
  3. Watch the short introductory video at or read the tutorial in the documentation at for more details.


The documentation is available at


Please, use the COLMAP Google Group at!forum/colmap ( for questions and the GitHub issue tracker at for bug reports, feature requests/additions, etc.


The library was written by Johannes L. Schönberger ( Funding was provided by his PhD advisor Jan-Michael Frahm ( through the grants NSF No. IIS-1349074, No. CNS-1405847, and the MITRE Corp.


Contributions (bug reports, bug fixes, improvements, etc.) are very welcome and should be submitted in the form of new issues and/or pull requests on GitHub.

Please, adhere to the Google coding style guide:

by using the provided ".clang-format" file.

Document functions, methods, classes, etc. with inline documentation strings describing the API, using the following format:

// Short description.
// Longer description with a few sentences and multiple lines.
// @param parameter1            Description for parameter 1.
// @param parameter2            Description for parameter 2.
// @return                      Description of optional return value.

Add unit tests for all newly added code and make sure that algorithmic "improvements" generalize and actually improve the results of the pipeline on a variety of datasets.


The software is licensed under the GNU General Public License v3 or later. If you are interested in licensing the software for commercial purposes, without disclosing your modifications, please contact the authors.

COLMAP - Structure-from-Motion and Multi-View Stereo.
Copyright (C) 2016  Johannes L. Schoenberger <jsch at>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <>.