Develop
Develop
Select your platform

Use Gaussian splats

Updated: Nov 10, 2025
Gaussian splat is a Meta Spatial SDK feature that lets you load and position Gaussian splats in your scene. A Gaussian splat is a technique for representing and rendering complex 3D scenes efficiently and with high fidelity.

Limitations

  • Only available on Meta Quest 3 and Quest 3S.
  • Only one splat can be rendered at a time.
  • Only supports .ply and .spz file types.
  • Hit detection can be inconsistent as it depends on the opacity and clustering of splats.

Add a splat

In your app’s main activity file:
  1. Import the following packages.
     import com.meta.spatial.splat.Splat
     import com.meta.spatial.splat.SplatFeature
     import android.net.Uri
    
  2. Register the splat feature in registerFeatures().
     override fun registerFeatures(): List<SpatialFeature> {
     return listOf(VRFeature(this), SplatFeature(this.spatial), ComposeFeature())
     }
    
  3. Add a splat component to an entity.
     splatEntity = Entity.create(
     listOf(
         Splat(Uri.parse("my_splat.spz")),
         Transform(
             Pose(
                 Vector3(0.0f, 0.0f, 0.0f),
                 Quaternion(),
             )
         ),
         Scale(Vector3(1f, 1f, 1f)),
     )
     )
    

Best practices

  • For performance, avoid using Gaussian splats with a splat count greater than 150k.
  • To navigate within large splat environments, you can attach the SupportsLocomotion Component to the Entity with the Splat Component.
  • Loading times can be long, especially with larger splats. Loading the splats at app start or behind appropriate loading UI will improve the user experience.

Troubleshooting

  • If the splat isn’t loading, verify that it’s either a .spz or .ply.
  • If the splat takes a long time to load or performs poorly, use an optimized splat, preferably one that’s less than 150k splats in the .spz format.
Did you find this page helpful?