Ce document présente l’outil VRAC (Visualisations en Réalité Augmentée Concrètes), comment l’utiliser et l’installer.
VRAC est une application en réalité augmentée tournant sous Meta Quest 3 et développé sur le moteur de jeu open source Godot.
Elle utilise comme base le projet ARwavs précédemment développé par l’équipe Bivwac : https://bivwac.fr/fr/arwavs/
L’objectif de VRAC est de proposer un outil permettant de composer des visualisations immersives à partir de jeu de données et de modèles 3D préalablement importées.
Chaque composition est sauvergadée en temps réel dans l’application et peut être exportée et partagée avec d’autres utilisateurs.
Vidéo démo du projet :
2 - Présentation :
Par défaut, le projet ne contient aucune donnée ni visualisations. Le seul élément visible est une interface attachée aux manettes de l’utilisateur.
Pour la faire apparaître ce dernier doit lever son contrôleur et le tourner comme pour regarder la paume de sa main, l’interface suit la dernière manette ayant effectuée cette action.
L’autre manette émet alors un rayon permettant d’interagir avec l’interface.
Note :
Il est également possible d’utiliser l’application en handtracking. L’interface sera alors attachée au poignet de l’utilisateur et ce dernier devrait toucher du doigt les boutons avec lesquels interagir.
Cependant compte tenu de la taille de certains boutons et paramètres, il est conseillé d’utiliser les contrôleurs.
2.1 - Importer des fichiers
Dans un premier temps, l’utilisateur doit importer les jeux de données ainsi que les modèles 3D qu’il souhaite utiliser.
Importer un jeu de données :
Cliquez sur le buton “Datasets” pour ouvrir le menu de gestion des jeux de données.
Le bouton “Import Data” ouvre le menu de gestion de fichier natif de votre casque. Vous pouvez alors choisir un fichier .csv. VRAC demande des jeux de données avec une composition précise :
Première colonne : nom de la donnée
Deuxième colonne : valeur
Nous utiliserons en exemple le jeu de données “DataTest.csv” suivant :
Note :
Les paramètres “Model” et “Viz” sont facultatif. Ils permettent de référencer le nom d’un modèle 3D déjà importé dans l’application et attribuer une vizualisation à l’import.
Vous pouvez les laisser vide. L’attribution de modèle 3D et de vizualisation seront présentés plus loin dans cette documentation.
Une fois vos données importées, vous pouvez les retrouver dans la liste des datasets de l’application. Nous reviendrons dessus après l’import des modèles 3D.
Ces dernières ont été sauvegardées et peuvent être supprimées à tout moment via le bouton “X” à leur droite ou l’option “Clear All”.
Importer un modèle 3D :
Cliquez sur le bouton “Models” pour ouvrir le menu de gestion des modèles 3D.
À l’instar des jeux de données, le bouton “Import Model” ouvre le menu de gestion de fichier natif de votre casque. Les modèles compatibles sont les fichiers de type .glf et .gltf.
Une fois votre modèle importé, celui-ci apparaît devant vous avec une interface permettant de définir la taille à laquelle vous voulez l’enregistrer.
Le modèle est alors accessible en prévisualisation, accompagné d’une bouton “X” pour le supprimer si nécessaire.
2.2 - Créer des visualizations
Maintenant que votre application contient vos jeux de données et modèles 3D, vous pouvez les utiliser pour créer des visualisations en allant dans le menu “Setup Visualizations”.
On retrouve dans ce menu le dataset “DataTest” créé à partir de notre jeu de données. Ce dernier est composé de données “Data A” et “Data B”.
C’est à ces dernières que nous allons associer des visualisations.
Pour cela, cliquez sur le bouton “Edit” sur la ligne d’une donnée (ex : Data A).
Un second panneau s’ouvre contenant les informations relatives à cette donnée.
On retrouve :
Quantity :
La quantité définie dans notre jeu de données.
Model :
Le modèle 3D que nous allons utiliser.
Position & Rotation :
En ouvrant ce panneau un cube contenant votre modèle 3D est apparu devant vous. Ce dernier défini la position dans l’espace ou s’instanciera votre visualisation et selon quelle orientation.
Vous pouvez attraper ce cube avec le rayon de votre contrôleur, le faire avancer/reculer via la direction haut/bas du joystick et le faire tourner via les direction gauche/droite.
Visualization :
Définis le type de visualisation que vous allez utiliser. Chacune possédant ses propres paramètres.
Les visualisations existantes sont les suivantes :
Pile :
Fait tomber les éléments sur un point données, leur chute et leur collision les entassant sous forme de pile.
Paramètre :
Frequency : Quantité d’items par seconde.
Grid :
Répartis les éléments de façon équidistant sous forme de grille.
Paramètres :
Max lines : nombre de lignes maximum.
Max collumns : nombre de colonnes maximum.
Si le nombre d’items dépasse la surface lines max par colones max, un nouvel étage est ajouté.
Flux :
Génère un nombre infini d’item tombant d’un tuyau vers un autre, chaque item disparaissant une fois dans le second tuyau. Un compteur présent sur le tuyau inférieur s’incrémente à chaque item.
Paramètre :
Frequency : Quantité d’items par seconde.
Note :
Chaque paramètre modifié est instantanément sauvegardé.
Une fois les paramètres de chacune de vos données définies, vous pouvez retourner sur le menu principal.
Vous pouvez alors sélectionner le dataset que vous souhaitez visualiser (dans notre cas DataTest) via le bouton “Actual Dataset”.
Appuyez ensuite sur “Launch Visualization”. Chaque visualisation de votre dataset apparaîtra à l’endroit ou vous avez défini leur point d’instanciation.
Vous pouvez à tout moment nettoyer la scène via le bouton “Clear”, ou relancer une nouvelle visualisation via “Launch Visualization”.
Dans notre exemple, la scène générée correspond alors à une visualisation en grille et une seconde en flux en face de l’utilisateur.
2.3 - Exporter vos données
Pour exporter votre dataset, utilisez le menu déroulant à droite du nom du dataset et sélectionnez “Export”.
Le menu natif du Meta Quest s’ouvre, vous proposant de choisir l’endroit où enregistrer votre dataset et à quel nom.
Les données sont enregistrées sous forme de fichier .json. Vous pouvez consulter ce dernier et le modifier en dehors de l’application ou l’importer dans un autre casque.
Pour importer un fichier .json, utlisez la même méthode qu’à l’import d’un dataset. C’est à-dire l’ajouter via Datasets —> Import data comme vu dans la partie 2.1.
Les dataset possèdent également les options d’édition suivantes :
Dupliquer
Renommer
Supprimer
Note :
Les options dupliquer, renommer et supprimer existent aussi à l’échelle de chaque donnée du dataset. Permettant à l’utilisateur de le modifier directement dans l’application.
La première étape consiste donc à télécharger/cloner les fichiers en local sur votre machine et d’ouvrir le projet sous Godot.
Branchez alors votre casque à votre machine, celui-ci devrait être détecté par Godot, pour permettant d’utiliser l’option “Remote Deploy” accessible en haut à droite de l’interface.
Note :
Si vous avez le message “No Remote Deploy export presets configured”.
Une fois votre projet build sur votre casque, ce dernier se lance automatiquement. Dans le cas contraire, vous pouvez le retrouver dans Application → Sources Inconnues sous le nom “VRAC”.