Tous les projets

OXRSys

  • Perso
  • XR
  • application
  • Open source

Du PCVR sur macOS avec Unity, Unreal Engine, Godot et les applications natives OpenXR.

Stack technique
  • C++20
  • Swift
  • Objective-C
  • SwiftUI
  • OpenXR
  • Metal
  • Unity
  • Unreal Engine
  • Godot
Contribution
Architecture et développement
Plateformes
macOS
Projet
En développement
L’application OXRSys Home sur macOS.

OXRSys est un runtime OpenXR conçu pour macOS. Il fonctionne avec Unity, Unreal Engine, Godot et les applications natives utilisant OpenXR. Il relie les applications de réalité virtuelle exécutées sur le Mac à des clients de streaming pour casques VR. Le projet associe le rendu natif, le transport vidéo et une application de bureau pour configurer l’ensemble.

La PCVR dans l’environnement macOS

Le runtime prend en charge les architectures Apple Silicon et Intel. Il dispose d’un chemin de rendu Metal ainsi que d’un chemin Vulkan via MoltenVK. L’encodage vidéo H.264 et H.265 repose sur VideoToolbox, avec des transports réseau et USB.

L’application OXRSys Home, écrite en SwiftUI, rassemble l’enregistrement du runtime, le lancement d’applications compatibles, les réglages et la télémétrie. Des clients sont développés pour Meta Quest, Pico et Vision Pro, ainsi que des simulateurs sur macOS et iOS. Leur niveau de validation est documenté séparément dans le dépôt.

Unity, Unreal Engine, Godot et les applications natives

Le runtime permet de développer des applications VR sur Mac avec Unity, Unreal Engine ou Godot, ainsi que des applications natives qui s’appuient directement sur OpenXR. Ce standard constitue le point commun entre ces différents environnements et OXRSys.

Pour Unreal Engine, le projet comprend aussi un fork du plugin OpenXR. Il ajoute un chemin macOS utilisant Metal et peut être installé directement dans un projet Unreal.

Mon travail porte ainsi sur toute la chaîne : interface avec les applications, échange des images et des entrées, clients de visualisation et outils de configuration. L’enjeu est de rendre ces composants cohérents dans un usage interactif sensible à la latence.

Et votre prochain projet ?

Faisons avancer votre idée.

Une application, un jeu, un défi technique. Parlons de ce que vous avez en tête.

Discutons de votre projet