CS 499-001
Virtual Reality
Meets
Monday 4:30 pm - 7:10 pm in Blueridge Hall 129
Professor
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.
Prerequisites
CS 310 and CS 367, MATH 203 (Linear Algebra) recommended
Textbook
- G. C. Burdea and P. Coiffet, Virtual Reality Technology,
2nd Ed., John Wiley & Sons, Inc., 2003, required
-
Additionally, articles and other supplementary materials
will be assigned as readings for the class.
- You do not need a texbook for Unity, but we will use web
resources regularly.
Software and Equipment
- 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.
- Leap Motion: Leap
Motion will be used for projects and homeworks. We have
20 devices.
- Google Cardboard: Google
Cardboard will also be used. You will have to use your own
phone for development and viewing. We have 20 cardboards.
- 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.
Topics
Planned topics include:
- VR Input Devices
- VR Output Devices
- Computing Architectures for VR
- Modeling
- Programming in VR (Unity)
- Human Factors
- Applications
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.
Communications
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
Projects
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.
Grading
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:
- Homeworks: 40%
- Class participation: 10%
- Exam: 20%
- Project: 30%
Course Outcomes
- Basic knowledge of VR input and output devices
- Basic knowledge of computing architectures for VR
- Basic knowledge of modeling techniques for VR
- An ability to use Unity to develop a VR application with
LeapMotion
- An ability to use Unity to develop a VR application with
Google Cardboard