Pranjal Sailwal

recovering from log

  1. seq 0000recovering from log

Spectral Monte Carlo Path Tracer

“Is this render right, or does it only look right?”

A physically-based C++ renderer, cross-validated at 1.81M samples/sec

1.81M

samples a second, checked against an analytical answer

BVH

bounding-volume hierarchy for ray traversal

Reel 1 of 7: Now showing

Scroll to watch. Click someone in the audience.

  • In the audience

Now showing

Spectral Monte Carlo Path Tracer

A physically-based C++ renderer, cross-validated at 1.81M samples/sec

The case in short.

The problem
To render light correctly you have to simulate it physically, wavelength by wavelength, and then check the result against known analytical answers instead of judging it by eye.
Who it is for
Readers of the preprint who want to reproduce the validation, and anyone learning how spectral rendering works.
My part
Sole author; published the method as a preprint.

How it was done

  1. I built BVH acceleration for O(log n) ray traversal, Monte Carlo path integration and spectral wavelength sampling.
  2. I documented a reproducible validation method that cross-checks the output against analytical solutions.
  3. I published the method as a preprint so others can reproduce it.

What came out

A renderer checked against analytical solutions, with the method published as a preprint. The throughput figure comes from the preprint.

What it rests on.

Every figure about this project, and how each one is known. The folder structure, languages and history on the right are read straight from GitHub, so they say what the code is, not what I wish it were.

1.81Msamples a second, checked against an analytical answer
BVHbounding-volume hierarchy for ray traversal
github.com / sailwalpranjal / spectral-monte-carlo-raytracer

3

commits

2

files

0

folders

31 KB

on disk

  • C++ 100%
  • spectral-monte-carlo-raytracer/
  • README.md
  • spectral_raytracer.cpp
Sep 2025 → Sep 2025.md ×1.cpp ×1

NeuroTract

A diffusion MRI research workstation: tractography, connectomes and provenance in one interface

If you want to talk about how this was built, write to me.

  1. seq 0001you arrived
  2. seq 0002write back