Develop

Unreal Phanto sample

Updated: May 11, 2026

Overview

The Unreal Phanto sample is a mixed reality reference app with four scenes (Lobby, Tutorial, Game, Haptics). It demonstrates scene mesh access with a custom GlobalMesh collision profile, dynamic NavMesh with initial lock and release pattern, custom nav links for jumping, and MetaXRHaptics for runtime modulation. BP_Phanto uses a behavior tree for air navigation with scene mesh overlap.

What you will learn

  • Scene mesh access and collision configuration
  • Dynamic NavMesh generation with lock/release patterns
  • Custom navigation links for jumping behaviors
  • MetaXRHaptics runtime modulation
  • Behavior tree-driven AI navigation in mixed reality

Requirements

  • Quest 3 or Quest 3S (full functionality)
  • Quest 2 (Scene API only)
  • UE 5.3 or Oculus fork of Unreal Engine 5.6

Get started

  1. Clone the repository.
  2. Open the project in UE 5.3 or the Oculus fork of Unreal Engine 5.6.
  3. Ensure your Quest device has completed Room Setup.
  4. Deploy and launch on device to enter the Lobby scene.

Explore the sample

File / SceneWhat it demonstratesKey concepts
Lobby
Entry point and scene setup
Scene API initialization
Tutorial
Guided introduction
Interaction patterns and onboarding
Game
Core gameplay loop
BP_Phanto behavior tree, scene mesh overlap
Haptics
Haptic feedback demo
MetaXRHaptics runtime modulation
GlobalMesh collision profile
Scene mesh collision
Custom collision channel configuration
NavMesh setup
Dynamic navigation
Initial lock + release pattern, custom nav links

Runtime behavior

The app starts in the Lobby scene and guides users through a Tutorial before entering the Game scene. BP_Phanto navigates through the air using a behavior tree that accounts for scene mesh geometry. The NavMesh is initially locked during scene mesh loading, then released once the environment is fully captured. Custom nav links enable jumping between disconnected surfaces.

Key concepts

Scene mesh with GlobalMesh collision

The scene mesh is loaded with a custom GlobalMesh collision profile that allows gameplay systems to query physical space boundaries for placement and occlusion.

Dynamic NavMesh

Navigation uses an initial lock and release pattern:
  1. NavMesh generation is locked during scene mesh loading
  2. Once the scene mesh is fully available, the NavMesh is released and built
  3. Custom nav links are placed to enable jumping between surfaces

MetaXRHaptics

Haptic feedback uses MetaXRHaptics for runtime modulation, allowing dynamic adjustment of haptic intensity and patterns during gameplay.

BP_Phanto behavior tree

BP_Phanto uses a behavior tree for air navigation that incorporates scene mesh overlap detection to avoid flying through physical objects.

Extend the sample

  • Add new enemy types with different navigation behaviors
  • Create additional haptic patterns for game events
  • Implement furniture-aware placement using scene anchors
  • Add multiplayer ghost interactions