Gaussian Splats, Ingestion + Mesh Interop

The new GaussianSplatComponent: what's the supported ingestion path — standard .ply splats, .spz, or a conversion step inside RCP? And can a splat coexist in a scene with mesh geometry and depth-sort/occlude correctly against it, or are splats a separate pass with no depth interaction with meshes?

Answered by Vision Pro Engineer in 891243022

The standard ingestion path for now is .ply. See the sample Gaussian splats on visionOS for a demonstration of the suggested ingestion path from a .ply file. The sample also demonstrates how to render it using a GuassianSplatResource and a GaussianSplatComponent.

Splats can coexist in a scene with mesh geometry and do sort as expected.

The standard ingestion path for now is .ply. See the sample Gaussian splats on visionOS for a demonstration of the suggested ingestion path from a .ply file. The sample also demonstrates how to render it using a GuassianSplatResource and a GaussianSplatComponent.

Splats can coexist in a scene with mesh geometry and do sort as expected.

https://www.linkedin.com/posts/dzeitman_wwdc2026-gaussians-ar-activity-7470283907423236097-v_es?utm_source=share&utm_medium=member_ios&rcm=ACoAAAAN0PsBjQbuJ99ns7x4DOWVAjNAO9dndOo

my post explains the current limitations of Reality Kit and the limitations of the demo.

200,000 splats is really tight. Apple needs to consider removing this restriction or at least optimize for a 500,000 splats.

The sample app uses a non-standard PLY. In order to make it work with industry standard PLY you need to rework the parser the Sample app.

Gaussian Splats, Ingestion + Mesh Interop
 
 
Q