Commit Graph

143 Commits

Author SHA1 Message Date
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
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
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
863a44e65b fix: disable the quality choice while visuals are unavailable 2026-10-11 01:22:52 +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
c8bc75cdcc style: trim the interlude to about 1.5 s 2026-10-11 00:43:25 +03:00
LucaP
10b867143b test: align navigation and sign label checks with the gantry 2026-10-11 00:07:09 +03:00
LucaP
014d1c12dd test: open drive settings for volume and pause in browser specs 2026-10-10 23:57:15 +03:00
LucaP
bacc035c43 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.
2026-10-10 23:30:58 +03:00
LucaP
0ae27168cd feat: overhead gantry top bar with a docking sign window
The top bar becomes a steel gantry. Its centre window is a mask cut-out the
3D exit sign docks into; between signs the window shows the dash read-out.
The drive controls move into the right bay, and the reading viewport is
clipped at the beam, so the empty band under the bar is gone.
2026-10-10 22:20:48 +03:00
LucaP
298da54871 fix(scene): keep traffic lamps out of the hero car's near field 2026-10-10 22:02:39 +03:00
LucaP
5917284f24 test: read reading-panel opacity from the chapter body that now paints it 2026-10-10 19:19:43 +03:00
LucaP
e5c9f01818 feat: route-map navigation, persisted progress with a resume point, Alt+arrow exit keys and a trip log 2026-10-10 18:57:03 +03:00
LucaP
e2f2ed6b9b feat: chapter openers over the road, reading panels, next-exit signs, two-column case studies and a destination ending 2026-10-10 18:57:03 +03:00
LucaP
a170abc093 feat: Blender-authored roadside districts that rise per chapter 2026-10-10 18:25:55 +03:00
LucaP
629535ba04 feat: wayfinding system across chapters, HUD and project plates; cut boot log, headlight and ops strip 2026-10-10 17:46:17 +03:00
LucaP
0821b542b5 feat: couple terrain surge and sun bloom to the soundtrack's low end 2026-10-10 17:46:17 +03:00
LucaP
d16ce88639 feat: add Night Shift layer (boot intro, ops strip, headlight, chapter numerals, film grain) 2026-10-10 14:13:26 +03:00
LucaP
08f3ac18c2 test: align scene regressions with the current portfolio
Exercise sign state updates and composition together, covering responsive placement, grounding, label reuse, resource ownership, and departure motion. Update poster and visual-model expectations while retaining behavioral checks.

Validation: 46 focused tests passed before commit. The preceding full build:preview run passed all 673 tests plus typecheck, builds, prerender, artifact verification, and transfer budgets.
2026-09-05 22:33:35 +03:00
LucaP
f46131723b feat: finish portfolio title, navigation, and destination effects
Add the approved name animation, rounded docking navigation, localized keyboard focus cue, unified builds card, and destination copy hierarchy.

Introduce lightweight one-shot meteors and a sun ring that repeats every three seconds at Contact. Open the email action in a separate browsing context. Preserve reduced-motion behavior and keep private handoff and visual-check artifacts out of version control.

Validation: 649 tests passed; all 20 failures in world-models and SceneCanvas reproduce on baseline 103427f. Typecheck, artifact verification, and transfer budgets passed. Client/SSR preview build passed before this commit. Existing baseline test failures remain unchanged.
2026-09-05 22:16:42 +03:00
LucaP
103427f95b feat: refine portfolio content, contact, and supporting media 2026-09-05 20:08:57 +03:00
LucaP
c6e17ad196 test: cover responsive no-script acceptance 2026-09-05 01:26:56 +03:00
LucaP
f58b079c18 fix: bound social preview smoke response 2026-09-05 01:06:01 +03:00
LucaP
c958d4a05f fix: validate social preview metadata 2026-09-05 00:57:01 +03:00
LucaP
eae03b2cd2 seo: align public identity and social metadata 2026-09-05 00:41:08 +03:00
LucaP
0f6349507b fix: refine chart evidence layouts 2026-09-05 00:22:02 +03:00
LucaP
2fce0cedee content: integrate approved project evidence 2026-09-04 23:57:29 +03:00