Mo Tawfik Khalifa · Product leader and builder
All notes

SuperSplat tutorial: how to clean, crop and publish a 3D scan

7 min read · Mo Tawfik Khalifa
Try it below

SuperSplat is a free, open-source editor from PlayCanvas for Gaussian splat scans, and it runs in your browser with nothing to install. You drop in a .ply, .splat or .spz, paint over the stray blobs and delete them, crop to a box, turn the scan the right way up, then export a smaller file or publish it with a link.

It also got much lighter to run this autumn. PlayCanvas shipped SuperSplat Editor 3.0, rebuilt on WebGPU, on 9 September 2026. On a 4.4 million splat scene, a 990 MB PLY, the editor’s memory with the scene loaded fell from 1,557 MB to 105 MB.

I build real-time 3D for the web: my Hermès virtual store, the TAG Heuer showroom I built at Napster, and SEVEN Al Hamra, a building you could walk through before it was built. For splats, my live demo is tawfik.tv/window. It renders Spark’s own sample scene, a fireplace, not a scan of mine, as if your screen were a pane of glass. What a splat is and how to capture one is in Gaussian splatting on a website. This page is the step in between: cleaning a scan so it is fit to publish.

What is SuperSplat?

SuperSplat is PlayCanvas’s tool for inspecting, editing, optimising and publishing Gaussian splats (README). Three things to know:

How do I open a .ply, .splat or .spz in SuperSplat?

  1. Go to superspl.at/editor.
  2. Drag your file onto the window, or use File > Import. It reads .ply, .compressed.ply, .sog, .splat, .ksplat, .spz and XGRIDS .lcc files (formats). A .ply must hold splat data: a mesh PLY from a modelling tool will fail to load.
  3. Find your way round. Left-drag orbits, right-drag pans, the wheel zooms, double-click sets the point you orbit around, and F frames the selection.

You can also open a scan straight from a link:

https://superspl.at/editor?load=https://example.com/scans/postbox.ply

How do I delete floaters in SuperSplat?

Floaters are stray blobs hanging in the air where the training software was unsure what it saw. PlayCanvas’s own guide says most raw captures contain them, and that removing them is the single biggest quality win.

  1. Press N to turn on Selection Depth, so the tools stop at the visible surface instead of reaching through the scene. Press Tab to show each splat’s centre.
  2. Press B for the brush and paint over the floaters. [ and ] change its size. Hold Shift to add to the selection and Ctrl to take away from it.
  3. For a lone clump, press O for Flood Selection, which grows a selection from where you click.
  4. Press Delete. Turn the camera, look again, repeat.
  5. Took too much? Ctrl+Z undoes (Cmd+Z on a Mac), and Select > Reset brings back every deleted splat.

When an area is finished, select it and press H to lock it, so a stray brush stroke cannot touch it. Shift+H unlocks everything. Every tool and key is in PlayCanvas’s selection guide and shortcut list.

Try it on a sample scan of a London post box. This brush reaches through the scan, as SuperSplat does with Selection Depth off, so turn the view when the post box gets caught.

Clean a scan: brush away the floaters, crop to a box, watch the file shrink

A sample phone scan of a London post box, as it arrives: grey wisps in the air, a wall behind, pavement to the horizon. Brush the wisps and press Delete. Then crop: Crop box, Select inside, Invert, Delete.

This editor needs JavaScript. The same cleanup in SuperSplat, in order:

  1. Open the scan at superspl.at/editor and drag the file in.
  2. Brush over the floaters (B), press Delete, turn the view and repeat.
  3. Box Selection around what you keep, Select, Invert (Ctrl+I), Delete.
  4. File, Export, SPZ or SOG. A full PLY stores about 248 bytes a splat; my window demo's .spz holds 301,000 splats in 4.4 MB.

postbox-scan.ply

Splats 0 Selected 0 Deleted 0 Demo editor, drawn in 2D

A made-up sample, drawn with one dot for every 420 splats. Sizes use 248 bytes a splat for a full PLY, from the original research code, and 14.6 bytes a splat for .spz, the rate of the 301,000-splat, 4.4 MB fireplace in my window demo.

How do I crop a splat in SuperSplat?

Cropping keeps what is inside a shape and deletes the rest: the street behind your subject, the ring of blurry ground every outdoor scan drags in.

  1. Pick Box Selection, or Sphere Selection, and double-click in the scene to place it.
  2. Shape it with the gizmo: 1 moves, 2 rotates, 3 scales. Or type its position and size.
  3. Click Set to select everything inside. Leave Selection Depth off here, so the box reaches through the whole scene.
  4. Choose Select > Invert (Ctrl+I), then press Delete.

How do I fix the orientation and scale?

Scans often load on their side or upside down, and at no real-world size. The transform guide covers three fixes:

How do I compress and export from SuperSplat?

File > Export offers PLY, SOG, SPZ, Splat and Viewer App, and only visible splats are exported.

Ctrl+Shift+E repeats the last export to the same file. File > Save keeps an .ssproj project with your edits, so you can come back later.

What you delete counts twice. A full PLY stores about 248 bytes a splat, so every 100,000 floaters you cut is about 25 MB off the master.

How do I publish or embed a SuperSplat scene?

Three ways, from least work to most control.

  1. Publish to superspl.at. Log in, frame the view people should see first, then File > Publish with a title and a description. SuperSplat compresses the scan to SOG, which can take several minutes, and gives you a scene page. New scenes are unlisted: only people with the link can see them. On the scene page, Embed gives you an iframe for your own site, and later changes you make in Studio show up in it (publishing guide).
  2. Export a Viewer App. File > Export > Viewer App gives you one HTML file with the scan inside, or a ZIP with the viewer and an index.sog. The single file is about 30% larger, and PlayCanvas says files under 32 MB should load everywhere. The ZIP only runs over http://, so test it with a local server before you upload it to any web host (self-hosting guide).
  3. Your own page, with Spark. See the next section.

To test an unzipped Viewer App on your own machine:

cd postbox-viewer        # the unzipped Viewer App
python3 -m http.server   # then open http://localhost:8000

How do I put a cleaned scan on my own website?

Export SPZ and load it with Spark, the three.js splat renderer my window demo uses. The heart of it is one line:

const scan = new SplatMesh({ url: "/scans/postbox.spz" });

The whole page, about 20 lines, and what broke when I shipped mine are in Gaussian splatting on a website. Which route to take:

Two cleanup habits pay off on your own page:

If the scan is one room in a bigger 3D site, see how I build three.js websites. If you are pricing a walk-round of a property or venue, what a 3D virtual tour costs compares splats with 360 photo tours and scanned tours.

Questions people ask

Is SuperSplat free?

Yes. The Editor is open source under the MIT licence and free to use in the browser. Publishing to superspl.at needs a free PlayCanvas account.

Does SuperSplat upload my scan?

Not while you edit. The Editor loads files locally, and nothing is uploaded until you choose Publish.

Can SuperSplat convert PLY to SPZ?

Yes. Open the PLY and choose File > Export > SPZ. PlayCanvas also runs a converter page at superspl.at/convert, built on its splat-transform tool.

Why won’t my PLY open in SuperSplat?

It may be a mesh, not a splat: SuperSplat only loads PLY files that hold Gaussian splat data. It also needs a browser with WebGPU.

Is SuperSplat the same as Spark?

No. SuperSplat is PlayCanvas’s editor and viewer. Spark is a separate splat renderer for three.js, built by World Labs.

If you want a scan cleaned and built into your own site, see 3D web experiences or write to me at m@tawfik.tv.

Read next

See all notes