Commit Graph

218 Commits

Author SHA1 Message Date
LucaP
2f6eb9657d fix: keep bay tooltips on screen and out of the accessible name 2026-10-10 23:39:38 +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
07e3ea014d style: tighten the chapter title stack to about 180 px at 1440 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
5757dd968f feat: one plate rule for every card, with scroll-linked entrances
Panels, records and grid groups share .plate: a registration plate, a
lit accent edge, focus that reads like hover, and a 28 px rise with a
top-down unmask on view() entry, or an IntersectionObserver fallback.
2026-10-10 23:30:58 +03:00
LucaP
9b79e031ff fix: let the mouse wheel scroll the reading viewport
overscroll-behavior: none on the script-scrolled, overflow-hidden reading
viewport swallowed wheel events, so the page only moved by keyboard,
touch or the navigation.
2026-10-10 23:30:58 +03:00
LucaP
c3863f8dbe feat: one card title rule and a motion pass
Every card title now sits first inside its card under a mono registration
plate; chapter titles stay outside, above the plate. Cards rise and unmask
as they enter the reading window, lift on hover and focus, chapters settle
in sequence on arrival and the gantry lane lamps light along the route.
All motion is transform and clip-path, behind reduced-motion.
2026-10-10 22:46:06 +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
f842d6df3a fix(ui): keep night-plate opacity in the background colour 2026-10-10 20:20:18 +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
af14e5910b docs: record round 4 critique, transformation and evidence 2026-10-10 19:50:38 +03:00
LucaP
f837cb3280 feat(ui): chrome title card and night-plate chapter panels 2026-10-10 19:50:38 +03:00
LucaP
b5ef8a25a2 feat(audio): sweep a pass-by through the stereo field on each exit 2026-10-10 19:50:38 +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
5917284f24 test: read reading-panel opacity from the chapter body that now paints it 2026-10-10 19:19:43 +03:00
LucaP
8008edb855 fix: keep the destination within one desktop viewport and let the phone route scroll 2026-10-10 19:19:43 +03:00
LucaP
da7bd9940e docs: record round 3 route concept and decisions 2026-10-10 19:06:29 +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
565deccd25 feat: chapter openers on phones and a roadside avatar at the destination 2026-10-10 19:00:08 +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
abae50c22d fix: re-land explicit navigation when the reading stage changes mid-journey 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
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
6c18228ed6 docs: record round 2 wayfinding concept, cuts and alternatives 2026-10-10 17:46:17 +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
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
416b930523 fix: reveal cards by translation only so contrast is never reduced 2026-10-10 14:44:10 +03:00
LucaP
7280133fed fix: apply review findings; make ops strip text CSS-generated 2026-10-10 14:28:16 +03:00
LucaP
8f95fda49e fix: keep chapter numerals static and limit scroll reveal to small cards 2026-10-10 14:18:58 +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
475e494675 docs: add Night Shift implementation plan 2026-10-10 14:11:57 +03:00
LucaP
12a4e196ab docs: record Night Shift redesign direction 2026-10-10 14:11:22 +03:00
LucaP
fa4d1a2377 docs: add redesign discovery brief 2026-10-10 14:09:12 +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
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