Thornbury Digital Menu

Fig. 08 — Case

Null Carnival

A night fair you turn, not a page you scroll.

Null Carnival: a 3D fairground gate in warm bulb-lit gold on near-black, the words NULL CARNIVAL arched across the entrance. Fig. 08 Events / WebGL

Deployed and open — nothing on this page is a mockup

Open the live site

IWhat it is

A travelling night fair that appears once in a decommissioned civic building. The whole site is one room, and scrolling turns it around you.

Fairground print gone nocturnal — painted banner plates, gilt hairlines, bulb strings and sodium lamps in a wet concrete hall — composed around an absence.

IIWhat was decided

  1. A carnival with a hole in it.

    NULL is the missing value: the masks have no faces, the prize shelf is empty, the ticket tier that matters costs nothing and cannot be bought, and the visitor carries a hole with them across the page.

  2. One room, seven stations.

    A drained natatorium: a concrete deck ring, a sixteen-unit pit with a carousel standing at the bottom, seven monumental gilt arches around the outside and a heptagram of bulb wire overhead. Scroll rotates the camera around the ring through seven stations, looking out at a booth or in and down into the tank.

    CheckEach station carries its own air density, searchlight sweep and carousel speed, interpolated the same way the camera path is.

  3. Three channels, one switch.

    Sodium, mercury and carmine. Taking a booth, a programme row or a ticket tier re-lights the entire site in that channel at once — the WebGL lighting, the floor tint, the portal, the bloom and every CSS accent — as a 620 ms crossfade rather than a cut.

  4. The cursor is an absence.

    Inside it the world inverts and channel-rotates, with a mercury rim. Masks within reach turn to face it, the glyph storm is pulled into orbit around its edge, and the floor ripples bend toward it. Left still for four seconds it wanders the room on its own.

    CheckOn touch the null is a fixed band across the centre third of the screen, and the content scrolls through it.

  5. The composer is written by hand.

    The site’s content security policy forbids inline script, which forbids an import map, which puts every stock post-processing addon out of reach. So the four fullscreen passes were written here: a bright-pass with a soft knee, two octaves of blur, then distortion, chromatic aberration, bloom, the null lens, vignette, scanline and grain.

  6. The wrong calliope.

    Opt-in sound, synthesized live with no samples: a detuned square organ playing in three over a clock that counts in four, so the two only realign every twelve beats, with a struck bell on the downbeat of every fourth bar and a bellows drone underneath.

IIIWhat was measured

Masks
180one instanced draw, each a signed-distance field drawn in the shader
Bulbs
~390one points draw on catenary spans, chasing at 84 BPM with a few duds
Glyphs
3,000the symbol storm, gathered into orbit around the null
Channel crossfade
620 msthe whole site re-lit, WebGL and CSS together

Fig. 10 — Next

Candela

A rangefinder you can pick up and turn.