Skip to main content

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 ChangeWhere to Do It
Default video/audio codecconfig.json โ†’ "VideoDistributor" / "WebCam" / "Audio"
Logging level (errors only vs verbose)config.json โ†’ "LoggerConfig"
Login as a specific userconfig.json โ†’ "LoginCredentials"
Default XR frame rateconfig.json โ†’ "AppTargetFPS"
Stream encoding qualityconfig.json โ†’ CRF / GOP / Bitrate values
Control current LoD during sessionCoreController.CurrentLoD (runtime)
Access current session and sync timeCoreController.MySession, SyncTime
Change encoding settings for RGBPM pipelineconfig.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.