GPU Monte-Carlo light transport
CUDA photon-transport simulator for layered tissue — the ground truth behind every optical-property inversion, from PhD bench work through production inference.
Problem
Every optical-property inversion rests on a forward model: given the absorption and scattering of layered tissue, what reflectance does the camera actually see? Get that model wrong and everything built on top of it — the physics-informed training, the coefficient recovery, the oxygenation readout — inherits the error. The forward model is the ground truth, and it has to be trustworthy.
Light in tissue does not travel in straight lines. Photons scatter many times through layers with different optical properties before a fraction of them make it back to a detector. Capturing that faithfully means simulating radiative transfer, and doing it at the scale and speed that both research and a production pipeline demand.
Approach
I built a photon-transport simulator for layered tissue in CUDA and C++, modeling radiative transfer by tracing large numbers of photons as they scatter and get absorbed through the tissue layers. Writing it for the GPU is what makes the Monte-Carlo approach tractable — the simulation is embarrassingly parallel across photons, and CUDA lets it run at the throughput the work needs.
This is machinery I first built during my PhD, validated against bench-top tissue phantoms so the simulation matched physical measurement rather than only looking plausible. That same lineage of simulation-and-inversion carried forward into production, which is why the forward model behind the shipped inference is grounded in physics that was checked against the bench.
What shipped
The simulator is the ground truth behind every optical-property inversion in the stack — the forward model the physics-informed networks are trained against, from PhD bench work through production inference.
Because it was validated against phantoms, it gives the rest of the pipeline something rare: a forward model you can trust enough to constrain a neural network with, and to stake a clinical readout on.