Log inGet started
Package

gaussianSplats.package

Newest version

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

FieldDefaultMeaning
source""VFS path of the capture.
convention"rightDownFront"Axis convention the capture was authored in. "engineNative" for a capture already in engine space.
opacity1.0Multiplies every splat's stored opacity.
size1.0Multiplies every splat's stored size.
visibletrueWhether the cloud draws.
buckets4096Depth buckets the per-frame far-to-near sort files splats into.
near / far0.05 / 500.0Depth 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 gaussianSplats render 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.