James Randall Musings on software development, business and technology.
Path Tracer

The source code is on GitHub.

A real-time path tracer built entirely in WebGPU compute shaders — no RT cores, no ML denoisers, just maths and triangles. Woke up one morning and wanted to follow up the Wolfenstein 3D raycaster with a ray tracer… obviously Doom levels were an obvious starting point.

It traces rays through Doom levels and procedural dungeons at 60fps, with a BVH, temporal accumulation, and à-trous denoising. At 512 samples per pixel it’s genuinely path-traced — every pixel computed, nothing hallucinated. At 4 samples it’s grainy but honest, and the noise reads as atmosphere. Thats what I tell myself anyway.

This was a real voyage of dicovery and a lot of fun. You might be able to run Doom on a fridge: but you certainly can’t the ray traced version!

Best thing to do is to try it below. You’ll need to press play to start - its computationally heavy and is likely to make fans spin up. I’ve written about building it too.

Built by James Randall — tool-maker, system builder, and occasional cyclist. Walking the hills with my four-legged friend when I'm not building worlds.
© 2025