Pre-built COLMAP and pycolmap binaries with CUDA support for Windows and Linux.
Note: GLOMAP has been merged into COLMAP. Use colmap global_mapper for global Structure-from-Motion.
Download the latest release from GitHub Releases.
| Package | Description |
|---|---|
| COLMAP | Structure-from-Motion and Multi-View Stereo (v4.2.0) |
| pycolmap | Python bindings for COLMAP |
| Variant | Description | Use Case |
|---|---|---|
CPU |
CPU-only build | Systems without NVIDIA GPU |
CUDA-Caspar |
CUDA + Caspar GPU bundle adjustment | NVIDIA GPU (CUDA Toolkit not required) |
CUDA-cuDSS-Caspar |
CUDA + cuDSS sparse solver + Caspar | Best performance (2-5x faster sparse solving) |
CUDA-Caspar-GUI |
CUDA + Caspar + Qt GUI | Interactive reconstruction with GPU (Windows) |
CUDA-cuDSS-Caspar-GUI |
CUDA + cuDSS + Caspar + Qt GUI | Best performance with GUI (Windows) |
Windows:
# Extract the archive
Expand-Archive COLMAP-4.2.0-windows-2022-CUDA-Caspar.zip -DestinationPath C:\Tools\COLMAP
# Add to PATH (optional)
$env:PATH = "C:\Tools\COLMAP\bin;$env:PATH"
# Run COLMAP
colmap gui
colmap automatic_reconstructor --workspace_path ./project --image_path ./images
# Global SfM (previously GLOMAP)
colmap global_mapper --database_path ./database.db --image_path ./images --output_path ./sparse
# ALIKED + LightGlue (learned features)
colmap feature_extractor --database_path ./database.db --image_path ./images --FeatureExtraction.type ALIKED_N16ROT
colmap exhaustive_matcher --database_path ./database.db --FeatureMatching.type ALIKED_LIGHTGLUE
colmap mapper --database_path ./database.db --image_path ./images --output_path ./sparseLinux:
# Ubuntu 22.04 archive
unzip COLMAP-4.2.0-ubuntu-22.04-CUDA-Caspar.zip -d ~/tools/colmap
# Ubuntu 24.04 archive
# unzip COLMAP-4.2.0-ubuntu-24.04-CUDA-Caspar.zip -d ~/tools/colmap
# Add to PATH (optional)
export PATH="$HOME/tools/colmap/bin:$PATH"
# Run COLMAP
colmap gui
colmap automatic_reconstructor --workspace_path ./project --image_path ./images
# Global SfM (previously GLOMAP)
colmap global_mapper --database_path ./database.db --image_path ./images --output_path ./sparse
# ALIKED + LightGlue (learned features)
colmap feature_extractor --database_path ./database.db --image_path ./images --FeatureExtraction.type ALIKED_N16ROT
colmap exhaustive_matcher --database_path ./database.db --FeatureMatching.type ALIKED_LIGHTGLUE
colmap mapper --database_path ./database.db --image_path ./images --output_path ./sparseInstall from wheel file:
# Download the wheel for your Python version (e.g., cp312 = Python 3.12)
pip install pycolmap-4.2.0-cp312-cp312-win_amd64.whl # Windows
pip install pycolmap-4.2.0-cp312-cp312-linux_x86_64.whl # Linux
# Verify installation
python -c "import pycolmap; print(pycolmap.__version__)"Available Python versions: 3.10, 3.11, 3.12, 3.13, 3.14
Usage example:
import pycolmap
database_path = "./database.db"
image_path = "./images"
output_path = "./sparse"
# Extract features and match
pycolmap.extract_features(database_path, image_path)
pycolmap.match_exhaustive(database_path)
# Incremental SfM
maps = pycolmap.incremental_mapping(database_path, image_path, output_path)
# Or Global SfM (GLOMAP)
maps = pycolmap.global_mapping(database_path, image_path, output_path)ALIKED + LightGlue (learned features):
import pycolmap
database_path = "./database.db"
image_path = "./images"
# Extract ALIKED features
pycolmap.extract_features(database_path, image_path,
options=pycolmap.FeatureExtractionOptions(
type=pycolmap.FeatureExtractorType.ALIKED_N16ROT))
# Match with LightGlue
pycolmap.match_exhaustive(database_path)
# Reconstruct
maps = pycolmap.incremental_mapping(database_path, image_path, "./sparse")Linux packages are significantly smaller than Windows packages:
| Package | Linux | Windows | Reason |
|---|---|---|---|
| COLMAP CUDA | ~45 MB | ~1.3 GB | CUDA runtime bundling |
| pycolmap | ~26 MB | ~1 GB | CUDA runtime bundling |
Why?
- Linux: Dynamically links to system CUDA libraries. Requires CUDA Toolkit installed separately for GPU features.
- Windows: Bundles all CUDA runtime DLLs for self-contained operation. No separate CUDA installation needed.
For GPU acceleration on Linux, install the CUDA Toolkit:
# Ubuntu/Debian
sudo apt-get install nvidia-cuda-toolkit
# Or download from NVIDIA
# https://developer.nvidia.com/cuda-downloads- OS: Windows 10/11 x64, Ubuntu 22.04 x64, or Ubuntu 24.04 x64
- RAM: 8 GB (16 GB+ recommended for large datasets)
- Storage: 2 GB for COLMAP
- GPU: NVIDIA GPU with Compute Capability 7.5+ (RTX 20 series or newer)
- Driver: NVIDIA driver 570+ (CUDA 12.8)
- CUDA: Not required on Windows (bundled). Required on Linux (CUDA 12.0+)
- Turing (RTX 20 series, GTX 16 series) - SM 7.5
- Ampere (RTX 30 series, A100) - SM 8.0, 8.6
- Ada Lovelace (RTX 40 series) - SM 8.9
- Hopper (H100) - SM 9.0
- Blackwell (RTX 50 series) - SM 12.0
If you were previously using the standalone GLOMAP binary, simply replace:
# Old (standalone GLOMAP)
glomap mapper --database_path db.db --image_path images --output_path sparse
# New (COLMAP 4.0+)
colmap global_mapper --database_path db.db --image_path images --output_path sparseUse the deterministic Caspar bundle-adjustment sample to check a built COLMAP binary and, optionally, a rebuilt pycolmap wheel:
python scripts/validate_caspar_sample.py --colmap /path/to/colmap --require-pycolmapWithout --require-pycolmap, the script validates the CLI Caspar backend only.
Releases are fully automated via GitHub Actions:
# Create and push a tag — this builds everything and creates a GitHub release
git tag v4.2.0-3
git push origin v4.2.0-3What happens: release.yml triggers → builds 11 COLMAP variants + 55 pycolmap wheels → packages → publishes GitHub release. Build steps auto-retry up to 3 times on transient failures (e.g., vcpkg HTTP 502).
If a job still fails (rare), retry only the failed jobs without restarting everything:
gh run rerun <run-id> --failedManual builds (without releasing):
# Trigger from GitHub Actions UI or:
gh workflow run build-colmap.yml
gh workflow run build-pycolmap.ymlSee CLAUDE.md for detailed build instructions.
Quick start:
# Windows
.\scripts_windows\build.ps1 -Configuration Release
# Linux
./scripts_linux/build.sh ReleasePre-fetching learned-feature models: builds with download support fetch the ALIKED/LightGlue ONNX models on first use. From a repo clone, you can pre-fetch all default learned-feature models (ALIKED extractors, ALIKED/SIFT LightGlue matchers, brute-force matcher) into the cache — e.g. for offline machines — with .\scripts_windows\download_models.ps1 or ./scripts_linux/download_models.sh.
- This build system (the scripts, CMake, CI workflows, and configuration in this repository) is released into the public domain under The Unlicense — see LICENSE. Use it however you like; no attribution required.
- COLMAP and bundled dependencies keep their own licenses. The public-domain dedication covers only this build orchestration, not the software it compiles. Binaries produced here include COLMAP (BSD-3-Clause; see
third_party/colmap/COPYING.txt), Ceres Solver, and vcpkg-managed libraries, each under its respective terms.