// the find
2Retr0/GodotOceanWaves
FFT-based ocean-wave rendering, implemented in Godot
A from-scratch implementation of Tessendorf's FFT-based ocean wave simulation inside Godot 4, using compute shaders for spectrum generation, a custom Stockham FFT, and a full shading/foam/spray pipeline. This is for graphics programmers who want a real reference implementation of the technique used in AAA water rendering (the 'Atlas' GDC talk being the obvious comparison), not a drop-in water plugin for a game.
The FFT is a real GPU implementation via RenderingDevice compute shaders using Stockham (avoiding bit-reversal) rather than a naive port, and the README documents the actual math (TMA spectrum, Hasselmann directional spreading) with citations back to the papers instead of hand-waving it. The load-balancing scheme — skipping cascade updates when frame time allows and spreading which cascade updates per frame — is a genuinely useful trick for anyone doing similar amortized-cost simulation work. Multi-cascade tiling is implemented and documented honestly, including where it breaks down.
The author flags known unknowns in the code itself ('honestly, not sure if it works lol' on cascade phase offsetting), which is refreshingly honest but means don't trust that subsystem without verifying. Sea spray particle density scaling is called out as broken by design (adding particles barely increases visible spray because of bounding-box culling) with no fix shipped. There's no license file referenced for the core project beyond the two attributed third-party pieces, and as an 'experiment' repo (per its own description) it has no tests, no CI, and wasn't built to be integrated — expect to extract and rewrite the compute shader pipeline rather than use this as a library. Last push was April 2025, so it's not actively maintained.