Commit Graph

68 Commits

Author SHA1 Message Date
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
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
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
c715cf1acf fix: keep the 2D exit plate on window hover at the destination 2026-10-11 01:18:04 +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
2cbf42f7f8 fix: step the reading plates aside at click time on long navigator jumps 2026-10-11 00:12:37 +03:00
LucaP
f08dfc3fba feat: engine off at the destination
On arrival the drive winds down to a stop, the tail and running lamps
drop to parking level, the sky darkens about 10% with more stars and
the grid fades. The engine and road noise take a 1.2 s low-pass sweep
to idle. The letterbox stays within 8vh and the closing credit types
into the lower bar; reduced motion keeps only the bars and dimming.
2026-10-10 23:37:51 +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
582bf6dc43 feat(scene): phone LOD car and clearcoat coachwork on desktop
Phones and the low tier load a decimated grand tourer built by a headless
Blender script (31k to 11k faces, same nodes and materials). Desktop gets
clearcoat paint and a soft halo parented to the tail bar.
2026-10-10 22:41:12 +03:00
LucaP
06b6e996a0 feat: cinematic outro that mirrors the intro crane
On arrival the camera cranes back toward the sun on a long lens, letterbox
bars close in on every tier and a closing credit of real identity facts
fades into the upper bar. Leaving the destination reverses it.
2026-10-10 22:25:25 +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
32eb3e4d40 fix(scene): remove exit-gate flashes and sub-3 Hz-unsafe flickers 2026-10-10 22:04:09 +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
48a3413ebc fix(scene): drop the first-frame precompile; record round 4 test evidence 2026-10-10 21:05:00 +03:00
LucaP
8044ad88e3 fix(scene): cut the opening crane to the chase framing on any interaction 2026-10-10 20:50:47 +03:00
LucaP
d9cdbbbde2 fix(scene): land the opening crane before a sign can latch its placement 2026-10-10 20:43:49 +03:00
LucaP
300ebac68a fix(scene): keep the lens fixed through exit cuts so signs hold their placement 2026-10-10 20:31:16 +03:00
LucaP
10263a968b fix(scene): land the opening crane on scroll or stutter and prewarm cut shaders 2026-10-10 20:20:18 +03:00
LucaP
27da28c7cc feat(scene): add opening crane shot and exit-gate chapter cuts 2026-10-10 19:50:38 +03:00
LucaP
604a7765ff feat(scene): add destination skyline, traffic, wet-road light and a saturated sun 2026-10-10 19:50:38 +03:00
LucaP
2080265568 feat(scene): add film grade and lens finish pass 2026-10-10 19:50:38 +03:00
LucaP
7e6f0abbaa perf: compile district shaders at the on-ramp instead of mid-drive 2026-10-10 19:03:37 +03:00
LucaP
a170abc093 feat: Blender-authored roadside districts that rise per chapter 2026-10-10 18:25:55 +03:00
LucaP
71959f7541 fix: make the reading viewport a script-driven scroll container so sticky and view timelines work 2026-10-10 18:10:28 +03:00
LucaP
8a77fc02b2 feat: redesign roadside sign faces as exit signs with chapter accents 2026-10-10 17:46:17 +03:00
LucaP
45cc1056ee perf: quantize the opening reading-mask reveal to 24 steps 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
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
15bcdf7cec perf: reuse a stationary reading mask during scrolling
Keep native document geometry while translating content behind one viewport fade. Preserve navigation, focus, media preloading, and Static cleanup without changing 3D quality or render resolution.

Validated assets, types, production builds, prerendered artifacts and transfer budgets; compared 64 layouts and checked 87 live interactions plus uncached media and repeated cleanup. High improved from 71.7 to 101.4 FPS at DPR 1 and 47.8 to 62.2 FPS in the full-size DPR 1.5 window, with occasional sub-60 intervals still remaining.
2026-09-05 17:42:19 +03:00
LucaP
f3f2b031d0 perf: release GPU resources correctly and reuse render targets
Dispose scene resources before renderer allocation records are cleared and
release the bloom high-pass material. Avoid unused bloom depth buffers and
the final screen pass swap, keeping the same visual output and quality.
Batch sign-stage layout reads before applying existing masks.

Validated approved assets, types, client and SSR builds, prerendered content,
artifacts and transfer budgets. Checked 32 matching transition renders,
66 browser interactions and repeated quality-change resource cleanup.
2026-09-05 15:50:53 +03:00
LucaP
ef51580cf9 feat: charge terrain with acceleration and compact desktop sign staging 2026-09-05 14:09:26 +03:00
LucaP
5d5935a1f8 feat: immerse the portfolio in a chromatic synthwave night
Carry rose, violet, coral, electric blue and cyan through the interface, road, terrain, signs and atmosphere. Add a Blender-authored paint edition and matching runtime fallback captures. Interpolate atmospheric color on a small sky lattice and enrich existing speed effects without another rendering pass.

Preserve approved copy, project media, metadata, navigation contracts and adaptive audio. Verified with typecheck, client/SSR builds, validated prerendering, artifact and transfer checks, responsive Chrome interaction, fallback checks and Intel-backed performance sampling.
2026-09-05 13:17:53 +03:00
LucaP
43e510341e feat: weave a flowing multicolor palette through the terrain grid 2026-09-05 12:36:34 +03:00
LucaP
51a9c743da feat: weave speed-reactive terrain and ground roadside signs
Anchor desktop signs beside the road and feather the compact reading edge with measured chapter landings. Add a continuous cyan-to-coral terrain grid and a bounded rear wake that builds with existing drive speed.

Preserve approved content, media, soundtrack, and canonical journey contracts.
2026-09-05 06:22:49 +03:00
LucaP
b188cac7ed feat: sculpt portfolio into an immersive midnight expressway
Author physical road furniture, layered terrain and atmosphere, projected illuminated route signs, and detailed Blender coachwork. Refine camera mass, wheel contact, chapter composition, and compact reading space while preserving approved content and audio contracts.

Include isolated Blender source, before/after and hardware Chrome motion evidence, preservation hashes, validated preview checks, and documented inherited unit failures.
2026-09-05 05:10:17 +03:00
LucaP
c9ac36e249 feat: evolve portfolio into an authored midnight grand tour 2026-09-05 03:55:18 +03:00