STILL No. 1: A Product Designed to Disappear

Artificial Noodles ·

Commission Launch site for STILL, a fictional maker of luxury clear ice, and its first product: one cube. Audience: the design and tech crowd. Message: this ordinary thing is extraordinary, and it won’t last

Rival oryzo.ai, Lusion’s deadpan launch of a cork coaster (Awwwards Site of the Day)

Inspired by Clear ice (Wikipedia)

Built with Three.js WebGPURenderer · TSL node materials · WebGPU compute · Lenis + GSAP ScrollTrigger · Web Audio

Techniques Per-pixel refraction tracer with three-wavelength dispersion and internal reflection · persistent heat-and-melt field · directional-freezing front with 100,000 compute bubbles · photon-splat caustics through a glass of whisky · Fresnel-split lattice tracer for the view inside the cube

Direction A cool, black-flagged product studio; Bodoni Moda set like a fragrance launch; one gold accent, and only when the whisky arrives; diegetic sound (drips, a saw, a fracture, the pour)

Result You warm a cube of ice until it starts to give, watch 72 hours of freezing in one scroll, step inside it, pour a drink over it and watch it go

The Story

Bartenders pay serious money for ice you can read a newspaper through. Ordinary freezer ice is cloudy because water freezes from every side at once and traps its dissolved air in the middle. Clear ice is made by directional freezing: water freezes slowly from one side only, so the freezing front pushes the air and impurities ahead of it into a cloudy layer at the bottom. That layer is then cut away. What is left contains nothing, which is the point.

STILL is a company that doesn’t exist, selling a product that can’t last. The site leans into the joke the way Oryzo does with its cork coaster. Its first line is “Our first product is designed to disappear.” Then it proves it: the cube on screen is already melting, a counter in the corner reads % remaining, and your cursor makes it worse.

The Take

The cube is there before anything else. Hold your hand (or a finger) over it and it warms: the frost clears, the surface dents where you lingered, and drops run down the faces and land on the plinth in rings. The meter falls, and at the end the site tells you how much of it you took.

Then the scroll runs the product’s life backwards and forwards. Made slowly rewinds the cube into a block of water in a steel mould and freezes it top-down over 72 scrubbed hours, while a hundred thousand bubbles gather under the freezing front into the cloudy layer. Cut once takes that layer off with a blade and splits the block down to one cube. Nothing inside puts the camera inside the ice, where the faces become an endless reflected lattice that you can drag to look around. Serve drops it into a tumbler: hold to pour, the amber rises, the ice cracks from thermal shock and gold caustics spread across the plinth. Gone is a time-lapse melt down to a ring of water that dries. The last card offers “Make another”, which refreezes it and gives you the next edition number.

The Tech

The ice is ray-traced, not a material. Every fragment of the cube starts at the mesh surface and takes a normal from a signed-distance cube, perturbed by the melt dents and the running drops. It traces the reflection into a hand-built studio of plinth, wall, floor and black flags. Then it refracts three wavelengths separately (IOR 1.305 / 1.310 / 1.318) and follows each through up to three internal reflections before it exits. That spread of indices is why the edges carry a faint rainbow and why the hairline dark edges look like real ice rather than glass. It is all written in TSL, three.js’s node shading language, and compiled to WGSL. A runtime loop over the wavelengths, rather than unrolled code, took the shader from 37 to 60fps.

The melt is persistent. The cursor drops two kinds of heat into a small uniform field: warmth that fades over a few seconds, and melt depth that never comes back. The shape remembers where you were. Runs spawn from warm spots and slide down the faces, and when they land they ripple the puddle and trigger a drip sound.

The freezing is compute. A WebGPU compute pass places 100,000 bubbles (40,000 on phones) each frame. A bubble stays hidden until the freezing front reaches its home position, then rides just under the front, so the cloudy band thickens as it descends and settles at the bottom as the layer that gets cut off. The block itself is an analytic box tracer with the water, slush band, front sheet and kerf all shaded along the refracted ray.

The caustics are photons. In Serve, about a million photons are traced each frame from the key light through the tumbler wall, the whisky and the glass base. Each one is splatted onto the plinth with atomic adds into three colour buffers, then resolved into a texture. The gold on the plinth is the actual light path through the liquid, weighted by how far each photon travelled through it.

The scroll is one world. There are no page sections and no cuts. A single scroll position is mapped onto a chapter coordinate, which drives one camera through six authored keyframes, holding still while the freezing and the cut play out. Lenis is stepped inside the render loop so the camera and the scroll never disagree by a frame. Browsers without WebGPU get a designed still and a note, not a broken page.


Experience: STILL No. 1


This blog post was AI generated with Claude Code. Authored by Artificial Noodles.