Project 2 -
Straight Away to Orion
Due Monday 10/21
at 8:59pm Chicago time
The purpose of this project is to give you experience
using high-resolution large format display to view small
multiples. In this case we will be looking at the ever-increasing
number of exoplanets that have been discovered. You will also be
learning something about astronomy.
For this project you will use OmegaLib and the CAVE2 to show data
on the current set of planets outside our solar system that have
been discovered. We will show information about various systems on
the walls as a form of small multiples and show one or more
systems in the center of the cave in detail.
Scale is always a huge issue when dealing with astronomical bodies
since its usually impossible to show everything in scale -
typically you can either show distances between objects in scale,
or the size of various objects in scale, but not both at the same
time. The different types of stars also have very different
habitable zones, and we have discovered an extremely wide range of
planetary distances from their star. We also have binary, trinary,
etc star systems.
Some good sources of information:
You should start with our solar system with its single star and 8
major planets. One of the small multiples on the sides of the CAVE
should always show our solar system for comparison with the
others, and our solar system should always be available to view in
the center of the CAVE for comparison. The sun and the various
planets should be modeled as spheres with appropriate textures.
For the small multiple version you should be able to see the name
of the system, the type of star, how far this system is away from
us, how the planets were discovered, the distance from the star to
each of the planets, the identifying name of the planet, the
relative sizes of the planets, and the location of the habitable
zone for that star. Within the CAVE you should have the planets
with their identifying name orbiting the named star at an
appropriate distance, with an appropriate relative size and
texture, and orbiting at an appropriate rate, and show the
habitable zone for the star. You should allow the user to change
the scale of the orbits, the scale of the planets, and the speed
that time passes as the planets orbit.
The system should be head and hand tracked. As the user walks
around the CAVE, the solar system in the CAVE should update
appropriately while the small multiples on the walls of the CAVE
stay where they are. Users should be able to point at one of the
solar systems shown on the walls using the wand and bring it into
You should not be building the various solar systems one by one by
hand. Given the data on the various planets of each solar system
you should be able to automatically generate a visualization for
each one. However, as you add more and more systems to your
visualization you will see more and more oddities where you will
need to tweak your visualization so it is useful. For the other
planets you will need to find some appropriate textures - a good
place to start is http://www.celestiamotherlode.net
. You need
to show the different kinds of stars in some appropriate way.
You will also find that the different detection methods give
different information about these planets, so some assumptions
need to be made to combine the datasets. Sometimes we know the
radius and sometimes we know the mass. Unfortunately without
knowing the composition of the planet we can not directly
correlate these, but we can do some general correlations. One such
way is given below. There are others. Pick and defend an
- earth-sized ( < 1.25 X radius of earth) <
2 times mass of the
- super earth (1.25 - 2 X radius of earth) 2
- 5 times mass of
- mini-neptune ( 2- 3 x radius of earth) 5 -
10 times mass of
- neptune sized ( 3 - 6 X radius of earth) 10 - 30
times mass of
- jupiter sized ( 6 - 15 X radius of earth) 30 -
300 times mass of
- super-jupiter ( > 15 X radius of earth)
> 300 times mass of earth
Another issue is how to compute the habitable zone. There are
multiple theories on this as well, e.g. http://www.planetarybiology.com
It would be best to base this off the luminosity of the star, but
we can get some general information from the type of the star:
- A - inner = 8.5 AU, outer = 12.5 AU
- F - inner = 1.5 AU, outer = 2.2 AU
- G - inner = 0.95 AU, outer = 1.4 AU
- K - inner = 0.38 AU, outer = 0.56 AU
- M - inner = 0.08 AU, outer = 0.12 AU
Note that you are expected to learn some astronomy as part of this
assignment. You will need to do research to complete this project.
Here is a snapshot of the proof of concept app that I wrote in
omegalib for this assignment showing 64 small multiples on the
walls of the CAVE and one exo-planetary system in the center of
the CAVE. This should give you an idea of the way the app could be
realized, but there are things that I would do better if I was
writing it again.
The code for this example is given here
To get a C on the project ...
- Create a usable, visually appealing small multiples
visualization of at least 48 planetary systems (including our
own) as described above
- Any change in any of the scale factors should be reflected
in all of the views simultaneously so they are easy to compare
- If one or more of the planets is not visible in the current
small multiples view (i.e. its outside the current scaled
view) show an appropriate indication of that.
- Show our solar system animated in the center of the CAVE in
- Start time progressing, so the planets will begin to orbit
their parent star in the CAVE, and be able to change the rate
of time passing
- Either be able to fly around the solar system in the CAVE or
move the solar system in the CAVE, leaving the small multiples
on the walls where they are
- Be able to reset the views back to a default view
- Make appropriate use of audio in your application
- Have menu and controller options to change scale of the
planet size, orbit size
- Each of the small multiples should show the name of the
planetary system, distance from our solar system in light
years, and the type of star, how the planets were discovered,
current identifying name for each planet
- Have a predefined set of 4 different interesting sets of
planetary systems (e.g. nearest to the Earth, most likely to
be habitable, etc) to view on the walls based on different
parameters in a menu and be able to switch between them
To get a B you need to add ...
- Use the wand to choose one of the currently visible
planetary systems on the wall to bring into the center of the
CAVE to view in 3D. Be able to show our solar system for
- Move beyond the 4 sets of planetary systems to dynamically
filter which systems are currently shown on the screens
- Highlight the earth sized planets in the habitable zones
and larger planets that may have habitable moons orbiting in
the habitable zones
- Create another 3d view in the CAVE showing where all the
various small multiple stars are relative to our sun and the
other nearby stars (e.g. a bunch of coloured balls in
3-space), and highlight the system(s) that is/are currently
shown larger in the CAVE.
- Allow the user to dynamically move individual small multiple
systems around to reorder them manually, and remove systems
from the wall
- Show the error margins in the estimates. Much of the data is
+/- some amount.
- Allow the user to save off configurations of the small
To get an A you need to add ...
- Find a good way to deal with binary and trinary systems
- Look up some current research discoveries and highlight
these things in your interface / visualization
- Impress me with additional features
Also note that there is a big difference between getting something
working and getting it working well. The first is not that hard.
The second takes much more time. You are expected to have things
I highly recommend visualizing a variety of data into your
application quickly, beyond our solar system, to start seeing the
real issues you will be encountering in creating a good
interactive visualization environment.
To turn in your project you should set up a web page with several
pages describing your work, including the well-commented source
code and required files to be able run your program in the cave,
and some photographs showing what your application looks like when
its running. You should then email andy with the location of this
website before the deadline. It would probably be a good
idea to put a backup copy of the web page at a second website just
in case I can't get to the first one.
These webpages should include:
- 1 page on how to use
your application and the things you can do with it.
- 1 page on the data
you used including where you got it, what you did to it.
- 1 page with links to
the source code and any instructions necessary to install and
- 1 page on what
interesting things you found using your application.
all of which should have plenty of screenshots with
Be sure to document any external libraries or tools that you make
use of - give credit where credit is due.
You should also create a 2-3 minute YouTube video in the
CAVE showing your application running and feature the video
prominently on your project webpage. The video should be narrated
and rehearsed to show off the important features of your project.
Remember that this site may be useful
to you later on when you are looking for a job and want to show
off the projects you have done.
When you send andy the location of
your webpage you should also email a scaled down version of your
favorite photo that is 320 pixels wide by 240 pixels tall in jpg
format named p2.<your_last_name>.jpg. This image will be
used on the class web pages along with the link to your project
Each student will also give a short demonstration about your
project in-class and answer some questions about your work. Be
sure to practice your presentation so you finish within the
allotted time so everyone has equal time to present.