# SPPAM v1.5.2 — Interaction Visualisation and Stabilisation

Open `index.html` in a modern browser. The complete app works locally without installation, external services or additional dependencies. All previous versions are unchanged.

**The v1.5.1 musical compiler is frozen.** Its database, composition rules and compiler are copied byte-for-byte, including the internal version in debug output. The app header identifies v1.5.2, while debug correctly retains the v1.5.1 compiler identity. The musical UI code, modifiers, identity limits, reset and clipboard handlers are unchanged; only the old collision monitor is removed.

The original CERN-inspired header sequence is restored as **local theatre**, with the original red/amber/green styling and 0/7/15/23/30-second deadlines. It starts at INITIALISING BEAMLINE, negotiates NODE C-17, synchronises behaviour vectors, then displays a simulated connection and a local nominal link. A permanent label states that there is no CERN connection. It issues no network requests and never restarts on compilation. Reduced-motion preferences immediately show the final green state; delayed/background callbacks catch up to elapsed time. Validate this presentation restoration with `node sppam_v1_5_2/tests/beamline-status.cjs`.

Press **INITIATE COLLISION** to compile as before and open the selected entity/context view. While the panel is open, changing the entity updates it. **Replay** restarts one finite diagram reveal. **Close** or **Escape** closes it without changing prompts or controls. There is no auto-dismiss timer. This is a nonmodal panel, not a blocking compilation step.

Each view identifies itself as a simplified detector-event display, conceptual interaction diagram, or artistic quantum-process representation. Stages, a legend, a short explanation and explicit limitations accompany every diagram. These are educational illustrations, not real CERN events or collision simulations. All 28 profiles are covered; related neutrino flavours legitimately share an inference diagram.

Diagrams illustrate the relevant distinction: charged curvature, no-hit photon transit and ECAL response, missing transverse momentum rather than visible neutrino tracks, decay vertices with unobserved neutral products, confinement/hadronisation, discrete bound levels, spin-dependent annihilation, internal amplitude corrections, or explicitly artistic quantum-field/barrier views. Cherenkov compares two threshold conditions using wavefront geometry, not backward photon tracks.

Reduced-motion preferences show the complete static diagram, including changes made while the panel is open. Animations run once, use the browser's Web Animations API and are cancelled on replay, selection change, close, page hiding and page navigation. There are no animation intervals, frame loops or background network calls. If animation APIs are unavailable, the complete static view remains usable. Replay does not change the score.

At small widths the panel fits the viewport and its header remains reachable while it scrolls vertically. The diagram has a minimum readable width and can be panned sideways (or focused for keyboard scrolling). A small-screen CSS correction keeps the existing EQ banks from widening the page. The control set and audition workflow are unchanged.

Documentation:

- [Coverage table: all 28 profiles](VISUALISATION_COVERAGE.md)
- [Scientific accuracy review and limitations](SCIENTIFIC_REVIEW.md)
- [Regression and functional test results](REGRESSION_RESULTS.md)

Run the dependency-free tests from the project directory:

```sh
node sppam_v1_5_2/tests/regression.cjs
node sppam_v1_5_2/tests/visualisations.cjs
python3 -B sppam_v1_5_2/tests/check-svg.py
```

The regression suite compares v1.5.1/v1.5.2 Style, Behaviour and Debug outputs across every profile, style and variant with seven representative override scenarios. It also checks byte identity of the three compiler files, the untouched musical UI prefix and hashes of previous-version files. Visual tests cover every model, SVG validity, repeated activation, cleanup, reduced motion, visibility, Escape, page lifecycle and isolation from musical state. Browser evidence and screenshots are in `tests/`.

**Status: parked for Suno auditions after validation.** No further musical redesign or speculative development is started. These illustrations neither prove musical success nor change the prompts to be auditioned.
