# Make splats

Check a set of posed views and reconstruct it once as Gaussian splats.

[posedImages2Splats](/posed-images-to-splats) reconstructs a scene from posed
views with depth and refines it into an SPZ file. Start from
[a scene with views around it](/build-a-scene).

Treat the reconstruction as the final step. A run takes 15 to 25 minutes and
costs 5,000 credits ($5). While refining, it generates its own dense views,
which it does not return. What you control is the set of views you submit, so
check that set first. The views are the preview of the result.

## 1. Check the views as input

The posed frames and the generated views you kept are the input.

- **Coverage.** Every area you want to look at should appear in at least one
  view: the floor, low furniture, walls, and the far side of anything you will
  move around. Areas no view shows come out blurry or invented.
- **Agreement.** An object with a different shape or place in two views
  becomes a doubled, ghosted object. Remove the view that disagrees.
- **Format.** Every frame needs depth, and all frames use one size.

For a single room, 8 to 16 views in all is a good range. To add coverage,
generate more views with the current ones as `contextFrames` and `returnDepth`
set to `true`. [Splat best practices](/splat-best-practices) shows examples of
coverage and agreement problems.

## 2. Reconstruct once

List each frame's image, depth, and camera in `posedFrames`:

```json
{
  "posedFrames": [
    {
      "imageAsset": { "assetId": "<image-asset-id>" },
      "depth": { "depthAsset": { "assetId": "<depth-asset-id>" } },
      "camera": { "...": "..." }
    }
  ]
}
```

Submit without waiting, keep the operation ID, and wait on it separately:

```sh
worldlabs tasks run posedImages2Splats --request splats.json --json
worldlabs operations wait <operation-id> --timeout 3600 --json
```

If waiting times out, wait again. Do not submit the request again while the
operation is running; a second run is a second charge.

## 3. Use the result

```sh
worldlabs operations download <operation-id> --out splats
```

The SPZ file uses the same world as the cameras you submitted. View it with
[Spark](/rendering-with-spark) or in [Blender](/blender), or pass its asset to
[splats2Mesh](/api-reference/splats2-mesh) for a mesh.

## Example

Continuing the [potter's studio](/build-a-scene#example): the posed image and
the seven views, eight frames in all. The run took 18 minutes and returned
2,000,000 splats.

![Eight renders of a reconstructed potter's studio from positions around its work table](/media/scene-workflow-splats.webp "The splats rendered from eight new positions: at the original camera, then inside the room around the table.")

From inside the room, the scene holds together from every side. From the
original camera's position, a blurred surface covers the lower part of the
view. The door threshold and frame were close to the lens and only the source
image showed them. Surfaces that a single view sees at close range are a place
to add another view.