Skip to content

Universe Viewer

Universe Viewer est un logiciel interactif de visualisation et de traitement géodésique d'objets astronomiques à grand décalage spectral (redshift).

Il permet de produire une cartographie conforme de structures cosmologiques, plus particulièrement des quasars, en prenant en compte la courbure de l'univers.
Reposant sur des concepts d'astronomie et de relativité générale, il est conçu pour être un outil de travail pour la recherche en cosmologie, facilitant l'identification de structures à grande échelle dans l'espace comobile ou dans un espace de référence.

Ce projet repose sur les concepts développés dans la publication Framework for cosmography at high redshift, par R. Triay, L. Spinelli, R. Lafaye.

ScreenshotScreenshot

C'est un logiciel libre, et son code source est disponible sur sa page GitHub.

Cette version web du logiciel a été portée à partir de la version Java (qui n'est plus maintenue aujourd'hui), avec l'aide de l'intelligence artificielle pour accélérer les séquences fastidieuses de conversion de code de Java / Swing / JOGL vers JavaScript / Vue.js / Vuetify / Three.js.

Je remercie particulièrement le Pr. Roland Triay pour son aide lors de la conception de la version Java du logiciel, réalisée dans le cadre de ma formation en Master lors d'un travail d'étude et de recherche (TER), réalisé en binôme avec Julie Fontaine, en 2008.

Des versions encore plus anciennes d'un logiciel similaire ont existé, en Fortran et en C, basées sur la même publication de recherche, mais elles souffraient de problèmes de portabilité.

Projection de la carte des objets

Le Framework for cosmography at high redshift présente un cadre de travail pour projeter les objets étudiés sur un plan, en fonction des paramètres cosmologiques choisies et du point de vue.

Ces objets sont définis par trois caractéristiques principales:

  • l'ascension droite, le premier terme associé au système de coordonnées équatoriales, c'est l'azimut, l'équivalent sur la sphère céleste de la longitude terrestre,
  • la déclinaison, le second terme, qui mesure l'angle d'un objet de l'équateur céleste, c'est l'élévation, l'équivalent de la latitude terrestre,
  • et le décalage vers le rouge du spectre de l'objet, qui est un effet relativiste permettant d’estimer sa distance par rapport à l'observateur.

C'est donc à partir de ces données que sont représentés les objets à l'écran. Dans un premier temps, la projection sur l'espace de référence a été développée pour le cas d'une courbure positive de l'univers, puis ce travail a été généralisé à la courbure négative.
Les calculs ont finalement été étendus pour la représentation en espace comobile, qui fait abstraction de l'expansion de l'univers.

Calcul de la distance comobile

La distance comobile (sans unité) est notée τ, elle dépend du décalage vers le rouge z de l'objet concerné et on la calcule de la manière suivante:

τ(z)=(1+z)11daP(a)

avec:

P(a)=λ0a4κ0a2+Ω0a+α0P(1)=1

λ0, κ0, α0, Ω0 sont les paramètres cosmologiques, et a représente le facteur d'échelle cosmologique. Pour un objet observé avec un décalage vers le rouge z, il vaut:

a(t)=11+z

Ce facteur d'échelle décrit l'état d'expansion de l'Univers au moment où la lumière a été émise. Aujourd'hui, on a a0=1.

Normalisation de la distance comobile en géométrie courbe

Lorsque l'espace comobile n'est pas plat (κ00), on introduit la distance comobile normalisée:

τ^=τ|κ0|avecκ00

Cette variable apparaît naturellement dans la métrique spatiale à courbure non nulle:

{R=sin(τ^)κ0κ0>0R=sinh(τ^)κ0κ0<0

Dans le cas particulier de l'espace plat (κ0=0):

R=τ

R est utilisé pour placer les points dans la géométrie courbe.

Calcul de la projection sur le plan d'observation

Chaque objet cosmologique est représenté par un vecteur 4D dans l'espace-temps homogène du modèle:

X=(x,y,z,t)

Les trois premières coordonnées (x, y, z) représentent la position spatiale de l'objet dans l'espace 3D d'immersion correspondant à la géométrie choisie (sphérique si κ0 > 0, hyperbolique si κ0 < 0, ou plate si κ0 = 0).
La quatrième coordonnée t représente la composante temporelle conforme (associée à la distance comobile τ) dans l'espace-temps homogène.

Les coordonnées x, y et z sont calculées de la façon suivante:

x=Rcos(Decobj)cos(RAobj)y=Rcos(Decobj)sin(RAobj)z=Rsin(Decobj)

RAobj et Decobj sont l'ascension droite et la déclinaison de l'objet.

Dans l'espace de référence, t=τ, et dans l'espace comobile:

t=τ|κ0|

L'affichage 2D nécessite de projeter ce vecteur 4D sur un plan image, qui représente le plan du ciel selon le point de vue.

Construction de la base locale d'observation

L'utilisateur définit son orientation dans l'univers à l'aide de trois angles:

  • RA1, l'ascension droite (azimut),
  • Dec1, la déclinaison (élévation),
  • Beta, la rotation autour de l'axe de visée (roulis).

À partir de ces angles, on construit trois vecteurs orthonormés dans l'espace 3D euclidien:

  • P1: direction du regard (centre de la projection),
  • P2: direction horizontale locale,
  • P3: direction verticale locale.

Ces trois vecteurs forment une base orthonormée spatiale.
Dans l'espace-temps 4D du modèle, cette base devient:

E1=(P10),E2=(P20),E3=(P30)

Le quatrième vecteur de base est défini comme:

E0=(0s)

où:

s={1dans l’espace de référence|κ0|dans l’espace comobile

Ce vecteur encode la composante temporelle du repère. Sa normalisation dépend de l'espace choisi (référence ou comobile), car cela garantit que les projections respectent la métrique du modèle.

Projection sur le plan image

Pour un objet dont le vecteur 4D est X, ses coordonnées projetées sur le plan 2D sont:

xproj=XE1=XxE1x+XyE1y+XzE1z+XtE1typroj=XE2=XxE2x+XyE2y+XzE2z+XtE2t

Exemples de projections

Voici quelques projections obtenues sur le catalogue de quasars Hewitt & Burbidge.

La zone bleue représente l'univers visible, la ligne grise qui l'entoure l'horizon cosmologique.

La zone blanche représente l'univers visible, la ligne noire qui l'entoure l'horizon cosmologique.

Vue de face, courbure positive

ScreenshotScreenshot Notre galaxie se trouve au centre.

Vue de côté, courbure positive

ScreenshotScreenshot Notre galaxie se trouve tout à droite.

Vue de côté, courbure négative

ScreenshotScreenshot Notre galaxie se trouve tout à gauche.

Vue du ciel

ScreenshotScreenshot Nous voyons ici ce que les radiotélescopes ont observé depuis la terre.

Sélection d'objets

ScreenshotScreenshot On peut sélectionner des objets avec une sélection additive ou d'intersection, qui permet de sélectionner précisément des zones.

Les objets sélectionnés apparaîssent en vert.

Les objets sélectionnés apparaîssent en rouge.

Implémentation

Voici quelques choix techniques concernant l'implémentation.

Calcul d'intégrales

Deux façons de calculer les intégrales ont été implémentées:

Parallélisation des traitements

Par défaut, dans un navigateur web le JavaScript s'exécute dans la boucle principale, qui s'occupe également du code de rendu de la page. Non seulement cette boucle n'utilise qu'un seul cœur du processeur, mais les calculs intensifs figent l'interface utilisateur.

Nous avons une grande quantité d'objets pour lesquels nous calculons la projection en fonction des paramètres cosmologiques. Cet ensemble d'objets peut très facilement être découpé en plusieurs morceaux pour que les traitements soient effectués sur plusieurs cœurs en même temps.

Cette parallélisation dans Universe Viewer utilise les web workers, qui nous permettent de découper le travail en fonction du nombre de cœurs disponibles sur le processeur.
Ce processus est réalisé dans les fichiers suivants:

  • workerPool.js, qui gère la pool de workers, leur cycle de vie et leur exécution pour le calcul des projections,
  • projectionWorker.js, le code des tâches des workers, qui réalise les traitements sur un sous-ensemble des objets,
  • projection.js, les fonctions de calcul des projections.

Si le nombre d'objets à traiter se trouve en-dessous d'un certain seuil, le calcul n'est pas parallélisé car le surcoût engendré par la sérialisation des données à traiter serait contre performant.


Site officiel
Page GitHub
Framework for cosmography at high redshift - R. Triay, L. Spinelli, R. Lafaye (1996)
Calcul d'intégrales avec la méthode de Romberg
Calcul d'intégrales avec la méthode des trapèzes
Ancienne version Java

Fait avec ❤️