---
title: 'VoroTracing: Differentiable Voronoi Ray Tracing'
url: https://www.emergentmind.com/topics/vorotracing
type: topic
---

# VoroTracing: Differentiable Voronoi Ray Tracing

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 [2608.17682].

## 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” [2608.17682]. 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 [2103.09884]. It is also distinct from high-dimensional Voronoi graph reconstruction [2405.10050], Voronoi-to-AMR data transfer [2511.14697], and voxel-based dynamic line rendering [2510.09081].

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=\{\mathbf p_i\}_{i=1}^{N},\qquad \mathbf p_i\in\mathbb R^3.
$$

The Voronoi cell associated with $\mathbf p_i$ is

$$
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 $\rho_i$, a view-independent surface texture $T_i^{\mathrm{vi}}$, a view-dependent texture $T_i^{\mathrm{vd}}$, and its site position $\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

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

where $\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 $V_i$, candidate exit faces are associated with Delaunay neighbors $\mathbf p_j$. The perpendicular bisector between $\mathbf p_i$ and $\mathbf p_j$ satisfies

$$
2\mathbf x^\top(\mathbf p_j-\mathbf p_i)
=
\|\mathbf p_j\|^2-\|\mathbf p_i\|^2.
$$

Substitution of the ray equation gives the intersection parameter

$$
t_{ij}=
\frac{
\|\mathbf p_j\|^2-\|\mathbf p_i\|^2
-2\mathbf o^\top(\mathbf p_j-\mathbf p_i)}
{2\boldsymbol\omega^\top(\mathbf p_j-\mathbf p_i)}.
$$

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 $i$ is

$$
\delta_i=t_{\mathrm{exit}}-t_{\mathrm{entry}}.
$$

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

$$
\sigma_i=\exp(\rho_i).
$$

The opacity contributed by a segment of length $\delta_i$ is

$$
\alpha_i=1-\exp(-\sigma_i\delta_i).
$$

The transmittance before segment $k$ is

$$
T_k=\prod_{j<k}(1-\alpha_j),
$$

and the compositing weight is

$$
w_k=T_k\alpha_k.
$$

The rendered color is

$$
\mathbf C(\mathbf r)
=
\sum_k T_k\alpha_k\,\mathbf c_{i_k}(\mathbf x_k,\boldsymbol\omega),
$$

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 $\sigma_i$ yields a gradient proportional to $\delta_i(1-\alpha_i)$, so smaller cells receive weaker gradients at equal opacity. With $\sigma_i=\exp(\rho_i)$, the explicit segment length cancels:

$$
\frac{\partial L}{\partial\rho_i}
=
\frac{\partial L}{\partial\alpha_i}
(1-\alpha_i)\ln\frac{1}{1-\alpha_i}.
$$

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 $0.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 $8\times8$ 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 $\mathbf x$, the surface direction from the site is

$$
\mathbf d=
\frac{\mathbf x-\mathbf p_i}
{\|\mathbf x-\mathbf p_i\|}.
$$

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

$$
\mathbf q=
\frac{\mathbf d}{|d_x|+|d_y|+|d_z|},
$$

and then unfolds the octahedron according to the sign of $d_z$. Bilinear interpolation retrieves the view-independent RGB value.

The view-dependent texture is indexed by the viewing direction $\boldsymbol\omega$. The two textures are combined in logit space:

$$
\mathbf c_i(\mathbf x,\boldsymbol\omega)
=
\sigma\!\left(
T_i^{\mathrm{vi}}(\operatorname{oct}(\mathbf d))
+
T_i^{\mathrm{vd}}(\operatorname{oct}(\boldsymbol\omega))
\right),
$$

where $\sigma$ 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 $128^3$ voxel grid, and 5,000 random background sites are added.

The training objective is

$$
\mathcal L=
\mathcal L_{\mathrm{rgb}}
+\lambda_{\mathrm{dist}}\mathcal L_{\mathrm{dist}}
+\lambda_{\mathrm{vd}}\mathcal L_{\mathrm{vd}}
+\lambda_{\mathrm{mean}}\mathcal L_{\mathrm{mean}}.
$$

The terms are a Smooth-$L_1$ 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, $4\times8$ 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 $10^{-3}$ 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 $10^{-3}$ | 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 $8\times8$ 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.

Source: https://www.emergentmind.com/topics/vorotracing