Differentiable Voronoi Ray Tracing Beyond Rasterization Speeds
TL;DR
A differentiable ray tracer for novel view synthesis that renders faster than most rasterized splatting — 623 FPS on Mip-NeRF 360, 3.2× the fastest prior ray tracer and 2.8× 3D Gaussian Splatting — with fisheye lenses, rolling shutter, and motion blur falling out of ray generation for free.
Rays or speed, but not both?
3D Gaussian Splatting
The general assumption is that rays give flexibility and rasterization gives speed. We think that trade-off is not inherent.
Our starting point is Radiant Foam’s insight
Fewer cells: concentrate the opacity
A ray composites every cell it enters until transmittance runs out. Spread opacity across a wide shell of barely-opaque cells and each ray pays for dozens of composites. What we want instead is a thin, opaque surface: rays cross empty cells until they reach one opaque cell whose texture explains the colour, and terminate there.
Drag the camera or click anywhere to aim the ray. Both panels trace the same ray through the same diagram and share one continuous opacity field; the right one concentrates it into a thin surface band, so the ray saturates sooner. Illustrative 2D sketch, not a rendering of either method.
Training pushes the representation toward the right panel. A distortion loss
Cheaper visits: octahedral textures instead of spherical harmonics
The other cost at every ray–cell interaction is appearance. Degree-3 spherical harmonics mean loading 48 coefficients per cell, and SH can only vary with direction — spatial detail within a single view needs ever more, ever smaller cells, until each cell is seen by one ray from one direction, overfits, and leaves the geometry under-constrained.
We give each cell a tiny 8×8 RGB texture instead, indexed by the direction from the cell’s site to where the ray pierces the cell boundary. Voronoi cells are convex, so that direction identifies the boundary point uniquely, and an octahedral mapping
The demo below sweeps that direction around a tilted great circle. As it crosses the equator, watch the sampled point slide out of the central diamond and into the unfolded corners — continuously, with no seams and no poles.
Drag the arrow tip to take over (drag elsewhere to rotate the view), or drag directly in the texture — the two panels stay in sync.
A second per-cell texture, indexed by view direction, adds a small residual for highlights and reflections, regularized to stay subordinate to the surface texture. Together the two bilinear fetches load a fixed 24 values in place of 48 SH coefficients, and a single cell can now show spatial detail within one view. This texture block is the largest single quality contribution in our ablations: PSNR 28.23 → 28.98 dB, LPIPS 0.280 → 0.235, while also raising throughput from 475 to 623 FPS.
Training without heuristics
No pruning, no densification, no opacity resets, no resolution schedules. Following EDGS
What makes the heuristics unnecessary is a scale-invariant density. Under softplus, the density a cell needs to reach a given opacity scales inversely with the ray’s segment length through it, while the gradient on that density scales linearly with it — so a small cell needs a higher density and receives a proportionally weaker gradient to get there. Parameterizing density as an exponential, σ = exp(ρ), and optimizing ρ makes the segment length cancel exactly, so two cells of equal opacity get identically scaled gradients whatever their size.
Without it, cells that should be empty instead settle at a low but non-zero density and objects keep a persistent haze around them, along with floaters. From a dense initialization this can run away in free space near the camera, and once those cells turn opaque, early ray termination starves everything behind them of gradient and the optimization cannot recover.
The distortion weight is then the single speed–quality knob: stronger concentration thins the surfaces and terminates rays sooner.
Results
Mip-NeRF 360 on an RTX 5090. The timed region deliberately includes per-view camera setup and the initial nearest-cell query, making it stricter than the upstream benchmarks of Radiant Foam and 3DGRT.
Hover or tap a point. Higher is better for PSNR/SSIM; lower is better for LPIPS, but the axis is flipped so better methods are always higher.
VoroTracing reaches 28.98 dB PSNR / 0.848 SSIM / 0.235 LPIPS at 623 FPS — 3.2× Radiant Foam, 2.8× 3DGS, and 2.1× the fastest prior baseline. Where we do not win: outdoors 3DGS is still 0.71 dB ahead and Triangle Splatting
The renderer and the representation are not separable contributions. Our inference stack — Morton cell ordering, warp-coherent 4×8 ray tiling, and skipping texture evaluation for cells that cannot affect the colour — takes the base renderer from 230 to 623 FPS on our representation, a 2.7× gain at no measurable cost in quality. The same stack applied to Radiant Foam’s own representation gets only 194 to 384 FPS. The gap is the point: as traversal and scheduling overheads fall away, appearance evaluation takes a larger share of the frame, and that is exactly what the octahedral textures and the concentrated opacity attack.
What rays buy you
Image formation lives entirely in ray generation, so non-pinhole cameras and lens effects need no modified projection maths and no extra passes. Everything below renders the same trained representation, changing only the rays sent to the renderer.
The renderer also runs in the browser over WebGPU, on the same fp16 inference path, with a live pinhole↔fisheye toggle. It renders entirely on your own GPU — a pre-trained scene file is downloaded once and then traced locally, with nothing computed on a server. The frame rate you get is therefore your machine’s, not the RTX 5090 figures quoted above.
Needs Chrome or Edge 113+, or Safari 26+, and a reasonably capable GPU for interactive rates. Scenes are uncompressed 2M-site models and load in full before rendering starts, so each is a ~1.7 GB download.
Limitations
The fixed cell budget is the main constraint. Where few training views observe a region, dense matching supplies too few reliable sites, and since the cell set never changes the model cannot allocate capacity there later; an adaptive strategy could. None of this argues that adaptive cell insertion is unimportant — better densification should improve future systems. The claim is only that it should not be necessary to get high-quality reconstructions out of a well-posed representation.
Separately, fisheye and rolling shutter keep one ray per pixel, but depth of field and motion blur submit several, so the 623 FPS pinhole number does not carry over to them.
A natural next step is explicit surface extraction: a Voronoi diagram with surface-concentrated opacity and surface-indexed textures is a promising starting point for a textured mesh that drops into standard rendering pipelines.
BibTeX
@article{taveira2026vorotracing,
title={Differentiable Voronoi Ray Tracing Beyond Rasterization Speeds},
author={Bernardo Taveira and Carl Lindstr{\"o}m and Joakim Johnander and Fredrik Kahl},
journal={arXiv preprint arXiv:2608.17682},
year={2026}
}