Core Sample — this site
A WebGPU scroll portfolio: a frost-covered Earth wiped clear by the cursor, instrument-panel sections, an orbit finale, and a flyable physics voyage to a floating archive — one camera spine, one scroll value, no cuts.
Role
- Design, code, and content. One person.
Constraints
- Six colors, hard-capped; one accent per frame, routed through a single temperature token
- Under 300 opaque draw calls; no shadow maps; one permanent light source (the campfire)
- Every 3D asset is optional — a missing file falls back to a procedural stand-in, never an error
- All human-readable copy lives in content files; the scene code contains no biography
Process
- Greybox first: every camera beat, interaction, and transition shipped against primitive geometry wearing the real materials, weeks before any modeled asset existed.
- One Catmull-Rom camera spine scrubbed by one ScrollTrigger progress value; Lenis and the render loop share a single ticker so DOM and WebGL never disagree.
- Shaders written once in TSL and compiled to WGSL and GLSL — WebGPU rendering with automatic WebGL2 fallback.
- AgX tone mapping, a procedural polar-night environment, and a depth-driven lighting rig carry the look until the baked-lighting asset pass.
Outcome
- Critical path under 8 MB
- Draw calls under 300 across all six chapters
- Reduced-motion variant and keyboard path shipped at launch