Close01 / 05

01 / 05

Miscible

Whisky brand (unreleased) · at Build in Amsterdam · 2025 · Concept and development

Three procedural spheres merging on a reference grid

A drop of liquid that takes on the colour of a flavour — an early, unreleased proof of concept for a whisky client’s taste-finder tool.

The whisky flavour wheel is a fixed vocabulary — fruity, floral, grassy, cereal, feinty, peaty, nutty, woody, spicy, winey. Ten terms that describe what a spirit tastes of, normally presented as a diagram with labelled segments. The idea was to make the wheel behave like its subject instead of describing it: a single drop whose colour and movement shift as you move through the vocabulary, so a taste reads as a substance rather than a category.

Each term carries a colour. Selecting one drives three colour uniforms in the shader, and every parameter — colour included — is interpolated by a spring rather than a duration, so transitions have weight and never land on a fixed beat.

Faking it

The first version treats liquid as a picture problem. A fragment shader fills the frame with gradient noise built from hashed random vectors and a quintic interpolation curve, layered at two scales and displaced over time by a slow circular flow so the movement never repeats visibly. The three flavour colours blend into that field.

Depth is composited rather than simulated. An SVG mask carves the drop out of the noise, a reflection overlay sits on top, a separate canvas draws the shadow, and a vignette closes the frame. Five independent surfaces, each cheap, stacked into something that reads as one object. The shader runs through a small library I wrote for exactly this — bind a fragment shader to a canvas, push uniforms at it, and skip the rest of WebGL.

It works, and it has a ceiling. Every angle, every highlight and every edge is a decision someone made in advance. The drop cannot be looked at from anywhere the compositing did not anticipate, and two drops cannot touch.

Making it

The second version generates the liquid instead. It is a real three-dimensional scene: an isosurface built with marching cubes at a resolution of eighty, lit properly, with a custom sphere shader handling inset shadow, edge darkening and the way light sits inside a translucent volume.

Two metaballs merged into one shaded surface

The gain is not fidelity, it is behaviour. Metaballs merge when they approach each other and separate with surface tension, which is the one thing the composited version could never do and the one thing that makes a liquid read as liquid. Every parameter — isolation, strength, scale, resolution — is exposed live, so the material can be tuned by looking rather than by guessing at numbers.

The cost is honest: the first version runs anywhere, the second wants a GPU.

Two versions

Two ways of arriving at the same image, separated by a few weeks. The first is a picture of a liquid. The second is a liquid, and behaves like one when you are not looking at it head on.