SPZ is the most boring file format in 3D right now. It’s also the one quietly running under Photoshop, Scaniverse, Babylon.js, and every web-based splat viewer worth a damn. Niantic just dropped SPZ 4, and the changelog reads like a “we finally rebuilt the plumbing” release: parallel decoding, plaintext headers, a vendor extension chain, no more 10-million-point ceiling. Three times faster to encode. Up to 2.1× faster to render. And — quietly — 800,000 SPZ files were created inside Photoshop in the last two months alone. The format is winning, and version 4 is the moment it stops being a Niantic side project and starts behaving like real interchange infrastructure.
The Story
When Niantic open-sourced SPZ in 2024, the pitch was simple: roughly 10× smaller than PLY, virtually no perceptible quality loss, MIT license. The ecosystem agreed. Adobe shipped it in Photoshop. Babylon.js added native support with spherical harmonics. The Khronos Group adopted it as the official compression codec for the KHR_gaussian_splatting glTF extension. Scaniverse’s 10,000+ public splats are SPZ files. The format won by being good enough and free enough that nobody bothered building a competitor.
The problem is that SPZ 1–3 were designed for a world of small, phone-sized captures. Single GZip stream. Hard 10-million-point cap. No way to peek at metadata without decompressing the whole file. No room for vendor data. That world is gone. Cesium is streaming 110-million-splat city scans through 3D Tiles. Framestore is rendering 4D splats for Superman. Photoshop users are dropping 8.5 GB captures into the canvas. The format needed a v4 rewrite, and Niantic finally shipped it on May 5, 2026.
What’s Actually New
- Parallel decoding. The single GZip stream is gone, replaced by six parallel ZSTD streams — one per attribute (positions, scales, rotations, colors, alphas, SH). Decode happens on multiple cores at once.
- Plaintext 32-byte header at a fixed offset, starting with an
NGSPmagic. You can read point count, SH degree, version, and flags without touching the payload. Asset managers, CDNs, and previewers no longer need to decompress to inspect. - No more 10-million-point cap. Tens of millions of Gaussians per file, finally.
- Spherical harmonics up to degree 4 (vs degree 3 before), with configurable 3–8 bit quantization. 5 bits hits the sweet spot. 3 bits gives you 18× SH compression for low-end targets.
- Vendor extension chain. Opt-in, forward-skippable. Unknown extensions don’t break readers. The first one shipped is Adobe’s Safe Orbit Camera (extension ID
0xADBE0002) — stores elevation and radius bounds so Photoshop’s rotate-object feature knows the safe viewing envelope.
The Benchmarks Are Mean
Niantic published numbers on five real scenes. Pick whichever feels most familiar:
- 3.6 M points: time-to-render dropped from 1,264 ms → 844 ms.
- 7.1 M points: file size halved (254 MB → 128 MB), TTR from 3,450 ms → 1,660 ms.
- 34 M points / 8.5 GB: encode time fell from 3 min 26 s to 1 min 8 s. Three times faster.
- Browser/WASM: up to 20× faster to load. Yes, twenty.
Files are also marginally smaller (~2.5%) than v3, but that’s not the point. The point is that v4 finally treats SPZ like a streaming format instead of a “save then load” archive.
Why You Should Care
The Adobe extension is the tell. When the company shipping splats inside Creative Cloud writes its own SPZ extension, the format stops being a Niantic format and starts being the format — the same way PSD became “an Adobe thing everyone reads” or how glTF became the runtime standard nobody argues about anymore. Photoshop has already created 800,000+ SPZ files in two months. Babylon.js reads them natively with full spherical harmonics. Khronos uses SPZ as the canonical compression for glTF splat assets. Scaniverse integration is landing within months.
If you’re building a splat-anything pipeline in 2026, your file layer is already SPZ whether you noticed or not. The interesting question is what you do with the new headroom: streamable city-scale scenes, drag-and-drop previewers that don’t choke, web viewers that load before the user gets bored, and — thanks to the extension system — domain-specific metadata (camera bounds, semantic tags, IFC-style classifications, capture device, GPS) baked into the file itself.
Try It / Follow Them
- GitHub: github.com/nianticlabs/spz — C++ library, Python bindings (
pip install), WASM/TypeScript build. MIT license. Drop-in compatible with v3 callsites. - Web converter: nianticspatial.com/spz-converter — drag a
.spzor.plyin, inspect header / point count / SH degree / bounding box, export JSON metadata or convert between formats. Runs fully in your browser, nothing uploaded. - Full release notes: SPZ 4 is here: leaner, faster, and more future-proof.
- Babylon.js integration: already shipped, including spherical harmonics support in the WebGL2 pipeline.
IK3D Lab Take
File formats are infrastructure, and infrastructure wins boringly. SPZ 4 isn’t a paper, it isn’t a demo, it isn’t a $1B AI valuation. It’s a 32-byte header, six ZSTD streams, and an extension chain — and that quiet plumbing is what makes the next year of splat tooling possible. Every plugin, viewer, asset manager, and AAA pipeline that ships in 2026 is going to read this format. The fact that Photoshop ships an SPZ extension before Niantic’s own Scaniverse adopts v4 tells you everything: the format already escaped its creator. That’s how you know it won.



