Course: 3D User Interfaces
"3D User Interfaces" is a course on three-dimensional human-computer interaction aimed at master's students. The course consists of a lecture and an exercise course. The lecture is taught by Prof. Gudrun Klinker. As an exercise instructor, I am responsible for the exercise course.
Lecture: The lecture provides in-depth coverage of concepts of three-dimensional human-computer interaction including topics such as current input and output devices, interaction techniques (selection, manipulation, travel, wayfinding, system control), evaluation of 3D user interfaces, and future 3D user interfaces.
Exercise Course: The purpose of the exercise course is to provide insights into real-world problems and solutions related to the topics taught in the lecture. In the exercises, we explore practical applications in the context of games and interactive applications. Each week we have an exercise course in which we teach the practical basics. Students will then be able to implement small exercises related to the topics explained. The exercises are implemented using the Unity Game Engine and web technologies.
During this course, we explore event-based architectures for processing input, from simple event handling for decoupling input to more powerful programming paradigms such as reactive programming. To get started, students explore classic event handling and basic pointer input in the context of the game Ohi Ohi Dungeon. In the second week, we introduce reactive programming and compare the approaches with the naive implementations from the first week. In the following weeks, students implement a first-person controller with travel and camera controls using Reactive Programming. Later, the students implement wayfinding support techniques for this first-person controller. In the second part of the semester, students apply various selection and manipulation techniques through a variety of exercises. This includes an exercise in the context of Ubi Interact to get to know another framework for complex interactions. At the end of the semester, students can participate in a project phase in which they work on interesting research questions related to one of the topics taught during the semester. For this project, students implement a prototype related to 3D user interfaces and conduct a UI evaluation in the form of user studies.
Further Reading: If you want to learn more about 3D User Interfaces, read the book "3D User Interfaces: Theory and Practice" by LaViola et al. (2017). If you want to learn more about Reactive Programming, check out "The introduction to Reactive Programming you've been missing"by André Staltz (2014), concrete frameworks such as ReactiveX, and solutions for Unity such as UniRx.