Welcome to the Multiset VPS Quest Sample project. This repository demonstrates how to integrate the Multiset Quest SDK into a Unity application for Meta Quest devices and leverage Multiset’s Visual Positioning System (VPS) for centimeter-accurate localisation.
- Real-time user localisation in physical space
- Virtual objects anchored to precise real-world positions
- Spatial mapping, navigation, and location-aware AR/VR experiences
| Requirement | Details |
|---|---|
| Unity | 6.0 or newer (≥ 6000.0.55f1) |
| Platform Support | Android Build Support module |
| Target Device | Meta Quest 3 / Quest 3 S |
| Network | Stable internet connection |
| API Credentials | Client ID & Secret from Multiset |
| Experience | Basic Unity development |
Follow the steps below to add the SDK, configure your project, and run the sample scene.
# clone this repo (or simply open the folder with Unity Hub)-
Open Window → Package Manager.
-
Click the ➕ button → Add package from Git URL….
-
Enter the repository URL:
https://github.com/MultiSet-AI/multiset-quest-sdk.git -
Press Add. After installation, Multiset Quest SDK appears under In Project.
The SDK automatically installs its own dependencies (Meta XR Core, glTFast, OpenXR Plugin, etc.).
-
In Package Manager, select Multiset Quest SDK.
-
Open the Samples tab → click Import next to Sample Scenes.
-
Imported scenes live at:
Assets/Samples/Multiset Quest SDK/<version>/Single Frame Localization/Scenes/
-
API Credentials
Open:Assets/Samples/Multiset Quest SDK/<version>/Single Frame Localization/Resources/MultiSetConfig.assetPopulate
Client IdandClient Secretfrom your Multiset Developer Dashboard. -
XR Plugin Management
Edit → Project Settings → XR Plug-in Management– install if prompted.- Enable OpenXR for the Android platform.
-
Switch Platform to Android
File → Build Settings → Android → Switch Platform.- Back in XR Plug-in Management, run Project Validation and click Fix All.
- In Project Settings → Meta XR → Project Setup Tool, press Fix All.
(Generates
Assets/Plugins/Android/AndroidManifest.xmlwith required permissions.)
-
Map or MapSet Configuration
- Open the sample scene (
SingleFrameLocalization.unity). - Select MultisetSdkManager in the Hierarchy.
- In SingleFrameLocalizationManager, choose Map or MapSet and enter your code(s).
- Place all AR content under the Map Space GameObject so it anchors correctly.
- Open the sample scene (
-
Download Map Mesh (Authoring Aid)
Use the Map Mesh Downloader component to fetch environment meshes for in-editor authoring. See the docs page for details. -
Camera Permissions
EnsureAndroidManifest.xmlcontains:<uses-permission android:name="horizonos.permission.HEADSET_CAMERA" />
Unity will also prompt for camera access on first run.
File → Build Settings→ Android → Add Open Scenes.- Player Settings:
- Scripting Backend: IL2CPP
- Target Architectures: ARM64
- Minimum API Level: 32+
- Connect your Quest headset (developer mode enabled) and click Build and Run.
- On-device, grant camera permission and test localisation.
| Issue | Fix / Check |
|---|---|
| Package Manager errors | Update Unity Hub & Editor to latest versions |
| XR Plugin validation warnings | Restart Unity & rerun Project Validation |
| Build failures | Ensure Fix All passed, API Level ≥ 32, IL2CPP + ARM64 |
| Credential errors | Re-enter Client ID / Secret, verify dashboard access |
| Localization not working | Stable internet, correct Map/MapSet codes, good lighting |
| Camera permission denied | Re-run app, allow camera in Quest settings |
- Official docs – Multiset Quest SDK Installation Guide
- Multiset Developer Portal – https://developer.multiset.ai
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
This sample is provided for educational purposes and may include assets licensed from third-party sources. Refer to individual asset licenses where applicable.