WireDeskVR

Цель

Начальный этап и первый шаг включают создание функциональности захвата экрана для агента, позволяющей транслировать, транскодировать и передавать захваченный контент по сети.

Проект

Сначала мы создаём отдельный проект для изучения возможностей. Поскольку это агент, он будет работать на macOS как сервис или фоновый демон. Его основная задача проста — поскольку у него нет UI, мы реализуем его на Swift и Swift Package Manager как стандартный исполняемый файл.

Исходный код

Основная функция агента инициализирует сокет для каждого обнаруженного дисплея. Посмотрим, как эта функциональность будет работать.


    func start() async throws {
        let sender = NetworkSender(host: "127.0.0.1", port: port); sender.start(); self.network = sender

        let content = try await SCShareableContent.current
        guard let display = content.displays.first(where: { $0.displayID == displayID }) else { return }

        let encoder = VideoEncoder(width: display.width, height: display.height, bitrate: 20_000_000)
        encoder.delegate = self; self.encoder = encoder

        let captureSession = ScreenCapture(displayID: displayID)
        captureSession.delegate = self
        self.capture = captureSession

        try await captureSession.start()
    }

WireDeskVR

Описание проекта

WireDeskVR — это VR-приложение, позволяющее пользователям работать с интерфейсом WireDesk в виртуальной реальности. Проект реализует полноценную виртуальную рабочую среду с возможностью взаимодействия с элементами интерфейса с помощью жестов и контроллеров. На данном этапе это proof of concept для понимания технической реализуемости. Также были изучены конкуренты и идеи, циркулирующие в сообществе. Предстоит много исследований, и мы столкнёмся со множеством новых задач.

Технологии

  • Swift
  • ARKit / RealityKit
  • Metal
  • Core Motion
  • SceneKit
  • UnrealEngine
  • Android
  • Oculus/Meta Quest

Возможности

  • 3D-взаимодействие с интерфейсом
  • Поддержка различных типов контроллеров
  • Интеграция с WireDesk API
  • Оптимизация производительности для VR-устройств

У меня давно, ещё с детства, была мечта создать виртуальный рабочий стол для работы с компьютером. Сегодня технологии не только позволяют достичь этого, но и реализовать это с помощью искусственного интеллекта. Этот проект — скорее тест для понимания того, насколько технологии сегодня способны помочь в достижении этой цели. Основная идея первого этапа — создать NoLatency, передавая видеоданные с экранов MacBook на Oculus Quest. На последующих этапах планируется внедрить систему плагинов и собственный бинарный протокол для унификации данных от других приложений и других пользователей в VR.

Дорожная карта

  1. Установить стабильное соединение и настроить рабочие станции.
  2. Изучить и проанализировать свободное пространство ресурсов компьютера, а также системы Oculus. Если ресурсы позволяют управлять экранами, также рассмотреть создание игровой зоны в виртуальной реальности, чтобы пользователи могли снять эмоциональную нагрузку, разрушая что-нибудь в VR.
  3. Шаринг экрана и социальный компонент не взлетели и не популярны среди конкурентов, поэтому эту часть опускаем. На третьем этапе сразу переходим к бета-тестированию бинарного протокола для передачи пользовательских данных с macOS и хоста на VR-шлемы.
  4. Систематизировать и стандартизировать протокол, а также начать разработку маркетплейса для пользователей.
  5. Захватить мир и найти того, кому его продать.