Gaussian Splats Web Implementation: SOG Format, Streaming, and Compression

Research Date: 2026-01-20
Source URL: https://www.youtube.com/watch?v=ALSmVguEimA
Video Title: Gaussian Splats Are Now Web Ready
Channel: XR AI Spotlight
Publication Date: 2025-11-12
Duration: 47:05

Reference URLs

Summary

This research note documents technical implementation details for deploying 3D Gaussian Splats on the web, based on an interview with Will Eastcott, CEO of PlayCanvas. The discussion covers three primary technical domains: the SOG compression format that achieves up to 95% file size reduction through WebP-based lossless encoding, a streaming level-of-detail system for adaptive rendering across device capabilities, and practical guidance on Gaussian count limits for web performance.

The SOG (Splat Optimized Graphics) format represents a significant advancement in splat compression by encoding Gaussian properties into WebP image channels and utilizing codebook-based quantization to preserve precision. PlayCanvas’s streaming architecture enables rendering of arbitrarily large splat scenes by dynamically loading Gaussian chunks based on camera position and device performance metrics.

Key technical constraints identified include a practical limit of approximately 4 million Gaussians for web deployment on desktop hardware, with mobile devices requiring substantially fewer. The interview also addresses the trade-offs between streaming complexity and use-case requirements, distinguishing between product visualization (where full-resolution static splats are appropriate) and large-scale environment exploration (where streaming becomes essential).

Technical Analysis

SOG Compression Format Architecture

The SOG format, developed by PlayCanvas engineer Donovan Hutchinson, achieves substantial file size reduction by leveraging WebP’s lossless compression capabilities. The format encodes Gaussian splat properties into image channels rather than traditional binary formats.

Property Encoding Schema

Each Gaussian in 3D Gaussian Splatting contains the following properties that require encoding:

PropertyDescriptionEncoding Strategy
Position (x, y, z)3D world coordinatesQuantized to WebP channels
Scale (sx, sy, sz)Ellipsoid dimensionsCodebook-indexed values
Rotation (quaternion)Orientation as 4D quaternionCodebook-indexed values
Color (RGB)Spherical harmonics coefficientsDirect RGB channel mapping
OpacityAlpha transparency valueWebP alpha channel

The selection of WebP over newer formats like AVIF was deliberate. According to Eastcott, while AVIF provides superior lossy compression, WebP outperforms it for lossless compression, which is critical for splat rendering fidelity:

“As soon as you apply any lossy compression, it’s very much noticeable in the rendering artifacts. So we needed lossless compression, and this is why we’re not using AVIF.”

Codebook-Based Quantization

The SOG format employs codebook quantization to maximize precision within the available bit depth. This technique pre-computes a dictionary of commonly occurring values for properties like rotation and scale, then encodes references to these dictionary entries rather than raw values.

File Structure

The SOG format supports two packaging modes:

  1. Bundled Mode: Single .sog file containing JSON metadata and embedded WebP images
  2. Unbundled Mode: Separate JSON manifest file plus individual WebP image files

The unbundled mode is preferred for web delivery as it enables:

  • Parallel downloading of WebP chunks
  • HTTP range requests for partial loading
  • Better CDN caching characteristics

Streaming Level-of-Detail System

PlayCanvas has developed a streaming LOD system to address the fundamental constraint that web browsers cannot efficiently render arbitrarily large Gaussian counts in real-time.

Performance Thresholds

Empirical testing by PlayCanvas established the following performance boundaries:

Device ClassMaximum GaussiansFrame Rate Target
High-end Desktop~4 million60 FPS
Mid-range Desktop~2-3 million60 FPS
High-end Mobile~500K-1M30 FPS
Low-end Mobile~100K-300K30 FPS

These figures represent practical limits where frame drops begin to occur. The streaming system addresses this by dynamically managing which Gaussians are loaded based on view frustum and distance.

Spatial Chunking Architecture

The streaming system divides splat data into spatial chunks organized in a hierarchical structure:

LOD Selection Algorithm

The LOD selection follows a distance-based model where chunks closer to the camera receive higher detail levels:

  1. View Frustum Culling: Chunks entirely outside the view frustum are not loaded
  2. Distance Calculation: Compute distance from camera to chunk center
  3. LOD Assignment: Map distance to LOD level using configurable thresholds
  4. Budget Management: Enforce total Gaussian count limits based on device capability
  5. Priority Queuing: Order download requests by visual importance

The system monitors frame timing to dynamically adjust the total Gaussian budget. If frame times exceed the target (16.67ms for 60 FPS), the system reduces detail levels until performance stabilizes.

Compression Ratio Analysis

The claimed 95% file size reduction requires contextualization. Eastcott clarified that this figure represents the maximum achievable compression when comparing:

  • Baseline: Uncompressed PLY format with full 32-bit float precision
  • Compressed: SOG format with codebook quantization and WebP lossless compression

Typical compression ratios observed in practice:

Input FormatOutput FormatCompression Ratio
Uncompressed PLYSOG90-95% reduction
Compressed PLYSOG40-60% reduction
SPZ formatSOG~50% reduction

The SOG format reportedly achieves approximately 2x smaller file sizes compared to the SPZ format, which was previously considered state-of-the-art for web splat delivery.

Rendering Pipeline Integration

The SOG format integrates with web rendering pipelines through the following stages:

The WebP decoding step leverages the browser’s native image decoder, which is typically hardware-accelerated and highly optimized. This provides a performance advantage over custom binary decoders implemented in JavaScript or WebAssembly.

WebXR Viewer Implementation

PlayCanvas has developed a WebXR-compatible splat viewer that demonstrates several technical considerations for immersive rendering:

  1. Stereo Rendering: Gaussian sorting must be performed per-eye for correct depth ordering
  2. Performance Budgeting: VR requires 72-90 FPS minimum, further constraining Gaussian counts
  3. Foveated Rendering: Potential optimization by reducing detail in peripheral vision (not yet implemented)

The viewer is available as open-source at the SuperSplat website and can be embedded via iframe or integrated directly into applications using PlayCanvas’s viewer API.

Format Adoption and Ecosystem

At the time of the interview (November 2025), SOG format support was limited to PlayCanvas. However, the format specification is documented for third-party implementation. Eastcott indicated that ecosystem adoption would follow as the format demonstrates superiority:

“At the moment it’s so new that of course PlayCanvas is the only engine that supports it. Over time we’ll see more tools in the ecosystem start to adopt this format because right now it’s just by far the best thing out there.”

The format can be generated through:

  • SuperSplat web editor (GUI-based export)
  • Command-line conversion tool (batch processing)
  • PlayCanvas Editor integration

Key Technical Findings

  • SOG Format: Achieves 90-95% compression over uncompressed PLY by encoding Gaussian properties into WebP channels with codebook-based quantization for rotation and scale values
  • WebP Selection: Lossless WebP outperforms AVIF for this use case; lossy compression produces visible artifacts in rendered output
  • Performance Ceiling: Approximately 4 million Gaussians represents the practical upper limit for 60 FPS rendering on desktop browsers
  • Streaming Architecture: Distance-based LOD selection with dynamic budget management enables rendering of arbitrarily large scenes by loading chunks on demand
  • Unbundled Delivery: Separate JSON manifest with individual WebP files enables parallel downloads and better CDN caching
  • WebXR Constraints: VR rendering requires per-eye sorting and stricter performance budgets, further limiting achievable Gaussian counts

Implementation Recommendations

For developers implementing web-based Gaussian splat rendering:

  1. Target 1-2 million Gaussians for broad device compatibility
  2. Implement streaming for scenes exceeding 4 million Gaussians or targeting mobile devices
  3. Use SOG unbundled format for production deployments to leverage HTTP/2 multiplexing
  4. Monitor frame timing and implement dynamic quality adjustment
  5. Pre-process splats using SuperSplat to remove unnecessary Gaussians (backgrounds, occluded regions)

References

  1. Gaussian Splats Are Now Web Ready - YouTube - Primary source, accessed 2026-01-20
  2. SuperSplat - Open-source splat editor
  3. PlayCanvas - WebGL engine with splat support
  4. 3D Gaussian Splatting for Real-Time Radiance Field Rendering - Original academic paper by Kerbl et al., SIGGRAPH 2023