Boneyard / partHyperspace

BONEYARD · part · corridor

Hyperspace

src/31-hyperspace.js · one module, no third-party code

Focus preview for keys

ParametersFactory
How it works

Progress drives a fast eased launch, a broad cruise plateau and a longer eased arrival. Each sky star is projected twice, at z and at z plus the current warp length. Near stars get longer strokes, brighter heads and a faint second wake segment; middle and far stars stay finer, so stopping mid-gap holds a legible volume instead of a flat burst. A broken amber ellipse expands during launch and two phosphor ellipses contract during arrival. Their geometry is centered on the same vanishing point, making the end states visually hand off to the rooms on either side.

Full motion adds a brief shared punch when warp crosses the launch threshold, restrained RGB separation on the hot near path, and camera shake proportional to actual ride speed. Calm uses the same scroll choreography at half force, removes the punch, split and shake, and drops the echo wake. Standalone pages use a seeded copy of the same volume.

Provenance
technique
the sky's own stars separated into depth strata and stretched along their 1/z rays through a scroll-shaped warp
lineage
the Star Wars jump (1977); the demoscene 1/z starfields (early 1990s); Windows 3.1 Starfield Simulation (1992)
original
it draws the SAME points THE SKY publishes on ctx.share.stars, so the room and corridor stay continuous; launch expands one broken compression plane, cruise holds a deep layered wake, and arrival gathers that wake back into the shared vanishing point, all from scroll position rather than an independent time loop
not
a random speed loop, a tunnel, a lens flare, a flash. It never advances unless the visitor advances.
deps
none · Canvas 2D · 2026-09
budget
0.24 ms/frame @ 1050x852 desktop; 0.10 @ 390x439 portrait, Local Chromium 149, parts average under 4x CPU slowdown (2026-09-30); JS work only, not a real-GPU frame
api
mount(canvas, params, ctx) -> { tick(dt, t, progress, pointer), resize(w, h, dpr), still(t), destroy() }
license
MIT, Desert Data Labs LLC

Budget: 0.24 ms/frame @ 1050x852 desktop; 0.10 @ 390x439 portrait, Local Chromium 149, parts average under 4x CPU slowdown (2026-09-30); JS work only, not a real-GPU frame