BONEYARD · part · bay
Jump
src/40-jump.js · one module, no third-party code
ParametersFactory
How it works
Stars live in a seeded camera-space volume. Each z decreases by cruise plus warp speed, and a star that crosses the near plane respawns at the far plane from the same deterministic generator. Its head and tail are both 1/z projections, so every mark points exactly at the shared vanishing point. Far, middle and near paths have separate widths and persistence, which makes the field read as volume instead of one sheet of equally weighted lines.
Warp follows a press-and-hold envelope. A hold first tightens three broken ellipses around the line of flight, then heats only the near stars and the center. Releasing after a meaningful charge expands one amber compression wave, gives the shared sound and camera state a short punch, and lets warp settle slowly to clean cruise. Calm caps the charge, halves travel, removes shake and chromatic split, and suppresses the release wave. Field-changing parameters are compared through a value snapshot because the workbench mutates its parameter object in place.
Provenance
- technique
- deterministic 1/z star volume in three depth strata, with projected streaks and a compression plane
- lineage
- the Star Wars jump (1977); the demoscene 1/z starfields (early 1990s); Windows 3.1 Starfield Simulation (1992)
- original
- the hold room for HYPERSPACE: the same projection and shared vanishing point as the corridor and row; cruise is a clean field of short phosphor strokes, a hold draws the volume through nested compression rings, and release sends one amber wave through the plane while the streaks settle back in depth
- not
- random speed changes, a tunnel, a lens flare, a flash, autoplay warp. Cruise is quiet; only a hold raises it.
- deps
- none · Canvas 2D · 2026-09
- budget
- 0.40 ms/frame @ 1050x852 desktop; 0.30 @ 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.40 ms/frame @ 1050x852 desktop; 0.30 @ 390x439 portrait, Local Chromium 149, parts average under 4x CPU slowdown (2026-09-30); JS work only, not a real-GPU frame