Tags:
create new tag
, view all tags

Stage de Flavian Theurel - UTBM - [04/09/23 au 9/02/24]

Important : cette page est réservée au suivi du stage, merci de ne pas la modifier

Informations générales pour les stagiaires

Pour toute information concernant ce stage : contacter Sébastien

Sujet

  • Titre:
Développement d'une application astronomique pour casque de réalité virtuelle

  • Description:
L’outil Aladin Lite développé à l’Observatoire astronomique de Strasbourg permet d’explorer dans un simple navigateur web des centaines de relevés d’images astronomiques couvrant tout ou partie du ciel. L’objectif du stage est d’intégrer Aladin Lite dans une application 2D immersive grand public avec casque VR de type META Quest.
  • Etat de l’art sur les applications pour casques VR.
  • Prise en main d’Aladin Lite et intégration dans une web app (développement JavaScript / CSS)
  • Packaging d’une première web app utilisant Aladin Lite, de type planétarium immersif à 360°
  • Intégration dans l’application d’une interface utilisateur pour le choix des relevés image parmi une liste prédéfinie
  • Création de « tours », permettant la visite guidée de différentes catégories d’objets astronomiques (surcouches graphiques, zoom sur les objets d’intérêt, ...)

  • Objectifs et finalités attendus du stage :
L’objectif du stage est d’intégrer Aladin Lite dans une application immersive grand public avec casque VR de type META Quest.

Stage (Septembre 23 - Février 24)

Septembre

Du lundi 4 au vendredi 8 :

Lundi 11 :
  • Recherche d'application VR mettant en scène des planétariums (ou similaire).
  • Début des recherches sur une API de développement pour la réalité virtuelle.
Mardi 12 :
  • Test de Skygaze XR sur un casque Meta Quest 2 prêté par un collègue.
  • Test d'application de VR réalisées à l'aide de WebXR.
  • Selection de l'API WebXR pour l'implémentation d'Aladin Lite en VR.
Mardi 12 et mercredi 13 :
  • Lecture de la documentation sur l'API , le tracking spatial et la sécurité / confidentialité de WebXR.
Mercredi 13 :
  • Installation de l'environnement de développement pour Three.js (Node.js)
  • Initiation à Three.js.
Jeudi 14 :
  • Réalisation d'exemples d'application 3D en suivant des tutoriels.
  • Réalisation d'une première maquette de planétarium en utilisant une image équirectangulaire.
Vendredi 15 :
  • Réalisation de la version 2 de la maquette en utilisant une cubemap.
Lundi 18 :
  • Essais d'implémentations d'aladin lite dans l'environnement 3D généré par Three.js.
Mardi 19 :
  • Finalisation de la version 2.2 de la maquette rajoutant la possibilité d'ouvrir Aladin Lite dans l'espace 3D du planétarium.
  • Travail sur le mapping des coordonnées de la caméra aux coordonnées Aladin.
Mercredi 20 :
  • Synchronisation de la position du curseur d'Aladin Lite en fonction de la zone observée du planétarium.
  • Ajout d'une documentation doxygen plus détaillée.
Jeudi 21 :
  • Recherche sur les différentes manières de réaliser l'UI de l'application
  • Correction de la vue inversée
Vendredi 22 :
  • Initialisation du repertoire gitlab
Lundi 25 :
  • Tentative d'implémentation d'un model utilisant directement Aladin Lite pour simuler une vue panoramique.
Mardi 26 :
  • Controles du 3e modèle terminés
  • Ajout de la gestion des relevés et des catalogues
Mercredi 27 :
  • Début du développement du GUI
Jeudi 28 :
  • Ajout du menu graphique pour les survey
  • Début de l'ajout du menu pour les catalogues
Vendredi 29 :
  • Développement des menus

Octobre

Lundi 2 :

  • Implémentation du menu de catalogues
  • Paramètrage du casque VR
Mardi 3 :
  • Tentative de correction des problèmes liés au passage en VR
  • Début du redéveloppement depuis l'exemple du menu
Mercredi 4 :
  • Ajout des menus de selection et implémentation de la gestion des controleurs
Jeudi 5 :
  • Ajout d'une fenêtre Aladin dans la scène VR => Cause beaucoup de problèmes
Vendredi 6 : Lundi 9 :
  • Fin du tutoriel React
  • Initialisation de l'application aladin-vr dans l'environnement React
  • Premières expérimentations avec React Three Fiber
Mardi 10 :
  • Début du refactor du menu en React
Mercredi 11 :
  • Ebauche du menu terminée et interactive avec les controleurs du casque
  • Recherche sur la meilleure manière d'embarquer Aladin (problèmes rencontrés pour créer une instance d'Aladin en local du au fait que React génère la page dynamiquement)
Jeudi 12 :
  • Exploration d'autres manières d'afficher Aladin dans le casque (sans succès)
Vendredi 13 :

  • Recherche de nouvelles manières d'impléménter Aladin en VR
Lundi 16 :
  • Essais d'affichage de la scene 3d sur le canvas d'aladin
Mardi 17 :
  • Ecriture du code à ajouter à aladin lite pour lancer la session VR
Mercredi 18 :
  • Fin de l'écriture de la classe VRButton à ajouter à Aladin lite + ajout de la JSDoc
  • Début de l'intégration à Aladin Lite
Jeudi 19 :
  • Fin de l'intégration basique de la class VRButton permettant de lancer une session VR dans le code source d'Aladin Lite
  • Premier test en VR concluant : Aladin est visible même si la vue n'est pas optimale (l'oeil droit et gauche voient deux zones du canvas trop éloignées l'une de l'autre pour permettre l'immersion)
  • Nouveau problème : afficher la scène 3D et Aladin en même temps (pour le moment, il n'est possible de voir qu'un seul élément à la fois, soit Aladin soit la scène)
Vendredi 20 :
  • Recherche de la cause du problème de superposition. Pour le moment, ce n'est pas concluant. (Il n'y a aucune erreur et pour le moment, je ne sais pas où chercher)
Lundi 23 :
  • Porsuite des recherches (aucune avancée significative pour le moment)
Mardi 24 :
  • Aucune avancée pour l'affichage d'Aladin
  • Réflexion et implémentation d'une petite partie du refactor de l'UI
Mercredi 25 :
  • Essais d'implémentation de la VR au plus bas niveau possible pour voir si cela apporte des améliorations
Jeudi 26 :
  • Problèmes d'affichage en VR en modifiant le code du tutoriel pour rendre une scène threejs
Vendredi 27 :
  • Fix du problème d'affichage
Lundi 30 :
  • Essais probants pour afficher des formes sur le canvas derrière la scène Threejs
  • Implémentation du code dans le VRButton
  • Aladin ne s'affiche toujours pas (problèmes sûrement liés aux shaders)
Mardi 31 :
  • Tentatives de fix des shaders

Novembre

Jeudi 2 :

  • Poursuite du refactor du code pour afficher le menu
Vendredi 3 :
  • Ajout de la création dynamique du menu survey
  • Recherche pour rendre cette grille "scrollable"
Lundi 6 :
  • Ajout de la possibilité de scroll sur le menu de survey
  • Début de l'implémentation de la récupération des données depuis des fichiers json
Mardi 7 :
  • Ajout de la lecture des surveys et catalogues depuis un fichier json
  • Simplification de la méthode pour actualiser les boutons
  • Ajout du toggle pour le menu de survey
  • Ajout du menu pour les catalogues
  • Ajout du scroll pour le menu de catalogues
Mercredi 8 :
  • Développement de quelques fonctionnalités du menu
  • Recherches sur le problème de "stuck pixel" qui est apparu dans le casque
Jeudi 9 :
  • Tentative de fix pour le problème de pixel bloqué
  • Début de l'implémentation du menu d'"exploration"
Lundi 13 :
  • Ajout début menu explore (afichage dynamique)
Mardi 14 :
  • Fix scrolling
  • Ajout des switch entre objets et les tours
Mercredi 15 :
  • Ajout de la liste d'objets (tentative de fix de l'affichage)
Jeudi 16 :
  • Fix affichage du menu explore
  • Ajout de l'ébauche du panneau d'informations
Lundi 20 :
  • Ajout de l'update dynamique des informations dans le container data en fonction de l'objet sélectionné
  • Ajout popup d'informations concernant les tours (permettre de présenter les tours avant de les lancer)
Mardi 21 :
  • Ajout d'un bouton retour sur les menus d'info
  • Fix popups (détection n'est plus prise en compte une fois que le menu est caché)
  • Fix : Trigger ne peux déclencher qu'un bouton à la fois (même si le ttrigger est toujours pressé)
  • Ajout visuel pour le player des tours (bug sur les boutons qui ne changent pas de style en fonction de leur état)
Mercredi 22 :
  • Fix statut visuel des boutons
  • Ajout de l'exploration des tours
  • Modification de la manière dont les menus sont affichés lorsque l'on sélectionne un tour/objet
  • Première version du menu terminée (en attente de retours)
Jeudi 23 - Vendredi 24 :
  • Début de la phase de test en demandant à des personnes extérieures au projet (voir si le menu est intuitif, lisible, etc)
  • Corrections apportées suites aux quelques essais :
    • Changement de couleur des boutons pour choisir le menu d'objets ou des tours
    • Ajout d'un popup d'aide (pour mieux appréhender les contrôles
    • Ajout du retour en arrière lorsuque le bouton B est pressé
    • Correction de bugs mineurs
Lundi 27 :
  • Ajout tag "New"
  • Ajout des popups manquants
Mardi 28 :
  • Conseil Scientifique
Mercredi 29:
  • Conseil Scientifique
  • Recherche pour écrire les tests unitaires pour le menu
  • Utilisation de Jest (Problèmes de parametrage)

Décembre

Vendredi 1 :

  • Fix des problèmes liés à l'environnement de test unitaires (utilisation de vitest)
  • Création des premiers tests sur les fonction du VRControl
Lundi 4 :
  • Ajout des autres tests unitaires des fonctions du fichier VRControl.js
Mardi 5 :
  • Début de l'implémentation des tests unitaires sur le Menu (Fix des différents problèmes)
Mercredi 6 :
  • Apparition nouveau bug (Impossible de charger la police (fichier json) dans l'environnement de test unitaire JSDOM)
Vendredi 8 :
  • Découverte de Playwright pour les test en end-to-end.
  • Tentative de création de tests pour le bouton VR
  • Recherche pour solutionner le problème d'URL avec jsdom
Lundi 11 :

  • Recherches pour pouvoir tester la VR avec Playwright
  • Modification du menu Catalogues avec les données réelles

Janvier

Lundi 15 :

  • Ajout des dernières données au menu

Versions testables

  • ...

Documentation

Liste des améliorations à envisager

  • ...

Bugs connus

  • Problème de shaders lorsque l'on cherche a supperposer Aladin et une scène Threejs
Topic attachments
I Attachment Action Size Date Who Comment
Unknown file formatods Comparaison_Casques_VR.ods manage 18.5 K 2023-09-12 - 14:56 FlavianTheurel Comparaison de différents casques VR en fonction de leurs caractéristiques
PDFpdf Planetarium_VR_applications.pdf manage 281.1 K 2023-09-13 - 13:17 FlavianTheurel Liste d'applications de type planétarium en VR
PDFpdf VR_API_List.pdf manage 82.3 K 2023-09-13 - 13:21 FlavianTheurel Liste d'APIs pour la VR ainsi que leurs avantages
Topic revision: r61 - 2024-01-16 - FlavianTheurel
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback