Sunlit Shore
A slice of coast held in a glass tank: palms on the dune, a school working the shallows, a whale in the deep end, and a sea that turns bioluminescent after dark.
Island Ocean System · 2026
How it is made
A 250-metre slice of procedural island bathymetry is cut into a glass block and stretched four times vertically, so the waves are solved in true metres and only the final vertex placement is exaggerated. Spectrum-shaped Gerstner trains break against a depth-limited clamp; a scene-depth prepass drives refraction and view-angle-scaled Beer–Lambert absorption graded from turquoise shallows to open blue. A rigged humpback surfaces on a shallow forward arc to release a short condensation blow, and follows a separate accelerated approach into a gravity-led breach, rolling through the apex before returning on its flank; exit spray, the primary crown, a delayed body slap, ballistic droplets and mist all share the exact contact points that seed the persistent surface rings. The authored fish GLB is baked into one GPU-instanced draw call; bounded individual pace variation, formation breathing, glass avoidance and a whale-alert state let the school compress, flee and gradually regroup. Surf foam is drawn from a tiling Worley cell field rather than smooth noise, which is what lets the swash edge fray instead of fading, and the glass carries wipe marks and settled dust that only appear when the light rakes across them. At night the water is lit solely by patchy agitation-triggered bioluminescence keyed to breaking foam, wave shear and the swash edge, under a hand-built studio backdrop rather than an atmospheric sky. Multisampling is confined to the geometry pass, while resolution-scaled bloom carries the broad glow at lower cost.
Techniques: Spectrum-shaped Gerstner waves · Depth-aware refraction · Procedural island bathymetry · Agitation-driven bioluminescence · GPU-placed fish school · Worley-cell surf foam · Rigged whale breach and spray · Resolution-scaled bloom
This interactive WebGL sketch requires JavaScript.