CVTSplat: Multi-view Reconstruction Using an Adaptive Centroidal Voronoi Tessellation
Organizations: Max Planck Institute for Informatics, Saarbrücken, Germany · Kyushu University, Fukuoka, Japan · Inria, Grenoble, France
Abstract
Voronoi tessellations have recently emerged as an adaptive, space-partitioning discretization for shape and appearance reconstruction from multi-view images. However, the irregular cells they produce make the repeated reconstruction of the tessellation during optimization costly. We therefore explore adaptive centroidal Voronoi tessellations (CVTs), which extend standard CVTs with non-uniform cell sizes while preserving the regular, well-shaped cells that make them efficient to compute. In CVTSplat, cell size is modulated by the evolving signed distance field, concentrating sites near the zero level set while keeping cells nearly centroidal. This regularity lets us specialize the whole pipeline, with GPU algorithms for nearest-neighbor queries and approximate Voronoi construction, and a rasterizer tailored to small, nearly isotropic cells. Our Voronoi construction is 5 to 10 times faster than general-purpose alternatives in this regime. On DTU and BlendedMVS, CVTSplat reaches geometric accuracy competitive with the best Gaussian-splatting surface methods while training in about 2.5 minutes on a single GPU.
Figures & tables
| Method | Mean | Dog | Bear | Clock | Durian | Man | Sculpture | Stone | Jade |
| NeuS2 ( Wang et al., 2023 ) | 2.93 | 2.78 | 2.71 | 2.63 | 4.23 | 2.25 | 2.50 | 1.91 | 4.43 |
| Voxurf ( Wu et al., 2023 ) | 2.64 | 2.28 | 2.20 | 1.88 | 2.98 | 2.11 | 1.75 | 3.96 | 3.99 |
| ProbeSDF ( Toussaint et al., 2025 ) | 2.21 | 2.24 | 2.03 | 1.69 | 3.26 | 1.81 | 1.61 | 1.36 | 3.71 |
| PGSR ( Chen et al., 2024 ) | 1.56 | 1.21 | 1.20 | N/A | 2.15 | 1.39 | 1.81 | 1.58 | N/A |
| GGGS ( Zhang et al., 2026b ) | 0.88 | 0.55 | 0.37 | 0.71 | 0.93 | 0.85 | 0.99 | 0.40 | 2.28 |
| CVTSplat | 1.13 | 0.91 | 0.49 | 0.97 | 1.44 | 0.91 | 1.21 | 0.60 | 2.53 |
| Method | 24 | 37 | 40 | 55 | 63 | 65 | 69 | 83 | 97 | 105 | 106 | 110 | 114 | 118 | 122 | Mean | Runtime | GPU | |
| Implicit | VolSDF ( Yariv et al., 2021 ) | 1.14 | 1.26 | 0.81 | 0.49 | 1.25 | 0.70 | 0.72 | 1.29 | 1.18 | 0.70 | 0.66 | 1.08 | 0.42 | 0.61 | 0.55 | 0.86 | >12 h | RTX 2080 Ti |
| NeuS ( Wang et al., 2021 ) | 1.00 | 1.37 | 0.93 | 0.43 | 1.10 | 0.65 | 0.57 | 1.48 | 1.09 | 0.83 | 0.52 | 1.20 | 0.35 | 0.49 | 0.54 | 0.84 | 8 h | RTX 2080 Ti | |
| Neuralangelo ( Li et al., 2023 ) | 0.37 | 0.72 | 0.35 | 0.35 | 0.87 | 0.54 | 0.53 | 1.29 | 0.97 | 0.73 | 0.47 | 0.74 | 0.32 | 0.41 | 0.43 | 0.61 | >128h | V100 | |
| NeuS2 ( Wang et al., 2023 ) | 0.56 | 0.76 | 0.49 | 0.37 | 0.92 | 0.71 | 0.76 | 1.22 | 1.08 | 0.63 | 0.59 | 0.89 | 0.40 | 0.48 | 0.55 | 0.70 | 5 min | RTX 3090 | |
| Voxurf ( Wu et al., 2023 ) | 0.91 | 0.73 | 0.45 | 0.34 | 0.99 | 0.66 | 0.83 | 1.36 | 1.31 | 0.78 | 0.53 | 1.12 | 0.37 | 0.53 | 0.51 | 0.76 | 15 min | A100 | |
| ProbeSDF ( Toussaint et al., 2025 ) | 0.65 | 0.74 | 0.34 | 0.34 | 1.02 | 0.71 | 0.62 | 1.34 | 0.94 | 0.70 | 0.53 | 0.96 | 0.36 | 0.45 | 0.47 | 0.68 | 2.5 min | RTX 3090 |
| Method (#Sites, #Optim. steps) | 24 | 37 | 40 | 55 | 63 | 65 | 69 | 83 | 97 | 105 | 106 | 110 | 114 | 118 | 122 | Mean | Time (s) |
| 1M Sites, 10K | 0.38 | 0.54 | 0.30 | 0.30 | 0.82 | 0.50 | 0.47 | 1.02 | 0.75 | 0.53 | 0.33 | 0.66 | 0.30 | 0.34 | 0.34 | 0.50 | 87 |
| 2M Sites, 10K | 0.36 | 0.51 | 0.30 | 0.30 | 0.82 | 0.48 | 0.47 | 1.00 | 0.74 | 0.51 | 0.33 | 0.65 | 0.30 | 0.33 | 0.33 | 0.50 | 110 |
| 4M Sites, 5K | 0.36 | 0.58 | 0.30 | 0.30 | 0.75 | 0.46 | 0.46 | 0.97 | 0.74 | 0.50 | 0.39 | 0.75 | 0.29 | 0.32 | 0.31 | 0.50 | 79 |
| 4M Sites, 7.5K | 0.35 | 0.50 | 0.30 | 0.30 | 0.75 | 0.46 | 0.46 | 0.97 | 0.74 | 0.49 | 0.39 | 0.65 | 0.29 | 0.32 | 0.31 | 0.48 | 115 |
| Basic Rasterizer (4M Sites, 10K) | 0.35 | 0.49 | 0.30 | 0.29 | 0.76 | 0.45 | 0.46 | 0.97 | 0.76 | 0.49 | 0.41 | 0.58 | 0.29 | 0.32 | 0.31 | 0.48 | 280 |
| Chunked Rasterizer (4M Sites, 10K) | 0.35 | 0.49 | 0.30 | 0.29 | 0.76 | 0.45 | 0.46 | 0.97 | 0.75 | 0.49 | 0.38 | 0.58 | 0.29 | 0.32 | 0.31 | 0.48 | 147 |
| Method | 24 | 37 | 40 | 55 | 63 | 65 | 69 | 83 | 97 | 105 | 106 | 110 | 114 | 118 | 122 | Mean |
| No Linear Radiance | 0.35 | 0.49 | 0.30 | 0.29 | 0.79 | 1.78 | 0.44 | 0.99 | 0.84 | 0.50 | 0.32 | 0.59 | 0.29 | 0.32 | 0.31 | 0.57 |
| No ZNCC | 0.40 | 0.57 | 0.33 | 0.31 | 0.80 | 0.52 | 0.52 | 1.05 | 0.83 | 0.54 | 0.38 | 1.07 | 0.29 | 0.35 | 0.32 | 0.55 |
| No Depth Smoothing | 0.44 | 0.50 | 0.46 | 0.29 | 0.75 | 0.45 | 0.46 | 0.97 | 0.75 | 0.50 | 0.50 | 0.70 | 0.29 | 0.36 | 0.31 | 0.52 |
| Biased CVT ( ) | 0.36 | 0.51 | 0.34 | 0.30 | 0.81 | 0.50 | 0.48 | 1.02 | 0.77 | 0.52 | 0.34 | 0.80 | 0.30 | 0.34 | 0.34 | 0.52 |
| No Ref. Probes | 0.35 | 0.56 | 0.30 | 0.29 | 0.76 | 0.45 | 0.50 | 0.97 | 0.82 | 0.49 | 0.38 | 0.81 | 0.30 | 0.32 | 0.31 | 0.51 |
| No Envmap | 0.35 | 0.52 | 0.29 | 0.29 | 0.80 | 0.44 | 0.44 | 1.12 | 0.76 | 0.53 | 0.39 | 0.64 | 0.28 | 0.31 | 0.30 | 0.50 |
| CVTSplat with/without warmup | RestrictedVoronoi ( Basselin et al., 2021 ) | CuPy-KNN ( Igelbrink, ) | Torch-kdtree ( Grandits, ) | Sklearn ( Pedregosa et al., 2011 ) | TrueKNN ( Nagarajan et al., 2023 ) | |
| Build Tree | 1.3 | <1 | 17.3 | 6742* | 1925* | - |
| Query Tree | 13.7 / 46.8 | 97.9 | 720 | 1026 | 25630* | - |
| Total | 15.0 / 48.1 | 97.9 | 737 | 7768 | 27556 | 28543 |
| CVTSplat (Ours) | MeshlessVoronoi ( Ray et al., 2018 ) | RestrictedVoronoi ( Basselin et al., 2021 ) | Paragram ( Taveira et al., 2026a ) | gDel3D ( Cao et al., 2014 ) | RadFoam ( Govindarajan et al., 2025 ) | |
| KNN | 15.0 | 126.6 | 97.9 | - | - | - |
| Adjacency | 11.9 | 44.5 | 40.5 | 275.5 | 617.4 | 18995 |
| Centroids | 3.0 | - | - | - | ||
| Total | 29.9 | 171.0 | 138.4 | 275.5 | 617.4 | 18995 |
| Adjacency Del. | Marching Tet. | Total | |
| All cells | 11.5 ms | 4.0 ms | 15.5 ms |
| Zero-crossing only | 4.5 ms | 0.6 ms | 5.1 ms |
Appendix figures & tables12 assets
Supplementary material from the paper’s appendix.
Appendix
| Training phases. 10,000 iterations: 400 initialization, 9200 main training, and 400 cleanup. No sites are added during initialization or cleanup. |
| Point population. 200k initial sites up to 4M sites. Densification every 10 iterations. |
| Data and optimization. 4 image levels of detail, batch size: 4 images per batch using gradient accumulation, learning rate [0.025, 0.001] . |
| Structure updates. KNN every 10 iterations, Voronoi diagram construction frequency [1, 2, 5] . |
| Geometric regularization. [0.4, 0.1] , [0.05, 0.1] , [0.005] , depth smoothing [0.5] . |
| CVT Densification. , [0.05, 0.10] , [0.01, 0.001, 0.0001] . |
| Image losses. [5, 10] , [1, 2] , [0.1, 10] , [5, 0.1] . |
| Dataset | Non-manifold edges | Boundary edges | Triangles |
| DTU | 2.7 | 2.3 | 6.4M |
| BlendedMVS | 2.4 | 1.4 | 6.7M |
| Dataset | Image size | Cell radius (px) | Render time (ms) | FPS |
| DTU | ||||
| BlendedMVS |
| Dataset | Method | PSNR | SSIM | LPIPS |
| CVTSplat | 30.32 | 0.888 | 0.147 | |
| DTU | GGGS | 30.76 | 0.872 | 0.253 |
| PGSR | 30.33 | 0.866 | 0.265 | |
| CVTSplat | 29.52 | 0.894 | 0.073 | |
| BMVS | GGGS | 32.43 | 0.953 | 0.046 |
| PGSR | 30.50 | 0.902 | 0.108 |
| Dataset | Method | Primitives | Parameters |
| CVTSplat | 4M sites | 39.35M | |
| BMVS | GGGS | 1.1M Gaussians | 64.21M |
| PGSR | 0.5M Gaussians | 29.95M | |
| CVTSplat | 4M sites | 39.35M | |
| DTU | GGGS | 0.6M Gaussians | 36.16M |
| PGSR | 0.3M Gaussians | 16.11M |
| Component | Total |
| Site positions ( M) | 12M |
| Site distances ( M) | 4M |
| Site features ( M) | 16M |
| Two SH probes grids | 4.2M |
| Environment map | 3.1M |
| MLP | 595 |
Multi-View 3D Reconstruction
Multi-View 3D Reconstruction recovers scene geometry and appearance from images captured at multiple viewpoints.
See all 278 papers