The Sponza palace atrium rendered in WebGPU with hundreds of colored point lights illuminating stone columns and casting reflections across the marble floor.
The Sponza Atrium has been rendered roughly ten thousand times in graphics demos since 1999. You'd think there's nothing left to discover. But Georgi Nikolov's WebGPU take makes you look anyway.
This is a full deferred renderer: G-buffer with packed normals, cascaded shadow maps, over 400 point lights shuffled around by a compute shader, screen space reflections with switchable Hi-Z and linear tracing, physically based bloom, TAA. The works. What makes it interesting isn't the feature list though. It's how cleanly the architecture handles WebGPU's explicit pipeline model. Each mesh knows which render passes it belongs to and carries the right pipeline state objects for each. No ubershader heroics. No runtime pipeline switching chaos. Just careful separation that lets the whole thing breathe. There's also a performance governor that quietly disables effects if your frame rate dips below 60 for too long. It's the kind of defensive engineering that separates demos from things people can actually run.
Georgi wrote a detailed frame analysis walking through every render pass, which is worth reading alongside the source. The demo runs in any WebGPU-capable browser. Poke at the UI controls. Toggle the SSAO on and off. Switch reflection modes. If you've been waiting for an excuse to take WebGPU seriously, this is a good one.
- Live Demo: https://gnikoloff.github.io/webgpu-sponza-demo
- Technical Breakdown: https://georgi-nikolov.com/writing/webgpu-sponza-frame-analysis
- Source Code: https://github.com/gnikoloff/webgpu-sponza-demo
- Author: Georgi Nikolov (X, GitHub, LinkedIn, CodePen)