gaussianSplats.package
This package holds more than this page lists. See all of its files in its world.
README.md
GaussianSplat
Renders a Gaussian splat capture on an entity — a photographic reconstruction
stored as a cloud of oriented 3D Gaussians. .spz (Niantic) and .ply (3DGS)
captures both load.
local id = entity.spawn("scan").id
entity(id).component.add("GaussianSplat", { source = "captures/room.gaussianSplat" })
The entity's Transform places, rotates and scales the cloud like any other renderable: each Gaussian's covariance is conjugated by the transform, so a non-uniform scale shears the cloud the way it shears a mesh.
Fields
| Field | Default | Meaning |
|---|---|---|
source | "" | VFS path of the capture. |
convention | "rightDownFront" | Axis convention the capture was authored in. "engineNative" for a capture already in engine space. |
opacity | 1.0 | Multiplies every splat's stored opacity. |
size | 1.0 | Multiplies every splat's stored size. |
visible | true | Whether the cloud draws. |
buckets | 4096 | Depth buckets the per-frame far-to-near sort files splats into. |
near / far | 0.05 / 500.0 | Depth range the sort resolves, in world units. Splats outside it are skipped. |
Methods
setSource(source)— point the cloud at a different capture.setOpacity(scale)— scale every splat's stored opacity.setSize(scale)— scale every splat's stored size.
Notes
- The component only declares what to render. The
gaussianSplatsrender feature owns the GPU buffers and the per-frame depth sort, because only it runs inside a frame with a live camera to sort against. guides { path = "topics/gaussian-splats" }covers capturing, axis conventions, and tuning.