Drag across the film to blow on it. Tap it to pop it. Tilt your phone to pour it.
A soap film is a sheet of water a few hundred nanometres thick, held between two layers of soap. Light reflecting off its front and back surfaces interferes, so every thickness reflects its own colour. Thinner than about 30 nm it reflects almost nothing and looks black.
The page runs a fluid simulation of the film on your GPU. Thick film is heavier than thin film, so it sinks along gravity (your phone's tilt, or the dial) and thin film rises. The frame drinks liquid from the film's edge, which sends thin plumes up from the border, and the film evaporates until black film spreads from the top and it pops. The colour of each point is the reflection summed over the visible spectrum for its thickness.
A popped film is replaced by a new one after a moment; New film does it at once. Full screen hides the buttons, and the ✕ in the corner brings them back. On a computer, the small dial sets which way is down.
This page draws with WebGPU, and this browser does not offer it. Recent Chrome, Edge and Safari do.