style: trim the interlude to about 1.5 s

This commit is contained in:
2026-10-11 00:43:25 +03:00
parent fc897e534c
commit c8bc75cdcc
5 changed files with 26 additions and 19 deletions

View File

@@ -649,7 +649,7 @@ const OUTRO_RETURN_SECONDS = 1.6;
const OUTRO_REACH = 0.62;
const ENGINE_OFF_NIGHT = new THREE.Color(0x000000);
/** Plates rise back over 720 ms with up to three 90 ms staggers. */
const INTERLUDE_RISE_MS = 1100;
const INTERLUDE_RISE_MS = 800;
function easeInOutCubic(t: number): number {
return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;

View File

@@ -47,8 +47,12 @@ const TILT_RADIANS = 0.07;
const HANDOFF_MS = 200;
/** Above this scroll drive speed a passive crossing skips the interlude. */
const BRISK_DRIVE_SPEED = 0.5;
/** Share of the approach spent on the truss before the arc into the window. */
const ON_TRUSS = 0.7;
/** Share of the approach spent on the truss before the arc into the window.
* Round 6 trimmed the hold so the arc carries more of the approach. */
const ON_TRUSS = 0.62;
/** The reading plates start to rise about 180 ms (of a 900 ms approach)
* before the sign docks, so the interlude closes in about 1.5 s. */
const PLATE_RISE_PROGRESS = 0.8;
const SIGN_MARKER_FONT =
'600 60px "Geist Mono Variable", ui-monospace, monospace';
@@ -524,7 +528,8 @@ export function createSign(
return state;
},
interlude() {
return !brisk && state === 'incoming';
if (brisk || state !== 'incoming') return false;
return !(snapshot?.phase === 'approach' && snapshot.progress >= PLATE_RISE_PROGRESS);
},
compose(camera, width, height, dock, now, tilt = REST_TILT) {
const dt = Math.min(0.05, Math.max(0, (now - previousNow) / 1000));