The State of 3D Gaussian Splat File Formats: PLY vs SPLAT vs KSPLAT
If you're working with 3D Gaussian Splatting (3DGS), you've likely encountered a confusing mix of file extensions: .ply, .splat, and .ksplat. While they all represent the same underlying data—millions of 3D Gaussians—their structures, use cases, and performance characteristics differ significantly.
This guide breaks down the technical differences, compression methods, and when to use each format.
1. The Standard: PLY
Use case: Training, Research, Archival
The .ply (Polygon File Format) is the original output format from the official Inria implementation. Despite its name, in 3DGS it stores a point cloud where each point has additional attributes (SH coefficients, opacity, scale, rotation).
Structure
A typical 3DGS PLY file contains these properties for every point:
- Position (x, y, z): 3 floats
- Normals (nx, ny, nz): 3 floats (often unused)
- SH Coefficients (f_dc, f_rest): 48 floats (for spherical harmonics degree 3)
- Opacity: 1 float (sigmoid activated)
- Scale: 3 floats (log scale)
- Rotation: 4 floats (quaternion)
Because it stores raw floats (uncompressed), PLY files are massive—often 300MB to 1GB for a standard scene.
2. The Web Native: .SPLAT
Use case: Web Viewing, Streaming
The .splat format was popularized by WebGL viewers like antimatter15/splat. It is a raw binary dump designed for rapid GPU ingestion. It discards the complex header parsing of PLY and often quantizes data to reduce size.
Optimization Technique
SPLAT files often pre-sort Gaussians or strip higher-order Spherical Harmonics (SH) to reduce file size by 60-70% with minimal visual quality loss on mobile screens.
3. The Compressed: KSPLAT
Use case: Production, Mobile Apps
Used by tools like PlayCanvas and SuperSplat, .ksplat introduces block-based compression. It groups Gaussians spatially and compresses their attributes using quantization and sometimes LZ4/Zstandard compression.
Benchmark Comparison
| Format | File Size (Avg) | Load Time | Quality | Best For |
|---|---|---|---|---|
| .PLY | ~400 MB | Slow | Lossless | Training & Archival |
| .SPLAT | ~150 MB | Fast | High | Web Viewers |
| .KSPLAT | ~80 MB | Fastest | Good | Mobile / Bandwidth-constrained |
Which should you use?
If you are building a dataset or training a model, stick to PLY. It preserves the raw mathematical definition of the scene.
If you are sharing a scene on the web (e.g., via SplatHost), uploading the PLY is fine—our viewer handles the streaming. However, converting to .SPLAT before upload can save your users bandwidth and make the scene load instantly on mobile networks.
Hosting Considerations
Because these files are large, hosting them on a standard web server often crashes it or incurs massive bandwidth bills. This is why we built SplatHost on top of Cloudflare R2—to offer infinite bandwidth for heavy 3D assets.
Need to host a PLY or SPLAT file?
SplatHost provides private, secure hosting with a high-performance WebGL viewer.
Get Started for Free