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?
Thumbs up icon
Thumbs down icon