A CPU software rasterizer that renders 2D Gaussian splats to a PPM image.
- Premultiplied write —
splat()no longer bakes alpha into colour. Straight colour is stored; compositing happens explicitly inwritePPM. - Index typo —
accumAlpha[i*width + i]→accumAlpha[j*width + i]. - Separate alpha buffer —
renderGaussiannow returnspair<color_buf, alpha_buf>so both are available at write time. - HDR alpha clamp — Removed premature
clamp(alpha, 0, 1)before the colour multiply. Alpha passes through unbounded; the clamp to display range happens at theunsigned charcast. - File error check —
writePPMnow reports tostderrif the output path cannot be opened.
- Software Rasterizer: Render a single Gaussian via CPU. ✅
- Extended Software Rasterizer: Render a scene with multiple Gaussians via CPU (over-composite operator). ✅
- GPU Rasterizer: Gaussian splatting via shaders.
- WebGPU Rasterizer: Real-time rendering in the browser via WebGPU.
- Bonus: Radiance field rendering via CPU.


