Scenarios
Scenarios in HoloMIT define virtual environments or scenes in which multi-user sessions take place. Each scenario maps to a Unity scene and contains logic, spatial elements, and behaviors unique to that context.
The system is designed to be modular and extensible at runtime, allowing you to register new scenarios dynamically — without modifying internal SDK code.
What Is a ScenarioID?
A ScenarioID represents a deployable XR environment that users can enter. Examples include:
- A meeting room
- A holographic recording studio
- A collaborative workspace
- A pilot or demo scene
Each scenario has:
- A unique ID
- A Unity scene name
- A display name for UI dropdowns or lobby selectors
Built-in Scenarios
The SDK provides several predefined scenarios:
ID | Display Name | Unity Scene Name |
---|---|---|
Pilot0 | Pilot 0 | Pilot0 |
MeetingRoom | Meeting Room | MeetingRoom |
Pilot3 | Pilot 3 | Pilot3 |
i2catOffice | i2cat Office | i2catOffice |
PilotSpatial | Pilot Spatial | PilotSpatial |
These are automatically registered at runtime using:
ScenarioID.RegisterBuiltIns();
Runtime Setup
All scenarios are stored in a global registry and can be queried or selected using:
ScenarioID.GetAll();
ScenarioID.Get("Scenario ID");
ScenarioID.GetBySceneName("Unity Scene Name");
This registry is used by session managers and UI elements (e.g., scenario selectors) to populate dropdowns or launch specific scenes.
Registering a New Scenario
You can register a new scenario dynamically using:
ScenarioID.CreateAndRegister("MY_SCENE", "MySceneName", "My Scenario");
This makes the scenario available globally in runtime systems and dropdowns. You can create new scene assets in Unity and bind them this way.
⚠️ Make sure the scene is included in the Unity build settings.
Benefits of the Scenario System
- 🔗 Loose coupling between scene assets and runtime logic
- 🎛️ UI-friendly via dropdown support (
GetDropdownOptions()
) - 🚀 Extendable by any developer or SDK user
- 🧩 Modular – scenarios can define their own rules and features
Use Cases
- Build a new training environment and register it dynamically
- Create demo scenes with specific configurations
- Support remote scene switching based on session state
- Expose scenario selection in a custom launcher UI
Tip: If you're shipping a product with multiple XR environments, use the ScenarioID system to centralize and control all scene management in a scalable way.