1 focuses on the creation of a simple immersive environment to
give everyone some experience
with Unity and the VIVE in creating a human scale scene
experienced from the 'inside out'. This
project will allow you to experience how a virtual space 'feels'
compared to a real space of the same dimensions, and compare
different methods of navigating around that space. It will also
give you experience building these kinds of experiences and to see
how physics works in them.
This project can be done either as an individual project or in a
group of 2 or 3. The requirements below are per person, so
if you are in a two person team you need to double these
soon as you have formed your group send an email to andy so he can
What are you building? Tech
startups are known for having a very different 'office' culture
compared to older companies, including some very creative working
spaces for their employees (foosball tables, climbing walls,
shuffleboard courts, zen gardens, ball pits, espresso machines,
etc.). To help you prepare for this future, you will take a 3D model
of the classroom space and redecorate it to turn it into your ideal
The space must include several desks for people to work at, wall
decorations, a meeting area, and be decorated in some kind of a
consistent style. You can not change the location of the doors, height
of the ceiling, or the locations of any walls. You can remove the
tables, the big tiled display, and the chairs. The space you create
should contain nothing offensive - i.e. your parents and your clients
should be able to visit your office.
The space should include ambient audio as well as audio that is
triggered by the user moving near an object or touching it.
You should be able to walk around the space, so make sure you leave
enough space between the furniture.
The space should have appropriate lighting and the user should have
control over that lighting.
Implementing the Project You
can start with the general model of the lab (mostly the main lab and
It has many models created by Arthur Nishimoto, as well as freely
licensed furniture models, and one sound from soubdbible.com. This
project also has two different navigation modes - one, Interact with
Keyboard, for use with keyboard and mouse for testing, and the
other, Interact with Wands, allowing you to teleport with one wand
or fly around the scene with the other in VR. Both allow you to pick
up the evl mugs in the scene to interact with them. Be sure to
activate the appropriate control scheme in the inspector and
deactivate the one you are not going to use.
The sample project file to get you started can be found here
Move the zip file to your computer, unzip it in some appropriate
place, start up Unity, and open that folder as an existing project.
Running the project you should start out in a virtual version of the
With the keyboard controls active, the text overlay will tell you how
to navigate with the keyboard and mouse. With the Wand interaction
active for the VIVE you can use the large circular area on top of one
controller as a D-pad to move forward / backward or to turn left /
right, and pressing on that same area on the other controller will
allow you to teleport in the classroom and the main lab. The trigger
on each wand will allow you to pick up the evl mugs scattered in each
room. In the classroom you should hear some typing in the center of
To get a C on the project ...
customize the classroom space
into your ideal office with your own style of floor and ceiling,
including at least unique 10 models at appropriate locations
add in appropriate lighting
get a B you need to add ...
an additional 5 unique models
create 2 unique models of your
own to put in the space
give the user control over the
add in at least one ambient
get an A you need to add ...
an additional 5 unique models
add appropriate physics to at
least 10 objects in the scene
create 3 more unique models of
your own to put in the space
add in 4 other sounds that are
triggered by the user moving close to certain objects in the scene
or interacting with certain objects
students in the class also need to create 5 additional models of their
Be careful when you are collecting or creating models for your space
as the polygons start to add up and you want to make sure you maintain
a good interactive frame rate in stereo on the classroom VIVE PC
Also, keep in mind that your objects can be at
different scales - some of them might be the size of tables that
help fill the space but others might be smaller objects on a table.
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 test on the actual hardware regularly.
Testing the Project
The classroom should be free for testing on Tuesdays after 4, and most
of the day on Friday. If there is no one in the classroom then try
knocking on 2028 ERF or 2032 ERF. The PC in the classroom should
automatically reboot into the account for the class.
Note that if you are running OS-X and like to run the latest OS that
Unity is not happy with High-Sierra, or in particular with the new
file system that came along with it. If you try and load a unity
project from the new APFS (2017) file system it will seem to be
missing all its assets. If you try and load the same files from the
older file system or even EXFAT then things are fine. If you try to
download new assets (like re-importing steamvr then they will not get
imported, even if you run unity from a partition using the older file
system. Presumably there will be fixes for this soon, but will
probably only apply to the current Unity3D builds.
If you try to run your project on the classroom PC and it doesn't
start up in VR mode (i.e. you have no head tracking) check a couple
1 - you should have the keyboard interaction turned off and the wand
interaction turned on with the checkboxes in the IDE
2 - make sure the data folder for your executable has a Plugins folder
with openvr_api.dll included inside. If not you can copy one from the
491 unity executable on the desktop.
Sound on the VIVE / front wall is controlled from the Alienware PC
that the VIVE is connected to. If you don't hear any audio coming
throuhg the room speakers then check to make sure that the audio on
the PC is going to Speakers (2 - ClearOne Converge Pro 2 128U... and
then you can use the volume control on the top of the keyboard to
control the levels. Turning in the Project
When you are ready to turn in your project, or just to test it on the
classroom PC, build an executable for target platform windows x86_64.
The classroom VIVE PC will have a folder on the desktop named
491VRAR_Project 1. You should create a folder there with a filename
matching your name or the name of someone in your group. Inside your
groups folder you should put a copy of the executable and the data
folder for your project. Be sure to test and make sure your project runs
well through the VIVE and its controllers
on that PC as that is where they will be shown in class and officially
You should create a set of public web pages (available to anyone for at
least the duration of the course) that describe your work on the
project. You can host your web pages at UIC (http://people.uic.edu)
or the provider of your choice, as long as they remain publicly
available to all. You can use any publicly available templates as long
as you cite them, or create your own.
These pages should include:
description of how to use your
application and the things you can do with it
links to all the source code and
any assets (models, textures) that you used along with instructions
on how to build your application on the classroom PC
link to a zipped folder
containing your entire project which can be moved to the class PC to
list with images of the n models you used and the ones you created
for your application to make it easy to see that you have those n
models in your scene (one good way to do this is to take some high
resolution screen shots of your scene and put numbers next to each
of the models and then have a textual list showing where the
models came from or that they were created by you)
list of the sounds you used and their sources, or state that you
comparing navigation using teleporting and wand-based navigation
of how the virtual room 'feels' to you compared to the actual room
- do they feel the same size? What cues help? what are some cues
in the real world that are hard to replicate in the virtual one?
all of which should have plenty of screenshots with meaningful
captions. Web pages like this can be very helpful later on in helping
you build up a portfolio of your work when you start looking for a job
so please put some effort into it.
You should also create a 2-3 minute YouTube video showing the use of
your application including narration with decent audio quality. That
video should be in a very obvious place on your main project web page.
The easiest way to do this is to interact with your application in the
classroom in front of the main wall or the EVL main lab in front of the
screen showing what you are seeing - this way people watching can see
you interacting and what you are seeing. You can try to narrate while
interacting but you will most likely find its useful to do some editing
afterwards to tighten the video up.
The web page including screen snapshots and video need to be done by the
deadline so be sure to leave enough time to get that work done. Once you
have your webpage done, send the URL to Andy before the deadline. I will
respond to this email as your 'receipt'. I will be linking your web page
to the course notes so please send me a nice representative jpg or png
image of your application for the web. This should be named
p1.<your_last_name>.jpg or p1.<your_last_name>.png and be
roughly 1024 x 768 in size. When the project is done, each person
in a group should also send Andy a private email with no one else CC'd
ranking your coworkers and yourself on the project on a scale from 1
(low) to 5 (high) in terms of how good a coworker they were on the
project. If you never want to work with them again, give them a 1. If
this person would be a first choice for a partner on a future project
then give them a 5. If they did what was expected but nothing
particularly good or bad then give them a 3. By default your score
should be 3 unless you have a particular reason to increase or
decrease the number. Please confine your responses to 1, 2, 3, 4, 5
and no 1/3ds or .5s please. Presenting the Project
An important part of creating VR applications is getting feedback and
using it to improve your design.
We will be spending time in class for each person/group to show off
their work. Given the number of groups, each
group will have 6 minutes to present their project.
updated 10/18/17 - updated project links
9/21/17 - added information on audio output from the PC
added time for in-class presentations
9/15 added notes on high-sierra incompatibilities and making sure you
have the openvr_api.dll in your Plugins folder
9/9 added in brief notes on testing times in the classroom, and
suggestions on different scale objects
note that if you are seeing a red openvr_api warning when you try to run
using just the keyboard and mouse, that it should still run fine, but
the application may be paused at the top of the window, so if you click
the pause button you should get control.
also note that if you keep getting an alert from SteamVR about the
splash screen that this link might help you -