Presets
Playback
Waves and barrier
Camera
Layers
Quality
Model check
The science
Waves on a grid
The water height u obeys the wave equation, utt = c² (uxx + uyy). The lab steps it on a square grid (1 cell = 1 cm) with the standard second-order rule unew = u + (u - uold)(1 - damping) + (c dt/dx)² ∇²u, the same rule the 2D page uses. Cells marked as barrier are held at zero (a hard wall that reflects the wave), and a soft sponge near the edges absorbs waves so they do not bounce back.
Wavelength on a grid. In the continuum λ = c/f. A grid slows short waves slightly, and for waves along a grid axis the scheme obeys sin(π f) = (c dt/dx) sin(k/2), giving a wavelength a little shorter than c/f. The lab uses the scheme's own value for predictions, and the graph shows both.
Diffraction and interference. A slit of width a spreads a wave; the first minimum of a single slit lies at sinθ = λ/a. Two slits (or two sources) a distance d apart make fringes of spacing about λL/d at a screen distance L; a grating of many slits sharpens them into orders at sinθ = mλ/d. The screen bar and the first graph show the time-averaged intensity there. A moving source piles up waves in front and stretches them behind it: the Doppler effect.
Honest simplifications
This is a scalar 2D wave with constant speed and linear damping, not real water: no surface tension, no depth-dependent dispersion, no breaking. The screen is a line of numbers, not light. The height you see is exaggerated by a slider and is only for display; the simulation does not change with it. Predictions use the screen distance in cells (centimetres), and the fringe formula is the far-field one, so it is only approximate close to the slits.
Model checks (run once at load, on separate small tanks)
A plane wave's wavelength against the dispersion relation of the scheme; the frequency of a standing mode in a walled cavity against the discrete resonance formula; the decay rate of a damped mode against damping/2; and the double-slit fringe spacing against λL/d.