pycolmap
COLMAP bindings
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python ≥3.10.
- GPU acceleration (CUDA, CGAL) and dense reconstruction (patch_match_stereo) require building from source with COLMAP compiled with those features.
- Pre-built wheels cover Python 3.10–3.14 on Linux, macOS (ARM64), and Windows, reducing friction for standard installations.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause is permissive and poses no significant restriction on use, modification, or redistribution in most contexts.
last release 2026-07-17 (28 days) · last repo commit 2026-08-14 · 12,477 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 332,907 downloads/mo, #7,503 on PyPI
Alternatives
Verify before relying
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)- 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
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 on it.
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
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.
Requires Python ≥3.10. GPU acceleration (CUDA, CGAL) and dense reconstruction (patch_match_stereo) require building from source with COLMAP compiled with those features.
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)
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 packagenumpy |
| 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 |
| Classifiers | License :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3 :: Only |
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
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “structure from motion python”
- pycolmapPyCOLMAP exposes Python bindings to COLMAP's Structure-from-Motion…
- mplibMPlib provides motion planning algorithms for robot manipulation,…
- pyobjc-framework-CoreMotionProvides Python bindings to macOS's CoreMotion framework, enabling…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also aot-biomaps · pupil-apriltags · spatial_image · rhino3dm · python-motion-planning · staticmap · pyrealsense2 · reproject · pysplashsurf · pytorchcv