GoDe: Gaussians on Demand for Backbone-Agnostic Progressive Compression
Organizations: Computer Science, University of Turin, Corso Svizzera, Turin, 10149, Italy. · National Institute of Informatics, 2 Chome-1-2 Hitotsubashi, Tokyo, 101-8430, Japan. · LTCI, T´el´ecom Paris, Institut Polytechnique de Paris, 19 Pl. Marguerite Perey, Paris, 91120, France.
Abstract
Splat-based radiance fields have rapidly diversified in primitive type, kernel support, and appearance parameterization. This diversity makes compression difficult: most codecs are single-rate, requiring a separately optimized model for each target bitrate, while progressive codecs remain tied to representation-specific assumptions that do not transfer across backbones. We introduce GoDe (Gaussians on Demand), a progressive compression framework whose central contribution is backbone agnosticism. It reorganizes any trained differentiable splat representation into a single scalable bitstream without modifying the backbone or re-deriving the compression structure for each new primitive type. GoDe builds a nested level-of-detail hierarchy via masked-gradient importance ranking, refines all levels with one quantization-aware fine-tuning stage, and stores the base layer and enhancement layers as progressive chunks compressed with shared entropy dictionaries. Any decoded prefix is directly renderable, so one training pipeline provides multiple rate-distortion operating points without per-rate retraining. Across five heterogeneous backbones and three standard benchmarks, GoDe achieves competitive rate-distortion performance while enabling faster rendering and substantially faster progressive decoding than existing methods. Project page: https://gaussians-on-demand.github.io/
Figures & tables
| Method | Prog. render. | Pruning | Codec | Prog. comp. | Agnostic |
| Progressive rendering / LoD – no compressed bitstream | |||||
| CLoD-GS | ✓ | ✗ | ✗ | ✗ | ✗ |
| PRoGS | ✓ | ✗ | ✗ | ✗ | ✗ |
| LapisGS | ✓ | ✗ | ✗ | ✗ | ✗ |
| Octree-GS | ✓ | ✗ | ✗ | ✗ | ✗ |
| Hierarchical-GS | ✓ | ✗ | ✗ | ✗ | ✗ |
| Method | Rate | Mip-NeRF360 | Tanks&Temples | DeepBlending | ||||||||||||
| PSNR | SSIM | LPIPS | Size [MB] | FPS | PSNR | SSIM | LPIPS | Size [MB] | FPS | PSNR | SSIM | LPIPS | Size [MB] | FPS | ||
| Non-scalable – Neural | ||||||||||||||||
| HEMGS † [ 24 ] | Low | 27.75 | 0.806 | 0.248 | 12.50 | – | 24.42 | 0.848 | 0.192 | 6.00 | – | 30.24 | 0.908 | 0.266 | 3.00 | – |
| High | 27.93 | 0.813 | 0.230 | 21.00 | – | 24.58 | 0.856 | 0.176 | 10.10 | – | 30.37 | 0.911 | 0.253 | 6.70 | – | |
| HAC++ [ 8 ] | Low | 27.60 | 0.803 | 0.253 | 8.34 | 70 | 24.22 | 0.849 | 0.190 | 5.18 | 79 | 30.16 | 0.907 | 0.266 | 2.91 | 152 |
| High | 27.82 | 0.811 | 0.231 | 18.48 | 71 | 24.32 | 0.854 | 0.178 | 8.63 | 78 | 30.34 | 0.911 | 0.254 | 5.28 | 154 | |
| Method | Scalable | Train | Encoding | Decoding | |||||
| Per run | All | Low | Medium | High | Low | Medium | High | ||
| Context-GS | ✗ | 1.3 | 4.0 | 52.7 | 87.8 | 97.2 | 53.1 | 82.5 | 88.1 |
| HAC++ | ✗ | 1.3 | 3.9 | 8.9 | 10.1 | 16.4 | 12.3 | 13.4 | 19.0 |
| RDO | ✗ | 1.3 | 3.9 | 1.1 | 2.9 | 4.8 | 2.2 | 7.4 | 19.0 |
| Comp-GS | ✗ | 1.6 | 4.9 | 10.8 | 10.8 | 10.9 | 9.1 | 9.0 | 8.8 |
| PCGS † | ✓ | 1.83 | 1.83 | 74.49 | 42.3 | 46.3 | 52.1 | ||
| Mask only | Fine-tuning | Compression (GoDe) | |||||
| Rate | Retained | PSNR | Size [MB] | PSNR | Size [MB] | PSNR | Size [MB] |
| 0 | 0.13 | 23.45 | 70.95 | 27.06 | 70.95 | 26.97 | 11.31 |
| 1 | 0.16 | 24.22 | 91.57 | 27.41 | 91.57 | 27.32 | 14.29 |
| 2 | 0.19 | 25.05 | 119.42 | 27.60 | 119.42 | 27.50 | 18.16 |
| 3 | 0.24 | 25.88 | 157.32 | 27.70 | 157.32 | 27.60 | 23.21 |
| 4 | 0.30 | 26.67 | 209.19 | 27.77 | 209.19 | 27.66 | 29.77 |
| Retained | 1.00 | 0.90 | 0.80 | 0.75 | 0.65 | 0.60 | 0.55 | 0.50 | 0.45 | 0.40 | 0.35 | 0.30 | 0.25 | 0.20 | 0.63 (Adaptive) |
| PSNR | 27.82 | 27.82 | 27.82 | 27.82 | 27.81 | 27.79 | 27.72 | 27.59 | 27.37 | 27.03 | 26.53 | 25.85 | 24.97 | 23.83 | 27.82 |
| SSIM | 0.830 | 0.830 | 0.830 | 0.830 | 0.830 | 0.829 | 0.827 | 0.824 | 0.819 | 0.812 | 0.802 | 0.789 | 0.771 | 0.746 | 0.830 |
| LPIPS | 0.239 | 0.239 | 0.239 | 0.240 | 0.240 | 0.242 | 0.244 | 0.248 | 0.254 | 0.261 | 0.272 | 0.285 | 0.304 | 0.329 | 0.239 |
| Dataset | Method | Wall-clock time (s) | Ranking time (s) | PSNR | SSIM | LPIPS |
| Mip-NeRF360 | PUP | 361 | 16 | 26.55 | 0.784 | 0.271 |
| GoDe | 315 | 9 | 26.88 | 0.795 | 0.263 | |
| Tanks&Temples | PUP | 215 | 17 | 22.45 | 0.797 | 0.251 |
| GoDe | 183 | 6 | 22.88 | 0.804 | 0.247 | |
| DeepBlending | PUP | 313 | 15 | 29.57 | 0.904 | 0.260 |
| GoDe | 279 | 9 | 29.58 | 0.902 | 0.262 |
| Rate | PSNR | SSIM | LPIPS |
| 0 | |||
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 |
| Dataset | Rate | GoDe (BS+SV) | Independent training w/ compression | Independent training w/o compression | |||||||||
| PSNR | SSIM | LPIPS | Size [MB] | PSNR | SSIM | LPIPS | Size [MB] | PSNR | SSIM | LPIPS | Size [MB] | ||
| Mip-NeRF360 | 2 | 27.53 | 0.785 | 0.323 | 10.01 | 27.87 | 0.798 | 0.310 | 11.11 | 27.90 | 0.799 | 0.307 | 73.97 |
| 4 | 28.23 | 0.818 | 0.269 | 23.54 | 28.35 | 0.821 | 0.259 | 24.26 | 28.38 | 0.822 | 0.257 | 183.58 | |
| 7 | 28.38 | 0.826 | 0.239 | 64.63 | 28.47 | 0.827 | 0.231 | 67.32 | 28.57 | 0.829 | 0.227 | 569.66 | |
| Tanks&Temples | 2 | 24.37 | 0.841 | 0.240 | 8.00 | 24.53 | 0.847 | 0.230 | 9.42 | 24.60 | 0.849 | 0.228 | 64.03 |
| 4 | 24.69 | 0.856 | 0.204 | 15.57 | 24.75 | 0.859 | 0.198 | 16.42 | 24.82 | 0.862 | 0.193 | 131.43 | |
| Dataset | Rate | GoDe (Triangle-Splatting) | Independent training w/ compression | Independent training w/o compression | |||||||||
| PSNR | SSIM | LPIPS | Size [MB] | PSNR | SSIM | LPIPS | Size [MB] | PSNR | SSIM | LPIPS | Size [MB] | ||
| Mip-NeRF360 | 2 | 24.68 | 0.685 | 0.425 | 9.75 | 25.41 | 0.718 | 0.385 | 10.21 | 25.42 | 0.718 | 0.384 | 79.00 |
| 4 | 25.91 | 0.743 | 0.348 | 24.83 | 26.15 | 0.756 | 0.328 | 23.15 | 26.17 | 0.756 | 0.327 | 186.79 | |
| 7 | 26.42 | 0.772 | 0.304 | 87.91 | 26.76 | 0.783 | 0.276 | 86.73 | 26.75 | 0.783 | 0.275 | 691.51 | |
| Tanks&Temples | 2 | 21.97 | 0.786 | 0.301 | 9.44 | 22.03 | 0.793 | 0.303 | 8.04 | 22.04 | 0.793 | 0.301 | 68.44 |
| 4 | 22.43 | 0.811 | 0.265 | 18.14 | 22.52 | 0.817 | 0.256 | 16.68 | 22.55 | 0.818 | 0.254 | 138.91 | |
| Dataset | Rate | GoDe (Octree-GS) | Independent training w/ compression | Independent training w/o compression | |||||||||
| PSNR | SSIM | LPIPS | Size [MB] | PSNR | SSIM | LPIPS | Size [MB] | PSNR | SSIM | LPIPS | Size [MB] | ||
| Mip-NeRF360 | 2 | 26.75 | 0.779 | 0.309 | 11.21 | 27.51 | 0.806 | 0.283 | 13.61 | 27.67 | 0.808 | 0.279 | 53.78 |
| 4 | 27.77 | 0.815 | 0.265 | 21.72 | 27.82 | 0.817 | 0.262 | 21.90 | 27.91 | 0.819 | 0.259 | 87.60 | |
| 7 | 27.84 | 0.819 | 0.257 | 36.22 | 27.91 | 0.819 | 0.253 | 36.10 | 28.04 | 0.821 | 0.250 | 149.80 | |
| Tanks&Temples | 2 | 23.45 | 0.830 | 0.288 | 8.16 | 23.36 | 0.828 | 0.284 | 6.93 | 23.35 | 0.829 | 0.280 | 27.18 |
| 4 | 24.14 | 0.862 | 0.232 | 14.69 | 24.01 | 0.858 | 0.236 | 12.72 | 24.04 | 0.859 | 0.231 | 50.32 | |
| Mip-NeRF360 | Tanks&Temples | DeepBlending | ||||||||||||||
| Backbone | LoD | PSNR | SSIM | LPIPS | Size [MB] | FPS | PSNR | SSIM | LPIPS | Size [MB] | FPS | PSNR | SSIM | LPIPS | Size [MB] | FPS |
| Scaffold-GS | 0 | 27.29 | 0.792 | 0.310 | 9.81 | 104 | 23.17 | 0.812 | 0.281 | 4.13 | 171 | 30.00 | 0.901 | 0.351 | 3.92 | 183 |
| 1 | 27.62 | 0.802 | 0.297 | 11.93 | 96 | 23.68 | 0.829 | 0.259 | 5.10 | 160 | 30.27 | 0.905 | 0.343 | 4.63 | 178 | |
| 2 | 27.79 | 0.808 | 0.288 | 14.57 | 89 | 23.98 | 0.840 | 0.242 | 6.30 | 148 | 30.40 | 0.908 | 0.337 | 5.48 | 171 | |
| 3 | 27.87 | 0.811 | 0.282 | 17.85 | 83 | 24.16 | 0.847 | 0.229 | 7.80 | 137 | 30.49 | 0.909 | 0.332 | 6.49 | 166 | |
| 4 | 27.92 | 0.813 | 0.278 | 21.95 | 78 | 24.25 | 0.851 | 0.220 | 9.66 | 125 | 30.53 | 0.910 | 0.329 | 7.70 | 159 | |
3DGS Compression
3D Gaussian Splatting compression reduces storage and rendering costs while preserving the quality of reconstructed views and scenes.
See all 80 papers