Open Ocean: a realistic sea, rebuilt in the browser
A real-time 3D ocean simulation in the browser: the 1942 destroyer Kikuzuki steaming through wind waves and swell. An independent project by Ethan Cho.
The starting question
If you hand another developer's published technical notes straight to an AI agent, how far can a browser alone, without a game engine, get toward a realistic sea?
Approach
Japanese developer KANA (@KanaWorks_AI) published technical notes on X for a realistic ocean in Godot; an AI agent ported them to three.js. Waves come from an oceanographic wave spectrum (JONSWAP) plus swell, computed with a GPU FFT. Whitecaps form where the surface folds, and the ship leaves a wake and spray. Whitecap coverage self-calibrates to Monahan's wind-speed formula, and the ship rides on wave heights read at 27 points. Day, dusk, storm and calm presets are available.
Artifact and current status
The public experience is hosted on Vercel; the source code is in a private repository. The public page and desktop-browser behavior were checked on October 13, 2026.
Limits and what is not verified
This does not claim to match the original video's quality. An independent visual review scored it 4.5 out of 10 against the original; some fixes followed and it was not re-scored. The ship is a converted copy of “Japanese destroyer Kikuzuki in 1942” by DD KIKUZUKI ASSOC. (CC BY 4.0). Thin rigging can break up at a distance, and phones or devices without WebGL2 were not tested.