Shining Star

Introduction

Project Description

Shining Star is a visualization of more than the 88 official IAU constellations from 1930. With a total of 107,868 stars, this Virtual Reality project allows for the revelation of the following constellations for the purposes of comparing and contrasting: Modern, Arabic Al-Sufi, Arabian Peninsula, Arabic Indigenous, Arabic Lunar Mansions, Egyptian, and None. When viewing the Arabic Indigenous constellations, Al-Thuraya is distinguished from the rest by its glow. Selecting its accompanying menu option reveals information about the constellation.

Using a timescale factor of 1,000 years per second, an observation of the currently visible constellations' change over time is permitted. Additionally, the distance between the stars and constellations can be altered from 1/4 to 3 times the original. If need be, the location, orientation, and time can all be reset to the starting point. Furthermore, the color scheme can be toggled between "Stellar" and "Exoplanet" with an information panel communicating the mapping for each.

Finally, the audio can be swapped between a piano cover of "One More Light" by Linkin Park and a piano cover of "Stars" by Skillet. The volume can be adjusted as preferred. The aforementioned covers were performed by Artistic Amit Music and Pianofy respectively.

How to Use the Application

In order to use the application, one must first clone the project from GitHub and install the necessary software. Instructions to do so are included below in the section titled "Instructions to Build and Run". Assuming the instructions have been followed and completed, the project should open in the Unity Editor. When there, pressing the Play button at the top will allow for first-person navigation through the environment using a simulator of the CAVE2. The keys WASD are used to move in the space, QE to turn the CAVE2, RF to raise and lower it, IJKL to move the player themselves in the CAVE2 space, and UO to rotate them. All functionalities are activated through the standard menu which is revealed by pressing the right mouse button. When there, select "Shining Star >" by pressing down on the keyboard or hovering the mouse over the option. Finally, like before, proceed by pressing down on the right mouse button.

Desktop

Instructions to Build and Run

Cloning Project from GitHub

To begin, clone the project from the following link by clicking on the green button that says "Code", selecting the "HTTPS" option, and copying the web URL:

FarahKamleh/CS-528-Shining-Star
CS528 GitHub

Installing Git to Clone

To download and install Git, navigate to the following webpage and select the option for your device:

https://git-scm.com/downloads

Afterwards, open Git Bash, change the current working directory to the location of interest, and type "git clone" proceeded by the copied URL. Finally, press the Enter button.

Git Clone

Installing Unity and Unity Hub

Extract the ZIP file as needed. The next step is to install Unity. To do so, go to https://unity.com and select the blue "Get Started" button at the top. Select the "Individual" tab and click on another blue "Get started" button underneath "Personal". Download Unity Hub for your preferred platform. Install Unity Hub which will host your Unity projects. In Unity Hub, click on "Installs" then "Install Editor" to install a new Unity version. This project uses version 2019.2.11f1. Visit the download archive at https://unity3d.com/get-unity/download/archive and select Unity 2019.x to find the correct version. Install using Unity Hub. It should then appear there. Open the project by pressing the "Open" button in "Projects".

2019 Unity Hub

Star and Constellation Data

Datasets

The star data was acquired from the ATHYG Database which can be accessed using the following link:

https://github.com/astronexus/ATHYG-Database

The constellation data, however, was acquired from Stellarium Skycultures which can be found using the link below. The constellations of interest are "arabic_al-sufi", "arabic_arabian_peninsula", "arabic_indigenous", "arabic_lunar_mansions", "egyptian", and "modern":

https://github.com/Stellarium/stellarium/tree/master/skycultures

Lastly, to implement the color-coding option for exoplants, the NASA Exoplanet Archive was used:

NASA Exoplanet Archive

Preprocessing

For the star data, the "athyg_26_reduced_m10" dataset has been reduced to only contain the columns for HIP, DIST, X0, Y0, Z0, ABSMAG, MAG, VX, VY, VZ, and SPECT. The SPECT column has been filtered down to the first letter to assist the parser. All rows missing X, Y, Z, and spectral types have also been removed. Such filtering was accomplished using Jupyter Notebook and Python. An example is included in an image below. To determine the stellar color scheme, Harvard's spectral classification chart was referenced:

Stellar Classification

For the constellations, the hipparcos numbers were used to draw each individual line, creating the connections from star to star. Unfortunately, some sets included HIP numbers that did not appear in the aforementioned star dataset. As a result, the drawing of the constellations at runtime resulted in many lines being missing. By removing the HIP numbers that did not appear in both datasets, the full constellations appeared.

Lastly, although mostly filtered using the NASA Exoplanet Archive directly by retaining the HIP ID and number of planets, Jupyter Notebook was used to drop rows where the HIP ID is null as well as duplicates.

Jupyter Notebook

Optimizations

Because Shining Star works with large datasets, optimization is vital. For example, the number of stars remaining after preprocessing was 107,868, all of which needed to be present. In order to retain a smooth frame rate, only the stars within close proximity of the user are visualized. When the user travels, those at a farther distance disappear while new ones are visualized. This ensures that the frame rate does not tank, especially at launch. Another example in which revisions were necessary was for the functionality that allows the user to start, reverse, and stop time to observe how the position of the stars and constellations change over time. The first attempt at doing so involved redrawing the stars and constellations at every frame within the Update() function. While the logic works, the stress of doing so unfortunately, but expectedly, resulted in the application crashing. Therefore, the solution was to introduce a new thread through the use of an inuemerator function which took care of the re-drawing exclusively. If given more time, another method to increase the frame rate would be to "turn off" the billboarding of the stars while this functionality is active.

Videos

The video above covers the basic functionalities of the "Shining Star" project in the CAVE2 Hybrid Reality Environment.

The video above is a live presentation of "Shining Star" as recorded by a professor. It should be noted that the left and right images are visible because the necessary 3D glasses were not placed in front of the phone's lens. Additionally, the audio is quite soft.

Additional Image Sources

Background Source:

Constellations Wallpaper

Return to Landing Page:

Farah Kamleh - Landing Page