Skip to main content

SPZ to KSPLAT Converter Online

Convert SPZ compressed Gaussian Splatting to KSPLAT format for Three.js progressive streaming.

Last updated Mar 2026

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

Drag SPZ file here, or click to upload

What You Should Know

When to Convert SPZ to KSPLAT

If you have a scene in SPZ format and are building a Three.js web application using the GaussianSplats3D library, converting to KSPLAT enables progressive streaming. SPZ is excellent for storage and delivery, but the GaussianSplats3D library is optimized to load KSPLAT files in sorted chunks, providing immediate visual feedback while the rest of the scene downloads. This conversion is most useful for developers embedding large Gaussian Splatting scenes in interactive Three.js applications.

Data Changes in SPZ to KSPLAT Conversion

SPZ preserves SH in its compressed form. KSPLAT supports optional SH, but whether a KSPLAT file contains SH depends on the settings used when creating it — specifically the spherical harmonics level parameter (default is off). When you convert SPZ to KSPLAT, SH from the SPZ source can be preserved if the KSPLAT creation settings include SH. When SH is included, it can be stored at 16-bit or 8-bit precision depending on the compression level.

File Size Comparison

KSPLAT is larger than SPZ but smaller than SPLAT. A 50 MB SPZ file will typically produce a KSPLAT file of 130–180 MB, compared to 200–300 MB for an equivalent SPLAT file. If file size is the priority, keep SPZ. If the target runtime is Three.js GaussianSplats3D and you want progressive loading, KSPLAT is the right output format.

SPZ vs KSPLAT
FeatureSPZKSPLAT
File SizeVery small — ~10% of equivalent PLYSmall — ~35% of equivalent PLY
Spherical HarmonicsYes — preserved through gzip compressionOptional — included only if enabled when creating the file (default is no SH)
Web CompatibilityExcellent — Khronos/Niantic standardGood — Three.js GaussianSplats3D ecosystem
CompressionExcellent — quantization + gzip (~90% vs PLY)Good — quantized with optional chunks
Progressive LoadingNoYes — streaming-optimized
Typical UseWeb delivery, archiving, Scaniverse, long-term storageThree.js integration, large scene streaming
Frequently Asked Questions
SPZ uses gzip compression and quantization that is more aggressive than KSPLAT's encoding. KSPLAT is designed for efficient streaming and depth-sorting, which requires a specific chunk layout that trades some compression efficiency for loading performance.
It depends on the KSPLAT creation settings. KSPLAT supports optional SH, but the default is to omit it. If the KSPLAT is created with SH enabled, the SH data from the SPZ source will be preserved — stored at 16-bit or 8-bit precision depending on the compression level. For guaranteed full SH preservation, keep the file in SPZ format.
Yes. The KSPLAT output is compatible with the GaussianSplats3D npm package. Load it using the standard GaussianSplatsMesh or GaussianSplatsRenderer API.
KSPLAT enables progressive loading: the GaussianSplats3D library renders scene chunks as they arrive, so users see the scene immediately rather than waiting for the full file to download. For large scenes (100k+ Gaussians), progressive loading significantly improves perceived performance. SPZ must be fully loaded before rendering begins. If your scene is small enough that load time is not noticeable, keeping SPZ is simpler since it is the smaller format.

Related Converters