# Changelog — Ephemeris Lens II: Reconnection

## v2.3 · 2 Oct 2026 — the real Sun

* **The Sun is now the real one** at 16 Oct 2015 13:07 UTC, the minute of the diffusion-region crossing. The old canvas sprite is replaced by a single shader (`render/sun.js`) fed by:
  * SDO/HMI white light, with the day's small spot groups and per-channel limb darkening (two-term law, a₁ = 0.63, a₂ = 0.18 at 550 nm)
  * SDO/AIA 304 Å: the chromosphere, and the big east-limb prominence
  * SDO/AIA 171 and 193 Å: coronal loops and coronal holes
  * SOHO/LASCO C2: streamers out to about 5 R☉

  Granulation appears only once the cells are resolvable on screen. The EUV layers churn gently and the corona streams outward.
* **Flares from the real flare list**: the day's eight HEK flares, from B8.3 to M1.1, replay as a time-lapse with two bright ribbons and a post-flare arcade. The replay opens on the C3.8 from AR 12434 that peaked at 13:04, then the C4.3 on the east limb. Each flare peak in the Sun view plays a type III radio burst, a new procedural voice whose falling plasma-frequency drift was checked in the waveform analyser (−9.7 dBFS peak, no clipping, DC or clicks).
* **CMEs**: the Strong CME and Carrington scenarios in Bow Wave launch an Earth-directed halo CME on the Sun.
* **Sun view** (☉ button or V in any lab): the camera swings onto the Sun with a telephoto field and a neutral-density-style gain drop. It shows a live clock and the flare being played. Four looks:
  * Composite: eclipse or coronagraph style
  * White light: what an eye or camera actually gets, a blinding disc with no visible corona
  * AIA 304 Å
  * AIA 171 Å

  The Sun is framed in whatever part of the screen the panels leave free, on phones in portrait and landscape too.
* **Settings**: Sun size (cinematic 10×, large 4×, or the true 0.53°) and the default Sun look.
* `tools/sun/fetch_sun.sh` and `bake_sun.py` rebuild the textures and `assets/data/sun.json` from the Helioviewer API and HEK. New test: `tests/sun.test.mjs`.

## v2.2 · 2 Oct 2026 — launch-site terrain

* **Ground**: the flat noise plane under the pad is gone. In its place is a polar heightfield of SLC-41 and its surroundings (`render/terrain/site.js`) that drives every layer:
  * dune-and-swale relief and a perimeter berm
  * a crushed-rock pad and concrete aprons with joints and scorch
  * asphalt roads with painted lines, and rail ballast with ties out to the VIF
  * a retention pond, marsh ponds, the Banana River lagoon to the west, and the Atlantic foredune, beach and surf to the east
* **Look**: FIELDWORK's detail textures (ported to `render/terrain/detail.js`) are sampled at several scales for albedo and normals. The sound-suppression deluge spreads water across the apron from T−1.5 s and leaves standing sheets that reflect the flame. Sodium lamp pools and the pad floods are lit analytically in the terrain shader.
* **Water**: one sea-level plane with a planar reflection on medium and high quality, so the foreground pond mirrors the stack, the masts and the flame. It uses FIELDWORK-style flowing normals, and breaker lines and swash roll in on the beach.
* **Vegetation**: FIELDWORK's GPU-instanced grass is rebuilt as three kinds:
  * saw palmetto, as clumps of fans radiating from their petioles
  * mowed bahia grass
  * cordgrass in the marsh

  It follows the camera, sways in the sea breeze, and flattens under the ignition pressure wave, which runs out at 343 m/s. Scrub-oak hummocks and sabal palms are instanced in the island-v4 style, and kept out of the opening shot's sightline.
* **Props and distance**: a LOX sphere, gas bottles, RP-1 tanks, equipment shelters and a chain-link fence stand on the pad. Road lamps line the roads. The VAB, SLC-40 and SLC-37 sit in the haze with blinking obstruction beacons. The fog now matches the horizon glow, so far land fades instead of going black.
* **Light**: a second light, the glowing exhaust cloud over the trench, lights the pad surroundings at liftoff. The opening camera sits lower, down in the palmetto.
* The launch site is built during loading, so Begin starts at once. Quality tiers set the terrain resolution, the grass count, the scatter density and the reflection resolution (no reflection on low).
* New test: `tests/terrain.test.mjs` checks the shoreline, lagoon, pond, pad grading and the GLSL/JS coastline twin. It also checks that the opening camera can see the MLP all the way down its path.

## v2.1 · 2 Oct 2026 — planet, aura and shield realism pass

* **Planet**: NASA Blue Marble NG (October), Black Marble 2016 city lights, GEBCO relief normals and a real cloud composite with cast shadows. Oceans get Fresnel sun glint. 4k on high quality, 2k on phones.
* **Atmosphere**: a ray-marched single-scattering Rayleigh + Mie sky replaces the rim glow. It handles aerial perspective, a soft reddened terminator and the sunrise limb, plus 95 km green airglow on the night limb. Sample count scales with the quality setting.
* **Aurora**: real oval geometry in the geomagnetic frame (IGRF-2015 pole). Vertical curtains at 100–260 km with 557.7 nm green and 630 nm red, a diffuse oval band, folds and rays, and daylight wash-out. The oval grows with Kp, and particle-lab precipitation feeds it.
* **Shield**: field lines are now RK4-traced through a dipole + Chapman–Ferraro image dipole + tail current-sheet model, then cut at the magnetopause. Lines are classed closed (day/night) or open, with draped open lines. The magnetopause has cusp indentations where the traced cusp meets it and Kelvin–Helmholtz waves rolling down the flanks. The bow shock has a rippled, turbulent dawn-side foreshock. A plasmasphere follows Carpenter & Anderson (1992). The Earth is tilted so its geographic axis sits about 9.6° off the dipole.
* **Models**: a Blender detail pass. Bevelled edges and normal maps throughout. MMS gains FPI top-hats, HPCA, EIS, FEEPS, EDI, ASPOC, star-tracker baffles, OSR radiators, RCS pods, a bolt ring, SDP spools and preamps, ADP whips and segmented mag booms. The Atlas V gains an RD-180 bay with actuators and turbopump, canted AJ-60A noses and struts, an interstage with vents, a tangent-ogive fairing with rails and vents, and Centaur bands. The pad gains a lattice umbilical tower, tail-service masts, a catenary-wired lightning-mast ring, flood lights, the VIF and rails.
* The launch flame now lights the pad with inverse-square falloff.

## v2.0 · 2 Oct 2026 — sequel release

* An opening cutscene: launch night at SLC-41 on 12 Mar 2015, ascent, SRB jettison, staging, fairing jettison, the four releases at T+92 to T+107 min, boom deployment, then the tetrahedron over the magnetosphere.
* Four labs, each with objectives and what-ifs:
  * **Ephemeris**: the real 2015 orbit coloured by FGM, and a two-body / J2 / lunisolar propagator raced against the MEC ephemeris. Plus a Phase 2 apogee raise, a perigee-into-the-air what-if and a magnetopause-crossing hunt.
  * **Trapped**: Boris, guiding-centre and drift-shell integrators in a dipole, with a loss cone, aurora, a storm ring current, a weak-field what-if, convection E and IMF Bz.
  * **Bow Wave**: Shue magnetopause, Farris–Russell bow shock and Chapman–Ferraro balance, scenario presets, a replay of the real OMNI day, and dipole-off.
  * **Diffusion Region**: the curlometer on the real 2015 and 2017 EDR bursts, plus a synthetic reconnecting Harris sheet where you shape the tetrahedron.
* Blender-built MMS observatory, Atlas V 421 and pad. Natural Earth textures. HDR bloom post chain.
* Fully procedural audio, with an offline waveform and spectrum check.
* Responsive across portrait phone, landscape phone and desktop. Touch, mouse, keyboard and gamepad.
* Data pulled from the data.gov MMS FGM collection (8 datasets), MEC and OMNI.
