Technology
No AI-generated images, no AI-generated music, no samples, no recordings. Every pixel and every sound on this site is computed live in your browser, from maths and rules written in code. The code behind it was written with Claude; more on that below.
The world
The scene is rendered with WebGL2 and custom shaders, no 3D models and no textures from files. It builds up in stages while it loads: first a blueprint of lines, then flat shapes, then light and atmosphere, then detail. That is how it looks, and it is also how it works: expensive things are computed once (baked) and then reused while the scene runs live.
- The surface of each nearby monolith is baked into its own texture, up to 3072 × 4096 texels. Only gloss, reflection and what you add to it are computed live.
- Distant objects are drawn by ray marching through signed distance fields; simple shapes are hit analytically, which is faster.
- The world maintains itself: monoliths rise out of the sea where you are looking and sink again far behind you. Composition and weather are rolled anew on every visit.
- It is built to be gentle on weak machines: shaders compile in parallel, loops are written so that some graphics drivers don't unroll them into something enormous, and the page starts more carefully if the last visit crashed.
The sky
The sky is baked once per visit with volumetric clouds, then only recoloured for time of day, sunset and night. The clouds follow the real cloud genera, each modelled on its own:
- Cumulus towers with flat bases, billowing heads and eroded edges; cumulonimbus with an anvil that the high-altitude wind pushes aside, and mammatus pouches hanging underneath
- Cirrus fibres combed by the wind, with hooks; cirrostratus as a milky veil that turns the sky pale
- Altocumulus fields, bright towards the sun and grey below; lenticular clouds stacked like smooth lenses
- Stratocumulus rolls with bright-rimmed gaps; nimbostratus as a closed grey rain deck
Each weather situation mixes these layers differently, and aerial perspective makes distant towers bluish and soft.
The sea
The waves are a procedural wave field: a base sea driven by the wind, wave groups that roll through every few minutes, and now and then a cross swell from another direction. The sea is computed twice, once on the graphics card for the image and once in JavaScript for everything that has to touch it: the vehicle, the visor, the sound. The JavaScript version deliberately computes with the same 32-bit precision as the GPU; otherwise the two seas drift apart after a few minutes. The waves you hear are the waves you see.
The foam is an actual simulation: it is carried along by the current, splits around the monoliths like flow around a cylinder (piling up in front, trailing behind), decays at different rates and is born again at breaking crests, in the surf on the windward side and under the jets of the vehicle.
Sound
Everything you hear is synthesised live with the Web Audio API, from oscillators and noise. There is not a single audio file on this site.
- Water near you is a burst of noise, a dull body of water and air bubbles. The bubbles ring at the frequency physics gives them (Minnaert resonance): small ones high, large ones low.
- Each lap is triggered when a wave crest actually passes under the vehicle.
- Gusts tear spray off the crests: a sharp hiss that swells, then droplets patter downwind. Spray hitting the hull comes from its real direction, in 3D.
- Wind rumbles in gusts, rushes along the visor and whistles at the edges; rain changes with the weather, and under water everything turns dull.
The whole sound engine needs no download, less than a megabyte of memory and roughly 2–4 % of one CPU core.
Music
The music is generative. A song is a genre plus a seed: the same seed always gives exactly the same song, which is why songs can be shared. A song is composed in layers:
- a conductor plans the form (intro, verses, chorus, breakdown) and the energy curve
- harmony picks a key and mode and chord progressions that work in the genre
- patterns write drums, bass, arpeggios and melody
- voices are synthesisers built per instrument, followed by effects: reverb, echo, sidechain pumping, filter sweeps
The theory is classic: major and minor, the church modes, pentatonic scales and even Javanese gamelan scales (pelog and slendro). Hooks are written the way you would write them by hand: one rhythm that carries through, mostly stepwise motion in a narrow range, chord tones on the strong beats, a phrase that asks and one that answers, ending on the tonic.
Some songs sing. There are no words, only syllables, and the voices are meant to sound like machines. One voice is a classic source-and-formant synthesiser; the other simulates a vocal tract: a tube of sections, a glottal pulse with breath, tongue and lips, running in its own audio thread.
Genres range from italo disco, techno and dub techno to synthwave, acid, liquid drum & bass and trance.
Side quests
Two workshops were built along the way, as side results, to get sound and music right:
- a sound lab where every layer of the sea, the wind, the rain and the vehicle has its own sliders, with a live view of the wave under the vehicle and a spectrum from 20 Hz to 20 kHz. It plays exactly the same sounds as the site, from the same code.
- a music lab: pick a genre, roll a seed, mute or solo every track, steer intensity and mood, switch the voices, save favourites and share a song as a link.
Made with Claude
All code on this site was written by Claude (Anthropic), in conversation with me. The ideas, the world, the look and feel, and every decision are mine.
It wasn't one prompt. It was hundreds of them, and most were questions rather than orders: How should a monolith look after ten thousand years in the sea? How should foam behave when it meets a stone? How does a drop of water run down a pane of glass, how does it merge with others, and how does the world look inside it, seen from where you sit? What does the salt stain look like that it leaves behind? What does a wave sound like when it breaks right under you? Then looking closely at the answer, and pushing back: close, but the foam is too even. Again. Most of the work was asking the right question, judging the result and knowing when it was right.
I wrote about a novella's worth of prompts and read about a novel's worth of answers.
- Period
- October 2026
- Prompts
- ~270, about 16,600 words from me
- Answers read
- about 115,000 words
- Commits
- 190
- Code
- ~18,000 lines, ~3,500 of them shaders
- Tokens
- ~4.4 million written by Claude, ~1.35 billion processed in total
Numbers so far, as of 17 October 2026. They'll go up.
Under the hood
Plain JavaScript modules, no framework. A small build step bundles and minifies the code with esbuild and shrinks the shaders. Hosted on Cloudflare Pages. No cookies, no tracking, no third-party scripts or fonts; details in the imprint & privacy page.