> For the complete documentation index, see [llms.txt](https://help.intangible.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.intangible.ai/build/import-gaussian-splats.md).

# Import Gaussian splats

A Gaussian splat is a photographic capture of a real place, reconstructed as a cloud of coloured points rather than as geometry. Where a mesh gives you clean surfaces and no detail, a splat gives you the real texture of somewhere that already exists: a quarry, a lobby, a stretch of coastline. Import one and it becomes a scene object like any other.

![A Gaussian splat of a volcanic crater placed in a Build-mode scene](/files/9nwsySsP802PEOWLYOzZ)

## What it does

Location scouting used to end with a folder of stills that nobody could put a camera inside. A splat is the alternative: capture the site, import it, and put your camera anywhere in it. The site arrives with its real light and real materials, and everything you build afterwards sits inside that instead of next to it.

Splats behave as a distinct object type in Intangible, alongside models, primitives, presets, and populators. They select, transform, and parent like anything else in the scene.

## Supported formats and limits

| Format     | What it is                           | Maximum size |
| ---------- | ------------------------------------ | ------------ |
| **`.PLY`** | The common uncompressed splat format | 2 GB         |
| **`.SPZ`** | Compressed splat format              | 512 MB       |
| **`.SOG`** | Compressed splat format              | 512 MB       |

Beyond file size, a splat is capped at **10 million splats**. That count is the splat equivalent of a vertex count, and it is checked during import: a file over the limit is rejected with an error naming the count it found, so you know how far over you are rather than guessing.

Two other limits apply to any import, splat or mesh:

* **10 files per upload.** Bring more than that and split the batch.
* **Regular 3D models** are capped at **512 MB** and **2 million vertices**. See [Import your own models](/build/import-your-own-models.md) for the mesh path.

{% hint style="info" %}
`.PLY` is used by both meshes and splats. Intangible reads the file header on upload to tell which one it has, and applies the matching size limit, so you don't have to declare it.
{% endhint %}

## How to import one

{% stepper %}
{% step %}

### Open the importer

In Build mode, open the asset library and click **Import Asset**. The **Import Assets** dialog lists what it accepts: glb, gltf, dae, fbx, ply, obj, sog, and spz.
{% endstep %}

{% step %}

### Decide whether you want the review step

Tick **Check to review and edit** before you browse. It costs one extra step and saves you a re-import when the splat arrives on its side, which is common. Leave it off only when you already know the file is oriented correctly.
{% endstep %}

{% step %}

### Drop the file and wait

Drag the file onto the dialog or browse to it. Processing runs in three visible stages: **Uploading**, then **Optimizing**, then **Generating thumbnail**, each with a percentage.

A splat takes materially longer than a mesh of similar size. The optimize step alone is allowed up to 25 minutes for a splat against 5 for a model, because the splat has to be voxelised as well as compressed. A large capture sitting at 60% is normal, not stuck.
{% endstep %}

{% step %}

### Fix the orientation

With the review option ticked, the **Asset Edit** panel opens with the splat labelled **FRONT**, **BACK**, and **RIGHT** in 3D space.

![The Asset Edit panel with FRONT and RIGHT labelled in 3D, and the Transform controls with Center, Size, and the three 90-degree rotate buttons](/files/vD5ZodLP7RVRYXg4famk)

There is no agreed convention for which way is up in a splat file, so captures routinely arrive lying on their side or facing backwards. Read the labels against the capture: if **FRONT** is pointing at the sky, the splat needs rotating. Use the three **90°** buttons to stand it upright, then **Center** it and check the **Size** values read like the real place. A room that reports 200m across came in at the wrong scale and wants fixing here, not after it is in the scene.
{% endstep %}

{% step %}

### Save

Save, and the splat lands in the scene ready to select and move.
{% endstep %}
{% endstepper %}

## Building on top of a splat

A splat is a cloud of points, so there is no surface to collide with. Intangible generates one: during processing it builds a low-resolution **collider** from the splat, and that collider is what the app actually uses for clicking, selection outlines, and placement.

Two things follow from that.

**Other objects can snap onto a splat.** With [surface snapping](/build/working-with-objects.md#snapping-modes) on, drop a prop onto the floor of a captured room and it lands on the floor.

**Populators can treat a splat as a target.** Open **Edit Populator Target** on the splat and a populator can scatter across it or be masked by it, the same as with any mesh. That is how you put a forest on captured terrain.

To see what the collider actually looks like, select the splat and click **Show Collider** in the toolbar. It swaps the view between the splat and the collision mesh underneath it. Worth doing when something is snapping to the wrong height.

![Toggling Show Collider swaps the crater splat for the grey collision mesh generated from it, then back](/files/kOAgDyUaNf6kgziIf16y)

The mesh is coarse next to the capture, which is the point: it exists to be cheap to click and collide against, not to look like the place.

{% hint style="warning" %}
The collider is approximate. Splats have soft, semi-transparent edges that blend into each other, and a large faint splat can push the collision surface out past where the capture visually appears to end. The effect is objects snapping slightly high. Intangible discards the faintest splats when building the collider to limit this, but on a low-quality capture you may still need to nudge a few instances down by hand, or delete them.
{% endhint %}

## Limits and known issues

* **Splats are static.** Only still captures are supported. There is no animated splat format in the product today.
* **Splats are excluded from GLTF export.** A scene mixing splats and meshes exports its meshes; the splats have to travel separately as their original files. See [Export formats](/publish/export-formats.md).
* **There is no standard up-direction.** Covered above: use the review step rather than expecting the file to arrive upright.
* **Sorting is asynchronous.** A fast camera move can take a few frames to resolve into a clean image. It settles on its own.
* **Detail depends on camera distance.** A splat renders detail relative to where the editing camera is, so the picture-in-picture view can look soft while the main viewport looks sharp.

## Related

* [Import your own models](/build/import-your-own-models.md) – the mesh path, and the format reference for CAD and DCC files.
* [Supported file formats](/overview/reference/supported-file-formats.md)
* [Working with objects](/build/working-with-objects.md) – snapping, locking, and the contextual menu.
* [Populators](/build/populators.md) – scattering across a splat.
* [Export formats](/publish/export-formats.md) – why splats don't travel in a GLB.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.intangible.ai/build/import-gaussian-splats.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
