A real-time snow rendering tech demo using WebGPU, Babylon.js, and hand-written WGSL, with fully procedural geometry, shading, and animation generated at load time.

Stars

309

7-day growth

No data

Forks

81

Open issues

1

License

MIT

Last updated

2026-07-28

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

This repository showcases an impressive array of cutting-edge rendering techniques—clipmap terrain, procedural snow shading, additive terrain deformation, IK-based procedural character, particle-free wake, and a complete post-processing chain—all in real-time on WebGPU with no external assets.

Who it is for

  • Graphics programmers and rendering engineers
  • WebGPU early adopters and enthusiasts
  • Game developers interested in procedural content generation
  • Technical artists and researchers in real-time rendering

Use cases

  • Learning advanced real-time rendering techniques (e.g., clipmaps, PCSS, procedural animation)
  • Prototyping snow environments or weather effects in WebGPU
  • Benchmarking WebGPU performance on modern GPUs
  • Educational reference for building a fully procedural scene without textures or meshes

Strengths

  • Fully procedural content: no meshes, textures, HDRIs, or animation data; everything generated on the GPU at load time
  • High performance and low draw calls: ~353k triangles in 15–19 draw calls, GPU frame time ~3.22 ms on RTX 5070 Ti
  • Comprehensive documentation of every system (terrain, snow shading, deformation, character, spells, post-processing)
  • MIT-licensed, no third-party assets, and runs locally with minimal dependencies (Vite, Babylon.js)

Considerations

  • Requires a WebGPU-capable desktop browser and a discrete or recent integrated GPU; no WebGL fallback
  • High hardware requirements: approximately 350 MB VRAM and a modern GPU for real-time performance
  • Tech demo focus: not a production-ready game engine or reusable library; code tightly coupled to the demo scene

README quick start

SNOWFLOW

A real-time snow rendering tech demo. WebGPU, Babylon.js, hand-written WGSL. Everything you see is generated on the GPU at load time — there are no textures, no meshes, no HDRIs and no animation data in this repository.

snowflow-lilac.vercel.app

Requires a WebGPU-capable desktop browser (Chrome/Edge 113+, Firefox 141+, Safari 26+) and a discrete or recent integrated GPU. There is no WebGL fallback by design — if navigator.gpu is missing the page says so and stops.


Controls

Clickcapture the pointer
W A S Dmove, relative to the camera
Mouselook · Wheel zoom
Shiftsprint
Right mouse (hold)snow-surf — carve across the field and throw a wake
15the five spells (2 is a held cast)
F1 or `settings and performance overlay

The overlay exposes every art parameter as a live slider — sun angle, wind bearing, subsurface radius, deformation depth, tonemap curve, exposure — plus a frame-time graph with median / 95th / 1% low, draw calls, triangles and a per-system CPU breakdown. Every system can be toggled off individually, and there are debug views for normals, depth, cascade coverage, the deformation buffer and the raw shadow map.


What it does

Terrain

A nested-ring geometry clipmap: 8 rings, 8.5 cm inner spacing, ~870 m radius, 333k triangles — one static mesh, one draw call. Vertices carry only (gridIndex, ringLevel); world placement, CDLOD morphing and displacement all happen in the vertex shader, so there is no CPU rebuild and no per-frame upload.

The heightfield underneath it is layered gradient noise with analytic derivatives, anisotropic about a single prevailing wind: broad transverse dune ridges, a long low swell, medium drifts sheared along the wind for lee-face asymmetry, and sparse rock outcrops. It bakes once into a 4096² RG32F texture and is mirrored back to the CPU, so character grounding samples exactly the surface that is drawn rather than a re-implementation of it.

Snow shading

Multi-scale normals — baked macro slope, analytic sastrugi and ripples, three tiled detail scales, triplanar on steep faces — over wrapped diffuse, a back-scatter subsurface term with depth-dependent blue tint, GGX specular, SH ambient with a solved snow bounce, and procedural view-

Description

A real-time procedural snow rendering demo built with WebGPU, Babylon.js and hand-written WGSL. Features GPU-generated terrain, snow deformation, procedural characters, cloth, surf wakes, water spells, atmosphere and post-processing—without textures, meshes, HDRIs or animation assets.

Related repositories

Similar projects matched by category, topics, and programming language.

gnipbao
Featured
gnipbao GitHub avatar

story-to-handdrawn-video

A Remotion-based tool that converts Chinese story text or ordered hand-drawn images into vertical hand-drawn diary-comic animation with handwritten captions, left-to-right reveals, optional page-curl transitions, and silent H.264 output for post-production dubbing.

AI & Machine LearningAI Agents
683
kalhintz
Featured
kalhintz GitHub avatar

claude-design-mcp

A local MCP server that lets Claude Code generate, iterate on, and screenshot HTML designs using your existing Claude CLI subscription.

AI & Machine LearningAI Skills & Prompts
14
Krishnagangwal
Featured
Krishnagangwal GitHub avatar

CS-Fundamentals

A curated collection of Computer Science fundamentals (PDFs, notes, cheatsheets, interview question banks) for placement preparation, covering seven core subjects plus general resources.

Data & DatabasesDatabases & Storage
2,326