SuperSplat 3.0 brings large 3D scenes into the browser

PlayCanvas rebuilds its open-source Gaussian splatting editor with WebGPU, cuts JavaScript memory usage, and adds new tools for massive scenes.

A 4.4-million-Gaussian scene previously occupied more than 1.5 GB of the browser’s JavaScript memory once loaded. In SuperSplat 3.0, PlayCanvas measured 105 MB for the same file. The new version does more than optimize a few functions: its rendering engine and data model have been completely rebuilt around WebGPU.

SuperSplat is an editor for scenes created using Gaussian splatting. This technique represents a captured space as a collection of colored, semitransparent volumes positioned in three dimensions. Their size, orientation, color, and opacity vary to reconstruct the appearance of a place or object from different viewpoints.

A scene of this kind can be created from numerous photographs or a video after a processing stage performed in other software. SuperSplat is then used to inspect it, remove unwanted elements, correct colors, reduce its file size, organize multiple captures, or prepare it for publishing.

The tool does not generate a scene from a text prompt. Nor does it replace polygonal modeling software. A Gaussian capture does not necessarily contain surfaces, edges, or topology that can be edited as they would be in Blender. Instead, it primarily describes the appearance of a space using a large number of oriented primitives.

This difference explains the editor’s particular requirements. When a scene contains several million Gaussians, each one carries position, scale, orientation, color, and transparency data. Displaying, sorting, and selecting them whenever the camera moves can quickly exhaust available memory or slow down the browser.

Previous versions of SuperSplat used WebGL 2 and assigned some of the sorting work to the CPU. They also kept complete copies of the scene in the JavaScript environment to manage edits. This structure became expensive when several captures were combined or when a file exceeded several hundred megabytes.

SuperSplat 3.0 abandons that approach. Projection, culling, compaction, depth sorting, and draw submission are now performed by the GPU every frame. The CPU-based sorting process used by earlier versions has been removed.

The data is stored in chunks in GPU memory. A lighter-weight list keeps only the state needed for editing, such as selections, locks, transformations, and color references. The browser no longer needs to maintain a second complete representation of the scene in JavaScript memory.

Histograms, range selections, color matching, bounds calculations, and intersection tests have also moved to the GPU. The goal is to keep editing tools responsive as the number of elements increases, not merely to accelerate the final rendering stage.

The measurements published by PlayCanvas use a 4.4-million-Gaussian scene loaded from a 990 MB PLY file. At idle, peak JavaScript memory usage falls from 1,557 MB to 105 MB. Saving a PLY file drops from 1,722 MB to 623 MB, while publishing decreases from 1,934 MB to 741 MB.

Rendering a 1080p video shows the largest difference after simple loading: 1,673 MB in SuperSplat 2.x compared with 142 MB in version 3.0. Saving a compressed PLY remains more demanding, but memory usage still falls from 2,982 MB to 1,759 MB.

These figures do not represent the machine’s total memory consumption. PlayCanvas is measuring peak JavaScript heap usage. Some of the work and data have moved to the GPU, whose memory usage is not included in the table. The reduction observed in the browser therefore does not mean that every operation uses 15 times less memory overall.

The comparison also covers only one file under conditions selected by the developer. Actual gains will depend on the format, number of Gaussians, available GPU memory, browser, and graphics hardware. PlayCanvas has not yet published a broader series of tests covering multiple consumer configurations.

The change remains significant for scenes that previously caused browser tabs to crash. Chunking the data avoids creating several complete copies during editing or export. It also becomes more practical to combine multiple captures in a single document to build a larger environment.

Exports follow the same principle. Files are written one chunk at a time with the `splat-transform` library instead of preparing the entire scene in memory before saving. This method applies to standard and compressed PLY files, SOG, SPZ, `.ssproj` projects, and publishing through SuperSplat.

Depth sorting remains one of the most expensive operations. Semitransparent primitives normally need to be ordered relative to the camera before they are blended on screen. With tens of millions of elements, repeating this sorting process during every rotation can slow interaction even when the GPU performs the calculation.

The new Stochastic Alpha mode temporarily bypasses this step. While the camera is moving, the Gaussians are displayed as opaque elements using depth testing and stochastic coverage. The scene can then respond more quickly to camera movements without waiting for a complete sort.

As soon as the camera stops, SuperSplat restores an accurately sorted and blended frame. The mode prioritizes responsiveness during interaction and exact quality at rest. The appearance may be less stable or less polished while moving, but this temporary representation does not modify the project data.

Four settings are available: `Disabled`, `Enabled`, `Movement`, and `Auto`. The last is enabled by default. The editor begins with conventional sorted rendering, measures the GPU time required, and switches to stochastic rendering during movement only when the scene becomes too slow. Lighter projects should retain their usual appearance.

PlayCanvas demonstrates the feature on a botanical garden capture containing about 20 million Gaussians. The demonstration confirms that the interface can remain usable with a highly dense scene, but it does not provide a frame rate, graphics card model, or independent comparison.

Selection editing has also been redesigned. The new Sphere Brush tool, available with `Shift+B`, allows users to