Configuration
HoloMIT SDK is designed to be flexible and highly configurable, allowing users to adapt the system to a wide range of hardware setups, network conditions, and XR use cases โ all without touching code.
This section explains the different levels of configuration available to you and how to use them effectively.
๐งพ What Can Be Configured?โ
There are three main layers of configuration:
1. Runtime Behavior (via Configuration File)โ
The primary Configuration File used to control application startup settings.
You can adjust:
- Frame rate
- Logging verbosity
- Audio/video codecs
- Point cloud render parameters
- Default login credentials
- Backend service URLs
๐ See: Configuration File
2. Global State (via Core Controller)โ
The Core Controller maintains session-wide information across scenes.
It holds:
- The current user and session
- Public IP and device specs
- Synchronization timestamps
- Global Level of Detail (LoD)
- Security tokens and manager URLs
๐ See: Core Controller
3. In-App Settings (via UI or scripts)โ
Some modules expose parameters that can be updated at runtime via the UI or developer tools:
- Toggle verbose logging dynamically
- Adjust LoD based on performance feedback
- Select input/output devices from dropdowns
- Modify stream properties via debug panels
These runtime options are typically backed by values from the configuration file, but allow for live adjustment during operation or testing.
How to Customize HoloMIT Behaviorโ
What You Want to Change | Where to Do It |
---|---|
Default video/audio codec | config.json โ "VideoDistributor" / "WebCam" / "Audio" |
Logging level (errors only vs verbose) | config.json โ "LoggerConfig" |
Login as a specific user | config.json โ "LoginCredentials" |
Default XR frame rate | config.json โ "AppTargetFPS" |
Stream encoding quality | config.json โ CRF / GOP / Bitrate values |
Control current LoD during session | CoreController.CurrentLoD (runtime) |
Access current session and sync time | CoreController.MySession , SyncTime |
Change encoding settings for RGBPM pipeline | config.json โ "RGBPMs" |
Configuration Philosophyโ
- Non-destructive: No changes to Unity scenes or source code needed
- Override-friendly: Settings can be reloaded or updated at runtime
- Scene-independent: Core state is preserved across scenes via Core Controller
- Secure: Tokens, login, and manager routing can be protected and preconfigured
- Modular: Only configure the parts of the system you're using
Best Practicesโ
- Start from a sample Configuration File and adapt it to your deployment
- Avoid modifying internal components manually, prefer config + runtime APIs
- Use version control to track configuration changes across deployments
- Validate changes using small-scale tests before deploying to production
HoloMIT SDK is designed to empower developers and users alike โ with configuration at the center of its flexibility and power.