What is Ultra-Water and what features does it include?

Ultra-Water is a high-performance real-time ocean renderer built for Three.js and WebGL2 that delivers advanced marine visuals including shore breakers, dynamic foam, caustics, underwater rendering, and physical buoyancy. The project runs at impressive frame rates ranging between 170 and 300 fps on capable desktop hardware.

The repository includes a comprehensive demo island scene with multiple camera profiles, a live performance HUD, and built-in benchmark tools that leverage fence-based timing for accurate measurements. Users can also explore projects related to generative 3D environments, such as tools that clonan animaciones web or assistants that ejecutan sistemas virtuales in unique ways.

How is the rendering pipeline and wave simulation structured?

The wave architecture relies on a Tessendorf Fast Fourier Transform with four cascades scaled at 600, 85, 12, and 2.1 meters, stacked in a single atlas where each Stockham IFFT stage is an MRT draw. The surface utilizes a camera-centred polar grid containing roughly 190k vertices whose rings grow geometrically with camera height.

Additional rendering passes handle area-ratio caustics mapped through slopes onto depth planes, double-sided underwater refraction with Snell's window, half-res sun shafts, and marine snow. Floating rigid bodies interact with GPU-evaluated water heights at 240 Hz substeps to simulate realistic buoyancy and drag.

How do I install and run Ultra-Water locally?

Getting started with the development server requires cloning the repository and running standard Node package manager commands to install dependencies and launch the local environment.

Follow these steps to set up and run the project locally:

Clone the repository from GitHub or download the source code.

Run npm install in your terminal to fetch all required dependencies for the project environment. Execute npm run dev to start the local development server and open the printed localhost URL in your browser.