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: https://oae.stanford.edu/).

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
[slides]
Podcast: Fred Brooks on Ivan Sutherland’s 1965 “Ultimate Display” Speech
Paper: Ivan Sutherland “A head-mounted 3D display", 1968
Wednesday
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

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

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

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

Homework #5 Release
[lab]
[homework]
Friday
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
Wednesday
May 5
Lecture 12 Pose Tracking II
Advanced positional tracking
[slides]
Thursday
May 6
Homework #5 due at 11:59pm
Friday
May 7
Lab 6 Pose Tracking
Homework #6 Release
[lab]
[homework]
Week 7 Monday
May 10
Lecture 13 Frontiers of VR I
Cinematic VR, Spatial Sound, The Vestibular System
[slides]
Wednesday
May 12
Lecture 14 Frontiers of VR II
VR Engines and Unity, Latency, Eye Tracking
[slides]
Thursday
May 13
Homework #6 due at 11:59pm
Friday
May 14
Lab (optional) Getting started with Unity
Week 8 Monday
May 17
Midterm
Wednesday
May 19
Guest lecture:
Dr. Douglas Lanman, Director of Display Systems Research at Facebook Reality Labs
Week 9 Monday
May 24
Wednesday
May 26
Sunday
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