Project 3 - School's Out

Application Due Saturday 11/28 at 8:59pm Chicago time
Documentation Due Monday 11/30 at 8:59pm Chicago time

Project 3 is going to focus on Virtual Reality. Normally we are using the VR headsets in the classroom and comparing how movement and interaction in that physical space compares to movement and interaction in a virtual space. This time we are going to flip that around since very likely for all of the term we will not be in the actual classroom, so we will let you experience the classroom virtually.

Here is a fairly accurate representation of what the classroom would look like with social distancing, based off the classroom model by Arthur Nishimoto in the lab.

In this assignment you will get to create your 'dream' classroom space. Whereas project 2 had you creating a small Augmented Reality scene that you could look down at on a desk or look over at human scale on a floor, here you are creating a scene that completely surrounds you at human scale. Again, please keep your scene appropriate for the general public.

The goal here is to give you some familiarity with programming VR, and if things improve enough to let people try their creations out in VR in the classroom at the end of the term. This should let you try out different kinds of movement in VR, and what level of interaction is currently possible. It should let you experience an embodied 3D head and hand tracked environment to see how different this is from traditional media. If we can get people using the headsets in the classroom by the end of the term you will also be able to compare how the virtual space feels compared to the same real space. It will also let you see how simulators are used to do a fair amount of the creation of these spaces.

This is an individual project.

Implementing the Project

You will be implementing the project in Unity 2019.4.1f1 and VRTK 3. There are several different VR libraries out there right now, and this lack of compatibility has been a major issue for over 25 years and different manufacturers go their own way. VRTK has been one of the better cross-platform libraries of recent years, though it also looks to be disappearing. Version 3 is more solid than version 4, so we are going to go back to version 3. There are a lot of good tutorials out there on VRTK, just make sure you are looking at the version 3 tutorials.

Some good VRTK tutorials are available at

You should already have a recent version of Blender - - installed on your computer (2.83 is probably safe, 2.7.9 will probably leave you with missing walls) as it was needed for the desk and chair from project 2 which are also used here.

The starter Unity project with the basic classroom and VRTK is located here

I removed the Library folder from the project to shrink the size of the zip file. You should be able to drag the EVL scene into the hierarchy from Assets/virtualuic-evl/Scenes and then remove the default scene, and hit play and you should be in the classroom like I showed in Week 2.

This should include all the necessary VRTK support files. They can also be found on GitHub at

If you run the project you will be in the VRTK simulator, which is pretty good as far as VR simulators go, and you can move around and interact with objects. Take a look at what frame rate you get. Frame rate is critical in VR, and normally we would have everyone run on the classroom PC giving us a common platform to judge the frame rate. Since we probably wont have that capability this year we need a way to make sure what you create is fast enough that people don't get sick using it. When you are done developing your Project 3 it should run at least half as fast as the starter Unity project provided to be fast enough to run comfortably in stereo. That is, if the starter application runs at 90 frames per second on your machine, make sure the version that you turn in runs at least 45 frames per second on your machine.

Note - if you get an annoying Steam popup when you play the scene just click Ignore All and it should go away.

For this project you can either create your own models and sounds, or make use of more professional ones from the web, as long as you have the right to use them, and as long as you fully cite the creators for your work. You also need to make sure that those models do not have too many polygons and slow down your application. You should also make sure these models don't have any embedded cameras that will mess up your scene. Note that if you find a collection of objects that you like online and you position them as a group then it counts as one object. If you break that set apart and independently position the various objects in different locations then those count as separate objects

60% of the points on the project are for your basic classroom

40% of the points on the project are for ...

Graduate students in the class also need to be able to ...

I realize that doing a VR project with only the simulator is fairly lame, so if some of you are particularly motivated to try out your Project 3 using one of the headsets in the actual classroom then we may be able to make that happen near the end of the term, with appropriate social distancing, and sanitizing. If you are interested, please let me know on Piazza and I will see what I can work out.

Turning in the Project

You should create a GitHub page for your project. You can integrate Unity with git so that it will track all your changes, or just regularly push files to git. The final project will need to be turned in via git so we know the timestamp on the files, but it can be also helpful to have regular commits in case something goes wrong so you can get partial credit. Initially this repository should be private to yourself, and then you can make it public for turning it in.

Note that there is a very 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.

There are two due dates for the project.

There is no alpha this time.

The unity source and application is due first. This will be turned in via GitHub by making your repository public to at least everyone at UIC.  Be sure to email the location of your repository to Andy and the TA before the deadline.

The third deadline is for the documentation.

You should create a public web page with multiple sections (visible to anyone for at least the duration of the course) that describes your work on the project. You can host your web page at UIC (, GitHub, or the provider of your choice, as long as it remains publicly available to all. You can use any publicly available templates as long as you cite them, or create your own.

This page should have several sections including:

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 5 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. There are a couple students that have headsets, and if they want they can capture video while interacting through the headsets, otherwise people can capture interaction from the desktop simulator. 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. This video is helpful for us to know which parts of your project work, and may be useful in the future when you want to show off some of the projects you did but you cant get the code to compile anymore or you have lost the markers.

Once you have your webpage done, send the URL to Andy and the TA before the deadline. We will respond to this email as your 'receipt'.

We will be linking your web page to the course notes so please send Andy a nice representative jpg or png image/photo of your application for the web. This should be named p3.<your_last_name>.jpg or p3.<your_last_name>.png and be roughly 1024 x 768 in size.

Presenting the Project

An important part of creating AR applications is getting feedback and using it to improve your design. 

Normally we would be spending time in class for each person to show off their work and get feedback. This term we will be doing this asynchronously.
See the course notes for week 15 for more details. 

Links to all of the Projects:

Web page
Babu Sai

GitHub link

GitHub link











last update: 12/4/2020