playcanvas/splat-transform

CLI tool and library for 3D Gaussian splat processing and conversion

What it solves

SplatTransform provides a unified way to convert, edit, and optimize 3D Gaussian splats. It addresses the lack of standardization across various splat file formats and the need for tools to clean, transform, and compress these scenes for efficient web delivery and real-time rendering.

How it works

It operates as a platform-agnostic library (Node.js and browser) and a CLI tool. It reads a wide variety of input formats, applies a sequence of actions (such as transformations, filtering, or decimation), and writes the result to a specified output format. It can leverage GPU acceleration for complex tasks like SOG compression, voxelization, and rendering images from splat data.

Who it’s for

Developers and 3D artists working with Gaussian splatting who need to convert between formats, optimize scene sizes for the web, generate collision data for interactive apps, or programmatically manipulate splat data using JavaScript.

Highlights

  • Extensive Format Support: Reads PLY, SOG, SPZ, SPLAT, KSPLAT, LCC, and LCC2; writes PLY, SOG, GLB, CSV, HTML, and more.
  • Advanced Filtering: Includes tools to remove NaNs, filter by value, remove "floaters," and isolate connected clusters.
  • Scene Optimization: Supports uniform and adaptive decimation to reduce splat counts for huge scenes (100M+ Gaussians).
  • Web-Ready Output: Generates super-compressed SOG formats and standalone HTML viewers for easy sharing.
  • Collision Generation: Can create sparse voxel octrees and collision meshes from splat scenes.
  • GPU Rasterizer: Capable of rendering lossless WebP images from splats with support for motion blur and defocus blur.

Related

  • Project
  • Project
  • Project
  • Project
  • Project