Vision & Geometry
Three long interactive guides built around running examples you can drag: the geometry that turns images into 3D structure, the nonlinear least-squares machinery that makes it converge, and the Lie groups and Lie algebras that let rotations and poses be estimated at all.
Multi-View Geometry, Interactively
The projective plane, homogeneous coordinates, the congruence symbol, and the point/line duality every later part depends on.
The projective plane, homogeneous coordinates, the congruence symbol, and the point/line duality every later part depends on.
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.
Euclidean ⊂ similarity ⊂ affine ⊂ projective: the degrees of freedom each group adds, the quantities each destroys, and cross-ratio as the invariant that survives.
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.
Perspective projection, focal length and field of view, coordinate-convention traps, lens distortion, and the general projective camera P.
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.
The epipolar constraint, essential and fundamental matrices, and why matching points between two images collapses to a 1D search along a line.
Outlier rejection with RANSAC and its descendants (MSAC, LO-RANSAC, MAGSAC), minimal samples, the iteration-count formula, and Sampson vs. algebraic error.
The planar homography, the pure-rotation special case, DLT estimation, and why it silently breaks once points leave the plane.
Rectifying an image pair so epipolar lines become horizontal scanlines, block matching and SGBM, disparity maps, and Z = fB/d.
Recovering relative camera pose from the essential matrix, and triangulating 3D points from two known views, linear vs. nonlinear.
Recovering absolute camera pose from 2D-3D correspondences: DLT resection, P3P, EPnP, and PnP+RANSAC, the way every new camera enters a reconstruction.
Why a third camera view is fully predictable from the first two, and the trifocal tensor that captures three-view geometry directly.
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.
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.
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.
Incremental structure-from-motion (COLMAP-style) versus global SfM, self-calibration, and the stratified projective to affine to metric upgrade.
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.
Planar scenes, pure rotation, critical surfaces and near-degenerate baselines: the geometric coincidences that break the estimators, and how pipelines detect them.
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.
Nonlinear Optimization, Interactively
Gradient descent, Newton's method, Gauss-Newton and Levenberg-Marquardt, built around one running example: a robot figuring out where it is.
Gradient descent, Newton's method, Gauss-Newton and Levenberg-Marquardt, built around one running example: a robot figuring out where it is.
Extending the four methods to a robot's full 2D pose (x, y, heading) using range-and-bearing observations to landmarks.
Landmarks are no longer known. The robot must jointly estimate its own pose and every landmark's position from observations alone.
Chaining many robot poses with noisy odometry, watching dead-reckoning drift accumulate, and how one loop closure corrects the whole trajectory.
Moving from a 2D heading to full 3D orientation, where rotations don't commute and can't simply be added.
Orthogonal matrices, skew-symmetric cross products, Rodrigues' formula, the matrix exponential, and the tangent-space perturbation that drives Gauss-Newton on a rotation.
Lie Groups & Lie Algebras, Interactively
Average two compass headings, add two sets of Euler angles, sum two rotation matrices - and watch each one fail in a way that points at the same missing idea.
Average two compass headings, add two sets of Euler angles, sum two rotation matrices - and watch each one fail in a way that points at the same missing idea.
The four group axioms tested live on SO(2), SO(3), SE(3) and friends, and the smooth, locally flat surface that turns a group into a Lie group.
The circle, its tangent line, exp as wrapping and log as unwrapping, and the plus and minus operators every later part generalises.
Differentiate R(t)R(t)ᵀ = I and a skew-symmetric matrix falls out: hat and vee, the three generators, and the Lie bracket as the cost of reordering two rotations.
Rodrigues' formula two ways, the Log map and its two numerical traps, and the ball of radius π that holds every rotation exactly once.
Drive a gimbal into lock, watch a quaternion take 720° to come home, and compare every way of writing a rotation down.
Homogeneous matrices, twists, and why the exponential of a constant velocity is a screw - a helix you can shape with two sliders.
One perturbation, applied on the left or on the right of a pose, and the matrix that converts between them - plus what each library means by a 'delta'.
Right and left Jacobians, Baker-Campbell-Hausdorff to first order, and a table of elementary derivatives you can check numerically with one click.
Gauss-Newton with a retraction: align two point clouds on SE(3), average noisy rotations, and close the loop on a small SE(2) pose graph.
Gaussians that live in the tangent space, the banana-shaped cloud of a robot driving with a shaky heading, and covariance propagated through composition.
Geodesics and slerp, integrating an angular velocity without drifting off the group, and the preintegrated gyro measurement that makes visual-inertial odometry fast.
Hat, vee, Exp, Log, adjoint and both Jacobians for SO(2), SO(3), SE(2) and SE(3) on one page, with the conventions used by the major libraries.
Guide Kit Demo
A minimal page proving the new subject-neutral guide kit renders: guide.css styling, a Guide.drawBars() canvas demo driven by a slider, and a GuideMath helper call.