Controls
Presets
Playback
Layers
Model checks
The science
The sea is a sum of Gerstner waves: each surface point is a particle moving on a circle (deep water), x = x0 - Q a sin(k x0 - omega t), z = a cos(k x0 - omega t), so crests sharpen into the familiar trochoid and become cusps at Q = 1 (steepness k a = 1). Linear deep-water dispersion is omega^2 = g k tanh(k h), giving phase speed c = omega/k and group speed c_g = (c/2)(1 + 2kh / sinh 2kh) (half of c in deep water).
Component amplitudes are drawn from the fully developed Pierson-Moskowitz spectrum S(omega) = alpha g^2 omega^-5 exp[-0.74 (g/(U omega))^4], alpha = 0.0081, peak at omega_p = 0.877 g/U for wind speed U; component amplitude a_i = sqrt(2 S d omega). Significant wave height is H_s = 4 sqrt(m0) = 0.2092 U^2/g (about 1.7 m at 8 m/s wind).
Simplifications: one direction only (the 3D page spreads directions), random phases fixed per seed, no wave breaking or wind-wave energy transfer, a fetch-unlimited spectrum, and the finite-depth slider only changes dispersion (no shoaling or breaking).
What to try
- Raise the wind: the peak shifts to lower frequency (longer, faster waves) and H_s grows as U^2.
- Raise choppiness to 1 and watch crests sharpen toward cusps.
- Reduce depth to 10 m: long waves slow down (dispersion check).
- Show only the dominant component to see a clean orbital circle.