# splat

> Talos next · Since 0.6

Use it in a scene entity's `components` list as `{ "type": "splat", … }`. The contract writes the fields flat and refuses unknown keys.

## Fields

| Field | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
| `asset` | `string` | yes |  |  | The `splat` asset holding the capture: a 3DGS `.ply` (Scaniverse, offline training; SH degree 0 to 3) or a `.splat` file. |
| `radianceNits` | `number` | no |  |  | Luminance in cd/m² of a capture colour of 1: the capture's baked light in the scene's units. Default: what the engine makes an unlit colour of 1, so under the `none` tonemap at exposure 1 the capture shows its own colours. More than 0; anything else draws at the default with a load warning. |
| `visible` | `boolean` | no | `true` |  | Whether the capture is drawn. Default true. |
| `axes` | `SplatAxes` | no |  | `y-up`, `z-up`, `y-down` | Which way is up in the file: "y-up" (default, as stored), "z-up" (photogrammetry, CAD) or "y-down" (COLMAP-trained captures). Applied before the entity's transform. |

## Rules that can refuse it

- `hd-only-ignored`
- `render.hd.splat_format`
- `render.hd.splat_too_large`
- `render.hd.splat_truncated`
- `splat-view-outside`

## Example

From the contract's tested fixture `fixtures/contract/full20/scene.json#wall-north`.

```json
{
  "type": "splat",
  "asset": "wall-scan",
  "axes": "z-up"
}
```
