Reading and display settings

Appearance

System follows your operating system and keeps following it, even if you change it later. The header's sun, moon and monitor cycle the same three options.

Text size (%) 100%

Default. Scales every text size on the site, equations and tables included.

Reading width 70ch

How much text runs across one line of prose. Narrower is easier to track; wider fits more on screen.

Line spacing 1.6

The leading on body text. Taller leading helps a tired eye stay on the line.

Density

Padding and gaps around controls, cards, and tables — how much breathing room the layout leaves itself.

Motion

System follows your operating system. Reduced removes every transition on this site. Full keeps them on unless your system asks for less.

Parts build on each other, but each one stands alone. If you already know homogeneous coordinates, start at Part 4; if you are here for a specific estimator, jump straight to it. The structure-from-motion parts assemble everything into a working reconstruction pipeline, and lean on the nonlinear optimization guide for the solver underneath.

The parts

Part 0
Projective geometry & homogeneous coordinates

The projective plane, homogeneous coordinates, the congruence symbol, and the point/line duality every later part depends on.

Part 1
Conics & the absolute conic

A conic as the quadratic form x̃ᵀCx̃=0, how a projective map transforms it, and the absolute conic whose image ω=K⁻ᵀK⁻¹ is exactly what calibration recovers.

Part 2
The projective transformation hierarchy

Euclidean ⊂ similarity ⊂ affine ⊂ projective: the degrees of freedom each group adds, the quantities each destroys, and cross-ratio as the invariant that survives.

Part 3
Three-dimensional projective space & Plücker lines

Points and planes in P³ with their dual incidence rule, the plane at infinity, and Plücker coordinates (d, m) for lines together with the d·m = 0 constraint.

Part 4
The pinhole camera

Perspective projection, focal length and field of view, coordinate-convention traps, lens distortion, and the general projective camera P.

Part 5
Camera calibration

How you actually get K: Zhang's method, checkerboard capture, the image of the absolute conic, skew, and what a good reprojection error looks like.

Part 6
Epipolar geometry

The epipolar constraint, essential and fundamental matrices, and why matching points between two images collapses to a 1D search along a line.

Part 7
Robust estimation: RANSAC

Outlier rejection with RANSAC and its descendants (MSAC, LO-RANSAC, MAGSAC), minimal samples, the iteration-count formula, and Sampson vs. algebraic error.

Part 8
Homography

The planar homography, the pure-rotation special case, DLT estimation, and why it silently breaks once points leave the plane.

Part 9
Stereo rectification & disparity

Rectifying an image pair so epipolar lines become horizontal scanlines, block matching and SGBM, disparity maps, and Z = fB/d.

Part 10
Triangulation & recovering pose

Recovering relative camera pose from the essential matrix, and triangulating 3D points from two known views, linear vs. nonlinear.

Part 11
PnP: camera resection

Recovering absolute camera pose from 2D-3D correspondences: DLT resection, P3P, EPnP, and PnP+RANSAC, the way every new camera enters a reconstruction.

Part 12
Three views and the trifocal tensor

Why a third camera view is fully predictable from the first two, and the trifocal tensor that captures three-view geometry directly.

Part 13
The five-point algorithm & minimal relative-pose solvers

Why a calibrated pair needs only five correspondences: the essential matrix's equal-singular-value and rank-2 constraints, Nister's solver, and how it beats the eight-point fit on difficult scenes.

Part 14
Affine factorization: the Tomasi-Kanade method

Under weak perspective the tracked features form a rank-3 measurement matrix; one SVD factors it into camera motion and 3D shape, with the affine gauge fixed by rotation orthonormality.

Part 15
Bundle adjustment & structure from motion

The reprojection-error cost over every camera and every point, why it connects straight back to Gauss-Newton and Levenberg-Marquardt, and a toy SfM demo you run yourself.

Part 16
SfM pipelines

Incremental structure-from-motion (COLMAP-style) versus global SfM, self-calibration, and the stratified projective to affine to metric upgrade.

Part 17
Self-calibration & Kruppa's equations

Recovering the image of the absolute conic from images alone: Kruppa's equations, the absolute dual quadric, and the linear solve that upgrades a projective reconstruction to a metric one.

Part 18
Degenerate configurations

Planar scenes, pure rotation, critical surfaces and near-degenerate baselines: the geometric coincidences that break the estimators, and how pipelines detect them.

Part 19
Beyond multi-view geometry

Where the field goes next: SLAM, dense multi-view stereo, and the learned successors (NeRF, 3D Gaussian Splatting, DUSt3R/VGGT), framed as the same geometry in new representations.

Start at Part 0 →