Skip to main content

Output Formats

Every scene gets two output formats: SOG (compressed, web-optimized) and PLY (raw Gaussian Splat data). Most can also be downloaded as SPZ, for native viewers. The output.formats parameter is accepted but has no effect: nothing reads it (_upload_to_r2 in pipeline/storage/upload.py).

Format comparison

SOG (Super-Optimized Gaussians)

SOG is a compressed format designed specifically for fast web delivery. It uses quantization and efficient packing to reduce file sizes by 3-5x compared to raw PLY while maintaining visual quality. Characteristics:
  • Typically 5-15 MB for a full scene
  • Loads in 1-3 seconds on a typical connection
  • Renders with the PlayCanvas gsplat viewer
  • Lossy compression — fine details may be slightly reduced
When to use: For anything that loads in a browser. Web apps, embeds, shareable links, mobile viewers. A download sends it when you don’t name a format and the scene has no SPZ.

PLY (Polygon File Format)

PLY is the standard interchange format for Gaussian Splats. It stores the full, uncompressed Gaussian parameters (position, covariance, color, opacity, spherical harmonics). Characteristics:
  • Typically 30-80 MB depending on the number of Gaussians
  • Contains all Gaussian parameters at full precision
  • Compatible with all major Gaussian Splat viewers and editors
  • Lossless — exact training output
When to use: When you need to post-process, edit, or analyze the Gaussian Splat data. Research, offline rendering, format conversion, or feeding into other tools.

Downloading

When downloading without format, the scene’s SPZ is served, otherwise its SOG, then its PLY; the X-Splat-Format header names the file sent. The scene’s format field names the file expected, but the header decides: a scene whose SPZ is missing from storage reports spz and sends SOG. Add ?format=sog or ?format=ply to the download URL for that file. The endpoint answers 200 with the file itself (downloadScene in api/src/lib/scenes.ts); pass -o <filename> to write it to a known path:

SPZ

SPZ is Niantic’s compressed format for Gaussian Splats: smaller than PLY, larger than SOG. Use it with viewers that load .spz files directly, such as native renderers. On iOS, SplatKit renders SPZ natively (iOS 17, A14 or M1 chip or newer). SPZ is the default download. After training, every scene is converted to SPZ on a best-effort basis, so some older scenes, and scenes whose conversion failed, have none. For those, a download without format sends SOG, while ?format=spz returns 404 not_found; it never sends another format instead.

Viewing SOG files

SOG files are rendered using the PlayCanvas gsplat viewer. You can:
  • View on Splat3D — every completed scene has a shareable link at https://splat-3d.com/tour/{sceneId}
  • Embed in your app — use the PlayCanvas viewer library directly
  • Use SuperSplat — the open-source desktop viewer from PlayCanvas

Working with PLY files

PLY files are compatible with a wide ecosystem of tools:
  • SuperSplat — browser-based editor for Gaussian Splats
  • 3D Gaussian Splatting Viewer — the original INRIA viewer
  • Nerfstudio — for further training or analysis
  • Custom pipelines — PLY is a standard format readable by most 3D libraries
For web delivery, always use SOG. Download PLY only when you need the raw data for offline processing or compatibility with third-party tools.