Tags:
create new tag
, view all tags

Visualisation progressive en 3D de données astronomiques dans un navigateur

Stage de Rova RASOANAIVO - IUT Saint-Dié - [06/04/20 au 12/06/20]


Avril

06/04/2020 :

  • Prise de poste (début en télétravail)
  • Mise en place de l’environnement de travail : installation du VPN de l’Observatoire, prise en main de GitLab
  • Discussions avec le tuteur sur des détails techniques du stage
  • Discussions avec le tuteur sur les modalités de suivi du stage
  • Étude de l’existant : test du logiciel, étude de la conception, relecture active des rapports de stage des anciens stagiaires et de la documentation existante.
Prise en main de l’outil :

Pour cela, j’ai tout d’abord cloné le repo git depuis le gitLab de l’observatoire. J’ai essayé les
différentes données en entrée pour explorer un peu les possibilités offertes par l’outil. Je me suis
aidé de la documentation fournie par Thibault Bouchard (reprise de la partie IHM). J’ai réussi à
afficher des jeux de données Votable et testé les différents outils afin de manipuler les PointClouds.
J’ai étudié l’arborescence du projet et essayé de comprendre les techniques de conception mises en
jeu.
L’outil est très facile à prendre en main. Je n’ai eu aucun problème d’imports du aux différentes
versions de THREE.js malgré l’ancienneté du dernier commit (presque 1 an). L’application tourne
parfaitement sur mon ordinateur (testé sous Firefox) avec un FPS dépassant les 140 en restant
immobile.

Observations et notes du jour :

Je n’ai pas encore vraiment compris comment fonctionne GitLab car c’est la première fois que j’ai affaire à cette plateforme CI/CD mais je vais m’aider de tutoriels.

07/04/2020 :

  • Études de l'architecture et l'organisation des fichiers/classes du projet
  • Lecture de la jsdoc du projet
  • Études plus poussées du code source surtout au niveau client
    • app.js , Simu.js, Box.js, Snapshot.js
    • test de la fonctionnalité d'interpolation des mouvements du nuage de points (timeline)
  • Analyse des formats de données disponibles (VoTable, CoDa, etc.)
  • Réunion : Eclaircissements de la part du tuteur.
  • Création de cette page Wiki
Observations et notes du jour :

Je n'ai pas encore réussi à lancer le serveur node.js de l'application permettant de tester le système de fichiers en octree implémenté.

08/04/2020 :

  • Études plus poussées du code source au niveau de la lecture de données en entrée.
    • script.js, Data.js
  • Étude de la possibilité et l'interêt de changer la nomenclature des données résultantes des scripts car certaines colonnes se repetent.
  • J'étudie toujours la documentation.
Observations et notes du jour :

La to do List laissée par le dernier stagiaire est remplie d'idées à reprendre pour le développement, cependant, il faut encore étudier la faisabilité et l'interêt de ces changements.

09/04/2020 :

  • Début du rajout d'un script permettant d'afficher des Voxels. Les fichiers contiennent les niveaux de gris (0-255) des pixels arrangés dans une grille cubique. Si nv de gris = 0, on n'affiche pas le voxel.
  • Nettoyage et amélioration de la syntaxe.
Observations et notes du jour :

L'application ne semble pas encore gérer les couleurs envoyés en paramètres. Ce problème est à regler.

10/04/2020 :---------------------------Férié : Pâques-------------------------------------------------------------------------
13/04/2020 :---------------------------Férié : Pâques-------------------------------------------------------------------------

14/04/2020 :

  • Nouveau script de lecture des Voxels fonctionnel.
  • Débuggage de la fonction de traitement des couleurs.
  • Nettoyage et amélioration de la syntaxe.
Observations et notes du jour :

Le problème des couleurs n'est pas encore réglé.

15/04/2020 :

  • Problème des couleurs fixé.
  • Début de la correction de la luminosité des points trop faible dans les vertex shaders.
  • Tests sur différents jeux de données.
  • Réunion hebdomadaire avec le tuteur pour voir les avancées.
16/04/2020 :

  • Je reviens sur l'étude de l'arborescence du projet grâce au mode débuggage présent dans l'application.
  • Exercices d'approfondissement sur JavaScript afin de comprendre le fonctionnement de :
    • async()
    • bind()
    • callback()
    • timeout()
  • Repérage du code "mort"
17/04/2020 :

  • Expérimentations sur le côté server side de l'application.
    • Utilisation de node.js et compilation du serveur
    • Test des fonctionnalités serveur de l'application
  • Test des vues dégradées en mode serveur.
  • Approfondissement sur javascript
Préparation des fonctionnalités à coder pour la semaine prochaine. Je rentre maintenant dans la phase concrète du développement.

20/04/2020 :

  • Rajout de fonctionnalité : suppression des données de la vue en cours via un click.
  • Réussi sur vue simple.
  • Rajout de nouveaux icônes de suppression.
  • Confirmation de suppression rajoutée.
21/04/2020 :

  • Fonctionnalité de suppréssion disponible aussi en mode multivue.
  • Refactoring de fonctions
  • Préparation de la nouvelle fonctionnalité à rajouter demain.
Notes du jour: Javascript ne permet pas le contrôle de la mémoire. C'est le garbage collector qui s'en charge.
Pour avoir un controle indirect, il faut déreferencer les objets (delete(), null assignement, etc.);

22/04/2020 au 24/04/2020 :

  • Discussion avec le tuteur sur les fonctionnalités disponibles en mode serveur et les futures améliorations attendues.
  • Propositions d'amélioration de la manipulation des vues dégradées
  • Étude des classes FileReader.js et OctreeFS.js
Notes: Il reste encore beaucoup de choses à faire au niveau serveur. La configuration de ce dernier prends trop de temps.

27/04/2020 :

  • Rajout de scripts de lecture de fichiers côté serveur
  • Test de déploiement avec ngrok et now.
28/04/2020 :

  • Rajout de nouvelles fonctionnalités côté serveur
    • possiblité de créer "un tunnel" pour faciliter le déploiement
29/04/2020 :

  • Présentation de VizieR par Gilles Landais
  • Intervention de Laurent Michel sur le projet franco-chinois SVOM
  • Mise à jour de la documentation côté serveur
30/04/2020 :

  • Présentation de l’observatoire virtuel par André Schaaff
  • Mise à jour de la documentation côté client

Mai

01/05/2020 :---------------------------Férié-------------------------------------------------------------------------

04/05/2020 :

  • Rajout de la possibilité de switcher entre deux modes de projection:
    • perspective
    • orthographique
Notes: je n'ai pas encore réussi à regler le problème qui empêche de revenir vers la camera globale

05/05/2020 au 06/05/2020 :

  • Présentation de Simbad par Thomas Boch
  • Déboguage de la camera bloquée
  • Commit sur GitLab des fonctionnalités rajoutées
07/05/2020 :
  • Présentation de la DSI par Christophe Saillard
  • La vue orthographique marche dorénavant avec la camera globale
08/05/2020 :---------------------------Férié-------------------------------------------------------------------------

11/05/2020 au 12/05/2020 :

  • Présentation du métier de documentaliste par Evelyn Son
  • Il est maintenant possible de changer la FOV de la caméra
  • Discussions avec le tuteur : pistes vers le WebAssembly, gestion de la mémoire.
13/05/2020 au 15/05/2020 :

18/05/2020 :
  • Petit fix au niveau du style (tableau data manager)
  • Fix background de la scène Three.js
19/05/2020 :
  • Première release de Octree.cpp:
    • Constructeur, principales fonctions
    • Je décide d'utiliser uniquement les std::vector<float> en c++ (équivalent des tableaux dynamiques en Javascript ou la collection ArrayList en Java) pour plus de maniabilité.
    • Le point d'entrée de javascript est encore à décider.
20/05/2020 :
  • Gros chantier
    • conversion totale des nomenclatures de la classe vers C++
    • beaucoup de débugage car le typage permissif de javascript implique plein de problèmes vers le C++ qui est fortement typé.
    • La classe fonctionne comme prévu
21/05/2020 au 22/05/2020: -------------------Férié---------------------------

25/05/2020 :

  • Importation du code wasm généré sur Jasmine
  • Comparaisons de performances (voir rapport) js vs wasm (c++)
  • en moyenne, vitesse d'execution divisée par deux. (test sur jeux de données de 1953125 de points = 400ms au lieu de 800-1000ms)
26/05/2020 au 29/05/2020 :

  • Nettoyage du code
  • Documentation des parties rajoutées
  • Optimisation avec Emcc du fichier wasm
  • Debut de l'ecriture du rapport
  • Présentation d'Elastic Search par Gilles Landais

Juin

01/06/2020 -------------------Férié---------------------------
02/06/2020 au 03/06/2020 :

  • Je continue la rédaction du rapport et la confection du diaporama
  • Test de compression Gzip côté serveur
  • Mise en place de la compression
  • Début de redaction d'une documentation technique
Dernière semaine (fin: 12/06/2020)

  • Correction rapport
  • Répetition soutenance orale
  • Préparation du code pour commit final
  • Documentation
Rapport de stage : 6_Rapport_Rova_Rasoanaivo.pdf
Topic attachments
I Attachment Action Size Date Who Comment
PDFpdf 6_Rapport_Rova_Rasoanaivo.pdf manage 1533.2 K 2020-06-12 - 07:54 UnknownUser  
PDFpdf Diaporama_Soutenance.pdf manage 1753.0 K 2020-06-12 - 07:56 UnknownUser  
Topic revision: r17 - 2020-06-18 - RovaR
 
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