Presets
Playback
Sea state, sea floor and buoy
Wind speed or swell height and period set the incoming waves; depth and beach length shape shoaling.
Model checks
The science
Dispersion. Linear (Airy) waves on depth h obey ω² = g k tanh(kh). The page solves it by Newton iteration for every depth. Deep water (kh > π): c = g/ω, long waves outrun short ones; shallow water (kh < 0.3): c = √(gh). The group velocity (energy speed) is cg = ½ c [1 + 2kh / sinh 2kh], half of c in deep water and equal to c in shallow water.
Shoaling and refraction. For a slowly varying sea floor the energy flux E cg cosθ is conserved, so the amplitude changes as a ∝ √(cg0 cosθ0 / (cg cosθ)) (Green's law). The transverse wavenumber ky is constant (Snell's law), which bends crests towards the beach.
Sea state. The wind sea is a sum of 24 components with random phases whose amplitudes come from the Pierson-Moskowitz spectrum S(ω) = α g² ω-5 exp[-β(ω0/ω)4], α = 0.0081, β = 0.74, ω0 = g/U10. The significant height is Hs = 4√m0 ≈ 0.21 U²/g.
Buoy. The buoy is a heave-only mass-spring-damper driven by the local surface elevation, z'' + 2ζωn z' + ωn²(z - η) = 0 with ζ = 0.1, integrated by RK4. Its steady response ratio 1/√[(1-r²)² + (2ζr)²], r = ω/ωn, is checked numerically.
Honest simplifications. Linear theory: crests are not sharpened (no Stokes or cnoidal nonlinearity), and components are superposed after shoaling, which is only approximately right near breaking. Breaking is a cap: the local height is limited to 0.78 h (regular swell) or about 0.5 h (significant height of a spectrum) and the lost energy is shown as foam, with no surf-zone dissipation, set-up or run-up. Refraction uses a depth that changes only with the offshore distance; reflection, diffraction around the island, wind input and currents are ignored. The buoy and boat follow the surface as point followers (no wave-body radiation or diffraction), and the boat has no hull dynamics. The geometry is drawn at true scale, but the island, boat and buoy are decoration. Independent educational model.
What to try
- Switch to Regular swell and watch the wave height grow and the wavelength shrink as the water gets shallower, until the yellow height meets the red 0.78 h limit and the wave breaks.
- Pick Buoy resonance: when the buoy heave period matches the wave period the buoy moves more than the water; the white dot on the response curve shows where you are.
- Tilt the direction: crests bend towards the beach (refraction, Snell's law) in the plan view.