SPLAT vs SPZ: Why SPZ Is Replacing the SPLAT Format
SPLAT was the first web-friendly 3DGS format. SPZ is smaller, better quality, and on a standards track. Here is the full comparison.
Updated Mar 2026
SPLAT: The Pioneer with a Critical Limitation
The SPLAT format was created by antimatter15 (Kevin Kwok) in late 2023, shortly after the original 3DGS paper. It was the first format designed specifically for streaming Gaussian Splatting scenes to web browsers. The format is elegantly simple: 32 bytes per Gaussian — position (3× float32 = 12 bytes), scale (3× float32 = 12 bytes), RGBA color (4× uint8 = 4 bytes), and rotation (4× uint8 = 4 bytes).
This simplicity enabled the first real-time web viewers for 3DGS and kickstarted the ecosystem. But it came with a fundamental trade-off: to fit in 32 bytes, SPLAT strips all spherical harmonics coefficients. In a full PLY file, each Gaussian stores up to 48 SH coefficients that encode how its color changes depending on the viewing angle — the effect that makes 3DGS scenes look photorealistic as you orbit around them. SPLAT keeps only the base color (the SH degree-0 coefficient, effectively the average color from all angles). The result: SPLAT scenes look flat and "dead" compared to their PLY originals, lacking the shimmering, view-dependent lighting that makes 3DGS compelling.
SPZ: Smaller Files, Better Quality
SPZ (created by Niantic for Scaniverse) solves both problems at once: it is significantly smaller than SPLAT AND preserves spherical harmonics. A 1M Gaussian scene as SPLAT: ~120 MB (32 bytes × 1M). The same scene as SPZ: ~16 MB. That is 7-8x smaller than SPLAT. And the SPZ version preserves SH, so scenes retain view-dependent color — they look like the original PLY, not a washed-out approximation.
How? SPZ uses vector quantization on Gaussian parameters: instead of storing each Gaussian's SH coefficients independently, it builds a codebook of representative SH patterns and stores an index per Gaussian. This plus arithmetic coding achieves dramatic compression. Position data stays lossless.
The quality comparison is not subtle. Side-by-side, a SPLAT render looks like a uniformly lit photograph — flat and artificial. An SPZ render of the same scene shows the specular highlights on glossy surfaces shifting as you orbit, the color of shadows changing based on view angle, and materials looking tangibly real. This is the difference spherical harmonics make.
When SPLAT Still Makes Sense
Despite SPZ's advantages, SPLAT has one genuine strength: streaming. Because SPLAT is uncompressed with a fixed per-Gaussian structure, a viewer can start rendering before the entire file is downloaded — progressive rendering as bytes arrive. This is useful for very large scenes on slow connections, where seeing a partial render is better than a loading spinner. SPZ requires full decompression before rendering, so you see nothing until the entire file is downloaded and decoded.
SPLAT also has broader viewer support due to its head start. The antimatter15/splat viewer, early Three.js 3DGS demos, and some embedded viewers only support SPLAT. If you need to target a specific legacy viewer, SPLAT may be the pragmatic choice.
However, these advantages are shrinking. SPZ file sizes are small enough that full-file download is fast anyway (2-3 seconds on broadband for a typical scene). And SPZ viewer support is growing rapidly — polyvia3d, gsplat.js, Scaniverse, and the upcoming Khronos glTF standard all use SPZ.
Migration Path: SPLAT to SPZ
If you have existing SPLAT files, you can convert to SPZ at polyvia3d.com/splat-convert/splat-to-spz. The catch: because SPLAT already stripped spherical harmonics, converting SPLAT → SPZ produces a compressed file that still has flat colors. You cannot recover lost SH data. The benefit is purely file size: the SPZ will be 7-8x smaller than the SPLAT.
For the best results, go back to your original PLY (if you have it) and convert PLY → SPZ directly. This preserves spherical harmonics and achieves maximum compression. Only use SPLAT → SPZ if you have no PLY original.
For new projects in 2026: skip SPLAT entirely. Export PLY from your training tool, then convert to SPZ for distribution. SPLAT is a legacy format from 2023 — it served its purpose in bootstrapping the 3DGS web ecosystem but has been superseded.
SPLAT vs SPZ at a Glance
| Feature | SPLAT | SPZ |
|---|---|---|
| Typical file size (1M Gaussians) | ~32 MB | 12–20 MB |
| Spherical harmonics | Stripped (flat colors only) | Preserved (quantized) |
| View-dependent lighting | No — scenes look flat | Yes — realistic lighting shifts |
| Compression | None (raw bytes) | VQ + arithmetic coding |
| Color encoding | 4× uint8 (RGBA) | Quantized SH coefficients |
| Position precision | 3× float32 | Near-lossless (quantized) |
| Rotation encoding | 4× uint8 quaternion | Quantized quaternion |
| Streaming support | Yes (progressive rendering) | No (decompress first) |
| Standard track | Community convention | Khronos glTF extension |