Budgeted-GS: Real-Time Large-Scale Gaussian Splatting via Factoring LOD
Organizations: Neusoft
Abstract
3D Gaussian Splatting achieves excellent visual quality with real-time rendering, but at the scale of entire cities it does not fit: a trained model carries millions of primitives and gigabytes of memory, and real-time rendering at high quality on a consumer GPU remains out of reach. We introduce Budgeted-GS, a post-hoc method that turns any trained 3DGS model into a factoring tree, a multi-resolution hierarchy of moment-matched aggregates. After a construction pass of a few seconds, a single quality parameter selects, for each view, the level of detail that fits the memory of the target device, so the same city-scale model serves GPUs with widely different memory capacities. When a new scene is to be trained, the same theory applies: instead of growing a full-sized model and compressing it afterwards, budget-centered training first measures how many primitives the scene needs and then trains the model directly at that size, avoiding the wasted effort of optimizing primitives that are later discarded. Both methods are grounded in a measurable capacity floor, a budget-error law derived from optimal transport in phase space; selection rules certified by recent covering theorems decide which primitives are redundant. The floor answers how many primitives a scene actually needs and how many can safely be given up. We validate the floor on 13 public scenes under a preregistered protocol, and exercise both methods from object scenes to an official city capture, rendering it at native 1920x1080, full SH, in real time on one consumer GPU.
Figures & tables
| scene | budget | schedule | PSNR dB | ours-prune | published |
| room | 529k | orig | 31.94 .04 | 30.14 | 30.23 (C3DGS) |
| room | 670k | orig | 31.95 | 31.21 @1M | 31.47 (EAGLES) |
| room | 1M | orig | 32.24 | 31.21 | — |
| garden | 1650k | orig | 27.15 .04 | 25.98 @1M | 26.91 (EAGLES) |
| garden | 2209k | orig | 27.25 .06 | — | 26.81 (C3DGS) |
| bonsai | 601k | orig | 32.13 | 29.38 | 32.08 (C3DGS) |
| config | PSNR | #primitives | PSNR |
|---|---|---|---|
| full | 29.97 | 5.78M | — |
| LOD c | 29.31 | 94.4% | |
| LOD c | 26.89 | 83.0% | |
| LOD c | 22.56 | 62.4% | |
| adaptive proxies | 29.80 | — |
| config | PSNR (med) | model data | PSNR |
| our LOD tiers, rendered by the 3DGS rasterizer: | |||
| full | 28.38 | 1240.6 MB | — |
| LOD c | 28.33 | 844.1 MB | |
| LOD c | 26.26 | 552.7 MB | |
| LOD c | 23.72 | 288.9 MB | |
| LOD c | 20.80 | 110.6 MB | |
| operating point | selected | fps | p5 fps | GPU mem |
|---|---|---|---|---|
| capacity M | 342k | 76.8 | — | GB |
| capacity M | 1.43M | 59.0 | — | GB |
| full set (cap 16M) | 5.99M | 49.5 | — | GB |
| full set, official 207-view traj. | 6.89M | 71.0 | 55.2 | GB |
| M, official 207-view traj. | 1.43M | 66.2 | 42.7 | GB |
| full set, | 5.99M | 79.1–198 | — | — |
| Symbol | Meaning |
|---|---|
| primitive budget (number of Gaussians) | |
| floor-knee budget located by the scan | |
| budget parameter: pixel-footprint threshold | |
| capacity budget (per-frame working-set bound) | |
| local redundancy factor of a region | |
| opacity-weighted inertia tensor of a group |
| scene@budget | s0 | s1 | s2 | mean std |
|---|---|---|---|---|
| counter@536k | 28.93 | 28.98 | 28.96 | 28.95 0.02 |
| counter@560k | 28.96 | 28.99 | 29.00 | 28.98 0.02 |
| garden@1650k | 27.12 | 27.12 | 27.21 | 27.15 0.04 |
| garden@2209k | 27.26 | 27.18 | 27.32 | 27.25 0.06 |
| kitchen@1M | 31.84 | 31.99 | 32.08 | 31.97 0.10 |
| kitchen@1131k | 32.28 | 32.10 | 32.16 | 32.18 0.07 |
| root model | tier | gt-PSNR (dB) | rendered primitives |
|---|---|---|---|
| full model (1.66M primitives) | full render | 34.94 | 1,657,466 |
| LOD | 34.89 | 1,654,484 | |
| LOD | 33.29 | 1,542,467 | |
| LOD | 30.93 | 1,354,716 | |
| LOD | 26.92 | 1,003,828 | |
| LOD | 22.83 | 524,330 |
| scene | budget | schedule | PSNR dB | ours-prune | published |
|---|---|---|---|---|---|
| bicycle | 2222k | orig | 23.78 | 24.77 (C3DGS) | |
| bicycle | 2260k | orig | 23.72 | 25.04 (EAGLES) | |
| stump | 1732k | orig | 23.75 | 26.46 (C3DGS) | |
| stump | 2220k | orig | 23.86 | 26.78 (EAGLES) | |
| treehill | 2006k | orig | 21.85 | 22.65 (C3DGS) | |
| treehill | 1600k | orig | 21.80 | 22.69 (EAGLES) |
| Method | #primitives | PSNR | SSIM | LPIPS | vs. Vanilla |
|---|---|---|---|---|---|
| Vanilla 3DGS | 339k | 37.19 0.02 | 0.9860 | 0.0090 | — |
| MCMC@171k [ 16 ] | 171k | 36.62 0.03 | 0.9853 | 0.0117 | |
| Taming@94k [ 24 ] | 92k | 36.11 | — | — | |
| EDC [ 1 ] | 334k | 37.18 0.01 | — | — | |
| H3DGS [ 15 ] | 436k | 37.39 0.01 | — | — | |
| BCT stop-rule (ours) | 151k | 36.85 0.01 | 0.9845 | 0.0107 |
| Scene | Method | #primitives | PSNR | % of vanilla budget |
|---|---|---|---|---|
| chair | Vanilla | 491k | 36.39 | — |
| stop-rule | 177k | 36.06 | 36% | |
| ship | Vanilla | 259k | 32.05 | — |
| stop-rule | 124k | 31.83 | 48% | |
| bonsai | Vanilla | 1258k | 32.64 | — |
| stop-rule | 825k | 32.46 0.09 | 66% |
| Scene | original | 50% score / opacity | 25% score / opacity |
|---|---|---|---|
| lego | 36.85 | 29.68 / 25.87 | 22.96 / 20.26 |
| bonsai | 32.37 | 31.82 / 26.48 | 26.35 / 21.20 |
| room | 32.56 | 32.42 / 29.71 | 29.48 / 21.62 |
| system | coupling | model | budget axis | quality @ budget | fps @ p | VRAM peak |
|---|---|---|---|---|---|---|
| Octree-GS | training | own (8.01M anchors) | level (5) | @ k vis. / @ k vis. | 30.4 GiB | |
| CG V2 LOD | training | Aerial (8.56M) | block level | n/a post-hoc † | n/a | n/a |
| Factoring LOD | post-hoc | Aerial (8.56M) | (continuous) | dB | – (ladder) | 4.4 GiB |
| budget | method | #primitives | PSNR | SSIM | LPIPS |
|---|---|---|---|---|---|
| 100% | Vanilla | 7.94M | 13.85 | 0.519 | 0.553 |
| 50% | LightGaussian | 3.97M | 13.85 | 0.520 | 0.552 |
| 50% | RAP | 3.97M | 13.80 | 0.519 | 0.558 |
| 50% | PUP score export | 3.97M | 13.85 | 0.519 | 0.553 |
| 50% | score export (ours) | 4.00M | 13.85 | 0.519 | 0.553 |
| 50% | +opacity (ours) | 4.00M | 13.44 | 0.513 | 0.530 |
| scene | (dB) | chord | steepest |
|---|---|---|---|
| garden | 26.54 | ✓ | |
| room | 31.59 | ✓ | |
| bonsai | 32.37 | ✓ | |
| bicycle | 23.75 | ✓ | |
| counter | 29.27 | ✓ | |
| flowers | 20.13 | ✓ |
| step | primitives | time | peak GPU |
|---|---|---|---|
| tree construction | 8.56M | 1.5 s | 19.4 GiB |
| LOD select + render (per view) | – M | 6–172 ms | 3.3–4.5 GiB |
| full render (gsplat, per view) | 8.56M | 3–13 ms | — |