In this course we will examine hardware, software, and cognitive foundations involved in creating state-of-the-art virtual reality (VR). The purpose of this course is two-fold: (a) to provide students with both a deep understanding of the fundamentals of VR and (b) to gain experience with consumer-grade VR system architecture. We will explore the challenges to develop and analyze VR systems that are effective and comfortable, motivated by design goals, and constrained by the real world.
This is a very challenging course. The goal is to provide students with both a deep understanding of the scientific, technical, engineering, and human-facing fundamentals of VR and gain engineering experience. Note: We will not learn about VR game development, but instead study the fundamental building blocks of VR systems and implement all of them.
In this course, I will cover:
At the end of CS5360, you will be able to:
At the end of CS6360, you will be able to do all of the above and in addition:
Term: Fall 2021
Location: WEB 2230
Date and Time: MW / 04:35PM-05:55PM
Instructor: Rogelio E. Cardona-Rivera
CS 5360. "C-" or better in CS 3500 and Full Major status in (Games or Computer Science or Computer Engineering)
CS 6360. "C-" or better in EAE 6310 or Graduate Standing in Computer Science. (Meets with CS 5360; extra work required for this class.)
This course will primarily be lecture-based, with in-class discussions around material, assignments, and projects and out-of-class assignments, projects, and one exam.
The primary goal of this class is to understand the fundamental building blocks of virtual reality by building a head-mounted display (HMD) from scratch. The HMD is designed to be educational, accessible, reproducible, and low cost. Since the class does not have a textbook that costs money, you are expected to spend a roughly equivalent amount in terms of hardware components in order to participate in this course. The parts are described in the syllabus.
The class is designed around the following (freely-available) textbooks: