# Phase 11 — The Capstone: the Small-Parameter Structural (Platonic-Solid) Model

> **Kepler's instinct, on the object where it is true.** Kepler's *Mysterium Cosmographicum* derived the
> cosmos from a small set of nested platonic solids — beautiful, generative, and **wrong** (the planets are
> not generated by the solids). The halo atlas is that instinct on the object where it **is** true: the
> display *is* generated by a small discrete set of crystal forms. This capstone makes the claim **precise,
> checkable, and falsifiable** — the whole classified atlas forward-generated from a tiny parameter set,
> every number recomputing from the one continuous physical parameter `n`, with **named failure boundaries**
> where the reduction breaks.
> Code: `scripts/atlas_model.py` + `test_atlas_model.py`. Builds on 6.5 (bifurcation set), 8 (strata), 7
> (phase diagram).

## 1. The small-parameter structural model (the claim, made literal)
The entire quantitative atlas is a function of a tiny parameter set (`scripts/atlas_model.py`):

| parameter | count | role |
| --- | ---: | --- |
| **refractive index `n`** = 1.31 (chromatic 1.306–1.317) | **1 continuous** | sets **every** fold-ring radius and **every** admissibility wall |
| **ice Ih lattice** — hexagonal 6-fold + `c/a = 1.628` (→ the {10̄11} pyramid angle **61.99°**) + the face set {prism {10̄10}, basal {0001}, pyramid {10̄11}} | **0 free** (a fixed crystallographic input, not a fit) | the refracting wedges (60°, 90°, the odd Galle wedges) are **derived** from these face normals |
| **habit enumeration** — random(3-DOF) · plate(1) · column(2) · Parry(1) · Lowitz(2) · pyramidal · bullet-rosette | **~7 discrete** | the aerodynamic falling-orientation modes = the "platonic solids" of the halo world |
| **control** — sun elevation `h` + the per-habit orientation manifold | 1 axis + swept | the phase-diagram axis; orientation integrated per habit |

**The headline:** ~**1 free continuous physical parameter** (`n`) — the ice geometry is fixed, the habits
are a discrete list — generates the **entire classified atlas**.

## 2. The generation chain (how the whole atlas falls out)
```
  n  ──►  fold-ring radii (A2 folds)      22°/46° + odd 9/18/20/24/35°   [halo_min_deviation]
  n  ──►  admissibility walls (comp. B)   CZA 32.196° = arccos√(n²−1) ; CHA 57.804° = 90−CZA ; TIR 49.76°
 n,geom,h ─► caustic catastrophes (comp. A)  29.71° UTA+LTA→circumscribed merge (A3-class) ;
                                              the A3 apex/lateral cusps ; the 16.10° Lowitz A3-lips
 walls∪catastrophes ─► the 21-cell (elevation × habit) PHASE DIAGRAM   [atlas_forward_sweep / PHASE7]
 higher strata ─► EMPTY  (Berry confirmed: NO A4 swallowtail, NO D4 umbilic anywhere in the 2-DOF sweep)
```
**The derived-not-hardcoded demonstration (`atlas_model.py` recompute-from-n):** vary `n` 1.31→1.40 and the
whole table moves — 22° halo 21.84°→28.85°, 46° 45.73°→73.74°, CZA 32.196°→11.54°, CHA 57.804°→78.46°
(CZA+CHA = 90.000° at every `n`, the exact complement identity). The atlas is a **function of `n`**, not a
list of constants — the §6 "armchair catastrophe" gate cleared at the model level.

## 3. The match scorecard (forward predictions vs the documented / photographed catalog)
Every forward prediction matches the documented catalog (Gate-2, `HALO_PHENOMENA_ACCOUNTING.md` + Greenler/
Tape/Können/Cowley; catastrophe types vs Berry/Thom/Nye):

| forward prediction | derived | catalog / literature | match |
| --- | ---: | --- | :---: |
| 22° / 46° halos | 21.84° / 45.73° | 22° / 46° (Greenler, Tape) | ✅ |
| odd-radius halos | 8.95/18.27/19.90/23.82/34.89° | 9/18/20/24/35° (Galle, Riikonen) | ✅ |
| column UTA+LTA → circumscribed merge | 29.71° | Tape AH-CH06 p62 "at 29° the two merge … theoretical" | ✅ |
| CZA disappears | 32.196° | Tape p63 "for elevations >~32° the reflection goes total" | ✅ |
| CHA appears | 57.804° | Tape p65 "h >~58°" | ✅ |
| plate parhelia disappear | 60.74° | Greenler / Cowley "~60–61°" | ✅ |
| catastrophe types | A₂ folds + A₃ cusps + the 29.7° A₃-metamorphosis + the Lowitz A₃-lips | Berry 1994 "some halos do show cusps" | ✅ |
| **invisible halos (A₄ / D₄)** | **NONE** | Berry 1994 "swallowtail conspicuously absent; no umbilics" | ✅ (confirmed) |

The "invisible-halo search" (Phase 8) is the one place the model could have *added* a halo; it did not — it
**confirmed Berry's absence**, and labelled the one higher catastrophe it found (the Lowitz A₃-lips) as A₃,
not A₄. The reduction predicts *no new halo*, and that null matches the 40-year photographed catalog.

## 4. Named failure boundaries (where the reduction breaks — the not-Kepler's-error honesty)
The model is bounded; these are the edges where it stops, named rather than papered over:
- **Multiple-scattering displays.** The anthelic-region complex arcs (subhelic, Tricker, the heliac/Wegener
  network) need multi-internal-reflection ray paths; the single-crystal forward model is incomplete there
  (`wedge='wegener'` is a prism60-subset artifact — a flagged gap, not a faithful generator).
- **Rare / aggregate habits.** Moilanen arc (a two-crystal aggregate whose decisive parameter is an
  inter-crystal misalignment — not expressible from one crystal's orientation), elliptical halos,
  Bottlinger's rings — mechanism unresolved in the literature; **out of scope**, breach the single-crystal
  geometry gates.
- **The ray-optics limit (§0.2).** Every transition is a ~1–2° **smeared band** (chromatic + 0.5° sun-disk +
  tilt), not a sharp edge; the **diffraction dressing** (Airy on the fold, Pearcey on the cusp) is outside
  the ray model. The model predicts the *skeleton*, the apparatus renders the *smoothed image*.
- **Forward-model coverage gaps.** No random/plate/Parry orientation generator in code (those cells use
  `halo_min_deviation` + `cza_formula` + the catalog, not an admissibility sweep); these don't change the
  classified skeleton but are honest coverage holes.

## 5. Falsification-gate compliance (§6)
- **Uncited / public over-reach:** NOT public-eligible; the Phase-0.5 lit-pass + prominent attribution
  (Cowley & Schroeder apparatus; Greenler/Tape/Können geometry; Thom/Arnold/Berry/Nye catastrophe optics)
  gate any outward claim. Internal only.
- **Inversion:** forward-generate-and-verify only — the model never infers crystal geometry backward from a
  display (the founding non-invertibility is preserved).
- **Physics / priority:** the contribution is the **synthesis** — the classified-bifurcation-diagram
  *organization* of the forward-generated atlas + the directed (null) invisible-halo search — **never the
  physics** (Snell/Tape/Greenler/Können for the optics; Berry/Thom for the catastrophe taxonomy; Berry 1994
  pre-empts the idea of catastrophe-typing halos — we take up his question, we do not claim it).
- **Armchair catastrophe:** every transition is **derived** (recompute-from-n + the forward sweep); no
  catastrophe type is asserted from arc shape.
- **Ray-optics overreach:** the §0.2 smearing caveat travels with every transition (skeleton vs smoothed
  image). **Control conflation:** the atlas is a forward-model / read-off, **not** a control-regime-2 receipt.

## Status — the capstone / exit
The atlas is realized as the **classified bifurcation diagram**: the whole display — every halo and every
inter-halo relationship — **forward-generated** from {n, the fixed ice geometry, the discrete habit list}
over the control space, its transition walls **classified** (component A by Thom catastrophe type, component
B by admissibility mechanism, occlusion by viewing geometry), its rare phases (the invisible halos)
**located and found empty** (Berry-confirmed). The relationships the original atlas could only *list* are now
**deduced consequences of the geometry** — a phase diagram whose merge transitions are its phase boundaries,
generated by a one-physical-parameter model, matching the apparatus and the photographed catalog, with named
failure boundaries. **The platonic-solid dream without the platonic-solid mistake.** Remaining (none change
the skeleton): the optional HaloSim forward cross-render of the cells; the forward-model coverage gaps.
