SPZ 4 — The Boring Little File Format Powering 800,000 Photoshop Splats Just Got 3× Faster

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.

Gaussian splat capture of a giant bronze head sculpture on grass, with the typical fuzzy edges of a 3DGS reconstruction
A Niantic Scaniverse capture — the kind of asset SPZ was built to ship. Source: Niantic Spatial

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 NGSP magic. 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.
Side-by-side comparison of the Stanford bunny as a point cloud and as a triangle mesh, illustrating the two classical 3D representations Gaussian splats replace
The old world: point clouds and meshes. SPZ ships a third thing — anisotropic 3D Gaussians with spherical harmonics — and makes it small enough to stream. Source: Niantic Labs

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.

Niantic Scaniverse mobile app showing a map of San Francisco with thumbnail tiles of Gaussian splat scans pinned to locations across the city
Scaniverse’s map is already the world’s largest public splat archive — over 10,000 scenes across 100+ countries, every one of them an SPZ file. Source: Niantic Labs

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 .spz or .ply in, 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.

 

Sharing is caring!

Leave a Reply

Your email address will not be published. Required fields are marked *