Class Information

Instructional Team


Monday/Wednesday/Friday 9.30am-10:20am


Lawson LWSN B131


Basic Linear Algebra, Computer Graphics (Preferred)

Class Description

AR, VR, and MR, collectively referred to as XR, are becoming ubiquitous for human-computer interaction with limitless applications and potential use. This course examines advances on real-time multi-modal XR systems in which the user is 'immersed' in and interacts with a simulated 3D environment. The topics will include display, modeling, 3D graphics, haptics, audio, locomotion, animation, applications, immersion, and presence and how they interact to create convincing virtual environments. We'll explore these fields and the current/future research directions.

By the end of the class, students will be understand a wide range of research problems in XR, as well as be able to understand the future of XR as a link between physical and virtual worlds as described in the "Metaverse" visions.

The class assignments will involve interacting with the above topics in the context of a real XR device, with the goal of building the skills to develop powerful multi-modal XR applications. Assignments may be completed in Unity or Unreal Engine 4, with our full technical support for either one.

Prior knowledge or experience with game development or XR is not necessary to succeed in the course! Unity and UE4 both use object-oriented programming, with the technical learning experience of this class focusing on APIs and application design rather than programming skill, so intermediate experience with Java, C#, C++, etc. is sufficient.

Most students will work with the headsets provided (shown below), which allows for development on one's own mobile phone or a standalone VR device. Students may also use their own devices, such as an Oculus Quest (or any other HMD that can provide hand-tracking and controller input), which should not affect the assignment difficulty.

  • Mobile HMD

    Mobile HMD

  • Oculus Quest

    Oculus Quest

The final class project will have you apply the skills developed from assignments by exploring, implementing, and/or and analyzing a recent XR research topic.

The undergraduate & graduate sections contain the same content and assignments, although the graduate final project is expected to be more substantial and explore beyond the state-of-the-art research more than the undergraduate version.

Grade Breakdown

  • Midterm (25%)
  • 4-5 Homework/Programming Assignments (25%)
  • Final Course Project (50%)

Planned Lectures & Topics

This is the tentative lecture plan.

Planned Assignments

The assignments will likely build on each other such that they will result in a complete multimodal XR application. The assignments will include specific requirements for the rubric, but there will be some creative elements and most students will end up with interesting & unique XR apps rather than specific environments. The resulting system may be useful as a baseline application for the final project.

  1. Setting up the game engine for XR, making sure you can build on the headset, basic game development.
  2. Interacting with virtual objects and scenes (picking objects up, teleporting with navigation mesh, basic VR math).
  3. Basic 3D modelling and importing it in your scene
  4. Hand-tracking & hand interaction with your virtual environment.
  5. Natural virtual locomotion (implementing redirected walking & translational gain).
  6. Adding sound propagation to your environment.
  7. Basic inverse kinematics (allowing you to commandeer a virtual avatar).
  8. Virtual agents (adding autonomous virtual humans to the environment)


The exam will contain high-level critical thinking questions about problems throughout the subfields of XR. They will generally be short answer questions asking about how you may approach a particular problem. There will be no final exam.

Final Project

The final project will consist of exploring, implementing, and/or evaluating a research prototype in XR. Projects can explore applications of XR (e.g. focusing on human factors and user interaction) or investigate more fundamental XR problems, like body/eye tracking, computer vision, multimodal display and rendering, sensors, etc. Students may work in small groups or alone, with teams expected to have more substantial contribution.

Purdue Honors Pledge

  1. “As a boilermaker pursuing academic excellence, I pledge to be honest and true in all that I do. Accountable together - we are Purdue.”
  2. “Academic integrity is one of the highest values that Purdue University holds. Individuals are encouraged to alert university officials to potential breaches of this value by either emailing or by calling 765-494-8778. While information may be submitted anonymously, the more information that is submitted provides the greatest opportunity for the university to investigate the concern.”

Emergency Preparedness


Additional Help

  1. Purdue University is committed to advancing the mental health and well-being of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of support, services are available. For help, such individuals should contact Counseling and Psychological Services (CAPS) at (765)494-6995 and during and after hours, on weekends and holidays, or by going to the CAPS office of the second floor of the Purdue University Student Health Center (PUSH) during business hours
  2. Purdue University strives to make learning experiences as accessible as possible. If you anticipate or experience physical or academic barriers based on disability, you are welcome to let me know so that we can discuss options. You are also encouraged to contact the Disability Resource Center at: or by phone: 765-494-1247.

Cheating policy

  • Do not cheat!
  • Frequent and thorough scans for cheating
  • If caught automatic failing grade for the class and reported to the Dean of Students' Office
  • Examples of cheating (courtesy of Gene Spafford)
    • Using part or all of someone else's work, from this or any prior semester, in projects or homework without the instructor's prior approval;
    • Misrepresenting the functionality of code. That is, if a student submits a project with falsified output or test data to make it look as if a program works better than it does;
    • Using hidden notes or hints to answer questions during a test that does not allow open notes or crib sheets;
    • Submitting answers on homework or projects that were developed or researched by any other individual and presented as the student's own work;
    • Copying text from a book or paper to include in the student's own writing without clearly marking it as a quote and citing the source (This is plagiarism and may be a violation of copyright law as well as cheating.);
    • Setting permissions on files and directories in a student's account so that someone can easily copy programs and documents, or allowing any other person, in the class or otherwise, to use your computer account (note that this is also a violation of department policy or PUCC policy;
    • Providing program code or problem solutions to another student in the class without the instructor's explicit, prior approval;
    • Encouraging anyone to do any of the above, or failing to report anyone involved in any of these activities.