Skip to content

Universe Viewer

Universe Viewer is an interactive software for the visualization and geodesic analysis of high-redshift astronomical objects.

It allows for the production of a conformal map of cosmological structures, more specifically quasars, by taking into account the curvature of the universe. Based on concepts from astronomy and general relativity, it is designed to be a working tool for research in cosmology, facilitating the identification of large-scale structures in comoving space or in a reference space.

This project is based on the concepts developed in the publication Framework for cosmography at high redshift, by R. Triay, L. Spinelli, R. Lafaye.

ScreenshotScreenshot

It is free software, and its source code is available on its GitHub page.

This web version of the software was ported from the the Java version (which is no longer maintained today), with the help of artificial intelligence to speed up the tedious sequences of converting code from Java / Swing / JOGL to JavaScript / Vue.js / Vuetify / Three.js.

I particularly thank Pr. Roland Triay for his help during the design of the Java version of the software, created as part of my Master's training during a research study project (TER), carried out in tandem with Julie Fontaine, in 2008.

Even older versions of a similar software existed, in Fortran and C, based on the same research publication, but they suffered from portability issues.

Map Projection of Objects

The Framework for cosmography at high redshift presents a framework for projecting the studied objects onto a plane, depending on the chosen cosmological parameters and the viewpoint.

These objects are defined by three main characteristics:

  • the right ascension, the first term associated with the equatorial coordinate system, it is the azimuth, the equivalent on the celestial sphere of terrestrial longitude,
  • the declination, the second term, which measures the angle of an object from the celestial equator, it is the elevation, the equivalent of terrestrial latitude,
  • and the object’s redshift, a relativistic effect that allows its distance from the observer to be inferred.

It is therefore from this data that the objects are represented on screen. Initially, the projection onto the reference space was developed for the case of a positive curvature of the universe, then this work was generalized to negative curvature. The calculations were finally extended for representation in comoving space, which abstracts from the expansion of the universe.

Calculation of Comoving Distance

The comoving distance (dimensionless) is denoted τ, it depends on the redshift z of the object concerned and is calculated as follows:

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

where:

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

λ0, κ0, α0, Ω0 are the cosmological parameters, and a represents the cosmological scale factor. For an observed object with a redshift z, it is equal to:

a(t)=11+z

This scale factor describes the state of expansion of the Universe at the moment the light was emitted. Today, we have a0=1.

Normalization of Comoving Distance in Curved Geometry

When the comoving space is not flat (κ00), the normalized comoving distance is introduced:

τ^=τ|κ0|withκ00

This variable naturally appears in the non-zero curvature spatial metric:

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

In the specific case of flat space (κ0=0):

R=τ

R is used to place points in the curved geometry.

Calculation of the Projection onto the Observation Plane

Each cosmological object is represented by a 4D vector in the homogeneous spacetime of the model:

X=(x,y,z,t)

The first three coordinates (x, y, z) represent the spatial position of the object in the 3D embedding space corresponding to the chosen geometry (spherical if κ0 > 0, hyperbolic if κ0 < 0, or flat if κ0 = 0).
The fourth coordinate t represents the conformal temporal component (associated with the comoving distance τ) in the homogeneous spacetime.

The x, y and z coordinates are calculated as follows:

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

where RAobj and Decobj are the right ascension and the declination of the objet.

In reference space, t=τ, and in comoving space:

t=τ|κ0|

The 2D display requires projecting this 4D vector onto an image plane, which represents the plane of the sky according to the viewpoint.

Construction of the Local Observation Basis

The user defines their orientation in the universe using three angles:

  • RA1, the right ascension (azimuth),
  • Dec1, the declination (elevation),
  • Beta, the rotation around the line of sight (roll).

From these angles, three orthonormal vectors are constructed in the 3D Euclidean space:

  • P1: direction of gaze (center of the projection),
  • P2: local horizontal direction,
  • P3: local vertical direction.

These three vectors form a spatial orthonormal basis. In the 4D spacetime of the model, this basis becomes:

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

The fourth basis vector is defined as:

E0=(0s)

where:

s={1in the reference space|κ0|in the comoving space

This vector encodes the temporal component of the frame. Its normalization depends on the chosen space (reference or comoving), as this ensures that the projections respect the model's metric.

Projection onto the Image Plane

For an object whose 4D vector is X, its projected coordinates on the 2D plane are:

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

Examples of Projections

Here are some projections obtained on the Hewitt & Burbidge quasar catalog.

The blue area represents the visible universe, the gray line surrounding it is the cosmological horizon.

The white area represents the visible universe, the black line surrounding it is the cosmological horizon.

Front view, positive curvature

ScreenshotScreenshot Our galaxy is at the center.

Edge view, positive curvature

ScreenshotScreenshot Our galaxy is on the far right.

Edge view, negative curvature

ScreenshotScreenshot Our galaxy is on the far left.

Sky view

ScreenshotScreenshot Here we see what radio telescopes have observed from Earth.

Objects selection

ScreenshotScreenshot You can select objects with an additive or intersection selection tool, allowing to accurately select areas from different views.

Selected objects are in green.

Selected objects are in red.

Implementation

Here are some technical choices regarding the implementation.

Integral computation

Two ways to compute integrals have been implemented:

Parallel processing

By default, in a web browser, JavaScript runs on the main thread, which also handles the page rendering code. Not only does this loop use only a single CPU core, but intensive computations also freeze the user interface.

We have a large number of objects for which we compute projections based on cosmological parameters. This set of objects can easily be split into several chunks so that processing can be done on multiple cores at the same time.

Parallelization in Universe Viewer uses web workers, which allow us to divide the workload according to the number of available CPU cores.
This process is performed in the following files:

  • workerPool.js, which manages the pool of workers, their lifecycle, and their execution for projection calculation,
  • projectionWorker.js, the worker task code that processes a subset of the objects,
  • projection.js, the projection computation functions.

If the number of objects to process falls below a certain threshold, the computation is not parallelized because the overhead caused by data serialization would be counterproductive.


Official Website
GitHub Page
Framework for cosmography at high redshift - R. Triay, L. Spinelli, R. Lafaye (1996)
Romberg method for integral computation
Trapezoidal rule for integral computation
Old Java version

Made with ❤️