Skip to content

Repository files navigation

Point Cloud Tools

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.

Downloads

Download the latest release from GitHub Releases.

Available Packages

Package Description
COLMAP Structure-from-Motion and Multi-View Stereo (v4.2.0)
pycolmap Python bindings for COLMAP

Release Variants

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)

Installation

COLMAP

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 ./sparse

Linux:

# 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 ./sparse

pycolmap (Python Wheels)

Install 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")

Package Size Differences

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.

Linux CUDA Requirements

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

System Requirements

Minimum

  • 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

For CUDA builds

  • 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+)

Supported GPU Architectures

  • 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

Migration from GLOMAP

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 sparse

Validation

Use 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-pycolmap

Without --require-pycolmap, the script validates the CLI Caspar backend only.

CI / Release Workflow

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-3

What 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> --failed

Manual builds (without releasing):

# Trigger from GitHub Actions UI or:
gh workflow run build-colmap.yml
gh workflow run build-pycolmap.yml

Building from Source

See CLAUDE.md for detailed build instructions.

Quick start:

# Windows
.\scripts_windows\build.ps1 -Configuration Release

# Linux
./scripts_linux/build.sh Release

Pre-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.

License

  • 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.

Links

About

No description, website, or topics provided.

Resources

Stars

92 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages