> 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/360-virtual-tour.md).

# Panoramas

Walk through a mapped space as a navigable 360° panoramic tour.

## Overview

A **360° Virtual Tour** turns a mapped space into a walk-through experience. Instead of looking at a mesh or a point cloud, you stand at a capture point, look around in full 360°, and step to the next point, the same way you would explore a street-level map.

Tours come from 360° imagery that is already in your capture, so there is no extra **capture** step. There is an extra **upload** step: a tour is opt-in. Ask for it when you create the map by setting `source.metadata.assets` to `["pano"]`, described in [Optional assets](/fundamentals/rest-api-docs/map-upload.md#optional-assets).

To hide people who were in the space while you scanned, ask for `["pano", "panoMask"]` instead. Each panorama then carries a `maskKey` your viewer can apply over the imagery. Masks are opt-in for the same reason a tour is, and cannot be added to a map that already exists.

Two inputs carry the panoramic imagery a tour needs:

* **360 video** captures (Insta360, Antigravity A1, equirectangular MP4).
* **`.e57` and MatterPak** scans with embedded panoramas.

LiDAR captures from the MultiSet App and Unity SDK have no panoramic imagery, so no tour is available for them at any setting.

{% hint style="warning" %}
`assets` is read **once, when the map is created**, and cannot be added afterwards. A map uploaded without `pano` has no panoramas, 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 %}

Panoramas are one of a map's [output assets](/fundamentals/maps/output-asset.md), alongside the [mesh](/fundamentals/maps/output-asset/mesh.md), the [point cloud](/fundamentals/maps/output-asset/mesh.md#point-cloud), and the [Gaussian Splat](/fundamentals/maps/output-asset/gaussian-splat.md). A 360 video capture can produce all four.

{% hint style="info" %}
A map's [Map details](/fundamentals/rest-api-docs/map-details.md) response includes `hasPano`, which tells you whether that map has a tour available.
{% endhint %}

## How it works

A tour is a **graph of nodes**. Each node is one 360° capture point and holds:

* the panorama image for that spot,
* its position and orientation in the map's coordinate frame,
* links to its neighbouring nodes, with the distance to each in metres.

Because the nodes carry real positions, the tour is spatially aware. A viewer can jump to the node nearest a given location, or bias its choice toward whichever direction the user is facing, rather than only stepping along a fixed path.

## View a tour in the Developer Portal

Open the map from the **Maps** list, then click **View Mesh** in the Map Details toolbar. The 360° tour opens in the same viewer as the mesh:

<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 the View Mesh button"><figcaption><p>Map Details toolbar. Open <strong>View Mesh</strong>.</p></figcaption></figure>

Inside the viewer, each ring on the floor is a neighbouring node you can click to move to. The minimap shows the full tour path and where you currently stand, and **Go to** lists nearby nodes with their distances.

<figure><img src="https://3163433004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FokTDI7QVY04Zvb1pQ8Ry%2Fuploads%2Fgit-blob-a0c1c9bb9937f0715d491f93e462ff62897bcfaa%2Fpano_viwer_single_map.png?alt=media" alt="360 tour viewer showing a panorama with navigation rings and a minimap"><figcaption><p>Drag to look around, scroll to zoom, and click a ring or any point on the floor to move.</p></figcaption></figure>

## Compare a space across map versions

When a map has been re-scanned as a [Map Version](/fundamentals/map-versioning.md), the tour can show **the same viewpoint in each version**, so you can compare a space before and after a change while standing in one spot.

<figure><img src="https://3163433004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FokTDI7QVY04Zvb1pQ8Ry%2Fuploads%2Fgit-blob-883e5fba528cf863ed8ca36f1fc8e4b971679d52%2FPano_viewer_versioned_map_relabeled.png?alt=media" alt="Compare mode showing the same viewpoint across two map versions side by side"><figcaption><p>Compare mode: one viewpoint shown in two versions of the same space. Each match reports how far it sits from the anchor, in distance and angle.</p></figcaption></figure>

## One continuous tour across a MapSet

The maps in a [MapSet](/fundamentals/mapset-multiple-maps.md) can be presented as a **single continuous tour**. Where two maps meet, the tour bridges between them, so a visitor can walk from one map into the next without noticing a boundary.

<figure><img src="https://3163433004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FokTDI7QVY04Zvb1pQ8Ry%2Fuploads%2Fgit-blob-5cdcdba1e17482cd6e6ca3f39f0dca3849b8aeac%2Fpano_viwer_for_a_map_set.png?alt=media" alt="360 tour spanning a MapSet, with the minimap showing multiple joined maps"><figcaption><p>A tour spanning a MapSet. The minimap shows the joined maps, and navigation flows from one map into the next.</p></figcaption></figure>

## Build your own viewer

Everything the Developer Portal viewer does is available over REST, so you can embed a tour in your own application: list the maps that have tours, load a complete tour in one call, or fetch just the neighbourhood around the user as they move.

See [360° Virtual Tour (Pano) API](/fundamentals/rest-api-docs/pano-360-virtual-tour.md) for the endpoints, the node shape, and request examples.


---

# 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/360-virtual-tour.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.
