All labs

Lab

Live

Path Tracer

Progressive path tracing in a browser tab, denoised.

A physically-based path tracer with an SVGF denoiser. The denoiser is the entire point — it is what makes a handful of samples per pixel resolve into something that looks converged, instead of something that looks like sand.

raytracer.ciaranmccormack.com (opens in a new tab)

Why denoising is the project

Brute-force path tracing converges, eventually, and "eventually" is not a frame budget. Spatiotemporal variance-guided filtering reuses history and steers its blur by variance, so edges survive while noise does not — the difference between a renderer you watch resolve and one you can actually move a camera through.

Stack

  • WebGPU
  • Path tracing
  • SVGF denoising
  • TypeScript

More labs

Keep looking

  • Practice between lessons, for band kids.

    Notation and tab that plays back, listens through the microphone, and tells a kid whether they actually hit the note. Built for the gap between weekly lessons — where nearly all the practice happens and nobody is there to correct anything.

    • Next.js
    • VexFlow
    • Tone.js
    • Pitch detection
    • +1

Want the long version?

Happy to go deeper on any of this — architecture, trade-offs, what I would do differently.