User Representations Overview
Descriptionβ
User representations define how a user is rendered and perceived in a HoloMIT session: avatar, webcam window, volumetric capture, spectator, voice-only, etc.
They are built around an extensible system that allows you to register new representation types at runtime, customize their setup logic and UI metadata, and connect them to different capture pipelines.
The core building blocks are:
UserRepresentationTypeβ strongly-typed IDs for each representation (Avatar, Webcam, HoloCapturer, etc.).IUserRepresentationHandlerβ plug-in logic that configures the scene for a given representation.RepresentationHandlerRegistryβ central registry to bind each type to its handler.RepresentationSetupContextβ context object with all information required to configure a playerβs representation.RepresentationUIRegistryandRepresentationUIDataβ metadata for UI (icons, labels, descriptions, dropdown options).
On top of that, you will typically have pipelines (derived from BasePipeline) which define how data (RGB-D, PM, audio, etc.) is captured and streamed. The RepresentationSetupContext.UserSourceType property links a representation with the underlying pipeline source type.
Typical Workflowβ
-
Choose or create a representation type
Use existing ones (AVATAR,WEBCAM,HOLOCAPTURER_DEPTH, β¦) or create custom ones viaUserRepresentationType.CreateAndRegister. -
Implement the handler
ImplementIUserRepresentationHandler.Setup(RepresentationSetupContext context)to turn on/off objects, configure cameras, attach pipelines, etc. -
Register the handler
Register your handler inRepresentationHandlerRegistry.Register(type, handler)so the system can dispatch to it at runtime. -
Register UI metadata
Register icon, display text and description inRepresentationUIRegistry.Register(...)to expose it in dropdowns or menus. -
Hook from your UI / Lobby / PlayerManager
- Build dropdowns using
RepresentationUIRegistry.GetDropdownOptions() - Resolve the type from the userβs selection (by display name or ID)
- Retrieve the handler from
RepresentationHandlerRegistryand callSetup(context).
- Build dropdowns using