Craft

Visualization toggles

Altitude: 20 m
Wake tuning
Wake force: 3.00 × speed
Wave speed: 60 u/s
Wave damping: 0.30 1/s
Surface stiffness: 250 1/s²  (ω=√m²)
W accelerate · S decelerate
A/D yaw · Q/E roll
Mouse drag orbit camera · Right-drag pan · Wheel zoom
R reset position & clear wake

Live values

Speed 0
Wake length (u) 0
Wake radius (u) 0
Max wave |amp| 0
Verts inside cone0
Verts in wave field0
Position 0,0,0
Pitch/Yaw/Roll (deg)0,0,0
Frame ms 0

How the math works

1. Wake = unit cone parented to craft, tip at origin, axis along craft-local +Z (behind).
2. Cone is scaled each frame: radius = a + b·speed, length = c + d·speed.
3. Each ocean vertex is transformed into the cone's unscaled local space via wake.matrixWorld-1.
4. Inside test: 0 < z < 1 AND √(x²+y²) < z (the unit cone).
5. While inside, inject a Mexican-hat force into hv: hv -= F·speed·(1 - 1.5·r/z)·(1 - z)·sat(h)·dt. Down on axis, UP at rim. sat = 900/(900+h²) throttles force in already-deep cells.
6. Klein-Gordon wave eq on ALL inner cells: hv = hv·eeffdt + (c²·∇²h/dx² - m²·h)·dt; h += hv·dt. -m²·h = per-cell spring (uniform ω=√m²). λeff = λ + 0.025·|h| = self-limiting damping.
7. Final height = ambient sines + h[i]. Stiffness sets bounce speed; wave speed sets propagation; damping sets persistence; saturation + |h|-damping prevent runaway at extreme settings.