Models, splats and video
Gaussian splats and level of detail
Stand inside a photoreal Gaussian splat capture (PLY or SPZ), draw it through a level-of-detail tree that keeps large captures fast, turn it into a real point cloud, or mesh it into a three-level glTF chain for a game engine.
Viewing, measuring and converting are free. The glTF level-of-detail chain is Pro.
Part of Gaussian splatting software, Benchmarks, Gaussian splatting to mesh.

When to use it
To review and present a splat capture on the desktop, to measure in it, to bring it into the same scene as a scan, or to hand a game engine something it can actually open.
Step by step
- Open a
.ply(a Gaussian splat file is told apart from a plain cloud on load) or a.spzwith File › Open…. - Navigate as with any scene; fly mode works inside it. Splats re-sort in the background as you move, so navigation never waits on a depth sort.
- Large captures are drawn through the level-of-detail tree automatically. The per-frame budget is 2,000,000 splats; set
N3D_SPLAT_BUDGETto change it. - To work on points (segment, classify, export), use Process › Convert to point cloud…: oriented disc sampling, 5 million points by default.
- To merge a second capture of the same place, use Process › Merge splat captures… (see align and merge).
- For a game engine, File › Export splats for a game engine… meshes the splats at three resolutions and writes
_LOD0.glb,_LOD1.glband_LOD2.glb.

What it was measured at
About 60 FPS at 2 million splats. On a 1.92 million splat capture the level-of-detail tree draws 2.4x faster at a 500,000-splat budget and 4.6x faster at 150,000, at a quality that cannot be picked out in a still. The tree’s merged Gaussians cost 1.14x the source.
Why a replacement tree
A point is a sample of a surface; a splat is a piece of surface. Thinning splats the way a point cloud is thinned makes the scene transparent rather than coarse. So every node of the splat tree carries merged Gaussians standing in for its subtree, moment-matched and conserving alpha mass, and each frame draws a cut through the tree at the budget.
From the command line
n3d-render-cli splat-lod --input room.ply --out room.glb --levels 3 # room_LOD0.glb ... (Pro)
n3d-render-cli splat-tree --input room.ply --budget 500000 # LOD statistics
n3d-render-cli export-cloud --input room.ply --out room_cloud.ply --samples 4000000 # (Pro)
Limits, stated
- The splat tree is not yet out of core: the whole tree is uploaded, so it makes big scenes fast, not scenes larger than video memory possible.
- There is no automatic metric scale for a splat capture; rescale it by hand in the reposition window.
- Merging captures drops higher-order spherical harmonics.
Related questions
Can it stream splat scenes larger than video memory?
Not yet. The splat level-of-detail tree makes large captures fast (2.4 times faster at a 500,000-splat budget), but the whole tree is uploaded to the GPU. Point clouds, by contrast, stream beyond video memory already.
Can it put a splat capture at metric scale automatically?
No. Automatic metric anchoring needs a seven-parameter solve that is not built. A capture can be rescaled by hand in the layer’s Reposition window.
More in the FAQ.