LucaP
fbcea0bb2c
Merge branch 'polish/card-gaps' into redesign/overnight
2026-10-12 19:22:21 +03:00
LucaP
75108562a4
polish: time the scene payoffs to the gaps between cards
...
One shared window (journey/card-gaps.ts, CARD_GAP) describes the open road
after each chapter's panel in section-local progress; the district relight
and cutover, the last yard lift and the relay station's beams now key off
it instead of their own numbers, and the chapter margin widens from 44vh
to 48vh so the gap reads as a stretch of road. Unit tests prove every
payoff's peak sits inside the window for every chapter span.
2026-10-12 19:20:43 +03:00
LucaP
f9b515c3a0
Merge branch 'polish/compile-async' into redesign/overnight
2026-10-12 19:13:02 +03:00
LucaP
c6ce7c24f5
Merge branch 'polish/scene-nits' into redesign/overnight
2026-10-12 19:00:08 +03:00
LucaP
3602eeb3d1
polish: scene nits — live-lens yard, square stacks, deck-clear billboard, two-layer lamps, flare reach, phone traffic and exposure
2026-10-12 18:59:33 +03:00
LucaP
53e532384c
Merge branch 'polish/speedometer' into redesign/overnight
2026-10-12 18:44:48 +03:00
LucaP
70b30fa200
feat: put a speedometer in the gantry's left bay
...
A 240-degree SVG dial with a spring needle, three-digit readout, unit
label, warning lamp (BRAKE / OVERDRIVE / ENGINE OFF), trip odometer and
gear chip, driven by the journey's own frame loop from the scroll drive,
route progress, navigator state, scene ignition and the high beam. Hover
or focus shows route, exit and time on the road; a click toggles km/h
and mph (remembered). The model and DOM driver load as a lazy chunk so
the initial bundle grows by about 1.3 kB gzipped; reduced motion snaps
the readout, and the bay hides below 1280px.
2026-10-12 18:44:05 +03:00
LucaP
26e5ff01fd
perf: compile scene shaders off-thread before the first frame
...
I warm the world's programs with renderer.compileAsync() at the end of the
async build, with the composer's scene target bound so tone mapping and
output colour space key the same programs the composer draws with, and with
hidden subtrees revealed so the light count matches the frame-0 warm render.
The wait is capped at 2.5 s; the warm render stays as the safety net for the
post passes, texture uploads and anything a slow or extension-less driver
left. Test builds report renderer.info.programs, and a browser spec pins zero
program growth after frame 0.
On the Intel ARL laptop the frame-0 task drops from ~1.74 s to ~0.34 s with a
pixel-identical first frame; measurements in
docs/overnight/compile-async-results.md.
2026-10-12 18:34:12 +03:00
LucaP
f4d9cb0cd4
feat: close the shift with a Thoreau quote in the end letterbox
2026-10-12 18:13:06 +03:00
LucaP
71465fa481
docs: options for the remaining weaknesses
2026-10-12 18:05:35 +03:00
LucaP
06e6a59b6f
fix: guard shader pow() bases so a NaN pixel can no longer black out the frame
2026-10-12 04:23:25 +03:00
LucaP
50da616a46
feat: interactive traffic with car-following, overtakes and flash-to-pass
2026-10-11 23:13:05 +03:00
LucaP
8c9ec69565
fix: a chapter's first mile-marker post no longer arrives late
2026-10-11 16:12:15 +03:00
LucaP
388289f2fe
feat: mile-marker posts travel with the road and carry the route log
2026-10-11 15:48:49 +03:00
LucaP
1326cee886
fix: polish pass for traffic, nav, icons, contact email reveal and dashcam robustness
2026-10-11 15:11:44 +03:00
LucaP
ca12cfda44
feat: night freight container yard works through the additional work chapter
2026-10-11 11:52:27 +03:00
LucaP
4e097e5ef9
feat: living tab title and favicon follow the drive
2026-10-11 11:18:47 +03:00
LucaP
989928c5bb
feat: underpass overpasses carry the chapter transitions
2026-10-11 10:48:31 +03:00
LucaP
7423f5d52e
feat: ignition opening with cold start, lamps, crossfade and shader warm-up
2026-10-11 09:54:48 +03:00
LucaP
33585f7e34
feat: relay station masts come online through the toolkit chapter
2026-10-11 08:32:33 +03:00
LucaP
568b0802b4
feat: dashcam photo mode with telemetry frame, lens drift and postcard capture
2026-10-11 07:49:56 +03:00
LucaP
d71b0ecfd4
feat: floodlit roadside billboard carries the selected-builds case studies
2026-10-11 07:09:31 +03:00
LucaP
19f3ce79e6
feat: route log odometer and lit mile markers for profile and experience
2026-10-11 06:15:36 +03:00
LucaP
b6e22a1299
feat: daybreak finale turns the contact arrival into a sunrise with a dawn chord
2026-10-11 05:32:08 +03:00
LucaP
c9e6ac0f29
feat: cursor-steered headlights light the hero name, plates and world
2026-10-11 05:07:05 +03:00
LucaP
52b4a1ad14
feat: scroll-driven maintenance window set-piece in the infrastructure chapter
2026-10-11 04:25:28 +03:00
LucaP
bd9bd692b9
docs: start overnight log
2026-10-11 03:46:24 +03:00
LucaP
96ef776a84
fix: declare an inline favicon so first load requests nothing missing
2026-10-11 02:11:49 +03:00
LucaP
43dec06bbc
style: soften the focus ring on programmatically focused headings
2026-10-11 02:11:49 +03:00
LucaP
70b628f65a
fix: let each additional-work plate end with its own content
2026-10-11 02:11:49 +03:00
LucaP
74b2f9b34c
content: label the Experience chapter Experience in the navigation
2026-10-11 02:11:49 +03:00
LucaP
054407aa5c
fix: read Static and disable quality when a system setting withholds the scene
2026-10-11 02:06:45 +03:00
LucaP
06d7219054
fix: keep the visitor's pause wording on the gameplay video
2026-10-11 02:06:45 +03:00
LucaP
8771e73b91
docs: record the round 6 polish pass and evidence
2026-10-11 02:00:11 +03:00
LucaP
06c7592f9d
style: clear the plates before the headings when a sign takes the frame
2026-10-11 01:28:03 +03:00
LucaP
6f8449d39b
style: fade the exit plate in over 160 ms under reduced motion
2026-10-11 01:25:53 +03:00
LucaP
863a44e65b
fix: disable the quality choice while visuals are unavailable
2026-10-11 01:22:52 +03:00
LucaP
1bccb7548f
fix: stop reconciling a scene controller disposed mid-await
2026-10-11 01:22:52 +03:00
LucaP
077106274c
style: run Operations under the infrastructure route as a base rail
2026-10-11 01:21:35 +03:00
LucaP
38f680f16a
fix: give the motion tile a reserved slot outside the bay
2026-10-11 01:18:04 +03:00
LucaP
40d863569f
fix: hide the window hint while a sign is in flight
2026-10-11 01:18:04 +03:00
LucaP
c715cf1acf
fix: keep the 2D exit plate on window hover at the destination
2026-10-11 01:18:04 +03:00
LucaP
f7b5802c65
test: assert window docking in the two pass-by journey tests
2026-10-11 01:11:09 +03:00
LucaP
d6045ad2c1
feat: light a chapter when its heading crosses 60% of the viewport
2026-10-11 01:11:09 +03:00
LucaP
7fa1c08ce8
fix: file the end-of-route sign inside the destination panel
2026-10-11 00:43:25 +03:00
LucaP
4eaf327c2d
fix: register window and plate corner marks on their own corners
2026-10-11 00:43:25 +03:00
LucaP
c8bc75cdcc
style: trim the interlude to about 1.5 s
2026-10-11 00:43:25 +03:00
LucaP
fc897e534c
feat: retire the gantry and billboard districts and light the rest as steel
2026-10-11 00:43:25 +03:00
LucaP
4ff42288a8
docs: record the round 5 review pass, evidence and test results
2026-10-11 00:13:05 +03:00
LucaP
2cbf42f7f8
fix: step the reading plates aside at click time on long navigator jumps
2026-10-11 00:12:37 +03:00