Schedule and Syllabus

Unless otherwise specified the course lectures and meeting times are Mondays and Wednesday from 3:00pm to 4:20pm in the Building 200-034.

Students with Documented Disabilities: Students who may need an academic accommodation based on the impact of a disability must initiate the request with the Office of Accessible Education (OAE). Professional staff will evaluate the request with required documentation, recommend reasonable accommodations, and prepare an Accommodation Letter for faculty. Unless the student has a temporary disability, Accommodation letters are issued for the entire academic year. Students should contact the OAE as soon as possible since timely notice is needed to coordinate accommodations. The OAE is located at 563 Salvatierra Walk (phone: 723-1066, URL:

This is the syllabus for the Spring 2019 iteration of the course.
Event Type Date Description Course Materials Readings
Lecture 1 Monday
April 1
Introduction to VR and AR
Course overview and logistics
Histroy of VR and AR
Lecture 2 Wednesday
April 3
The Graphics Pipeline and OpenGL I: Overview and Transformations
Rotation, translation, scaling, modelview matrix, projection matrix
[slides] Course Notes on Transformations

Chap. 6 & 7
Lab 1 Friday
April 5
Hello, WebGL!
Homework #1 Release
[homework | solution]
Lecture 3 Monday
April 8
The Graphics Pipeline and OpenGL II: Lighting and Shading [slides] Marschner
Chap. 10 & 11
Lecture 4 Wednesday
April 10
The Graphics Pipeline and OpenGL III: OpenGL Shading Language (GLSL)
GLSL vertex and fragment shaders
April 11
Homework #1 due at 11:59pm
Lab 2 Friday
April 12
Lighting and Shading with GLSL
Homework #2 Release
[homework | solution]
Lecture 5 Monday
April 15
Human visual system
Perception of depth, color, contrast, resolution
[slides] LaValle
Chap. 5 & 6
Lecture 6 Wednesday
April 17
The Graphics Pipeline and OpenGL IV: Stereo Rendering [slides]
April 18
Homework #2 due at 11:59pm
Lab 3 Friday
April 19
Stereo Rendering, Depth of Field and Anaglygh
Homework #3 Release
[homework | solution]
Lecture 7 Monday
April 22
Head Mounted Display Optics I
Magnifier designs
Stereo rendering for HMDs
Lens distortion correction
Lecture 8 Wednesday
April 24
Head Mounted Display Optics II
Advanced HMD optics
[slides] Field of View in AR HMDs
April 25
Homework #3 due at 11:59pm
Lab 4 Friday
April 26
Build Your Own HMD
Homework #4 Release
[homework | solution]
Lecture 9 Monday
April 29
Interial Measurement Units I
[slides] Course Notes on IMUs

Chap. 9.1 & 9.2
Lecture 10 Wednesday
May 1
Interial Measurement Units II
Sensor fusion
Complementary filter
May 2
Homework #4 due at 11:59pm
Lab 5 Friday
May 3
Orientation Tracking with IMUs
Arduino Programming

Homework #5 Release
[homework | solution]
May 3
Project Proposal due (email it to course staff list) at 11:59pm
Lecture 11 Monday
May 6
Pose Tracking I
Tracking with light house
[slides] Course Notes on Tracking
Lecture 12 Wednesday
May 8
Pose Tracking II
Advanced positional tracking
May 9
Homework #5 due at 11:59pm
Lab 6 Friday
May 10
Pose Tracking
Homework #6 Release
[homework | solution]
Lecture 13 Monday
May 13
Panoramic Imaging and Cinematic VR [slides]
Lecture 14 Wednesday
May 15
Spatial Sound and the Vestibular System [slides]
May 16
Homework #6 due at 11:59pm
Lecture 15 Monday
May 20
In-class midterm
Lecture 16 Wednesday
May 22
VR Engines and Other Aspects of VR
Latency, eye tracking, post-rendering warp, ...
[slides] LaValle
Chap. 11
Lab (optional) Friday
May 24
Work with TAs on Projects
May 27
Memorial Day
Lecture 17 Wednesday
May 29
Guest lecture: Dr. Martin Banks, Professor of Optometry, Psychology, and Bioengineering, UC Berkeley
Lab (optional) Friday
May 31
Work with TAs on Projects
Lecture 18 Monday
June 3
Guest lecture: Dr. Bernard Kress, Principle Optical Architect, Microsoft Hololens
June 5
Final Project Demo Session
Reports and code due on 6/7/2019, 11:59pm Report template