Архитектура

Карта слоёв

Runtime (веб-клиент)

Отвечает за рендеринг сцены, ввод, камеру, отображение присутствия, жизненный цикл XR-сессии, медиаповерхности и профили качества.

Медиаплоскость

Отвечает за голос, показ экрана, жизненный цикл треков и передачу медиа.

Плоскость состояния

Отвечает за состояние комнаты, присутствие участников, трансформации и логику комнаты.

Control plane

Отвечает за тенанты, шаблоны, комнаты, метаданные ассетов, ссылки и метаданные развёртывания.

Конвейер ассетов

Отвечает за правила импорта, проверку, пресеты сжатия и бюджеты качества.

Основные сценарии

Вход в комнату

  1. Пользователь открывает ссылку на комнату.
  2. apps/runtime-web получает манифест комнаты из apps/api.
  3. Runtime запрашивает у apps/api токен состояния и медиатокен.
  4. Runtime подключается к apps/room-state и LiveKit.
  5. Runtime отрисовывает комнату по конфигурации сцены из манифеста.

Создание комнаты

  1. Администратор открывает apps/control-plane.
  2. Control plane создаёт записи тенанта и комнаты через apps/api.
  3. Ассеты регистрируются и прикрепляются к слотам шаблона.
  4. API формирует манифест и ссылку на комнату.
  5. Runtime берёт опубликованную конфигурацию комнаты без изменений в коде.

Границы, которые нельзя нарушать

Источник: docs/architecture.md в vrata-labs/platform на ревизии 380b2e7ff1dd, лицензия Apache-2.0. GitHub