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 2025 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 Tuesday
April 1
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
Video: Mark Zuckerberg's Metaverse announcement, 2021
Book: Neil Stephenson "Snow Crash", 1992
Thursday
April 3
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 4
Lab 1 Hello, WebGL!
Homework #1 Release
[lab]
[homework]
Week 2 Tuesday
April 8
Lecture 3 The Graphics Pipeline and OpenGL II:
Lighting and Shading
[slides] Marschner
Chap. 10 & 11
Thursday
April 10
Lecture 4 The Graphics Pipeline and OpenGL III:
OpenGL Shading Language (GLSL)

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

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

Homework #5 Release
[lab]
[homework]
Friday
May 2
Final Project - Proposal
due 5/3/2024 at 11:59pm
Week 6 Tuesday
May 6
Lecture 11 Pose Tracking I
Tracking with light house
[slides] Course Notes
on Tracking
Thursday
May 8
Lecture 12 Pose Tracking II
Advanced positional tracking
[slides]
Thursday
May 8
Homework #5 due at 11:59pm
Friday
May 9
Lab 6 Pose Tracking
Homework #6 Release
[lab]
[homework]
Week 7 Tuesday
May 13
Lecture 13 Frontiers of VR I
Cinematic VR, Spatial Sound, The Vestibular System
[slides]
Thursday
May 15
Lecture 14 Frontiers of VR II
VR Engines and Unity, Latency, Eye Tracking
[slides]
Thursday
May 15
Homework #6 due at 11:59pm
Friday
May 16
Lab (optional) Getting started with Unity [lab]
[video]
[unity starter project]
(Log in w/ Stanford account on Google Drive)
Week 8 Tuesday
May 20
Midterm
Thursday
May 22
Guest lecture:
TBD
Week 9 Tuesday
May 27
Guest lecture:
TBD
Thursday
May 29
Final Project - poster session
5/29/2025, 11am - 1:30pm, Packard Atrium
Friday
May 30
Final Project - report and code
due on 5/30/2025, 11:59pm
Report template