The clue the growth vector can’t give. Heisenberg and SE(2) have the same tangent cone, so no amount of zooming in tells them apart (Part 2). The difference only shows at finite scale, in how each group’s caustic refocuses. A Heisenberg geodesic refocuses exactly when its circle closes — at time $2\pi/|w|$ for vertical momentum $w$, a law we can prove and the code reproduces to machine precision. SE(2) is curved, and its geodesics refocus early — the more so the larger the loop:
| momentum $w$ | SE(2) refocus time ÷ flat law | reading |
|---|---|---|
| 8 (tight loops) | 0.996 | almost flat — the tangent-cone limit |
| 2 | 0.945 | mild curvature showing |
| 0.5 (wide loops) | 0.658 | strongly early — 34% short of flat |
Average that shortfall over a range of momenta and you get a single number, the nilpotent-deviation $\delta$ — how far a group’s caustic departs from the flat model. Heisenberg scores $\delta \approx 0$ (it is the flat model); SE(2) scores $\delta \approx 0.14$. That gap is the whole ballgame: it’s the clue that breaks the tie the growth vector can’t.
The fingerprint, assembled. The classifier reads three things, in order:
- the growth vector → the class: $(2,3)$ = {Heisenberg, SE(2)}, $(2,3,4)$ = Engel, $(2,3,5)$ = Cartan;
- within $(2,3)$, the deviation $\delta$ → Heisenberg (flat) vs SE(2) (curved);
- the abnormal bit1 → a coarse, robust corroborator that splits the contact groups from Engel/Cartan.
Run it on noisy synthetic caustics from each group, 25 fresh realizations apiece, and tally what it guesses. That table is the confusion matrix.
research/caustics-to-groups/artifacts/e1_results.json.
Reading the matrix
Clean data: a perfect diagonal. Every group named correctly (one Cartan realization hedges to the coarse class — 24 of 25 exact). The Heisenberg/SE(2) tie that stumped the growth vector is broken cleanly by $\delta$: those two rows never bleed into each other, at any noise level in the study. The moduli component does exactly the job the series was premised on.
Under noise, it degrades the right way. Turn up the measurement noise and the contact groups (Heisenberg, SE(2)) stay pinned to the diagonal, while Engel and Cartan slide sideways — but into the green E/C column, the correct class, not into a wrong group. That green column is the abnormal bit doing its work: it asks only “how many directions can you drive?”, a question so coarse it survives noise that erases the fine growth-vector detail (at one particular noise level the full growth vector fails for Cartan 100% of the time, while the abnormal bit is still right 100% of the time). So the classifier’s exact-group accuracy falls with noise, but its class-level accuracy barely moves — from 1.00 to 0.96. It hedges honestly; it does not guess wrong. For a method meant to eventually face real data, falling back to “I can only narrow it to two” is exactly the right kind of failure.
The aliasing map: where a single clue is load-bearing
Which clue separates which pair? Running each observable on each pair gives a clean map, and it has exactly two rigidity points — pairs held apart by a single clue:
- Heisenberg vs SE(2) — identical growth vector, identical abnormal bit; separated only by $\delta$. Remove the deviation moduli and they become indistinguishable.
- Engel vs Cartan — both have abnormals, so that bit is useless here; separated only by the growth vector. Remove it and they collapse together.
Every other pair is separated redundantly (by growth vector and abnormal bit), and no pair is fully aliased under the complete kit. This is the honest rigidity statement the program wanted: not “everything is distinguishable”, but exactly which distinctions rest on which single piece of evidence — and therefore which would be lost first if that evidence were unavailable in the wild.
Calibrated silence: knowing when not to answer
The sharpest test of an inference method is whether it refuses when it should. A real cosmic-web caustic field is not a single group — it is a patchwork of sheets, filaments and nodes, each with different local structure. Point the detector at such a field and the honest answer is “there is no one group here.”
It gives that answer. Sampling the growth vector at many points across a genuine group returns the same vector everywhere → a confident label. Sampling across a modelled effective flow returns a mixture — $(2,3)$, $(2,3,4)$, $(2,3,5)$ all present, no single vector holding even 40% — and the detector reports “a field of varying tangent cones” rather than inventing a group. That is the calibrated silence promised in Part 1: the method mapping the edge of its own competence, refusing to read a group into a flow that hasn’t got one.
The verdict, and the frontier
The reverse map works — with a stated envelope. From caustic data alone the detector recovers the group when the geometry is homogeneous, breaks the one alias the coarse fingerprint can’t, degrades into honest class-level hedging rather than wrong answers as noise grows, names exactly which distinctions are single-clue fragile, and stays silent when handed a flow that isn’t a group. The group-blindness obstruction of Part 1 is real, and the escape — the triple fingerprint, never a local germ — is what makes the inverse possible.
What remains is the genuine wild: the $\mathrm{SE}(3)$ structure of diffusion-MRI fibre fields, where
the configuration space really is a group and the data is real and noisy. That is the next frontier (Part 4) —
and the calibrated-silence machinery above is exactly what will keep the answer honest when we get
there. The full, reproducible code, every experiment, and the methods derivation live in
research/caustics-to-groups/.
Glossary
- Growth vector — how fast a group’s hidden dimensions fill in; sorts the four models into three classes (Part 2).
- Nilpotent deviation $\delta$ — how far a group’s caustic refocusing departs from the flat (Heisenberg) law; 0 for Heisenberg, ~0.14 for SE(2); breaks their tie.
- Abnormal bit — coarse yes/no for a distribution-forced kind of shortest path; splits contact groups from Engel/Cartan and is unusually noise-robust.
- Confusion matrix — rows = truth, columns = guess; a perfect classifier is a pure diagonal.
- Coarse label (E/C, H/S) — a class-level guess (“Engel-or-Cartan”) the classifier falls back to when noise blurs the exact group.
- Aliasing / rigidity point — a pair of groups separated by only one clue; removing it makes them indistinguishable.
- Calibrated silence — the method’s refusal to name a group when the data is an effective flow with no single homogeneous structure.
References
- A. Agrachev, D. Barilari & U. Boscain (2019). A Comprehensive Introduction to Sub-Riemannian Geometry. Cambridge University Press.
- A. Agrachev & D. Barilari (2012). "Sub-Riemannian structures on 3D Lie groups." J. Dyn. Control Syst. 18, 21–44. arXiv:1007.4970.
- L. Sacchelli (2019). "Short geodesics losing optimality in contact sub-Riemannian manifolds and stability of the 5-dimensional caustic." SIAM J. Control Optim. 57, 2362–2391. arXiv:1812.11340.
- 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.
- J. Feldbrugge, R. van de Weygaert, J. Hidding & J. Feldbrugge (2018). "Caustic skeleton & cosmic web." JCAP 05, 027. arXiv:1703.09598.
-
Some geometries have a second kind of shortest path, forced by the shape of the allowed directions rather than the metric; whether they exist is a coarse yes/no (Heisenberg and SE(2): no; Engel and Cartan: yes) that survives noise well because it only asks how many directions you can drive, not the fine structure. ↩