> For the complete documentation index, see [llms.txt](https://multiset.gitbook.io/multiset/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://multiset.gitbook.io/multiset/multiset-quest-sdk/sample-scenes/navigation.md).

# Navigation

### Overview

The Navigation feature in MultiSet Quest SDK enables AR navigation experiences with Point of Interest (POI) management and visual guidance using animated arrows and progress indicators.

### Prerequisites

* Unity project with MultiSet Quest SDK v1.10.1 or higher
* Meta Quest device for testing
* Valid MultiSet Client ID and Client Secret

### Scene Setup

### Scene Configuration

1. **Load the Navigation Scene**
   * Navigate to: `Assets/Samples/MultiSet Quest SDK/1.10.1/Sample Scenes/Navigation`
   * Double-click to open the Navigation scene
2. **Configure MultiSet SDK Manager**
   * Select the `MultisetSdkManager` GameObject in the hierarchy
   * Click **"Open MultiSet Configuration"** button in the Multiset SDK Manager component
   * Enter your **Client ID** and **Client Secret** in the configuration file

<figure><img src="/files/56zrFQcaF2tHPsa5QqHN" alt="" width="375"><figcaption></figcaption></figure>

1. **Set Map Codes**
   * In the `SingleFrameLocalizationManager` component:
     * Add your **Map Code** or **MapSet Code**

<figure><img src="/files/wRZZVlSyOPJPvEPCAVg8" alt="" width="375"><figcaption></figcaption></figure>

####

### Core Components Configuration

**MapMeshHandler**

Controls the visualization mode of the map mesh:

* **EnableVisualization**: Display the Map Mesh in the scene
* **EnableOcclusion**: Enable occlusion using the Map Mesh
* **No Mesh**: Hide all mesh visualization

**MapMeshDownloader**

* Click the **"Download Mesh"** button to import the mesh for your desired map
* This mesh is essential for setting up the AR experience

**NavigationController**

Manages the navigation flow:

* Maintains the list of POIs
* Handles navigation routing and guidance

### Setting Up Points of Interest (POIs)

#### Step 1: Bake NavMesh Surface

1. **Configure Navigation Agent Settings (To open agent settings click on the Agent Type dropdown)**
   * Set appropriate values for:
     * Radius
     * Height
     * Step Height
     * Other agent parameters as needed
2. **Generate NavMesh**
   * Navigate to: `Map Space > NavigationContent > NavMesh`
   * Click the **"Bake"** button to create the NavMesh with current settings

<figure><img src="/files/fHUkKfqxaOZQ9mYxyk5W" alt=""><figcaption></figcaption></figure>

#### Step 2: Add POIs to the Scene

1. **Navigate to POI Container**
   * Go to: `Map Space > NavigationContent > POIs`
2. **Create POI GameObjects**
   * Add POI GameObjects as children of the POIs container
   * Place POIs on the baked NavMesh surface
3. **Configure Each POI** In the Inspector panel, set:
   * **Title**: Display name for the POI
   * **Identification**: Unique identifier (Must be unique for each POI)
   * **POI Name**: Internal reference name

### Runtime Controls & Usage

#### Localization

* **Initial Localization**: Automatically triggered when the app launches on Meta Quest
* **Relocalize**: Press **Button A** on the right controller

#### Navigation Controls

| Controller | Button | Action                         |
| ---------- | ------ | ------------------------------ |
| Right      | A      | Trigger relocalization         |
| Right      | B      | Display POI list               |
| Left       | X      | Stop/Cancel current navigation |

#### Navigation Flow

1. **Start Navigation**
   * Press **Button B** to display the POI list
   * Select a POI from the list to begin navigation
2. **Visual Guidance**
   * Animated arrows appear showing the path
   * Progress bar displays:
     * Distance to destination
     * Target POI name
     * Navigation progress
3. **Stop Navigation**
   * Press **Button X** to cancel the current navigation

## Boundaryless App Configuration

#### Important Notice

The boundary system is a critical safety feature for fully immersive apps. However, to utilize the Navigation feature effectively, a boundaryless app configuration may be required.

#### Requirements for Boundaryless Apps

* Boundary must be disabled for the entire app experience
* Apps must not contain any immersive experiences
* Developers must ensure user safety when boundary is disabled

#### Implementation

Add the following entry to your app's `AndroidManifest.xml` file:

```xml
<uses-feature
    android:name="com.oculus.feature.BOUNDARYLESS_APP"
    android:required="true"/>
```


---

# 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://multiset.gitbook.io/multiset/multiset-quest-sdk/sample-scenes/navigation.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.
