Skip to main content

Extract Mesh from Splat

This node converts a 3D Gaussian splat into a colored mesh surface. It works by rasterizing the gaussians onto a density grid, extracting an iso-surface at a chosen density level, and then applying optional smoothing and cleanup to produce a clean, colored triangle mesh.

Inputs

ParameterDescriptionData TypeRequiredRange
splatThe input gaussian splat to convert to a meshSPLATYes-
resolutionDensity-grid resolution along the longest axis. Higher values produce finer surface detail but require more VRAM and processing time (grows with resolution^3). Default: 384INTYes64 - 768 (step 16)
kernelMaximum splat half-width in voxels. Each gaussian is rasterized over a window sized to its own 3-sigma, capped at this value. Small surfels stay cheap while large ones aren’t truncated. Raise if sparse splats leave gaps. Default: 5INTYes1 - 8
smoothTaubin mesh-smoothing iterations. Smooths the surface without shrinking it (volume-preserving), unlike blurring the density. 0 means no smoothing. Default: 0INTYes0 - 60
levelIso-surface level. Auto-picked by Otsu thresholding; this value biases the auto-pick (1.0 = auto, lower values produce fatter/more-connected surfaces, higher values produce thinner/tighter surfaces). Default: 0.4FLOATYes0.0 - 2.0 (step 0.01)
min_componentDrops connected components smaller than this many vertices. Removes detached floater blobs and the inner shell of double walls. 0 keeps all components. Default: 500INTYes0 - 100000 (step 50)
min_opacityIgnores gaussians fainter than this value before meshing. Default: 0.02FLOATYes0.0 - 1.0 (step 0.01)
color_sharpenCrisps up the vertex texture. 1.0 gives physically-correct blend; higher values bias each voxel’s color toward its dominant gaussian instead of averaging neighbors (de-smears the texture). Affects color only, not geometry. Default: 2.0FLOATYes1.0 - 8.0 (step 0.5)

Outputs

Output NameDescriptionData Type
meshThe extracted colored mesh with unlit rendering (emissive-like) to match the splat appearanceMESH
This documentation was AI-generated. If you find any errors or have suggestions for improvement, please feel free to contribute! Edit on GitHub

Source fingerprint (SHA-256): 5a7060c26252b587ce533e5682abe880a6fcc83f6671232489c3de64b094cd84