Back to the dreamscape

Build guide · an honest account

How this site
was made.

The concept. UMBRA is a fictional WebGL studio, and the pitch was simple: let the shader be the whole site. One raymarched dreamscape runs full-screen behind everything, and the interface is only allowed to whisper over it in glass. Scrolling the page is scrubbing the sun: dusk, deep night, first light.

The techniques, honestly

There is no three.js here and no build step. A raw WebGL2 context draws one fullscreen triangle, and a single GLSL fragment shader does everything you see. The terrain is a ridged fbm heightfield treated as a signed distance field and raymarched at up to 120 steps. Fog is nine samples of height-weighted fractal noise, tinted toward the sun with a pow(sunDot, 6.0) scatter term. The page's scroll position feeds a uScroll uniform that blends three hand-tuned palettes (dusk, deep night with stars, dawn) and moves the sun's elevation. The mouse eases into a uMouse uniform for parallax. Everything else is plain CSS: Michroma and Archivo from fonts.bunny.net, backdrop-filter glass panels, an SVG-turbulence film grain, IntersectionObserver reveals. prefers-reduced-motion freezes the camera and renders single frames on demand, and a frame-time monitor drops the internal render scale once if your GPU struggles.

Three passes, three critiques

The site was built in a loop: serve locally, screenshot at desktop and 390px mobile, read the screenshots, list at least five concrete faults, fix them, repeat.

Pass one screenshot: first working raymarched terrain with hero type
Pass 01 The shader worked but the horizon sat dead-centre and the hero type fought the sun.
Pass two screenshot: rebalanced composition with fog and phase rail
Pass 02 Camera lifted, fog thickened, solar-phase rail added, panel contrast fixed.
Pass three screenshot: final dusk composition with graded palette
Pass 03 Final grade: warmer dusk, capabilities ticker, anchor offsets, guide page.

Prompting an agent to build this

You could hand an AI agent something close to this and get a cousin of this site:

"Build a one-page site for a fictional WebGL studio. Raw WebGL2, one fragment shader: raymarched fbm heightfield, nine-tap volumetric fog lit toward a glowing orb sun, and a scroll uniform that blends dusk, night, and dawn palettes. Add eased mouse parallax. UI floats over it in restrained glass panels: charcoal, bone-white, one ember-orange accent, Michroma headers. Respect reduced motion. Screenshot it, criticise it harshly, fix it. Do that three times before you call it done."

The last sentence is the one that matters.