A waterbending duel game in the browser, built on real-time procedural snow.
You are a bender on an endless snowfield. Throw crescent waves, catch the rival's attacks out of the air and send them back, raise erupting walls of ice, and fight a full duel — first to two rounds — against a rival who bends with the same kit you do. Between fights, surf the dunes and break the scenery.
Everything is generated on the GPU at load time: no textures, no meshes, no animation assets. WebGPU only.
npm install
npm run dev # http://localhost:5173 — needs a WebGPU browser
Chrome or Edge 113+ recommended (Firefox 141+, Safari 26+).
| Input | Action |
|---|---|
| WASD + mouse | move / look |
| Space (hold) | snow-surf — waves thrown at speed are bigger |
| Shift | sprint |
| Click | crescent wave with a water bolt riding it |
| Click (hold) | the ribbon stream — push and chip; flick the mouse to crack the whip |
| Click an incoming bolt | catch it, hold it, throw it back harder |
| Right click | wall of ice — a shield at your feet, an erupting trap cast at the rival |
| Right click (hold) | octopus form — orbiting water that auto-catches |
| Q | vortex — a pull-and-slow zone with an iced ring telegraph |
| E | bloom — heal, erupting at your own feet |
| T | start / rematch the duel |
| F1 | settings and performance overlay |
First to two rounds, 60 seconds each. The rival walks in, squares up, and fights with the full kit: waves with a readable wind-up (its aim freezes at commit — strafe the wind-up and the shot misses honestly), reactive walls it advances behind, traps grown under your feet when you're caught, vortexes dropped ahead of your surf line, catches, and heals. Hits carry hitstop, directional camera kicks, and a KO plays out in slow motion with the loser frozen into a cage of ice.
The field itself is part of the fight: ice gardens and boulders block bolts and shatter when hit, drifted snow mounds detonate, and the water freed by breaking ice goes to whoever broke it.
This is a game built on top of snowflow_demo by Noniv — a real-time procedural snow rendering demo (Babylon.js / WebGPU / hand-written WGSL) with GPU-generated terrain, persistent snow deformation, a procedural character with cloth simulation, snow-surf wakes, water spells, atmosphere and post-processing. The rendering and simulation substrate is theirs and it is extraordinary — go star it. The original demo's full technical README is preserved at docs/SNOWFLOW-DEMO.md.
The game layer added here (src/game/) includes the duel rules, the rival's
AI, the projectile system with catch-and-redirect, breakable world furniture,
the HUD, hitstop and KO direction, and the combat tuning — built in the same
spirit as the original: procedural everything, pooled everything, no assets,
allocation-free frames.
MIT licensed, same as the original — see LICENSE.