UniverseViewer: un logiciel interactif de visualisation et de traitement géodésique d'objets astronomiques

Salut à tous !

Je poste pour vous présenter un nouveau projet personnel: UniverseViewer !

Bon, je vous préviens desuite, c’est un peu technique et clairement pas grand public, donc si la cosmologie ne vous intéresse pas, vous devriez passer votre chemin :wink:

Cette application web permet de charger des catalogues d’objets astronomiques (actuellement deux catalogues de quasars, mais d’autres viendront), et de les étudier via des projections sur un plan en fonction de divers paramètres. Nous manipulons des objets 4D (espace + temps) que nous projetons sur un plan (2D).

Les objets étudiés sont des objets lointains (quasars ou noyaux galactiques) pour lesquels un décalage vers le rouge de leur spectre est mesurable, et nous permet d’évaluer leur distance par rapport à nous.

Les détails techniques sont présentés sur mon site web: code source, publication scientifique sur laquelle le logiciel s’appuie, et explication des mathématiques utilisées.

Petit tutoriel de prise en main de l’application :slight_smile:

Rendez-vous sur https://universeviewer.com (ça ne marche que sur un ordinateur, par sur smartphone ou tablette).

Le plus visuel est sans doute de simuler les trois courbures de l’Univers: sphérique, hyperbolique, ou plat.

Commencez par charger le catalogue Hewitt & Burbidge en haut à gauche dans la section Data.

Vous verrez une première projection apparaître à droite.

Ensuite, toujours dans le panneau de gauche, descendez un peu vers la section View settings pour choisir une vue de côté plutôt qu’une vue de face. Prenons Edge 3.

Pour l’instant, nous avons une courbure positive, donc un univers sphérique, car dans la section Cosmological parameters Kappa est supérieur à zéro. La forme que nous voyons représente l’horizon cosmologique.
Nous allons tester les autres courbures possibles. Commencez par cocher la case devant le paramètre Lambda, ce qui nous permettra de faire varier Kappa.
En effet, ces quatre paramètres sont liés par une équation, donc il y a une case à cocher qui va définir quel paramètre va évoluer lorsque vous allez faire varier les autres.

Nous pouvons maintenant modifier Kappa. Rajoutez un “-” devant la valeur de Kappa pour le rendre négatif: courbure hyperbolique ! On peut déplacer la vue en maintenant clic droit tout en déplaçant la souris.
Et pour finir, vous pouvez définir Kappa à 0, pour obtenir un univers plat. Nous ne voyons plus qu’une ligne verticale dans notre vue de côté, pour y voir de nouveau quelque chose vous devez repasser en vue de face, en sélectionnant par exemple Front 3.

Vous pouvez utiliser la molette de la souris pour le zoom, et faire varier le point de vue de la projection avec RA1, Dec1 et Beta.

Pour finir, vous avez un bouton Sky view qui vous permet de voir ce que les radiotélescopes ont observé depuis la terre dans le catalogue étudié.

Un peu de contexte sur le développement

En 2008, nous avons réalisé avec une amie une ancienne version de ce logiciel, écrit en Java, alors que nous étions en Master.
Nous nous étions appuyés sur une publication d’un chercheur en cosmologie, et nous avions bénéficié de son aide pour le développement des aspects mathématiques de la chose.
Mais depuis lors, ce logiciel Java n’est plus maintenu, et il est clairement dépassé à tous les niveaux (technologies datées, ergonomie).

Comme ce projet me tennait à coeur, j’envisageais depuis un moment de le réécrire avec des technos plus modernes, et surtout des technos web: Vue.js, Javascript, Three.js, et Vuetify.

Mais j’avais estimé ce travail à quelques semaines, sur mon temps libre :sob:
La grosse flemme.

Finalement, j’ai envisagé l’idée d’effectuer cette réécriture en m’aidant de l’IA.
Après tout, les LLM sont très à l’aise pour passer proprement d’un langage à l’autre.

Je me suis donc appuyé sur ChatGPT, sur Gemini 3 à travers Antigravity, un peu de Gemini 2.5 et de Claude Sonnet 2.5.

Je dois dire que je suis impressionné par le travail que j’ai pu abattre à l’aide d’Antigravity et Gemini 3: en trois jours en bossant un peu le soir, j’ai obtenu une première version utilisable du logiciel.
Sans écrire une seule ligne de code, juste en l’orientant, en le recadrant quand le code écrit ne me convennait pas ou quand le résultat était erroné.
Donc si vous voulez faire du portage de code d’un langage vers un autre, c’est vraiment top !

Puis, j’ai voulu améliorer les choses et ajouter de nouvelles fonctionnalités. C’est là que ça a été plus compliqué avec les LLM et où j’ai dû me mettre à coder. Mais le gain de temps qu’ils m’ont apporté est fou !

Si vous avez lu jusqu’ici, vous êtes fou :smiling_face_with_sunglasses:

21 « J'aime »

Nouvelle version 0.9.3, avec:

  • de nouveaux gros catalogues de quasars et de noyaux galactiques actifs,
  • d’énormes optimisations du code pour les calculs: web workers, mémoire partagée, zéro copie entre les processus de calcul et le rendu, ce qui permet à présent de gérer des catalogues de millions d’objets :smiling_face_with_sunglasses: (ça marche impec sur mon laptop qui a presque 10 ans),
  • outil de sélection pour avoir des informations sur les objets sélectionnés : 1 objet → détails, 2 objets → distance entre eux.

Ce que nous voyons sur cette image sont des quasars et des noyaux galactiques actifs, sur une portion non négligeable de l’univers visible, nous nous trouvons à peu près au centre.
Les lignes qui partent du centre sont donc des artefacts observationnels (ligne de visée des radiotélectopes).

3 « J'aime »

Salut à tous !
Nouvelle version majeure 0.9.7, avec comme changements depuis la 0.9.3:

  • le support des navigateurs mobiles, pour enfin explorer l’Univers depuis ses toilettes !
  • la possibilité d’afficher le redshift en dégradé de couleur pour mieux évaluer les distances dans la projection,
  • le graphique de distribution du redshift du catalogue,
  • le changement fluide de point de vue même sur de très gros catalogues, en ne recalculant les projections que d’un sous-nsemble des objets lors du mouvement,
  • l’inversion de sélection et la suppression d’objets sélectionnés,
  • la possibilité d’exporter des sous-ensemble de catalogues après y avoir supprimé des objets,
  • une information claire lorsqu’une contrainte sur les contantes cosmologiques est cassée (si jamais vous avez cassé l’Univers…),
  • affichage des angles lorsque deux objets sont sélectionnés, du point de vue de la terre, et du point de vue de chaque objet,
  • l’affichage des distances comobiles en mégaparsec,
  • l’ajout de pas mal de contenu dans la page d’aide,
  • et l’ajout de nouveaux catalogues d’objets astronomiques.

À bientôt !

4 « J'aime »