Skip to content

michael-denyer/everything-must-go

Repository files navigation

Everything Must Go

A WebGL art site: a spinning black hole consumes a procedurally generated cosmos over a twelve-minute cycle, then a new cosmos is born and it starts again. The site is the piece.

Live: https://michael-denyer.github.io/everything-must-go/

Behind it all: a baked galactic band and layered nebulae, satellite galaxies, star clusters, and a strobing pulsar, plus shooting stars — all of it draining into the disk and fading to black as the cycle consumes it.

Design spec: .planning/superpowers/specs/2026-07-02-everything-must-go-design.md

Quick start

npm install
npm run dev        # http://localhost:5173 (?debug for fps, ?seed=n)
npm test           # unit tests (vitest)
npm run e2e        # full e2e suite (Playwright, builds first)

URL controls: ?seed=<n> picks the cosmos, ?cycle=<seconds> compresses the cycle, ?t=<0..1> freezes progress at a point in the arc, ?debug shows fps and phase, ?tier=high|medium|low pins the quality tier (disables the fps probe and live downgrade).

Move to stir the gas, click during the fall to feed it something.

Status

  • Milestone 1: money shot — GPU disk, lensed shadow + photon ring + fold, bloom
  • Milestone 2: the consumption cycle and rebirth
  • Milestone 3a: solar system — planets, moons, rings, belt, comets, ring halo
  • Milestone 3b: deep sky — nebulae, galaxies, clusters, pulsar, band
  • Milestone 4: cursor well, silhouette cast, rogue-hole merger (built out of order, ahead of 3b)
  • Milestone 5: adaptive score and enter gate — fully synthesized WebAudio score driven by cycle progress, behind an enter gate offering sound or silence
  • Milestone 6: quality tiers, mobile touch, fallbacks, reduced motion, GitHub Pages deploy

Performance

Quality tiers scale particle count, pixel ratio, lensing, and bloom. Frame rates below are read from the piece's own ?debug HUD.

Tier Device fps
high MacBook Pro (Apple silicon), Chrome 120 (display-capped)
medium same machine, 4x CDP CPU throttle 120 (display-capped; the workload is GPU-bound, so CPU throttling does not degrade it)
low real phone against the live URL phone acceptance pass passed 2026-07-07 (look and feel accepted; HUD fps not captured)

Architecture

core (loop) → sim (GPU ping-pong particle textures) → render (points, starfield, screen-space lensing) → post (bloom, ACES output). Pure logic (seeding, color ramp, projection) is unit-tested; the rendered frame is smoke-tested with pixel assertions.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors