Virtual Reality Systems

CSE 490V

Overview

Modern virtual reality systems draw on the latest advances in optical fabrication, embedded computing, motion tracking, and real-time rendering. In this hands-on course, students will foster similar cross-disciplinary knowledge to build a head-mounted display. This overarching project spans hardware (optics, displays, electronics, and microcontrollers) and software (JavaScript, WebGL, and GLSL). Each assignment builds toward this larger goal. For example, in one assignment, students will learn to use an inertial measurement unit (IMU) to track the position of the headset. In another assignment, students will apply real-time computer graphics to correct lens distortions. Lectures will complement these engineering projects, diving into the history of AR/VR and relevant topics in computer graphics, signal processing, and human perception. Guest speakers will participate from leading AR/VR companies and academic institutions.

Acknowledgments

This course is based on Stanford EE 267. We thank Gordon Wetzstein for sharing his course materials and supporting the development of CSE 490V. We also thank Brian Curless, David Kessler, Steve Seitz, Ira Kemelmacher-Shlizerman, and Adriana Schulz for their support.

Requirements

This course is designed for senior undergraduates and early MS/PhD students. No prior experience with hardware is required. Students are expected to have completed Linear Algebra (MATH 308) and Systems Programming (CSE 333). Familiarity with JavaScript, Vision (CSE 455), and Graphics (CSE 457) will be helpful, but not necessary. Registration is limited to 40 students.

Teaching Staff
Douglas Lanman
Affiliate Instructor, University of Washington, CSE
Director, Display Systems Research, Facebook Reality Labs

Douglas is the Director of Display Systems Research at Facebook Reality Labs, where he leads investigations into advanced display and imaging technologies for augmented and virtual reality. His prior research has focused on head-mounted displays, glasses-free 3D displays, light-field cameras, and active illumination for 3D reconstruction and interaction. He received a BS in Applied Physics with Honors from Caltech in 2002, and his MS and PhD in Electrical Engineering from Brown University in 2006 and 2010, respectively. He was a Senior Research Scientist at Nvidia from 2012 to 2014, a Postdoctoral Associate at the MIT Media Lab from 2010 to 2012, and an Assistant Research Staff Member at MIT Lincoln Laboratory from 2002 to 2005. His recent work has focused on developing the Half Dome prototype series, showcasing wide-field-of-view and compact varifocal HMDs with AI-driven rendering.

Ethan Gordon
PhD Student, University of Washington, CSE

Ethan is a second-year PhD student in the Personal Robotics Lab at the University of Washington. His current research interests are in robotics and AI with a focus on physics-based deformable object manipulation and the application of assistive feeding. He has previously done work in virtual reality and integrated photonics.

Kirit Narain
Undergraduate, University of Washington, CSE

Kirit is an undergraduate in Computer Science with a special interest in AR/VR. He is President of the Extended Reality Association and has previously completed research into building virtual reality headsets with the UW Reality Lab. His current projects include writing an XR data visualization tool and a control system for an electric racing motorcycle.

VR Headset Development Kit
1 / 8
3 / 8
4 / 8
6 / 8
7 / 8
8 / 8

Students will be provided a hardware kit to build their own head-mounted display. This kit includes an LCD, an HDMI driver board, an inertial measurement unit (IMU), lenses, an enclosure, and all cabling. Kits must be returned at the end of the course. All software will be developed through the homework assignments. Note that the CSE 490V kit is currently in development. All photos shown above depict a related cascaded displays kit developed by the instructor. Students should also review the Stanford EE 267 kit, which may influence the CSE 490V kit.

Schedule

Lectures are on Wednesdays and Fridays from 4:30pm to 5:50pm in ECE 037.

Date Description Readings
Wednesday
January 8
Introduction to VR/AR Systems
Friday
January 10
Head-Mounted Displays
Part I: Conventional Optical Architectures
Wednesday
January 15
Head-Mounted Displays
Part II: Emerging Optical Architectures
Friday
January 17
The Graphics Pipeline and OpenGL
Part I: Overview and Transformations
Course Notes
Marschner (Ch. 6 & 7)
Wednesday
January 22
The Graphics Pipeline and OpenGL
Part II: Lighting and Shading
Marschner (Ch. 10 & 11)
Friday
January 24
The Graphics Pipeline and OpenGL
Part III: OpenGL Shading Language (GLSL)
Wednesday
January 29
The Human Visual System
Guest Lecture: Marina Zannoli (Facebook)
LaValle (Ch. 5 & 6)
Friday
January 31
The Graphics Pipeline and OpenGL
Part IV: Stereo Rendering

Guest Lecture: Ethan Gordon (TA)
Wednesday
February 5
Inertial Measurement Units
Part I: Overview and Sensors
Course Notes
LaValle (Ch. 9.1 & 9.2)
Friday
February 7
Inertial Measurement Units
Part II: Filtering and Sensor Fusion
Wednesday
February 12
Positional Tracking
Part I: Overview and Sensors
Course Notes
Friday
February 14
Positional Tracking
Part II: Filtering and Calibration
Wednesday
February 19
Advanced Topics
Part I: Spatial Audio
Friday
February 21
Advanced Topics
Part II: Engines and Emerging Technologies
LaValle (Ch. 11)
Wednesday
February 26
Advanced Topics
Part III: VR Video Capture
Friday
February 28
In-Class Midterm Exam
Wednesday
March 4
Advanced Topics
Part IV: Direct-View Light Field Displays
Friday
March 6
Guest Lecture
Wednesday
March 11
Guest Lecture
Friday
March 13
Guest Lecture
Wednesday
March 17
Final Project Demo Session
Assignments

Students will complete six homework assignments, a written midterm exam, and a final project. Each homework is accompanied by a lab (an online tutorial video). Labs must be completed before starting the homeworks. We encourage formatting written portions of homework solutions using the CSE 490V LaTeX template. Students must submit a one-page final project proposal and a final report. Final reports may take the form of a website or a conference manuscript.

Due Date Description Materials
Thursday
January 23
Homework 1
Transformations in WebGL
Lab 1 (Video)
Assignment and Code
Thursday
January 30
Homework 2
Lighting and Shading with GLSL
Lab 2 (Video)
Assignment and Code
Thursday
February 6
Homework 3
Stereoscopic Rendering and Anaglyghs
Lab 3 (Video)
Assignment and Code
Thursday
February 13
Homework 4
Build Your Own HMD
Lab 4 (Video)
Assignment and Code
Monday
February 17
Final Project Proposal Template
Thursday
February 20
Homework 5
Orientation Tracking with IMUs
Lab 5 (Video)
Assignment and Code
Thursday
February 27
Homework 6
Pose Tracking
Lab 6 (Video)
Assignment and Code
Friday
February 28
In-Class Midterm Exam Review Guide
Wednesday
March 17
Final Project Report Template
Grading and Collaboration

The grading breakdown is as follows: homeworks (60%), midterm (10%), and final project (30%).

Projects are due by midnight on the due date. Late assignments are marked down at a rate of 25% per day. If you fail to turn in an assignment on time it is worth 75% for the first 24 hours after the deadline, 50% for the next 24 hours, 25% for the next 24 hours, and then it is worth nothing after that. Exceptions will only be given with prior instructor approval.

While the headset development kits will be shared, students are expected to individually write their homework solutions. Students may collaborate to discuss concepts for the homeworks, but are expected to be able to explain their solutions for the purposes of grading by the instructor and TAs. Final project groups can be as large as three students, subject to instructor approval.

Textbooks and Resources

Lectures are supplemented by course notes, journal articles, and textbook chapters. The following textbooks will be used for CSE 490V, which are freely available to University of Washington students via the links below.

All software will be developed using JavaScript, WebGL, and GLSL. Students should review the following tutorials and online resources to prepare for the labs, homeworks, and final projects.

Office Hours and Contacts

We encourage students to post their questions to Piazza. The teaching staff can also be contacted directly at . The instructor and TAs will hold weekly office hours at the following times.