> For the complete documentation index, see [llms.txt](https://docs.multiset.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.multiset.ai/fundamentals/maps/output-asset.md).

# Output Asset

Every processed map produces viewable, downloadable assets: panoramas, meshes, and Gaussian Splats. Which ones you get depends on what you uploaded.

## Overview

Localization runs on a map's **feature data**, which stays inside the platform and is never downloaded. Alongside it, processing produces **output assets**: visual representations of the same space that you can preview in the Developer Portal, download, and load into your app, engine, or BIM tool.

There are four asset types:

| Asset                                                                   | Formats                                                                                                 | Typical use                                                                                        |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| [**Mesh**](/fundamentals/maps/output-asset/mesh.md)                     | `.glb` in two variants: **raw** (untextured geometry) and **textured**                                  | Occlusion, collision and NavMesh, content placement in the Unity Editor, BIM and analytics exports |
| [**Gaussian Splat**](/fundamentals/maps/output-asset/gaussian-splat.md) | `.ply` (raw) and `.spz` (compressed)                                                                    | Photoreal preview and measurement, web and mobile splat viewers                                    |
| [**Panoramas**](/fundamentals/maps/output-asset/360-virtual-tour.md)    | Equirectangular panorama images, one per capture point, with position, orientation, and neighbour links | 360° Virtual Tour, remote walkthroughs, comparing a space across map versions                      |
| [**Point cloud**](/fundamentals/maps/output-asset/mesh.md#point-cloud)  | `map.pcd`, a binary PCD of XYZ points at 5 cm spacing                                                   | Measurement, clash detection, importing the space into CAD, BIM, or point cloud tooling            |

The mesh, the splat, and the panoramas share one coordinate frame: the map's local frame, with the origin at `(0, 0, 0)`, `+Y` up, and metric scale. A VPS query returns poses in that same frame, so content aligned to any of those assets lands in the right place at runtime. See [Coordinate Systems](/fundamentals/localization/coordinate-systems.md).

{% hint style="warning" %}
The **point cloud is the exception**: `map.pcd` is right-handed with `+Z` up. To overlay it on the mesh you have to convert. See [Point cloud](/fundamentals/maps/output-asset/mesh.md#point-cloud).
{% endhint %}

## What each input produces

| Input                                                                                           |                Mesh                | Point cloud |                Gaussian Splat                |  Panoramas |
| ----------------------------------------------------------------------------------------------- | :--------------------------------: | :---------: | :------------------------------------------: | :--------: |
| [**360 video**](/fundamentals/third-party-scans.md) (raw `.insv` or stitched `.mp4`)            |       Yes (raw and textured)       |     Yes     |          On request (`.ply`, `.spz`)         | On request |
| [**Point cloud**](/fundamentals/third-party-scans.md) (`.e57`, MatterPak)                       |       Yes (raw and textured)       |     Yes     |                      No                      | On request |
| **MultiSet App / Unity SDK capture** (LiDAR)                                                    |       Yes (raw and textured)       |     Yes     |                      No                      |     No     |
| [**Gaussian Splat**](/fundamentals/third-party-scans/gaussian-splat.md) (`.ply` + `poses.json`) | Yes (reconstructed from the splat) |     Yes     | Yes, re-aligned to the mesh (`.ply`, `.spz`) |     No     |

A **mesh and a point cloud are always produced**, whatever the input, so occlusion, physics, measurement, and editor-time content placement work the same way for every map.

**"On request" means opt-in at upload.** Panoramas and Gaussian Splats are only built when you ask for them. Set `source.metadata.assets` when you create the map, for example `["pano"]` or `["splat", "pano"]`. See [Optional assets](/fundamentals/rest-api-docs/map-upload.md#optional-assets). Add `panoMask` alongside `pano` to also get person masks for the tour.

**360 video** is the only input that can produce the full set. One hand-held walk yields a mesh, a point cloud, and, if you request them, a navigable tour and a splat of the same space.

**Point cloud inputs** carry their own panoramic imagery, so `.e57` and MatterPak scans can produce a navigable tour if you request `pano`. LiDAR captures from the MultiSet App and Unity SDK have no panoramic imagery, so no tour is available for them at any setting.

**Gaussian Splat uploads** get a reconstructed mesh plus their own splat back, with **modified coordinates**: the returned `.ply` and `.spz` are transformed into the map's coordinate frame so the splat sits exactly on the generated mesh. Render the returned file rather than the one you uploaded, otherwise your splat and your VPS poses will not line up.

{% hint style="warning" %}
`source.metadata.assets` is read **once, when the map is created**, and cannot be added later. A map uploaded without `pano` has no tour, and the [Pano APIs](/fundamentals/rest-api-docs/pano-360-virtual-tour.md) return `404` for it. Getting a tour then means creating a new map and uploading the scan again.
{% endhint %}

{% hint style="info" %}
Check `hasPano` on [Map details](/fundamentals/rest-api-docs/map-details.md) to see whether a given map ended up with a tour.
{% endhint %}

## Where to find them

In the Developer Portal, open a map from the **Maps** list. The **Map Details** toolbar gives you each asset:

<figure><img src="https://3163433004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FokTDI7QVY04Zvb1pQ8Ry%2Fuploads%2Fgit-blob-121d1a4efe17d7e555a5c0b9a60c940ae73a1f4e%2Ftoolbar-map-details.png?alt=media" alt="Map Details toolbar with View Mesh and View Splat buttons"><figcaption><p>Map Details toolbar: <strong>View Mesh</strong> for the mesh and 360° tour, <strong>View Splat</strong> for the Gaussian Splat.</p></figcaption></figure>

* **View Mesh** opens the mesh viewer. For maps with a 360° tour, the same viewer also opens the [360° Virtual Tour](/fundamentals/maps/output-asset/360-virtual-tour.md).
* **View Splat** opens the splat viewer, which also hosts the [measure-to-scale tool](/fundamentals/rest-api-docs/map-scale.md).

Outside the portal, meshes can be pulled into the Unity Editor with the [Map Mesh Downloader](/unity-sdk/meta-quest/map-mesh-downloader.md), and every asset file can be fetched over REST with the [`/file`](/fundamentals/rest-api-docs/map-operations.md) endpoint, which exchanges a storage key for a short-lived download URL.

{% hint style="success" %}
Output assets are for visualization and authoring. Replacing or editing them does not change localization accuracy, which is computed from the map's feature data. See [Map Operations](/fundamentals/rest-api-docs/map-operations.md).
{% endhint %}


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.multiset.ai/fundamentals/maps/output-asset.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
