The granddaddy that turns vacation photos into 3D point clouds
A foundational C toolkit that reconstructs camera positions and sparse 3D geometry from unordered image collections, one incremental bundle adjustment at a time.

What it does
Bundler ingests a pile of JPEGs, extracts SIFT features, matches them across image pairs, then incrementally reconstructs where each camera was and what sparse 3D structure it saw. The output is a bundle file with camera intrinsics, extrinsics, and colored 3D points—plus PLY files you can inspect in scanalyze. It also ships with Bundle2PMVS to feed denser multi-view stereo pipelines.
The interesting bit
This is the original Photo Tourism system from Snavely, Seitz, and Szeliski’s 2006 SIGGRAPH paper—effectively the ancestor of modern COLMAP-style pipelines. The “bundle” in Bundler refers to bundle adjustment, and it uses a modified Sparse Bundle Adjustment engine (Lourakis & Argyros) with an optional Ceres solver swap for larger problems. The incremental reconstruction—adding a few images at a time, optimizing, repeat—is still the textbook approach.
Key highlights
- Handles unordered image collections (read: random Flickr dumps) without prior camera knowledge
- Estimates focal length from EXIF via
jhead, then refines it per-camera during optimization - Includes radial distortion correction (k1, k2) and a utility to undistort images post-hoc
- Python wrapper (
bundler.py) automates the full pipeline: focal extraction → SIFT → matching → reconstruction - Optional Ceres integration for faster bundle adjustment on large datasets (uncomment
USE_CERES=truein Makefile)
Caveats
- Requires external SIFT binary from David Lowe’s site, plus
jhead, ImageMagick, and PIL—it’s not a self-contained binary - Primarily tested on Linux; Windows support is Cygwin or an old VS2005 solution file
- The README warns that feature matching “can take a while,” which is 2006-speak for “go make coffee”
Verdict
Grab this if you’re teaching SfM fundamentals, reproducing classic results, or need a lightweight, hackable baseline. Skip it if you want a modern, GPU-accelerated, batteries-included pipeline—COLMAP exists now.