skillfed

pycolmap

COLMAP bindings

pycolmap v4.1.1 332.9K downloads/30d#7,503 on PyPI12,477
Permissive license BSD-3-Clause Active released

What it is and what it does

PyCOLMAP is a Python wrapper around COLMAP, a mature Structure-from-Motion and Multi-View Stereo framework. It lets you reconstruct 3D scenes from collections of 2D images by automating the pipeline of feature detection, matching, camera calibration, and point triangulation. The package exposes both high-level reconstruction workflows and lower-level components—RANSAC-based pose estimators, geometric verification, and reconstruction object manipulation—so you can either run a complete pipeline or integrate individual steps into a custom workflow.

The library depends only on NumPy and ships with pre-built wheels for modern Python versions on Linux, macOS, and Windows. Dense reconstruction and GPU acceleration require compiling from source with COLMAP built against CUDA or CGAL. The API mirrors COLMAP's C++ design, so operations like projecting 3D points into images, aligning reconstructions, and exporting to PLY are straightforward once you understand the object model.

Use it for:

  • Reconstruct 3D point clouds and camera poses from a folder of unordered images for photogrammetry or visual SLAM applications.
  • Extract and match SIFT features across image pairs and verify geometric consistency for structure-from-motion pipelines.
  • Estimate absolute camera pose from 2D-3D correspondences using RANSAC-based pose estimation for localization tasks.
  • Load and manipulate existing COLMAP reconstructions—query camera parameters, 3D points, and image metadata; export to text or PLY.
  • Align and transform multiple 3D reconstructions via reprojections to merge or register separate captures.
  • Run dense multi-view stereo reconstruction to generate depth maps and fused point clouds from sparse reconstructions.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

PyCOLMAP exposes Python bindings to COLMAP's Structure-from-Motion and Multi-View Stereo pipeline, enabling feature extraction, matching, incremental reconstruction, and dense reconstruction from image collections.

Yes. PyCOLMAP is actively maintained, has no known vulnerabilities, and offers a mature, well-tested interface to a production-grade SfM/MVS engine. Install it if you need to reconstruct 3D scenes from images or integrate structure-from-motion into a Python workflow. Pre-built wheels make installation straightforward for standard use; reserve source builds only if you need GPU acceleration or advanced CGAL features.

Install

pycolmap on PyPI

pip

pip install pycolmap

uv

uv add pycolmap

poetry

poetry add pycolmap

Installing pycolmap

Before you install

Pre-built wheels cover Python 3.10–3.14 on Linux, macOS (ARM64), and Windows, reducing friction for standard installations. Active maintenance with a recent release (28 days ago) and 12477 repository stars. Medium friction reflects compiled C++ bindings; GPU acceleration requires building from source.

License in practice

BSD-3-Clause is permissive and poses no significant restriction on use, modification, or redistribution in most contexts.

Quickstart

pip install pycolmap
import pycolmap
import pathlib

output_path = pathlib.Path('reconstruction')
image_dir = pathlib.Path('images')
output_path.mkdir()
database_path = output_path / 'database.db'

pycolmap.extract_features(database_path, image_dir)
pycolmap.match_exhaustive(database_path)
maps = pycolmap.incremental_mapping(database_path, image_dir, output_path)

Requires Python ≥3.10. GPU acceleration (CUDA, CGAL) and dense reconstruction (patch_match_stereo) require building from source with COLMAP compiled with those features.

Verify before relying

  • Whether pre-built wheels include CUDA support or if GPU acceleration is only available via source builds
  • Performance characteristics and scalability limits for large image collections
  • Availability and quality of documentation beyond the README

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies 1 — numpy
Maintenance actively maintained — 28 days since the last release
Last repo commit
First released
Downloads 332,907/month — #7,503 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pycolmap-4.1.1-cp310-cp310-macosx_14_0_arm64.whl; pycolmap-4.1.1-cp310-cp310-manylinux_2_28_x86_64.whl; pycolmap-4.1.1-cp310-cp310-win_amd64.whl; pycolmap-4.1.1-cp311-cp311-macosx_14_0_arm64.whl; pycolmap-4.1.1-cp311-cp311-manylinux_2_28_x86_64.whl; pycolmap-4.1.1-cp311-cp311-win_amd64.whl; pycolmap-4.1.1-cp312-cp312-macosx_14_0_arm64.whl; pycolmap-4.1.1-cp312-cp312-manylinux_2_28_x86_64.whl; pycolmap-4.1.1-cp312-cp312-win_amd64.whl; pycolmap-4.1.1-cp313-cp313-macosx_14_0_arm64.whl; pycolmap-4.1.1-cp313-cp313-manylinux_2_28_x86_64.whl; pycolmap-4.1.1-cp313-cp313-win_amd64.whl; pycolmap-4.1.1-cp314-cp314-macosx_14_0_arm64.whl; pycolmap-4.1.1-cp314-cp314-manylinux_2_28_x86_64.whl; pycolmap-4.1.1-cp314-cp314-win_amd64.whl

License :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3 :: Only

Tags

structure from motion pythonsfm reconstruction librarymulti-view stereo mvscolmap python bindings3d reconstruction from imagesfeature extraction matchingcamera pose estimation
3d-reconstructioncomputer-visionphotogrammetry

More Scientific/Engineering packages