Перед агентством Soft Media Group была поставлена задача по разработке VR-приложения (приложения виртуальной реальности) для дистанционного просмотра объектов недвижимости с эффектом полного погружения. По мере развития сервиса у клиента возникла критическая необходимость в единой системе управления контентом, подписками и клиентскими устройствами.

О проекте

Заказчик проекта

Проект создан для Mramoure — студии, специализирующейся на VR (виар) -дизайне интерьеров, профессиональной 3D-визуализации и разработке интерактивных презентаций для архитекторов, застройщиков, риелторов и туристических агентств для демонстрации объектов в виртуальной реальности.

Задачи проекта

  • Создать единую панель администрирования для централизованного управления VR-платформой (платформой виртуальной реальности)
  • Обеспечить автоматический биллинг подписок с контролем сроков, продлением и блокировкой доступа
  • Реализовать умный механизм обновлений контента с контролем версий и привязкой к подписке
  • Разработать стандартизированный REST API (программный интерфейс) для взаимодействия клиента с сервером
  • Внедрить модульную архитектуру backend (серверной части) на ASP.NET Core с Docker-контейнеризацией
  • Создать интуитивную админ-панель с ролевым доступом и полным аудитом действий
Изображение предоставлено агентством Soft Media Group (Софт Медиа Групп) с сайта softmg.ru

Исходные данные и вызовы

Клиент собирал туры в сторонней десктопной программе, которая была дорогостоящей в обслуживании. Мобильное приложение для очков отсутствовало, а управление контентом осуществлялось вручную: файлы передавались по проводу, версии путались, клиенты получали устаревшие сборки. Подписки велись в разрозненных таблицах, что исключало возможность быстрого контроля доступа. Перед агентством стояла задача создать полноценную экосистему «под ключ» — от графики до биллинга и облачного управления.

Ход работы и реализованные решения

Команда агентства включала разработчиков, backend- и frontend-инженеров (бэкенд и фронтенд), специалистов по инфраструктуре. Проект реализован на стеке Unity с XR Interaction Toolkit (набором инструментов для виртуальной реальности) для клиентской части и .NET 9.0 с ASP.NET Core (платформа для разработки приложений) для серверной.

1. Единая система управления контентом

Разработана административная панель на Razor UI (интерфейсе для .NET), объединившая управление пользователями, подписками, контентом и устройствами в одном окне. Реализованы:

  • Централизованная модерация контента с загрузкой туров в формате архивов
  • Контроль версий с привязкой к подписке и проверкой актуальности
  • Безопасные ссылки на скачивание с прогрессом загрузки
  • Ролевой доступ (администратор/менеджер) с полным аудитом действий

2. Автоматический биллинг подписок

Внедрена система управления подписками с проверкой сроков, автоматическим продлением и блокировкой просроченных доступов. Устройство автоматически синхронизируется с сервером по Wi-Fi (Вай Фай), запрашивает статус подписки и получает доступ к контенту. При потере соединения облачный раздел блокируется, но скачанные локально туры продолжают работать в офлайн-режиме.

3. Умный механизм обновлений

Клиенту больше не нужно физически подключать очки по проводу для загрузки туров. Устройство синхронизируется с админкой по Wi-Fi (Вай Фай): при покупке новых очков приложение автоматически делает запрос на сервер, и после активации устройства по идентификатору модератором контент скачивается напрямую в шлем.

4. Модульная архитектура backend (серверная часть)

Серверная часть построена на ASP.NET Core (фреймворк) с модульной архитектурой: надёжные слои авторизации, управления подписками, контента и API (АПИ) для клиента. Использована Docker (Докер)-контейнеризация для единых окружений разработки, тестирования и продакшена (API, PostgreSQL, хранилище). Это обеспечило быстрый запуск и отсутствие проблем с развертыванием.

5. Стандартизированный REST API

Разработан полноценный REST API с JWT-авторизацией (токенами безопасности), мгновенной проверкой подписок, выдачей обновлений, метаданных и файлов. API (АПИ) оптимизировано для слабого интернета — стабильная работа даже в сложных сетевых условиях.

6. VR-приложение (виртуальной реальности) для очков PICO (ПИКО)

Клиентская часть реализована на Unity (движок) с подключением локального Pico OpenXR SDK (набора разработчика). Проект PICO (ПИКО)-ориентирован, но архитектура на Unity XR (Юнити Икс-Ар) позволяет в перспективе адаптировать решение под другие шлемы. Интерфейс спроектирован специально под виртуальную реальность: учтены ограничения поля зрения, минимизированы движения головы, избежаны резкие переходы.

7. Оптимизация работы с графикой 8K

Фото и видео открываются в разрешении 8K и весят колоссально (один тур может достигать 180 МБ). Изначально распаковка убивала производительность. Решение — внедрение системы из двух кешей: тонкий кеш и толстый кеш.

8. Работа со стереоскопией и кубами

Внутри клиентского архива лежат не готовые панорамы, а грани кубов (по 6 штук на каждую панораму: спереди, сзади, лево, право, верх, низ). Алгоритм берёт эти исходные тайлы и собирает их в текстуры. Если в XML (язык разметки) стоит признак стерео, алгоритм собирает уже 12 граней, создавая два куба для левого и правого глаза отдельно. Это обеспечивает эффект полного погружения со стереоскопией и пространственным звуком.

Изображение предоставлено агентством Soft Media Group (Софт Медиа Групп) с сайта softmg.ru

Основные сложности, которые удалось преодолеть

  • Тяжёлый кеш 8K давил на память и процессор — решено через асинхронные потоки, фоновую генерацию и двухуровневую систему кеша
  • Стартовые зависания из-за тяжёлого пути хранения/кеша — вынесен каталог в асинхронный лёгкий проход, превью и размеры сделаны ленивыми/событийными
  • Разрешения PICO OS (ПИКА ОС) — операционная система очков не парсит тур самостоятельно, вся распаковка реализована на уровне приложения с учётом специфики Android external storage (внешнее хранилище)
  • Офлайн-режим — при потере интернета облачные туры блокируются, но локальные продолжают работать без перебоев
  • Стереоскопия — необходимость обработки 12 граней куба для двух глаз отдельно с оптимизацией под ограниченные ресурсы очков
Изображение предоставлено агентством Soft Media Group (Софт Медиа Групп) с сайта softmg.ru

Результаты в цифрах и фактах

  • Единая панель администрирования для централизованного управления приложением
  • Надёжное взаимодействие клиента с backend (бэкенд)-сервисом через унифицированный REST API (РЕСТ АПИ)
  • Автоматизация биллинга — контроль подписок, продление, блокировка просрочки, полный аудит
  • Умные обновления — контент, подписки и доступы обновляются централизованно и мгновенно, версионирование гарантирует актуальность материалов
  • Модульная архитектура на .NET 9 с Docker (НЕТ 9 с Докер) обеспечивает стабильность, простое развёртывание и масштабируемость
  • Безопасность — ролевые модели и логирование обеспечивают прозрачность действий, система стабильно работает даже при высокой нагрузке
  • Оптимизация 8K — двухуровневый кеш позволяет работать с тяжёлыми турами без зависаний
  • Сокращение ручных операций: экономия десятков рабочих часов каждую неделю

Бизнес-эффект для клиента

  • Демонстрация объектов в любое время и месте — риелторы и застройщики могут показывать объекты без зависимости от логистики, не нужно организовывать поездки или ждать физического доступа к строящемуся объекту
  • Снижение операционных расходов — меньше личных встреч, меньше повторных показов, нет необходимости в постоянных выездных фотосъёмках. Ручные процессы сведены к нулю
  • Расширение географии бизнеса — клиент может презентовать объекты инвесторам, арендаторам и покупателям из других городов и стран. Это открывает доступ к глобальному капиталу, который раньше был недоступен из-за удалённости
  • Повышение лояльности клиентов — опыт со стереоскопией и пространственным звуком на голову выше традиционных 2Д-фото или простых моноскопических туров. Такое качество сервиса мгновенно выделяет клиента на фоне конкурентов и повышает его статус в глазах покупателей
  • Масштабируемая платформа — благодаря модульной архитектуре решение можно быстро адаптировать под смежные рынки: музеи и галереи, туризм, образование, автосалоны. В перспективе возможна интеграция с нейросетями для виртуальных примерочных
  • Фундамент для роста — клиент получил не разовое решение, а полноценную экосистему, которую можно лицензировать как самостоятельный продукт
Изображение предоставлено агентством Soft Media Group (Софт Медиа Групп) с сайта softmg.ru