About this simulation
Click anywhere on the pool to drop a virtual stone and watch a perfect circular wavefront expand outward. The surface height at every point is computed in real time by a GLSL vertex shader that applies the principle of superposition — summing contributions from up to 12 simultaneous ripples — so you can see constructive and destructive interference patterns emerge exactly as they do in a real pond.
🔬 What it shows
Each drop launches a circular wavefront whose amplitude decays both with distance (geometric spreading, modelled as an exponential falloff) and with time (the Damping slider controls how quickly energy is lost). Where two or more wavefronts overlap, crests meeting crests produce bright constructive fringes while a crest meeting a trough cancels out — destructive interference — visible as calm patches between the rings.
🎮 How to use
Click or tap the water surface to drop a single stone. Drag to orbit the camera. Use Wave speed to change how fast the rings travel, Damping to control how quickly they fade (high values give sharply decaying ripples; low values let them persist and cross the pool), and Wavelength to widen or tighten the ring spacing. Hit Rain (5 s) to scatter random drops for 5 seconds and watch complex superposition patterns fill the pool, or Clear pool to reset.
💡 Did you know?
Water surface waves are actually dispersive — in deep water, longer wavelengths travel faster than shorter ones, unlike sound in air. The interference patterns you see here are identical in mathematics to those produced by light passing through a double slit (Young's experiment) or by the overlapping radio signals from two antennas. The same wave equation governs ripples on a pond, seismic surface waves, and the interference of quantum probability amplitudes.
Frequently asked questions
Why do the ripples fade as they spread outward?
Two independent processes reduce the amplitude. First, geometric spreading: the same wave energy is distributed over an ever-growing ring circumference (proportional to distance), so amplitude falls roughly as 1/√r in 2-D. Second, the Damping control adds an exponential time decay that models viscous energy loss in real water. At high damping settings the ring fades within a short time; at low settings waves bounce across the pool for longer before dying away.
What are the bright and dark bands where two ripples cross?
Those bands are interference fringes. Where a crest from one source coincides with a crest from the other the amplitudes add — constructive interference — giving a brighter, taller peak. Where a crest meets a trough they cancel — destructive interference — leaving a calm, flat region. The pattern is fixed in space for steady continuous sources but shifts and morphs here because each stone drop is a transient pulse, so the fringe geometry changes as both wavefronts evolve.
What does the Wavelength slider actually change?
Wavelength (λ) sets the spatial period of the ripple — the distance from one crest to the next. The wave number k = 2π/λ is passed directly to the GLSL shader. Shortening the wavelength packs more rings into the same radius and brings interference fringes closer together; lengthening it produces wide, widely-spaced rings. Wave speed and wavelength together determine frequency via f = v/λ, so changing either one also changes how many crests pass a fixed point per second.
How many ripples can the simulation handle at once?
The shader supports up to 12 simultaneous active ripples stored in a GPU uniform array. New drops cycle through this ring-buffer, overwriting the oldest entry once the limit is reached. The Stats panel counts both active ripples and the total drops you have placed since the pool was last cleared. Older ripples that have fully decayed visually still occupy a slot until overwritten, which is why you may occasionally notice a very faint ghost ring reappearing at the position of an old drop.
What does Rain mode demonstrate?
Pressing Rain (5 s) drops a new stone roughly every 300 ms at a random position for five seconds — up to about 16 drops in total (the last 12 are active at any moment). With many overlapping wavefronts the pool surface becomes a complex superposition of dozens of interfering circular waves, producing the chaotic, ever-shifting pattern seen on a real pond surface during a downpour. It is also a vivid demonstration of how coherent sources (regular timing) vs. random sources (Rain) produce very different interference textures.