Here Comes the Sun

'Here Comes the Sun' is a virtual reality application that visualizes exoplanetary systems and helps the user make comparisions between different planetary systems. For this application, we used a dataset of 649 planetary systems including our Solar system. Since the anomalies in scale are a huge issue while dealing with celestial objects, we used logarithmic scale customized to handle the data dynamically.

'Here Comes the Sun' is a project for the course CS 491, Virtual and Augmented Reality at the University of Illinois at Chicago. The problem statement is available here.

There are three different views in the application:

2D view: The project has a 2D View where each exoplanet system is horizontally represented with the planets at scaled distances from their respective stars. The habitable zone for each planetary system is also calculated and represented - it’s extent is shown in green. Many such exoplanet systems are stacked vertically in alphabetical order.

3D view: The 3D view displays the systems based on the data acquired from the XML file - distance and radius is determined, textures were applied and the planets were rotated around the stars based on their orbital period. Our solar system is always visible in the 3D View and any other systems that the user choose to add are stacked below our solar system.

3D stars view: In this view, the stars are represented in 3D according to their distance from Sun, declination and right ascension. The sun is at the center of the 3D view.

To interact with the systems and manipulate the views, the following things are used:

Laser pointer: A laser pointer is implemented in order to interact with all these systems. Laser pointer is attached to the controllers. Actions applied to the controller buttons such as grip, trigger etc., are captured and appropriate changes are applied on the object to which the laser pointer is pointing.

Menu panel: The menu panel is placed near the 2D View. It houses a number of options that allow you to manipulate with the 3D and 2D views, add and remove views, apply filters on the systems to be viewed, etc.

Things we can do with the application

Look at detailed information about the system

The ability to hover over an object to get its details has been added to the application. The user can point at any planet or star in the planetary system 3D view with the laser pointer and press the trigger button to get detailed information about the respective celestial object - this is shown in the image below. The input from the controllers is the main mode of communication here.

Filter the exoplanetary systems

We have added a number of filters that would be helpful when viewing large number of planetary systems. These filters allow the user to view systems that match the selected filters. These filters include categories such as Earth sized planets, systems with single planets, multiple planets, systems with multiple stars (binary and ternary systems), based on the discovery methods (Transit, RV, Timing, Imaging) and systems that have planets in habitable zone of the star. The user can select multiple filters to view systems that match all the selected criteria.

Scaling the exoplanetary systems

There are 3 slider controls designed for controlling various scales of the views rendered such as rotation speed, orbit length and the size of the planets.

Add and Remove systems

The user is presented with a 2D view of the planetary systems that match any filters that the user selects. In this view, a number of systems are stacked one below the other. In each system, the star and the corresponding planets are displayed in a horizontal line separated by a scaled distance. User has the freedom to select any of systems from more than six hundred systems. A menu item '+' near each system allows the user to add and remove the system from the 2D View to the 3D view. The user can also add systems to the 3D view by pointing to any star from the 3D star view and selecting the trigger.

Scroll up and down

The 2D view is also supported by 2 menu options 'Up' and 'Down' that allow the systems in the 2D view to be scrolled up and down. The panel of the 2D View is of fixed length. Only a maximum of 4 systems are shown at a time while the rest of the systems can be viewed using the scroll controls.

Stars in multistar systems

In the exoplanet data, there are a number of binary and trinary systems. These are planetary systems with more than one star. These systems are represented in this application. In a binary system, the planets around each star are represented separately and other stars related to the binary are also mentioned.

Rearrange systems

The application allows the user to rearrange the order in which he views the systems in the 2D View. This is implemented with wand interaction.

Reset Positions

When the user has used multiple filters and scaling controls, there is no need to feel lost. The ‘Defaults’ option comes in handy when the user wants to reset the environment to its original state, the user can press the Grip button to go to the default view and reset all filters.

Save Configurations

When the given filters are selected, it also allows you to store a combination of these filters as a custom setting. You can save these settings and access later from the control panel. A maximum of three configurations are allowed to be saved by the user.


Audio is added for interactions with the menu items. Also an ambient background sound with space theme is also added.

Interesting things

While working on this project, we came across a number of interesting statistics and data about the planetary systems. The number of planetary systems discovered drastically increased in the 90s. Though every planetary system has a habitable zone, there are too few planets that actually lie in a habitable zone. This once again reiterates the unique position of Earth in the universe. Binary systems are other unique phenomenon, where two planets revolve around each other. There are many such binary systems represented here.

Citations and references
Sounds from
Convert mp3 to wav -