A cozy record store filled with shelves of vinyl records, colorful album covers lining the walls. A glass display case sits in the foreground with various music memorabilia, while bright natural light pours in through large windows, creating a welcoming atmosphere.

PlayCanvas updates SplatTransform to 2.0

SplatTransform 2.0 brings sparse voxel grids, new GPU cleanup filters, URL inputs, and a new coplanar merge path. Less splat chaos, more control.

For those who don’t know the tool: SplatTransform is a CLI and library that converts and edits Gaussian splats for pipelines that end up in SuperSplat or real-time runtimes. It ships as a package for Node.js and also runs in browser contexts.

What 2.0 actually changes

SplatTransform 2.0.0 adds a sparse voxel grid plus exterior fill for nav simplification. That pushes the tool beyond file shuffling and into spatial reasoning you can use for scene cleanup and interaction prep, especially in Gaussian Splatting workflows. Or, you know, previews.

Two new GPU-based processing actions land alongside the voxel pipeline: filterFloaters and filterCluster. They target unwanted bits that do not belong to coherent spatial clusters, and they run on the GPU path.

A digital collage displaying a variety of images: an empty, textured room, a shimmering moon, vibrant tomatoes, a weathered car, and detailed close-ups of insects and nature, creating a rich tapestry that showcases diverse textures and forms.

Floors, clusters, and tighter crops

2.0.0 adds floor fill, voxel-level cluster flood, and tighter voxel crops. The net effect is more structured scene operations, built on the voexl representation rather than only per-splat attributes. The release also refactors logging and progress reporting, and the CLI now reports peak memory usage in its final summary line. That is small, but it is the kind of small that saves time when you run batches overnight, or the whole studio is computing in timewarp.

Less native baggage, more inputs

The tool replaces meshoptimizer with a lossless coplanar-merge pass. That removes a native dependency from the meshing side of the pipeline and keeps the operation lossless by design. SplatTransform also accepts http and https URL inputs in the CLI, so you can feed remote assets directly without a manual download step. PlayCanvas also updates the dependency on supersplat-viewer as part of the 2.0.0 release work.

Formats, install, and the boring but important bits

The repo documents claim support for PLY, Compressed PLY, SOG, SPZ, SPLAT, KSPLAT and LCC, plus write support for PLY, Compressed PLY, SOG, SPZ, GLB, CSV, HTML Viewer, LOD and Voxel formats. So, everything we ever heard of as formats for splats. Install uses npm with a global command, and there is also a Docker backend guide for server-side use. Which we will be testing soon, and if you don’t hear from us again, something exploded.

A detailed chart displaying various supported file formats for a software application. The chart lists file types, including .ply, .sog, and .json, with corresponding input and output compatibility checks marked with green and red symbols, and includes descriptions of each format.

The code is MIT-licensed and published as an open-source package, which usually means it’s free to use, but any production adoption still deserves a legal and pipeline check. New tools and innovations should always be tested before use in production, preferably on the worst shots and the messiest captures first.

https://github.com/playcanvas/splat-transform/releases/tag/v2.0.0