pycolmap
COLMAP bindings
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 pycolmapuv
uv add pycolmappoetry
poetry add pycolmapInstalling 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
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
aot-biomapsAOT_biomaps is a Python library for…
unclear · top 15,000 on PyPI
pupil-apriltagsPython bindings for the AprilTags v3 library,…
permissive · top 15,000 on PyPI
spatial_imagespatial-image provides an N-dimensional spatial…
permissive · top 15,000 on PyPI
rhino3dmrhino3dm provides Python bindings to OpenNURBS…
permissive · top 15,000 on PyPI
python-motion-planningImplements motion planning algorithms including…
copyleft · top 15,000 on PyPI
staticmapGenerates static map images with geographic…
unclear · top 15,000 on PyPI
pyrealsense2Python wrapper for Intel RealSense SDK 2.0 that…
permissive · top 15,000 on PyPI
reprojectReproject astronomical images between different…
permissive · top 15,000 on PyPI
pysplashsurfpySplashsurf provides Python bindings for…
permissive · top 15,000 on PyPI
pytorchcvProvides a collection of pretrained computer…
unclear · top 15,000 on PyPI