Project 2 -
Due Monday 3/16
at 8:59pm Chicago time
The first example showed the use of VR with an
architectural example with an 'inside out' metaphor . The purpose
of this project is to give you experience using VR with
visualization with an 'outside-in' metaphor - in this case
visualizing earthquake hypocenter data.
Again we will use OmegaLib as the VR library. You should be able
to do much of the work on your project from a laptop or desktop
computer, but you should be sure to allow for enough time to test
and refine your project in the CAVE2 and on the Rift.
Another common use of VR is to look at complex datasets where the
patterns are more obvious in 3D, for example worldwide earthquake
hypocenter (epicenter + depth) data.
To get a C on the project the user should be able to:
- Visualize all of the magnitude 6.0+ earthquake hypocenters
for 2010-2014 for the entire planet (at some appropriate
size). The user should start outside the Earth looking at the
planet, but can move inside the planet if they wish.
- Show the outlines of the continents for context
- The user should be able to rotate the visualization to see
the visualization from any viewpoint.
- Choose an appropriate depth scaling to highlight the 3D
patterns of the hypocenters (the normal scale of the planet
will not highlight these patterns)
- Zoom into and away from the visualization
- Ability to reset the view and the zoom level
To get a B you need to add ...
- Show all of the magnitude 6.0+ quakes since January 1, 2000.
- Create a menu that allows the viewer to see either the
earthquakes for the entire planet or one of 5 parts of the
planet (e.g. North America, Japan, etc) in detail by limiting
the area being drawn and showing that area in more detail.
Here is where its much easier to see how the quakes help
outline the plate boundaries
- Color the points / boxes / spheres / sprites representing
the earthquake hypocenters based on their magnitude
- Change the size of the scaling of the points / boxes /
spheres / sprites representing the hypocenters through a menu
- Change the depth scaling through a menu and show what that
depth scaling is in the scene
- Change which magnitude quakes are shown though a menu and
have some text telling the viewer what magnitudes are being
- Show the outlines of the continents and countries for
- Be able to turn on / off the outlines of the continents and
countries from the menu
- Ability to choose to see the particular area of the planet
from above, or from the side, from a menu
To get an A you need to add ...
- Choose whether to show earthquake magnitude by color or by
size of the points / boxes / spheres / sprites from a menu
- Menu to filter which years of earthquakes are shown from
1950 to the present
- Play back the earthquakes through the given years and show
them appearing day by day. Use audio to highlight the
appearance of the earthquakes - bigger earthquakes should have
- Impress Me
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
working well so be sure to allocate time to test out your project
in CAVE2 and on the Rift. Make sure the user can see you world
with a high enough frame rate (at least 15 fps), and that the
models do not flicker or have missing sides.
A good place to get data is from the USGS at
for example you can generate a csv file with lines that look like:
NW of Iquique, Chile",earthquake
You will very likely want to convert the latitude and longitude
values into X, Y, Z. You can do this as a pre-processing step or
within your code.
There are a variety of ways to get outline data for countries and
continents on different scales. There is a fairly nice shapefile
which gives you the border data plus name of the region and other
data which makes it possible to get the bounding box for different
regions for the B requirements.
Then you need to convert the shapefile to something you can use in
OmegaLib and pyShp could help you there
I will be holding office hours after class
in the evl main lab with CAVE2 and the rift so people will
have some time to test out your work. These sessions tend to
get very busy near the deadline so its a good idea to start
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
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 developing and using your
- 1 page on the
contrast between the CAVE2 and the Rift for your application.
When would each platform be most appropriate to use. What
changes do you need to make in your app for each platform for
the app to work better on that platform?
all of which should have plenty of screenshots or
photographs with meaningful captions.
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 or using screen
capture 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
Remember that this website 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 web page.
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.