
react
React is a JavaScript library for building user interfaces with declarative, component-based, and cross-platform design.

A cinematic, physically based ocean renderer built on Three.js and WebGL2, featuring a hybrid wave system with GPU FFT Tessendorf, multi-layer Gerstner swells, switchable spectra, GGX water BRDF, Jacobian-driven procedural foam, and HDR reflections.
50
No data
6
0
MIT
2026-06-26
It delivers near-photorealistic open ocean visuals with a sophisticated combination of FFT and Gerstner waves, real-time HDRI environment integration, and a shader-based foam system—all without requiring a build step or external bundler.
A cinematic, physically based ocean renderer. Hybrid wave system (GPU FFT Tessendorf + multi-layer Gerstner swell), switchable oceanographic spectra, GGX water BRDF, Jacobian-driven procedural foam, HDR reflections and depth-based refraction. No terrain, boats, weather or gameplay — just the water, as close to photoreal as possible.
No build step is required — the app loads Three.js r185 from a CDN via an import
map. You only need to serve the folder over HTTP (ES modules don't load from
file://).
# any static server works, e.g.
npm start # -> http://localhost:5173 (uses `serve`)
# or
npx serve .
# or
python -m http.server 5173
Then open the served URL. A modern desktop GPU + WebGL2 is required (the FFT
needs float render targets, EXT_color_buffer_float).
Open the Environment (HDRI) folder in the GUI → Load .hdr… and pick an
equirectangular .hdr file. It drives both the water reflections and the sky
dome, so the horizon and the reflected sky always match. Use Procedural Sky
reverts to the built-in analytic sky.
index.html # import map (three@0.185) + canvas + loader
src/
main.js # renderer, camera rig, frame loop, GUI wiring
config.js # single source of truth for every parameter
Ocean/
OceanRenderer.js # surface mesh, sun, sky, HDRI lifecycle
OceanSimulation.js # FFT + Gerstner orchestration, sea-state rebuilds
OceanMaterial.js # the water ShaderMaterial + uniform sync
FFT.js # GPU Tessendorf FFT (butterfly, spectrum, normalize)
Spectra.js # Phillips / JONSWAP / Pierson-Moskowitz variance
Gerstner.js # long directional swell authoring
Foam.js # Jacobian foam uniforms + GLSL chunk
Shaders/
water.vert.js # hybrid displacement (FFT cascades + Gerstner)
water.frag.js # PBR shading: GGX, Fresnel, Beer-Lambert, SSS, foam
fftKernels.js # spectrum-update / butterfly / permutation kernels
fullscreen.vert.js # full-screen pass-through
Utils/
GPUCompute.js # float render targets + full-screen pass helper
GUI.js # lil-gui panel (Ocean/Water/Foam/Lighting/Color/Perf)
Sky.js # background dome m
Similar projects matched by category, topics, and programming language.

React is a JavaScript library for building user interfaces with declarative, component-based, and cross-platform design.
A GPT‑image powered app that extracts individual garment cutouts from photos, organizes them into a digital wardrobe, and generates modeled outfit previews.
A browser-based first-person shooter built entirely with procedural generation and orchestrated AI agents, featuring 55k lines of Three.js/WebGL2 code and no art assets.