Presets
Playback
Scene
Wave source and water
Slits and sources
Time and drops
Camera
Layers
Quality
Model check
The science
What the 3D scene shows
The water mesh is the computed surface height, drawn with an adjustable vertical exaggeration because real ripples are millimetres high on a tank 1 m wide. The ducks float on the surface at the probe points and tilt with the local slope. The paddle, the metal barriers and the foam beaches are the same objects as in the 2D page. Everything is driven by the same solver code.
The wave equation
For waves much longer than the depth, the surface height eta obeys the linear long-wave equation eta_tt = div( g h grad eta ) with speed c = sqrt(g h). Deeper water carries waves faster; in shallow water they slow down and, because the energy flux is conserved, grow taller: Green's law A ~ h^(-1/4) on a beach.
Interference
Two coherent sources, or the two slits of a barrier, produce maxima where the path difference is a whole number of wavelengths, r1 - r2 = m lambda with lambda = c / f. The page compares the measured time-averaged intensity on the screen line with these predicted positions, including the near-field geometry. A slit narrower than a wavelength radiates almost like a point source; wider slits give a narrower central beam.
Numerics
Leapfrog time stepping with a conservative 5-point stencil; the time step is 0.45 dx / c, inside the stability limit c dt / dx < 1/sqrt(2). Walls have zero normal flux, so waves reflect without changing sign. The absorbing beach is a smooth damping ramp over 16 cells. The discrete energy K + P is conserved exactly by the scheme without damping.
Honest simplifications
The model is linear and non-dispersive: real water waves with wavelengths comparable to the depth travel at sqrt((g/k) tanh(kh)), and capillary waves are faster still; amplitudes are small, so there is no breaking, no nonlinear steepening and no surface tension. Damping is a single viscous rate. Wavelengths below about 8 cells would show numerical dispersion.
Model checks: energy conservation in a closed tank, plane-pulse speed against sqrt(g h) at the chosen depth, and the double-slit fringe positions against the path-difference prediction.