feat: sign interlude, window plate and a two-button control bay

The sign closes in over the road on a gantry truss, arcs into a wider
window and hands off to a flat 2D plate that mirrors its face; content
steps aside for the interlude and rises after. The bay keeps sound and
settings; volume and Pause motion move into the settings popover.
This commit is contained in:
2026-10-10 23:30:58 +03:00
parent 5757dd968f
commit bacc035c43
12 changed files with 823 additions and 287 deletions

View File

@@ -110,3 +110,36 @@ content had to stay out of their way.
it, so no light ever passes the car.
- A unit test pins both rules.
- The car's own lamps and the wake stay parented to the car, as before.
## Evidence
All captures are 1440x900 unless named otherwise, from the production
preview build on a headed GPU Chromium. They are in `docs/redesign/round5/`.
| Item | Before | After |
| --- | --- | --- |
| 4, 5, 6, 8 Gantry | `gantry-before-1440.webp` | `gantry-after-1440-incoming.webp`, `-docked.webp`, `-idle.webp`, `gantry-after-1024.webp`, `gantry-after-390.webp` |
| 1 Outro | `outro-before-1440.webp` | `outro-after-1440.webp` |
| 7 Car | left half of `car-before-after-desktop.webp` | right half; `car-lite-390.webp` |
| 9, 10 Cards and motion | `cards-before-1440.webp` | `cards-after-1440.webp` |
- **Gantry docking (headed run, clicking Profile).** idle at 300 ms,
incoming at 700 ms, docked from 1000 to 2600 ms, passing at 3300 ms, idle
at 3700 ms. The face lands within 2 px of the window at 1440x900,
1920x1080, 1024x768, 390x844 and 844x390 (unit tests). Clicking the
window, or Enter on it, drives to the next exit (Start to Profile, then
Experience) at 1440 and 390.
- **A mask bug found on the way.** The window cut-out used `--window-x`
as a `mask-position`. Percentages there resolve against the box minus the
layer, so the hole sat 128 px left of the window and the beam hid half of
the sign. The cut-out now has its own `--window-mask-x`.
- **Car.** Phones and the low tier load the lite model: 31,288 to 11,027
faces, 1.19 MB to 0.50 MB raw. The transfer saving is small (149 KB to
143 KB), because the geometry already compresses well. The real wins are
parse time and GPU memory.
- **fps (same machine, same script, Intel Arc iGPU, headed).**
| | start | infrastructure | builds | toolkit | contact |
| --- | --- | --- | --- | --- | --- |
| Before | 70.1 | 82.6 | 83.8 | 81.8 | 87.2 |
| After | 68.7 | 83.5 | 79.7 | 83.7 | 95.1 |