CS 499-001

Virtual Reality


Monday 4:30 pm - 7:10 pm in Blueridge Hall 129


Zoran Duric.

Course Web Page

CS499-001 Virtual Reality We will communicate through piazza. Slides, handouts, and assignments will be posted on the web page.


CS 310 and CS 367, MATH 203 (Linear Algebra) recommended


  1. G. C. Burdea and P. Coiffet, Virtual Reality Technology, 2nd Ed., John Wiley & Sons, Inc., 2003, required
  2. Additionally, articles and other supplementary materials will be assigned as readings for the class.
  3. You do not need a texbook for Unity, but we will use web resources regularly.

Software and Equipment

  1. Unity: we will use Unity for the homeworks and projects. You can find it at Unity. A portion of the class time will be devoted to learing Unity. You will be expected to spend some time outside the class to learn it as well.
  2. Leap Motion: Leap Motion will be used for projects and homeworks. We have 20 devices.
  3. Google Cardboard: Google Cardboard will also be used. You will have to use your own phone for development and viewing. We have 20 cardboards.
  4. Microsoft Kinect: We have about 10 Kinects. The latest Kinects can only be used with Windows, the first and second generation Kinects can be used with Linux and Mac OS.
Note that you do not have to have your own devices, but you are allowed to use them if you have them.

About the Class

This class will focus on various virtual reality technologies and systems. A significant part of the course grade will be homeworks and projects with Magic Leap and/or Google Cardboard devices. We will provide the devices. A part of the course will be devoted to learning Unity, which will be used for homeworks and projects. There will be one exam after approximatelly 10 weeks of classes.


Planned topics include:

Class attendance

I expect you to attend every class. You will be expected to participate and this participation will be a part of your grade.


We will be using Piazza for communication. The system is highly catered to getting you help fast and efficiently from classmates, the TAs and myself. Rather than emailing questions to me, I encourage you to post your questions on Piazza.
Find our class page at: Piazza CS499-002


There will be semester long team projects using Leap Motion and Google Cardboard. You will present project proposals early and those will be critiqued. The entire class is expected to participate in discussion during project proposal presentations and final project presentations. The project will include writing your own code. You may negotiate during a different project with haptics or some other VR device or environment. However, you will have to be very convincing and make very good and detailed arguments why you should be allowed to do it.

Individual work

Projects are going to be done by groups, but I will require a report showing what each group member has done. You can discuss your projects with others and you can get open source software to use in your project. However, you will have to credit every source properly. Any assignment that is assigned as individual work cannot be discussed with anybody else and it has to be done by you alone.

Honor Code

The class enforces the GMU Honor Code, and the more specific honor code policy special to the Department of Computer Science. You will be expected to adhere to this code and policy.


In addition to the projects there will be homeworks and an exam around week 10.There will be no makeups on exams except under exceptional circumstances (as judged by me), and any such makeup must be arranged in advance. Grades will be computed using a weighted average of these scores with the weights:

Course Outcomes

  1. Basic knowledge of VR input and output devices
  2. Basic knowledge of computing architectures for VR
  3. Basic knowledge of modeling techniques for VR
  4. An ability to use Unity to develop a VR application with LeapMotion
  5. An ability to use Unity to develop a VR application with Google Cardboard