research/caustics-to-groups/; the figure is drawn
from its output, not hand-placed. Part 3 runs the inverse.
One engine, four groups. A sub-Riemannian group is a rule for moving: at each point only certain directions are allowed, and length is measured under that restriction. The allowed directions plus the group’s bracket structure1 fully determine its geodesics — the shortest paths — through one set of equations (the Lie–Poisson normal flow2). We implemented that engine once and fed it four groups:
- Heisenberg — the simplest: move forward/back and left/right in a plane, but every move also winds a third “height” coordinate by the area you sweep. It is the flat model, the reference every other group is measured against.
- SE(2) — the visual cortex group, and the Dubins car: drive forward and steer, never slide sideways.
- Engel — a car towing one trailer: the trailer angle is a fourth coordinate you can only change indirectly.
- Cartan — the exotic $(2,3,5)$ case Élie Cartan singled out in 1910: think of one ball rolling on another without slipping or twisting, the richest of the small models.
The Heisenberg caustic, exactly
Start with the flat model, because there we can compute everything by hand and check the code against it. A Heisenberg geodesic launched from the origin projects to a circle in the plane; as it goes around, the height coordinate climbs. Two facts, both proven and both regression-locked by a golden-file test in the repo:
- every geodesic with vertical momentum $w$ refocuses at time $t_c = 2\pi/|w|$ — exactly when its circle closes;
- at that instant every geodesic in the family lands on the same point of the central axis, at height $|z| = \pi/w^2$.
So the Heisenberg caustic — the set where geodesics refocus — is just the vertical axis. It is maximally degenerate: a whole circle of geodesics collapses onto one point. That degeneracy is the signature of flatness, and it is the yardstick for everything else. (The curved groups do not collapse so cleanly — their refocusing time drifts away from $2\pi/|w|$, and that drift is the subject of Part 3.)
The obstruction, in the flesh
Part 1 stated it as a theorem about generic Lagrangian maps plus a working hypothesis about
these groups; here is the evidence for the four groups. Zoom far enough into a generic point
of the caustic of SE(2), Engel or Cartan and you see a fold: at the first conjugate point of
24 random geodesics per group the exponential map has a fold singularity in 24 of 24 cases
(experiment E10, research/caustics-to-groups/artifacts/e10_results.json). The collapsed
Heisenberg axis above is the non-generic exception, and the same test rejects it in 24 of 24
cases. Where folds meet you expect the next shape on the list, the cusp3 — known for 3D
contact structures, and located numerically on Engel and Cartan in experiment E11 (7 and 16
points pass every pre-registered cusp test; the same search also finds 4 and 10 tangency
points that are not cusps but collapses of the Heisenberg kind;
research/caustics-to-groups/artifacts/e11_results.json). Folds and cusps are the universal
ADE germs. Hand someone a single cusp and ask which group it came
from and they cannot answer: the four are locally identical. A detector that keys on
“there is a cusp here” is reading noise. The information that separates the groups is not in
any one local shape; it is in how the whole geometry is organised. The first and coarsest
piece of that organisation is the growth vector.
The growth vector: how fast the hidden dimensions fill in
Here is the idea that turns the obstruction into a measurement. In all four groups you may only drive along two directions. Everything else — height in Heisenberg, the trailer angle in Engel, the deepest coordinates in Cartan — you reach indirectly, by combining allowed moves (drive a little loop and you gain height without ever “moving up”). The question that separates the groups is: how hard is each hidden dimension to reach?
Measure it by geodesic spreading. Shoot the allowed moves out to a length $r$ and watch how far each coordinate ranges. A directly-drivable coordinate spreads in proportion to $r$. A coordinate you reach through one combination of moves spreads like $r^2$ — much slower. One that needs two nested combinations spreads like $r^3$, slower still. The exponents — how many coordinates fill in at rate $r$, at $r^2$, at $r^3$ — are the growth vector4. The figure shows the real measured curves.
clean.*.reach and clean.*.weights in
research/caustics-to-groups/artifacts/e0_results.json; Cartan from
observables.Cartan in artifacts/e2_results.json.
What the growth vector does and doesn’t settle
The measurement is clean. From sampled geodesics the exponents come back at about $0.96$, $1.8$–$2.0$, $2.8$ — round them and you read off the growth vector directly: Heisenberg $(2,3)$, SE(2) $(2,3)$, Engel $(2,3,4)$, Cartan $(2,3,5)$. That already splits the four into three classes, and it does so from data, respecting the obstruction — we never named a local cusp.
Two honest limits, both measured rather than asserted:
- Heisenberg and SE(2) are identical here. Both are $(2,3)$; the growth vector cannot tell them apart, because it only sees the tangent cone5 — the infinitely-zoomed-in model — and both zoom down to the same flat Heisenberg. Splitting them needs the shape of the caustic at finite scale, which is Part 3.
- The steeper the coordinate, the more fragile. A slope-3 coordinate reaches only $\sim r^3$ — a hair above zero at small $r$ (look how the green line hugs the floor). So it is the first thing noise erases: recovering Cartan’s $(2,3,5)$ needs more samples and tolerates less noise than recovering Heisenberg’s $(2,3)$. In the experiments, clean data gives every growth vector exactly; at position noise $\sigma = 10^{-2}$ the contact groups still come back every time (E0, 15 trials) while Engel’s success rate falls to 87% (E0) and Cartan’s to 75% (E2, 20 trials) — the price of reading a faint, high-order dimension.
That second point is not a defect to hide; it is the sample-complexity-versus-noise tradeoff the program set out to map, and it falls straight out of the geometry: higher-step structure is intrinsically harder to see.
Glossary
- Sub-Riemannian group — a group with a set of allowed directions of motion and a length measured only along them.
- Geodesic — a shortest path under that restricted notion of length.
- Caustic / conjugate locus — the set of points where a family of geodesics refocuses; the singular set of the “shoot geodesics in all directions” map.
- Bracket — the net new direction obtained by combining two allowed moves; what makes otherwise-unreachable coordinates reachable.
- Growth vector $(n_1,n_2,\dots)$ — how many coordinates fill in at rate $r, r^2, r^3, \dots$; the coarse fingerprint measured in this post.
- Tangent cone — the infinitely-zoomed-in model of the geometry at a point; sets the growth vector and can be shared by different groups.
- ADE germs — the universal local caustic shapes (fold, cusp, …); the same for every group, hence group-blind.
References
- A. Agrachev, D. Barilari & U. Boscain (2019). A Comprehensive Introduction to Sub-Riemannian Geometry. Cambridge University Press.
- É. Cartan (1910). "Les systèmes de Pfaff à cinq variables et les équations aux dérivées partielles du second ordre." Ann. Sci. ÉNS 27, 109–192.
- Yu. L. Sachkov (2010). "Conjugate and cut time in the sub-Riemannian problem on the group of motions of a plane." ESAIM: COCV 16, 1018–1039. arXiv:0903.0727.
- A. A. Ardentov & Yu. L. Sachkov (2017). "Maxwell strata and cut locus in the sub-Riemannian problem on the Engel group." Regul. Chaotic Dyn. 22, 909–936. arXiv:1710.00216.
- A. A. Ardentov & E. Hakavuori (2022). "Cut time in the sub-Riemannian problem on the Cartan group." ESAIM: COCV 28, 12. arXiv:2107.06730.
-
The “bracket” of two allowed directions is the net displacement you get by moving along one, then the other, then back — a new direction reachable only in combination. It is what lets a car parallel-park into a spot it can’t slide into directly. ↩
-
The equations of motion for the geodesics of a left-invariant structure, written in the group’s own moving frame; one compact system that specialises to each group by plugging in its bracket structure. ↩
-
A cusp is the pointed singularity you see on the bright edge of light focused in a coffee cup — the simplest caustic singularity after the smooth fold, and one that carries no group label. ↩
-
Written $(n_1, n_2, \dots)$: $n_1$ directions fill in at rate $r$, then $n_2$ total by rate $r^2$, and so on. Heisenberg and SE(2) are $(2,3)$; Engel is $(2,3,4)$; Cartan is $(2,3,5)$. ↩
-
The shape a sub-Riemannian geometry approaches when you zoom infinitely far in at a point — always a “Carnot group”, the model whose growth vector we are measuring. Two different groups can share one tangent cone, which is exactly why the growth vector cannot always tell them apart. ↩