Skip to main content

Convert PLY to SOG — 95% Compression for Gaussian Splatting

Convert any 3DGS file to PlayCanvas SOG format. Morton ordering + WebP + k-means compression. Runs in your browser.

Last updated Mar 2026

Drop a PLY file to convert to SOG

Supports .ply, .splat, .spz, .ksplat

What You Should Know

What Is PLY to SOG Conversion?

This tool converts Gaussian Splatting PLY files into PlayCanvas SOG format — the most compressed 3DGS format available. SOG achieves up to 95% file size reduction compared to raw PLY (typical for PLY files with full spherical harmonics; SH0-only files see 70-85% reduction) by combining three compression techniques: Morton spatial ordering (Z-curve), WebP image compression for attribute textures, and k-means codebook quantization for scale and color data.

How the Conversion Works

The converter reads your PLY file, extracts all Gaussian attributes (positions, scales, rotations, opacity, spherical harmonics), sorts them into Morton spatial order for optimal compression, arranges the data into 2D attribute textures, compresses those textures with WebP, and quantizes scale/color values using k-means clustering. The k-means step runs on your CPU — no GPU required. The entire process happens locally in your browser. Processing time depends on file size: expect 10-30 seconds for a 50 MB PLY, several minutes for 500+ MB files.

SOG vs SPZ: Why Choose SOG?

For scenes with full spherical harmonics data, SOG is typically 2x smaller than SPZ (the gap is narrower for SH0-only files). SOG also decodes faster because the WebP textures upload directly to the GPU without a JavaScript decompression loop. However, SPZ has broader tool support and is aligned with the Khronos glTF ecosystem. Use SOG when file size and load speed are critical (web delivery, mobile), and SPZ when you need maximum tool compatibility.

Supported Input Formats

This tool accepts PLY (3DGS binary_little_endian), SPLAT (32-byte antimatter15), SPZ (Niantic compressed), and KSPLAT (PlayCanvas/SuperSplat) files. All are converted to SOG using the same pipeline. The output is always a single .sog bundle file.

Frequently Asked Questions
SOG uses lossy compression (k-means quantization and WebP compression), but the visual impact is minimal — typically imperceptible at normal viewing distances. Position data uses 16-bit quantization which preserves geometry to sub-millimeter precision. Spherical harmonics are preserved via codebook compression.
The k-means clustering step is computationally intensive. It runs on your CPU because GPU acceleration requires a WebGPU-capable browser and the PlayCanvas engine. For the fastest conversion, use the splat-transform CLI tool on your machine (npm install -g @playcanvas/splat-transform).
SOG files can be viewed in the PlayCanvas SuperSplat editor, the PlayCanvas engine, Spark.js (used by this site), and any viewer that implements the open SOG specification. Our SOG Viewer page loads SOG files directly.
Yes. SOG to PLY conversion is also supported — use the SOG to PLY converter. Note that round-tripping (PLY → SOG → PLY) will have minor precision loss from the quantization step.
No. All processing happens locally in your browser. Your file never leaves your device.
The tool works with files up to 500 MB, limited by browser memory (the file is loaded into memory and conversion creates additional buffers). For larger files, use the splat-transform CLI tool which has no browser memory limitations.

Related Tools

Step-by-Step Guides