Schedule and Syllabus

The lecture videos are released weekly on canvas.

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 2021 iteration of the course.

The starter code for all homework will be released on our GitHub repo.

The Unity starter project is available here, and the instruction video is available here.
(Log in with your Stanford account on Google Drive to get the access to the Unity project. Please do not send a request from your personal Google account.)
Week Date Event Type Description Material Readings
Week 1 Monday
March 29
Lecture 1 Introduction to VR and AR
Course overview and logistics
History of VR and AR
Podcast: Fred Brooks on Ivan Sutherland’s 1965 “Ultimate Display” Speech
Paper: Ivan Sutherland “A head-mounted 3D display", 1968
March 31
Lecture 2 The Graphics Pipeline and OpenGL I:
Overview and Transformations

Rotation, translation, scaling,
modelview matrix, projection matrix
[slides] Course Notes
on Transformations

Chap. 6 & 7
April 2
Lab 1 Hello, WebGL!
Homework #1 Release
Week 2 Monday
April 5
Lecture 3 The Graphics Pipeline and OpenGL II:
Lighting and Shading
[slides] Marschner
Chap. 10 & 11
April 7
Lecture 4 The Graphics Pipeline and OpenGL III:
OpenGL Shading Language (GLSL)

GLSL vertex and fragment shaders
April 8
Homework #1 due at 11:59pm
April 9
Lab 2 Lighting and Shading with GLSL
Homework #2 Release
Week 3 Monday
April 12
Lecture 5 Human visual system
Perception of depth, color, contrast, resolution
April 14
Lecture 6 The Graphics Pipeline and OpenGL IV:
Stereo Rendering
April 15
Homework #2 due at 11:59pm
April 16
Lab 3 Stereo Rendering, Depth of Field and Anaglygh
Homework #3 Release
Week 4 Monday
April 19
Lecture 7 Head Mounted Display Optics I
Magnifier designs
Stereo rendering for HMDs
Lens distortion correction
April 21
Lecture 8 Head Mounted Display Optics II
Advanced HMD optics
April 22
Homework #3 due at 11:59pm
April 23
Lab 4 Build Your Own HMD
Homework #4 Release
Week 5 Monday
April 26
Lecture 9 Interial Measurement Units I
[slides] Course Notes on IMUs

Chap. 9.1 & 9.2
April 28
Lecture 10 Interial Measurement Units II
Sensor fusion
Complementary filter
April 29
Homework #4 due at 11:59pm
April 30
Lab 5 Orientation Tracking with IMUs
Arduino Programming

Homework #5 Release
April 30
Final Project - Proposal
due 4/30/2020 at 11:59pm
Week 6 Monday
May 3
Lecture 11 Pose Tracking I
Tracking with light house
[slides] Course Notes
on Tracking
May 5
Lecture 12 Pose Tracking II
Advanced positional tracking
May 6
Homework #5 due at 11:59pm
May 7
Lab 6 Pose Tracking
Homework #6 Release
Week 7 Monday
May 10
Lecture 13 Frontiers of VR I
Cinematic VR, Spatial Sound, The Vestibular System
May 12
Lecture 14 Frontiers of VR II
VR Engines and Unity, Latency, Eye Tracking
May 13
Homework #6 due at 11:59pm
May 14
Lab (optional) Getting started with Unity
Week 8 Monday
May 17
May 19
Guest lecture:
Dr. Douglas Lanman, Director of Display Systems Research at Facebook Reality Labs
Week 9 Monday
May 24
May 26
May 30
Final Project - video presentation
due on 5/30/2021, 11:59pm
Week 10 Tuesday
June 1
Final Project - report and code
due on 6/1/2021, 11:59pm
Report template