Chris Pollett> Old Classes> CS185c
( Print View )

Student Corner:
[Submit Sec1]
[Grades Sec1]

[Lecture Notes]
[Discussion Board]

Course Info:
[Texts & Links]
[Description]
[Course Outcomes]
[Outcomes Matrix]
[Course Schedule]
[Grading]
[Requirements/HW/Quizzes]
[Class Protocols]
[Exam Info]
[Regrades]
[University Policies]
[Announcements]

HW Assignments:
[Hw1] [Hw2] [Hw3]
[Hw4] [Project] [Quizzes]

Practice Exams:
[Midterm] [Final]

CS185c Spring 2019 Sec1 Home Page/Syllabus

Virtual Reality Programming

Instructor: Chris Pollett
Office: MH 214
Phone Number: (408) 924 5145
Email: chris@pollett.org
Office Hours: MW 4:30-5:30pm
Class Meets:
Sec1 MW 3:00-4:15pm in MH422

Prerequisites

To take this class you must have taken:
CS146
MA129A
with a grade of C- or better.

Texts and Links

Required Texts: Virtual Reality. Steven M. LaValle
Online References and Other Links: Oculus Developer Site.
A-Frame Javascript Web VR Framework.
Building Virtual Reality with Unity and Steam VR - Jeff Murray.
Learning Virtual Reality - Tony Parisi.

Description

Virtual Reality (VR) programming is the branch of computer science which studies the creation of immersive simulated environments. These environments can be similar to the real world or fantastical. VR has found applications in video gaming; real estate, for previewing homes; medicine, allowing surgeons to test out surgeries virtually before performing them on a real patient; scientific visualization, etc. Recently, the price of virtual reality (VR) headsets has come down to the cost of an average textbook in the case of phone-based systems, and to the cost of an expensive textbook in the case of dedicated, non-tethered systems such as the Oculus Go. With this price fall, VR is poised to become increasingly mainstream. Virtual Reality programming lies at the intersection of computer graphics, video game and user interface design, web development, and mobile development -- a combined skillset that is relatively rare. This class aims to provide an introduction for students ready for an intro graphics class to this exciting area. In it, we will survey web-based VR development using Javascript, WebGL, and WebVR; the Oculus Mobile Development using Android, and VR game design using Unity. We discuss techniques for producing and managing 360 3D and 3D audio assets. We will look at unique aspects of VR development such as binocular output, head tracking, and unique kinds of motion controllers. This class will have a final project which will be a complete VR application of the student's choice for one of the platforms we discuss during the class and there will be a demo day to show it off.

Course Learning Outcomes (CLOs)

By the end of this course, a student should be able to:

CLO1 -- Be able to create VR apps using WebVR, a VR mobile SDK, or Unity game engine.

CLO2 -- Be able to calculate by hand the effects of various VR rendering transformations on different input vectors.

CLO3 -- Be able to manipulate 360 and 360 3D image and video resources and programmatically display them in a virtual environment.

CLO4 -- Be able create models in a popular 3D model format, and programmatically read and display them into a VR environment.

CLO5 -- Be able to code a VR app in which objects move according to some kind of simulated physics and in which collisions are detected.

CLO6 -- Be able to code a VR app that does head motion tracking.

CLO7 -- Be able to code a VR app that syncs 3D audio and 3D video.

CLO8 -- Be able to code a VR app that makes use of hand based gesture inputs and haptic feedback.

Course Schedule

Below is a tentative time table for when we'll do things this quarter:

Week 1:Jan 28