R&D : le projet MONADO
Projet OpenXR / Monado / VROOM
Enjeux de souveraineté des équipements, interopérabilité, réduction des coûts licence
Les écoles INSA bénéficient d'équipements de réalité virtuelle diversifiés (casques, environnements immersifs multi-faces type Cave), ce qui est un atout pour proposer différentes modalités pédagogiques en immersion.
C'est aussi un défi : s'assurer que les ressources sont interopérables alors que les normes ne sont pas encore entièrement fixées en la matière, réduire la dépendance technique et économique à des solutions propriétaires qui font fonctionner ces équipements et ainsi en assurer la pérennité.
C'est dans ce contexte que se situe le projet de recherches appliquées à l'INSA Rouen Normandie, notamment à travers le logiciel Monado/VROOM : proposer une solution libre et souveraine permettant de gérer des systèmes de réalité virtuelle projetés, sous la forme d'une extension au projet Monado, existant, qui assure déjà la compatibilité des casques. Ce faisant, en plus de l'aspect technique et économique (pas de coût de licence), on fait un pas de plus vers l'interopérabilité des ressources en supprimant l'obligation d'utiliser un logiciel propriétaire pour exécuter une ressource.
Mots clés
Réalité virtuelle, OpenXR, Cave, Cube immersif, la Bâtcave
Public Cible
Utilisateurs d'environnement immersifs projetés type Cave/Cube immersif
Acteurs du projet
OpenINSA
Jérémy Auzou (Ingénieur d'études en réalité virtuelle, développement, INSA Rouen Normandie)
Swan Remacle (Ingénieur d'études sur la réalité virtuelle, développement, INSA Rouen Normandie)
Jean-Marc Cherfils (Ingénieur de recherche, fondateur de la Bâtcave, INSA Rouen Normandie)
Hamid Le Fleurier (Coordinateur projets INSA 2025, OpenINSA)
Résumé
Monado est un logiciel open source permettant d'adapter plusieurs dispositifs de réalité virtuelle à la norme OpenXR.
OpenXR est une norme mise au point par le groupe Khronos permettant d'uniformiser les protocoles de communication entre les appareils de réalité virtuelle et mixte, d'une part et les applications conçues exploitant ces appareils, d'autre part. Apparue en 2019 (dernière mise à jour en avril 2024), la spécification OpenXR à activement permis, depuis, de faciliter l'interopérabilité matérielle et logicielle dans le domaine de la réalité étendue. Néanmoins, cette mise à jour majeure de la vision du développement d'applications pouvait se faire au détriment de casques antérieurs à la norme, rendus obsolètes par leurs fabricants. Pour répondre à cette problématique, Monado, environnement d'exécution OpenXR libre et ouvert, est apparu comme solution à la soutenabilité de ces équipements encore très répandus.
Sous le nom de VROOM, la Bâtcave, à l'antenne du Havre de l'INSA Rouen Normandie, a développé une extension de Monado permettant de le faire fonctionner sur les environnements de réalité virtuelle projetés (CAVE, cubes immersifs) dont sont équipés les INSA.
Pour cela, il a fallu prendre en charge la projection multi-faces, les systèmes de suivi dans l'espace (tracking) ainsi que la gestion des interactions de ces environnements.
Les bénéfices apportés par ces développements sont multiples:
Pour les cubes immersifs, cette version de Monado propose une alternative à l'environnement DEC qui gère ces fonctionnalités et sur lequel nous n'avons pas la main (licences, mises à jour pouvant provoquer des dysfonctionnements...)
La compatibilité avec la norme OpenXR permet d'assurer l'interopérabilité des ressources produites et/ou achetées entre les différents environnements de réalité virtuelle des INSA (casque, cube, CAVE), encourageant le développement d'applications compatibles OpenXR.
En se basant sur des technologies modernes (Vulkan, OpenXR), Monado/VROOM s'assure une soutenabilité maximale, par comparaison aux solutions existantes (Techviz, MiddleVR, DEC) qui peinent à maintenir leur mode de fonctionnement, conçu autour de technologies antérieures à la norme OpenXR.
La recherche est largement avancée à cette date (décembre 2025) avec des expérimentations sur différents équipements INSA (cubes immersifs des INSA Toulouse et Hauts-de-France et bien sûr dans la Bâtcave à l'INSA Rouen Normandie) et hors INSA (PIRVI à Lille, publication du code VROOM sur le site principal de développement de Monado, pour fusion prochaine)
Ressources
Conditions d'utilisation
Le projet Monado est distribué sous licence Boost Software License
Contact
Introduction
La norme OpenXR
Apparue en 2021, la norme OpenXR définit la façon dont les applications en réalité virtuelle doivent communiquer avec le matériel disponible. Cette spécification permet à n’importe quel logiciel, conforme, d’afficher son contenu 3D dans tout casque de réalité virtuelle ou mixte. Cette norme fait l’objet d’une adoption unanime de la part des fabricants et permet de résoudre le problème de la portabilité. Dans le cadre du projet INSA2025, OpenINSA a choisi d’adopter cette norme afin de favoriser le déploiement de ses contenus sur les différents types d’équipements de réalité étendue.
Toutefois, même si la norme OpenXR assure la portabilité des applications sur les équipements grand public récents, les équipements plus anciens sont souvent rendus obsolètes car leur fabricant n’assure plus leur support. Aussi, les équipements plus complexes (salles immersives) ne bénéficient souvent pas d’une prise en charge par les applications, car ils n’entrent pas dans le périmètre de la norme, dans sa version actuelle.

Monado
L’INSA a répondu à ces problèmes en s’associant au développement du logiciel Monado, du consortium Collabora. Monado est un runtime permettant d’utiliser les casques rendus obsolètes, sur différentes plateformes (Windows, Linux, Android), en norme OpenXR. Ainsi, Monado, dans sa version de base, se présente déjà comme un driver compatible avec l’application XR et permet d’assurer la portabilité de ces applications sur du matériel plus ancien.
La contribution d’INSA2025 au développement de Monado consiste en la prise en compte d’installations XR autres que les casques. Ainsi, il permet de faire fonctionner des applications initialement prévues pour des casques de réalité virtuelle, sur des installations de type « salle immersive » (la Bâtcave au Havre, les cubes à INSA Hauts-de-France, Toulouse et Strasbourg) où l’image est projetée.
Ainsi, par l’utilisation combinée d’OpenXR et Monado, OpenINSA assure la portabilité et la durabilité de son matériel et sa compatibilité avec les applications XR développées dans le passé, et dans le futur. Ce savoir-faire nécessite d’être partagé, car il facilite et accélère la période d’assimilation pour tout nouvel utilisateur XR curieux d’explorer les différentes applications qui lui sont proposées.

Intérêt stratégique pour le développement et l’utilisation d’environnements XR variés
Compatibilité des applications pour casque
L'adoption de la norme OpenXR et d'un écosystème de logiciels compatibles assure aux utilisateurs une meilleure expérience aussi bien lors de l'immersion qu'au cours de la mise en œuvre des ressources pédagogiques impliquant des dispositifs de réalité étendue. En effet, les ressources développées en conformité avec la spécification OpenXR ne nécessitent par une multiplication de versions adaptées à chacun des dispositifs existants. Ainsi, une application OpenXR bénéficie d'une meilleure soutenabilité et durabilité, en limitant et facilitant les développements.
L'acquisition de nouveaux équipements de type « casque », dorénavant tous compatibles OpenXR, ne pose donc aucun souci de compatibilité des ressources existantes.
Le logiciel Monado, quant à lui, permet de maintenir opérationnels des équipements antérieurs à la norme OpenXR, comme par exemple : Oculus Rift, PlayStation VR à la fois sur Windows et Linux. Monado est le coeur d'une large et active communauté d'utilisateurs et développeurs qui enrichissent continuellement son code et sa documentation. Chaque nouveau cas de figure application/matériel trouve donc souvent une réponse technique appropriée, favorisant l'inclusion de nouveaux acteurs XR, munis d'équipements prématurément jugés obsolètes.
La norme OpenXR et le dialogue direct avec l'application 3D
Au delà de la lutte contre l'obsolescence, la spécification OpenXR vise à instaurer un dialogue direct entre le matériel et l'application utilisés. Chaque dispositif d'interaction ou d'affichage est connecté et présenté dans le logiciel selon une description standardisée.
Or, il existe de nombreuses installations immersives à grande échelle, basées sur de la projection vidéo, ou dorénavant des panneaux de LEDS, et du suivi temps réel de mouvement par infra-rouges. Communément appelés C.A.V.E. (ou cubes, ou salles immersives ... ), ces dispositifs ne sont pas inclus dans la norme et s'appuient souvent sur un empilement logiciel complexe, coûteux et difficile à maintenir.
Développer une variante de Monado permettant la prise en charge de ces environnements est donc essentiel pour la pérennité de ces installations et la réduction de leur coût.
Performances et rendu graphique
C'est ainsi que le projet VROOM a débuté, dont l'objectif était d'assurer un fonctionnement de la salle immersive de la Bâtcave, du département Génie Civil et Constructions Durables de l'INSA Rouen Normandie, au Havre. Elle est équipée de deux faces projetées, de lunettes de stéréoscopie et de manettes de jeux grand public. La stratégie a consisté à utiliser Monado pour faire apparaître l'installation comme un casque, aux yeux de l'application.
Après plusieurs mois de développement, la solution Monado/VROOM s'est montrée efficace et performante. Basée sur des technologies actuelles (Vulkan, OpenXR), elle se présente donc comme une alternative robuste aux solutions techniques antérieures.


Dans le contexte d'un département de formation en Génie Civil et Architecture, ces résultats techniques combinés au dialogue direct, en OpenXR, avec des applications déjà très répandues dans ce domaine, comme Blender ou Twinmotion, ont largement encouragé un déploiement plus large de l'application Monado/VROOM et la réflexion autour d'une prise en charge plus officielle des « CAVE » dans la norme OpenXR. Cela permettra d'utiliser le matériel disponible, quelque soit son âge, avec une efficacité maximale, moyennant un apprentissage technique réduit aux quelques logiciels libres nécessaires et suffisants, communs aux expériences XR sur casque ou en CAVE.
Développements et déploiements réalisés
Pédagogie
La premier effort de mise en oeuvre d'une version de Monado sur un dispositif projeté, proche d'un CAVE, fut fourni dans le cadre du projet de Recherche ANR LIAD, pour la simulation de catastrophes technologiques en milieux urbains. Mais c'est dans un contexte pédagogique, d'abord, qu'à été créée la salle immersive de la Bâtcave, pour réaliser des visites virtuelles d'ouvrages en génie civil et architecture.
Munie de deux faces rectangulaires, la Bâtcave, pour chaque visite, nécessitait la mise en oeuvre d'une procédure complexe et parfois capricieuse :

Extension aux cubes des INSA Hauts-de-France et Toulouse.
Passage de 2 à 5 faces, adaption du code de Monado (multi-target) implication sur les limites (applications)
Compatibilité
Création d'autres outils (Origami)
Ajout du tracking DTrack et Optitrack (VRPN)
Manettes Joy-Con 1
Fichier de configuration
Driver CAVE
mars-juin 2023 : Suivi de position DTrack
janvier 2025 : Suivi de position VRPN
novembre 2024 : Manettes Nintendo Joy-Con 1
novembre 2022 : Fenêtre d’information à l’exécution
mars 2024 : Fichier de configuration
Mono/Stéréoscopie
Disposition et résolution des écrans
Choix du système de suivi
Compositor
août 2024 : Présentation stéréoscopique
octobre 2024 : Nombre arbitraire (1+) de fenêtres
Recherche
Essais sur espace de projection courbe au PIRVI et début de coopération.
Développements futurs
Ouverture sur l'impact sur la philosophie de développement d'applications XR
Différences entre développer pour un casque ou un moteur de jeu, et développer en OpenXR
La norme OpenXR rationnalise les concepts et les descriptions des différents périphériques utilisés (boutons des contrôleurs, écrans où sont diffusées les images) et simplifie le travail du développeur en assurant la portabilité de son application. Néanmoins, les logiciels de développement pour la XR, appelés moteurs de jeu (Unity, Unreal, …) se présentent actuellement comme d’imposants logiciels, réunissant en un seul « outil » un affichage 3D, la modélisation de scénarios, la manipulation d’objets (données, modèles) et un environnement de compilation permettant de produire un exécutable final. Les moteurs de jeux actuels prennent en charge la norme OpenXR mais se limitent souvent au support des fonctionnalités les plus courantes (casques de VR) et principalement orientées vers la production de jeux ludiques (navigation et parcours individuel, simulation physique sommaire).
La manipulation d’un moteur de jeu est complexe, et son utilisation dans un contexte de recherche et développement de nouvelles expériences XR peut s’avérer contraignant, voire impossible sans l’aide de développeurs chevronés.
Pour répondre à ce problème et pour assurer la portabilité et la survivabilité de son matériel, l’INSA souhaite mettre en œuvre et étendre des concepts encore peu développés de la norme OpenXR et ainsi rompre avec l’approche commune et monolithique de développement de logiciels XR à l’aide de moteurs de jeux.
VERS UNE APPROCHE MODULAIRE
Adopter une approche modulaire pour le développement d’applications XR, en séparant les fonctionnalités en différentes applications distinctes, communiquant entre elles selon un protocole à définir, permettrait d’ étendre les considérations uniquement matérielles de la spécification OpenXR . Cette stratégie de modularisation a d’ores et déjà été validée par l’expérience dans d’autres domaines (applications de bureau, web …).
Pour cerner l’enjeu, on peut prendre l’exemple simple de la traduction d’une application initialement développée en langue française, qu’on souhaite partager avec un partenaire qui parle anglais. Actuellement cela nécessiterait de traduire tous les textes visuels et enregistrements vocaux, les intégrer dans le moteur de jeu, puis à compiler à nouveau l’ensemble du logiciel. Plusieurs itérations peuvent être nécessaires si des corrections doivent être apportées.
Dans un cadre multi-application, un module spécifique pourrait avoir la charge de recenser tous les éléments linguistiques (textes, voix) d’une application, et de proposer d’en ajouter ou d’en générer automatiquement (LLM). Ainsi, un utilisateur serait en mesure d’utiliser le logiciel dans la langue de son choix, si disponible. Et l’ajout d’une nouvelle langue ne demanderait que la modification de ce module.
Il serait aussi possible de séparer le rendu graphique des différents éléments visuels d’une scène : éléments proches ou lointains, fond, objets offrant une interaction. Ces différents ensembles d’éléments seraient gérés par différents modules, offrant des points d’entrée pour diverses optimisations :
• optimisation des ressources matérielles disponibles sur l’ordinateur
• optimisation des flux réseau dans le cas d’applications collaboratives sur de longues distances, en fonction des performances, en choisissant de ne streamer et synchroniser que les éléments proches.
• introduire un module de collaboration bas niveau, performant, sous la forme d’un multiplexeur, permettant de synchroniser plusieurs sessions XR (colocation et collaboration)
• permettre à un utilisateur non équipé de casque de VR, de visualiser et interagir avec une scène XR, à l’aide d’un simple smartphone ou ordinateur.
Le développement de nouvelles applications XR pourrait être réduit à l’édition de graphes symbolisant l’enchainement d’étapes, sans codage.
Le pôle VR d’OpenINSA envisage de poursuivre son exploration des logiciels libres de XR (Monado, Electric Maple), de modélisation (Blender), partage de modèles 3D (Speckle) et de développement de jeux (Godot, O3DE) afin de proposer une solution complète, gratuite et pérenne.
OBJECTIFS
• sécuriser les contenus actuels et les transmettre aux partenaires.
• anticiper les difficultés de développement et d’adoption de la XR en développant une approche modulaire de développement combinée à un protocole et un langage de description des scènes XR (extension de la norme OpenXR)
• explorer de nouvelles possibilités d’utilisation de la XR sortant du cadre « restrictif » des moteurs de jeux vidéo classiques.
• faciliter le retour utilisateur et l’amélioration continue des applications.
• réduire le coût humain et matériel de développement de nouvelles expériences.
Utiliser la VR sans code
Blender Geometry Nodes et génération de géométries en VR, manipulation de modèles en live,
Nouveaux défis : collocation, collaboration en temps réel, avec différents dispositifs (casques PCVR, casques autonomes, CAVES)
Autres dispositifs de VR.

