← All work PRJ_02 — Rendering / Simulation · 2026

UNITY6
WEBGPU WATER

Touchable real-time water — ripples, buoyant interacting objects, god rays and caustics, on the GPU. A native Unity 6 / URP adaptation & enhancement of Evan Wallace's classic WebGL Water — now running in the browser and on budget tablets via WebGPU.

// live demo — runs in your browser via Unity 6 WebGPU

Drag the water to ripple · drag the ball · drag the background to orbit · scroll to zoom. Needs a WebGPU browser (Chrome / Edge, Safari 26+, or latest Firefox) — if the frame stays black, open it fullscreen ↗.

// runs on a budget tablet — live in the browser

↑ The live WebGPU build running in a mobile browser on a budget 2026 tablet — a Redmi Pad SE (Snapdragon 4G-class SoC, Adreno 610) — with the GPU heightfield sim, caustics and reflections rippling in real time under a finger.

Unity6 WebGPU Water — a tiled pool with a floating ball and caustics projected on the floor
Multi-level pools — several independent water bodies at different heights, each with its own surface, ripples and caustics
Role
Solo dev
Built with
Unity 6 · URP · C# · HLSL
Type
Rendering / Sim
Year
2026
// overview

It began as a faithful Unity 6 / URP port of Evan Wallace's classic WebGL Water (2011) — a 256² GPU heightfield driven by a compute shader, with an in-shader ray-traced surface and caustics projected onto the floor. Full credit for that original design is his.

From there it grew into a native Unity adaptation. The original's analytic shortcuts — one hard-coded ball, a faked pool reflection, a painted-on blob shadow, a hand-typed light vector — are replaced with real Unity rendering and physics: arbitrary objects displace the surface and float with two-way buoyancy, a real directional light drives the water, caustics and URP shadows together, and the look gains god rays and Beer–Lambert water fog.

// highlights
  • GPU heightfield sim (compute)256²
  • Volume-conserving ping-pongSTABLE
  • Ray-traced reflect / refractRAYS
  • Projected caustics + shadowsLIGHT
  • Runs in-browser via WebGPUWEB
  • One-click editor scene builderTOOLS
// enhancements over the original
  • Removed the hard-coded sphereSCENE
  • Any object interacts — obstacle map2-WAY
  • Real buoyancy (async GPU readback)FLOAT
  • Real Unity directional lightSUN
  • URP shadows cast & receivedSHADOW
  • Hybrid SSR + planar reflectionsMIRROR
  • True screen-space refractionSEE-THRU
  • Caustic-masked god raysVOLUME
  • Beer–Lambert water fogDEPTH
  • Foam + impact splash particlesFX