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.

A robot's heading, a camera's orientation and a drone's pose are not vectors: you cannot add two of them, average them with a mean, or step along a gradient by plain addition. Lie theory is the small, precise toolkit that fixes all three at once. You compose in the group, differentiate in the tangent space, and move between the two with Exp and Log. The four acts build that toolkit in order. Act I shows why it is needed and what a group is. Act II builds the algebra of rotations. Act III extends it to full rigid motion. Act IV does calculus with it: Jacobians, optimization, uncertainty and integration.

The prerequisites are matrix multiplication and a derivative. Linear Algebra, Part 20 and Calculus on manifolds are good warm-ups. For a single-page shortcut to just the parts the optimizer needs, the SO(3) primer covers it. Everything here is the machinery behind rotation estimation in Nonlinear Optimization and bundle adjustment in Multi-View Geometry. Keep the formula sheet open as you read.

The parts

Part 1
Why rotations don't add

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.

Part 2
Groups, matrix groups and manifolds

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.

Part 3
SO(2): the whole story in one dimension

The circle, its tangent line, exp as wrapping and log as unwrapping, and the plus and minus operators every later part generalises.

Part 4
The tangent space and so(3)

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.

Part 5
Exp and Log on SO(3)

Rodrigues' formula two ways, the Log map and its two numerical traps, and the ball of radius π that holds every rotation exactly once.

Part 6
Euler angles, axis-angle and quaternions

Drive a gimbal into lock, watch a quaternion take 720° to come home, and compare every way of writing a rotation down.

Part 7
SE(2) and SE(3): rigid motion

Homogeneous matrices, twists, and why the exponential of a constant velocity is a screw - a helix you can shape with two sliders.

Part 8
The adjoint: moving tangent vectors between frames

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

Part 9
Jacobians on Lie groups

Right and left Jacobians, Baker-Campbell-Hausdorff to first order, and a table of elementary derivatives you can check numerically with one click.

Part 10
Optimization on manifolds

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.

Part 11
Uncertainty on Lie groups

Gaussians that live in the tangent space, the banana-shaped cloud of a robot driving with a shaky heading, and covariance propagated through composition.

Part 12
Interpolation, integration and IMU preintegration

Geodesics and slerp, integrating an angular velocity without drifting off the group, and the preintegrated gyro measurement that makes visual-inertial odometry fast.

Reference

Start at Part 1 →