Skip to main content

PLY to KSPLAT Converter — Three.js Gaussian Splatting Format

Convert Gaussian Splatting PLY files to KSPLAT for use with Three.js GaussianSplats3D library.

Last updated Mar 2026

  1. 1
    Upload
  2. 2
    Convert
  3. 3
    Download

Drag PLY (Gaussian Splatting) file here, or click to upload

What You Should Know

PLY to KSPLAT: Built for the Three.js Ecosystem

KSPLAT is the native format of Mark Kellogg's GaussianSplats3D library for Three.js, which is the most widely adopted JavaScript library for Gaussian Splatting in web applications. If you are building a Three.js scene with embedded Gaussian Splatting, converting your PLY to KSPLAT avoids the overhead of runtime conversion and unlocks progressive streaming — the library can start rendering the scene before the full file has downloaded.

KSPLAT Compression and Trade-offs

KSPLAT achieves about 65% size reduction compared to PLY by quantizing per-Gaussian properties. KSPLAT supports optional spherical harmonics, but whether a file contains SH depends on the settings used when creating it — the default is no SH. When SH is included, it can be stored at 16-bit or 8-bit precision depending on the compression level. A 500 MB PLY file becomes approximately 175 MB in KSPLAT. The format stores Gaussians in sorted chunks optimized for the GaussianSplats3D renderer, which enables efficient depth sorting — a critical step for correct alpha blending in 3DGS rendering. This chunked layout is what enables progressive loading: the renderer displays coarse results immediately and refines as more chunks arrive.

When to Choose KSPLAT vs. SPZ for Web Use

If your target runtime is specifically GaussianSplats3D (Three.js), use KSPLAT — it is the format the library is optimized for, with chunked sorting and progressive loading. If you need a format that works across multiple runtimes and preserves spherical harmonics, use SPZ. If you need the broadest compatibility with the widest range of existing web viewers, use SPLAT. KSPLAT is a specialist format: excellent for its target ecosystem, less portable outside it. This converter requires a Gaussian Splatting PLY file as input. Standard mesh PLY files from Blender or CAD tools are not supported. See /formats/ply-3dgs for more on the difference between the two types of PLY files.

PLY vs KSPLAT
FeaturePLYKSPLAT
File SizeLarge — uncompressed (~236 bytes/Gaussian)Small — ~35% of equivalent PLY
Spherical HarmonicsYes — full SH up to degree 3Optional — included only if enabled when creating the file (default is no SH)
Web CompatibilityLimited — size makes direct delivery impracticalGood — Three.js GaussianSplats3D ecosystem
CompressionNone — raw parameter storageGood — quantized with optional chunks
Progressive LoadingNoYes — streaming-optimized
Typical UseResearch, desktop editing, source of truthThree.js integration, large scene streaming
Frequently Asked Questions
KSPLAT is proprietary to the GaussianSplats3D library. Most other web viewers and desktop tools do not natively support KSPLAT. For cross-platform use, convert to PLY (for editing), SPLAT (for broad web compatibility), or SPZ (for compressed, SH-preserving delivery).
Yes, optionally. Whether a KSPLAT file contains SH depends on the settings used when creating it. KSPLAT has two independent parameters: a spherical harmonics level (which controls whether SH data is included — the default is off) and a compression level (which controls data precision). Most KSPLAT files do not contain SH because the default settings omit it. When SH is included, it can be stored at 16-bit or 8-bit precision depending on the compression level.
This converter targets the KSPLAT format as used by GaussianSplats3D versions 3.x and above. The format is stable and backward compatible across recent library versions.
KSPLAT files are organized in sorted chunks. The GaussianSplats3D library loads and renders chunks sequentially, showing a lower-detail preview immediately and progressively adding detail as more chunks arrive. This is particularly valuable for large scenes where full load time would otherwise be 10+ seconds.
Approximately 65% smaller. A 500 MB PLY file becomes roughly 175 MB KSPLAT. This is larger than SPZ (which achieves 90% reduction) but KSPLAT gains progressive streaming capability in exchange. For the smallest possible output with SH preserved, choose SPZ instead.

Related Converters