Gaussian Splat

Load .ply and .splat files, or convert points, a mesh, or a volume into gaussian splats. Splats convert back: wire them into a points input, the Volume node, or the Mesh node.

What it does

Gaussian Splat loads a captured 3D scene, a .ply or .splat file from a photogrammetry or radiance-field capture, as a cloud of soft, blended splats rather than a mesh. Point File Path at a folder of frames instead of a single file and it loads a moving splat sequence that plays over the timeline (see Gaussian splats). Wire something into Source and the node switches to convert mode, building splats from the shape of Points, a Mesh, or a Volume.

The Splats output goes back the other way too: wire it into a Points input, into the Volume node, or into the Mesh node, and each reads the splats into its own form.

When to use it

ParameterTypeDefaultWhat it does
sourceCollection or Field or GPU Geometry—Points, Mesh, or Volume to convert into Gaussian splats. When connected, file_path is ignored. Points → covariance fit; Mesh → surface sampling; Volume → per-voxel splats.
file_pathString"String::new()"Path to Gaussian splat file (.ply or .splat). Ignored if a source collection is connected.
k_neighborsNumber16K nearest neighbors for covariance estimation when fitting from points
fit_opacityNumber0.800Opacity assigned to each fitted splat (convert mode only)
fit_scale_factorNumber1Scale multiplier for fitted splat sizes (larger = more overlap)
mesh_splat_countNumber100000Target splat count sampled across the mesh surface (mesh convert mode). Reuses Opacity / Splat Scale for per-splat opacity and size.
density_thresholdNumber0.500Occupancy threshold: voxels with density above this emit a splat (volume convert mode). Reuses Opacity / Splat Scale for per-splat opacity and size.
positionVec3(0, 0, 0)Translation offset
rotationVec3(0, 0, 0)Rotation in degrees (Euler XYZ)
scaleVec3(1, 1, 1)Per-axis scale factors (X, Y, Z). Anisotropic scale is applied to splat covariance in the project shader, so non-axis-aligned splats stretch correctly.
sh_degreeString"Full"Spherical harmonic degree. Lower = faster. Full = use file's SH degree. One of: Full, Degree 2, Degree 1, Degree 0.
splat_scaleNumber1Global scale multiplier for splat sizes
opacity_cullNumber0Minimum opacity threshold (splats below are culled)
max_splatsNumber0Maximum splats to render (0 = unlimited)

Gotchas

Wiring anything into Source switches the node fully into convert mode. File Path is ignored from then on, even if it still points at a valid file.

The Fit, Mesh Convert, and Volume Convert parameter groups only matter for the matching input: K Neighbors / Fit Scale Factor only affect converting Points, Mesh Splat Count only affects converting a Mesh, Density Threshold only affects converting a Volume. Setting the wrong group's values for the current Source has no effect.

Worked example

  1. Add a Gaussian Splat node and set File Path to a .ply or .splat capture, leaving Source unconnected.

  2. To convert something you already have instead, wire a Points, Mesh, or Volume node into Source. File Path is now ignored.

  3. Converting Points: tune K Neighbors, Fit Opacity, and Fit Scale Factor under Fit to shape how the splats are estimated.

  4. Converting a Mesh: set Mesh Splat Count to control how densely the surface is covered.

  5. Converting a Volume: set Density Threshold to control which voxels become splats.

  6. Dial in Splat Scale, Opacity Cull, and Max Splats under Quality, then send Splats onward, including back into a Points input, the Volume node, or the Mesh node for another form.

See also

Model 3D · Gaussian splats