Papers
Topics
Authors
Recent
Search
2000 character limit reached

VoroTracing: Differentiable Voronoi Ray Tracing

Updated 20 August 2026
  • VoroTracing is a differentiable rendering framework that represents scenes as 3D Voronoi cells with density and compact appearance textures, enabling real-time novel-view synthesis and effects such as fisheye, rolling shutter, motion blur, and depth of field.
  • The framework combines exponential density optimization, distortion-based opacity concentration, local Delaunay traversal, and early termination to reduce average traversal length to 46.1 cells per ray, compared with 66.9 for Radiant Foam.
  • VoroTracing reaches 623 FPS on an RTX 5090 for Mip-NeRF 360 scenes while achieving 28.98 PSNR, 0.848 SSIM, and 0.235 LPIPS, although its fixed capacity, memory demands, and weaker fine-detail reconstruction remain important limitations.

VoroTracing is a differentiable Voronoi ray-tracing framework for real-time novel-view synthesis. It represents a scene as a three-dimensional Voronoi partition whose cells store density and compact appearance textures, and renders images by tracing camera rays through adjacent cells. The framework co-designs scene representation, opacity parameterization, optimization, traversal, and GPU execution to reduce traversal length, per-cell computation, and memory traffic. On Mip-NeRF 360, it reports 623 FPS on an RTX 5090, with competitive reconstruction quality and support for fisheye, rolling-shutter, motion-blur, and depth-of-field effects (Taveira et al., 18 Aug 2026).

1. Terminology and conceptual scope

The name VoroTracing is associated with multiple Voronoi-based computational approaches. In the context of differentiable rendering, it denotes the method introduced in “Differentiable Voronoi Ray Tracing Beyond Rasterization Speeds” (Taveira et al., 18 Aug 2026). This rendering system should be distinguished from the Voronoi-tessellation and spectral-graph method for coherent-structure detection in sparse Lagrangian particle-tracking data, which is referred to as VoroTracing in the supplied description of (Martins et al., 2021). It is also distinct from high-dimensional Voronoi graph reconstruction (Sikorski et al., 2024), Voronoi-to-AMR data transfer (Lewis et al., 18 Nov 2025), and voxel-based dynamic line rendering (Kraaijeveld et al., 10 Oct 2025).

The rendering framework builds on Radiant Foam, which represents a scene with a three-dimensional Voronoi partition and traces rays by walking through neighboring cells. VoroTracing retains Voronoi cells, Delaunay adjacency, piecewise volume rendering, and differentiable ray traversal, while modifying the appearance representation, opacity optimization, and GPU execution.

Its central computational model treats the ray workload as depending primarily on three factors: the number of Voronoi cells traversed, the work performed per cell, and memory locality. A ray with a shorter traversal sequence requires fewer neighbor tests, appearance evaluations, and compositing operations. Spatially reordered cells and coherent ray scheduling are used to improve memory reuse and reduce GPU divergence.

2. Voronoi scene representation and traversal

The scene is defined by generator sites

P={pi}i=1N,piR3.P=\{\mathbf p_i\}_{i=1}^{N},\qquad \mathbf p_i\in\mathbb R^3.

The Voronoi cell associated with pi\mathbf p_i is

Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.

Each cell is a convex polytope formed by intersections of half-spaces. Neighboring cells share a face, and their adjacency graph is the Delaunay graph, the dual of the Voronoi diagram.

Each cell stores a density parameter ρi\rho_i, a view-independent surface texture TiviT_i^{\mathrm{vi}}, a view-dependent texture TivdT_i^{\mathrm{vd}}, and its site position pi\mathbf p_i. The geometry is implicit in the spatial arrangement of sites and in the distribution of opacity: cells with high opacity function as surface-supporting regions, whereas transparent cells represent free space.

A camera ray is written as

r(t)=o+tω,\mathbf r(t)=\mathbf o+t\boldsymbol\omega,

where o\mathbf o is the origin and ω\boldsymbol\omega is a unit direction. The initial cell is found with one nearest-site query. If the current cell is pi\mathbf p_i0, candidate exit faces are associated with Delaunay neighbors pi\mathbf p_i1. The perpendicular bisector between pi\mathbf p_i2 and pi\mathbf p_i3 satisfies

pi\mathbf p_i4

Substitution of the ray equation gives the intersection parameter

pi\mathbf p_i5

The renderer selects the smallest valid forward intersection among the current cell’s neighboring bisectors. The ray then enters the neighboring cell associated with the intersected face. After initialization, traversal is therefore a local walk over the Delaunay adjacency graph rather than a sequence of global BVH intersection queries.

The segment length inside cell pi\mathbf p_i6 is

pi\mathbf p_i7

For fixed traversal topology, cell-boundary locations depend differentiably on ray and site positions. The discrete identity of the neighboring cell can change at topological events, such as a ray passing through a Voronoi edge or a change in site adjacency. The renderer is consequently differentiable almost everywhere, with piecewise-smooth behavior between such events.

3. Volume rendering and opacity optimization

Each traversed Voronoi cell is treated as a constant-density region over the corresponding ray segment. Density is parameterized as

pi\mathbf p_i8

The opacity contributed by a segment of length pi\mathbf p_i9 is

Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.0

The transmittance before segment Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.1 is

Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.2

and the compositing weight is

Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.3

The rendered color is

Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.4

with early termination when transmittance falls below a threshold.

The exponential density parameterization is intended to remove a cell-size-dependent optimization bias. Direct optimization of Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.5 yields a gradient proportional to Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.6, so smaller cells receive weaker gradients at equal opacity. With Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.7, the explicit segment length cancels:

Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.8

Thus, two cells with equal opacity receive identically scaled gradients regardless of physical size.

VoroTracing uses the Mip-NeRF 360 distortion regularizer to concentrate opacity near surfaces. The regularizer penalizes weights distributed at separated depths and penalizes broad intervals carrying weight. It does not provide depth supervision or specify the location of a surface; instead, it encourages already useful rendering weights to become compact.

This produces an opacity structure characterized by transparent free space, thin opaque surfaces, and early ray termination. The reported characteristic opacity above Vi={xR3xpixpj, ji}.V_i=\left\{\mathbf x\in\mathbb R^3\mid \|\mathbf x-\mathbf p_i\|\leq \|\mathbf x-\mathbf p_j\|, \ \forall j\ne i\right\}.9 occurs in 24% of VoroTracing cells, compared with 4% for Radiant Foam. VoroTracing uses approximately 2.0 million cells, whereas Radiant Foam uses approximately 4.1 million.

4. Compact appearance representation

VoroTracing replaces spherical-harmonic appearance coefficients with two compact ρi\rho_i0 RGB textures per cell. One texture is view-independent and surface-indexed; the other is view-dependent.

For a ray exiting a cell at boundary point ρi\rho_i1, the surface direction from the site is

ρi\rho_i2

Because every ray from the site of a convex Voronoi cell exits the cell at exactly one boundary point, ρi\rho_i3 provides an indexing direction for surface appearance. Octahedral mapping converts ρi\rho_i4 to square texture coordinates. The mapping first normalizes by the ρi\rho_i5 norm,

ρi\rho_i6

and then unfolds the octahedron according to the sign of ρi\rho_i7. Bilinear interpolation retrieves the view-independent RGB value.

The view-dependent texture is indexed by the viewing direction ρi\rho_i8. The two textures are combined in logit space:

ρi\rho_i9

where TiviT_i^{\mathrm{vi}}0 is the elementwise sigmoid.

The surface texture allows a single cell to represent spatial variation across its visible boundary. This reduces the need to subdivide the Voronoi partition merely to encode within-cell detail. The view-dependent texture represents specular highlights, sheen, reflections, and other directional effects; it is regularized to remain a residual rather than replace the surface appearance.

Each bilinear lookup requires four RGB texels. The two-texture representation therefore loads 24 scalar RGB values, compared with 48 RGB scalar coefficients for degree-3 spherical harmonics. This comparison concerns lookup traffic rather than total storage, since texture resolution still affects per-cell memory.

5. Fixed-budget optimization and GPU execution

VoroTracing uses a fixed budget of 2 million sites and does not clone, split, prune, densify, progressively increase image resolution, or use a multi-stage schedule. The representation is initialized from up to 100 reference images selected by camera-pose clustering. Image pairs are matched with RoMa v2, 15,000 high-confidence correspondences are sampled from each pair, and correspondences are triangulated using calibrated camera poses and intrinsics. Points with negative depth, nonfinite coordinates, or reprojection error above 2 pixels are rejected. The remaining points are subsampled with a TiviT_i^{\mathrm{vi}}1 voxel grid, and 5,000 random background sites are added.

The training objective is

TiviT_i^{\mathrm{vi}}2

The terms are a Smooth-TiviT_i^{\mathrm{vi}}3 photometric reconstruction loss, the distortion loss, a view-dependent residual regularizer, and a mean-pull loss for unobserved diffuse texels. Adam optimization is performed for 20,000 iterations, with 1 million rays sampled per iteration. Site positions, density, and textures use separate learning-rate schedules.

The GPU implementation uses CUDA and incorporates half-precision appearance attributes, precomputed half-precision vectors from sites to neighbors, four-channel padding for RGB texels, Morton ordering of cells, TiviT_i^{\mathrm{vi}}4 screen-space ray tiles, and low-contribution cell skipping. Cells are reordered by Morton code so spatially nearby cells occupy nearby memory addresses. Ray tiles promote similar traversal paths and improve cache reuse.

A cell whose maximum possible contribution is below TiviT_i^{\mathrm{vi}}5 can update transmittance without loading and evaluating appearance. The reported inference ablation is:

Configuration FPS
Packed FP16 base 230
Morton ordering added 378
Warp-coherent tiling added 536
Cell skipping at TiviT_i^{\mathrm{vi}}6 623

The execution stack alone raises Radiant Foam from 194 to 384 FPS under the same implementation strategy. This indicates that throughput gains arise from both the representation and the renderer.

6. Evaluation, camera models, and limitations

The principal evaluation uses the seven Mip-NeRF 360 scenes: Room, Counter, Bonsai, Kitchen, Bicycle, Garden, and Stump. At aggregate scale, VoroTracing reports PSNR 28.98, SSIM 0.848, LPIPS 0.235, and 623 FPS. Radiant Foam reports 28.44 PSNR, 0.829 SSIM, 0.277 LPIPS, and 194 FPS. 3D Gaussian Splatting reports 29.11 PSNR, 0.872 SSIM, 0.223 LPIPS, and 220 FPS.

VoroTracing averages 46.1 cells per ray, compared with 66.9 for Radiant Foam, a 31% reduction. In the Garden example, the mean traversal length decreases from 73 to 49 cells per ray. The ablations associate this reduction with fixed dense initialization, exponential density, distortion-based opacity concentration, compact textures, and low-contribution skipping.

VoroTracing’s quality is competitive but not uniformly superior. 3D Gaussian Splatting and Triangle Splatting achieve stronger results on several outdoor metrics, including the aggregate 3D Gaussian Splatting PSNR and LPIPS values. VoroTracing’s principal distinction is that the same ray-based renderer supports non-pinhole and temporal camera effects.

Fisheye and lens distortion are handled by changing ray directions. Rolling shutter uses a row-dependent camera pose. Motion blur averages renders from multiple exposure times, and depth of field averages rays whose origins vary across an aperture and whose directions converge on a focal-plane point. Voronoi traversal and compositing remain unchanged; only ray generation or sampling changes. The reported 623 FPS result applies to standard pinhole rendering and does not directly apply to multisampled motion blur or depth of field.

The principal limitations are fixed capacity, dependence on correspondence-based initialization, absence of adaptive densification, memory consumption from two TiviT_i^{\mathrm{vi}}7 RGB textures per cell, nontrivial Voronoi/Delaunay construction and adjacency updates, and reduced throughput for multisampled effects. Outdoor fine detail such as foliage, distant structures, and brick texture can be less detailed than in 3D Gaussian Splatting. Aggressive cell skipping or stronger distortion can improve speed while eventually reducing reconstruction quality.

VoroTracing therefore demonstrates that ray-based rendering need not be intrinsically incompatible with real-time throughput. Its reported performance depends on the joint design of Voronoi traversal, surface-concentrated opacity, compact appearance textures, fixed-budget optimization, spatial memory ordering, coherent GPU scheduling, and early termination. The results establish a differentiable Voronoi renderer with high measured throughput, but they do not imply that Voronoi ray tracing is universally faster or higher quality than rasterized representations.

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to VoroTracing.