PlayCanvas has released splat-transform v3.9.0, which speeds up SOG compression on GPUs without half precision shader support.
When splat-transform compresses a gaussian splatting scene to SOG, it runs a GPU k-means clustering pass. Version 3.9.0 adds a faster 32-bit float kernel for that pass, which needs one fused multiply-add per element instead of a subtract plus a multiply-add. Only devices that lack the WebGPU shader-f16 feature take the new kernel, NVIDIA under Vulkan for example, and the f16 path is unchanged.
The level of detail writer now starts gathering and clustering the next unit while the current one encodes and writes, so the GPU stays busy through each unit's CPU work, with at most two units in memory. Streamed SOG is the format SuperSplat builds automatically for every uploaded scene.
PlayCanvas's own timings use castle.ply, a 5 million gaussian scene at spherical harmonics degree 3. On an NVIDIA A10G under Vulkan, a GPU k-means run of 3 million rows of 45 values into 65,536 clusters over 10 iterations drops from 23.7 s to 12.5 s, castle.ply to SOG conversion from 51.0 s to 31.8 s, and a streamed SOG build combining four LODs and 9.4 million gaussians from 144.5 s to 69.9 s. On an M4 Max under Metal, which keeps the f16 path, ply to SOG holds at 43.9 s against 44.4 s, while ply to streamed SOG drops from 56.4 s to 44.4 s. Streamed SOG peak memory on the A10G rises from 1.95 GB to 2.16 GB on the CPU and from 130 MB to 260 MB on the GPU.
splat-transform v3.9.0 also fixes PLY reading. The reader previously decoded every file as little endian, so a binary_big_endian PLY came back byte swapped and an ASCII PLY was parsed as fixed width binary records, producing silent garbage or a misleading short read error. Big endian files now decode correctly. ASCII files and files with a missing or malformed format line are rejected with an explicit error, as are compressed PLY files that are not little endian.
The tool has moved through a run of point releases since v3.0.0 rebuilt it around streaming in July. Version 3.7.0 added a --gpu-backend option that forces Vulkan, D3D12, or Metal. Version 3.8.0 removed the --lod-errors option and its per leaf error tables, which the PlayCanvas engine no longer reads now that its LOD selection is distance only.
splat-transform v3.9.0 is available now on npm under the MIT license.



