Project 1 - Our
Due Monday 2/16
at 8:59pm Chicago time
The purpose of this project is to give you experience
using VR to build and interact with a simple 3D environment - in
this case a small house.
For this project you 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. For the third project you can choose the platform of
One of the most common uses for VR is walkthroughs of
Each person will start with the same basic house model.
You will personalize this model by removing some parts, adding
other parts, changing the colors and textures, and adding
appropriate audio. Pick a decade (60s, 80s, the future is legal as
well) and re-decorate the house with models that you find on the
web (that are legal for you to use) or ones you create yourself
appropriate for that time, or pick a theme (Curling enthusiast,
Film Noir buff, etc). Feel free to take your concept to the
extreme, but please keep your space rated PG and family friendly.
To get a C on the project ...
- The user should be able to move through the house at 1:1
scale in CAVE2 and the Oculus Rift, though particular controls
may be different in the two platforms.
- Remove several objects from the house (by removing them
from the original sketchup model) and then add 20 new objects
into the scene (2 of those models you should create yourself).
While you can add these new models into my modified sketchup
house model, I would highly suggest that you load them into
OmegaLib as separate models since that will make it easier to
interact with them and add localized sounds to them later.
- Repaint the house to change the wall colors and add at least
5 pieces of artwork to the walls that make sense with your
- The user should keep their feet on the ground or be able to
stand on top of objects, but they should not float in the air
or fall through the floor.
- The user should start inside the front door
To get a B you need to add ...
- Add a landscape and sky around the house.
- Add at least 5 sounds into the space. At least two of these
sounds should get louder as the user gets closer to them.
- Add the ability for the user to interact with 2 items in the
house, i.e. the ability to turn on the TV (or radio or
holo-projector or whatever) and hear the sound turn on and the
visuals on the screen change, or the ability to turn start the
car and see and hear it act differently, or turn on the
To get an A you need to add ...
- Allow the user to change scale and move through the
environment as a flying insect (or a small quad copter) - the
world should get proportionally bigger, and the user should be
able to fly, twisting and turning.
- Add 5 more models at the appropriate scale for this flying
insect (i.e. models that are too small to be seen clearly by
humans but are very visible at insect scale)
- Create a menu within the OmegaLib menu system to allow the
user to teleport to 4 different areas of the scene.
- 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.
Here is some python OmegaLib code to get you started. This code
adds in the default house model, puts it at the correct location,
orientation, and scale for CAVE2 and Rift. It also has basic
lights and sounds, and enforces collision on the floor, walls, and
The default model comes from here:
though I have added some missing polygons, added a few more
textures, made sure the colors work in OmegaLib, removed the
automobile, and opened all the doors wider so they are easier to
You can download Sketchup from From
You can browse the 3dwarehouse models from a web browser or
from within Sketchup. Once you load one in and modify it to
your liking you will want to Export a 3D Model. To do
this set the Format to COLLADA File (*.dae), check the options
so that you are Exporting Two-Sided Faces, Triangulate All
Faces, Export Hidden Geometry (if you want things like the
roof in the house), Preserve Component Hierarchies, and Export
Texture Maps. It would be nice to Export Edges since the house
model uses them in the kitchen but those don't translate well,
so leave that off.
Now you have a .dae file and you need to convert it to .fbx.
The best way to do that is to get and use Autodesk FBX
available as both a command line tool and one with a GUI. The
latest version is from 2013 but seems to work fine.
You can then load the model from within OmegaLib and see if
everything made it out OK. Do this often.
One thing I noticed in Sketchup is that by default the wall
colors weren't being exported from the original model, so I
needed to set the both the front and back color of the walls
to the color I wanted. The only other export issue I had was
not being able to get the lines to export for the stove top in
You can use other modelling programs if you prefer. I think
Sketchup is at a nice level of power and simplicity for this
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 early.
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 rift, 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
(models, sounds, images, etc) 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 your project.
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.
you send andy the location of your webpage you should also email
a scaled down version of your favorite photo in jpg or png
format named p1.<your_last_name>.jpg/.png. 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.