From Immersive Visualization Lab Wiki
Jump to: navigation, search


CSE165: 3D User Interaction


This course focuses on the design and evaluation of three-dimensional (3D) user interfaces, devices, and interaction techniques. The course consists primarily of lectures and hands-on programming. Students will be expected to implement several 3D interaction techniques as part of this course. The course is intended to lay the foundation for 3D user interaction as it can be applied to novel user interfaces for computer games and consumer electronics, as well as virtual and augmented reality applications.

An important aspect of the course are going to be programming assignments involving 3D interaction devices, which are going to be provided to the students for the duration of the projects. These devices will include the Microsoft Kinect, the Razer Hydra, the Leap, the zSpace, and most likely the Sony Move. We will use the C++ programming language and OpenGL, along with the Bullet library for physics simulation.

Kinect-for-windows.jpg Hydra.jpg Leap.jpg Zspace.jpg Move.jpg
Microsoft Kinect Razer Hydra Leap zSpace Sony Move

Course Schedule

Click here for the course schedule.

It lists lecture dates, homework due dates, and recommended reading.



  • Introduction to 3D interaction
  • Application domains
  • Output hardware
  • Input hardware
  • Selection and Manipulation
  • Navigation (Travel and Wayfinding)
  • System Control
  • Symbolic Input
  • 3D user interface design
  • Evaluation of 3D User Interfaces
  • Augmented Reality Interfaces


  • CSE167 (Introduction to Computer Graphics) or equivalent
  • Experience programming in C++
  • Experience with OpenGL graphics programming


  • Instructor: Dr. Jürgen Schulze
  • Instructor's office hour: Tuesdays 3:30-4:30pm, Atkinson Hall, Room 2125
  • Number of Units: 4
  • Section IDs: 828327 and 828328
  • Lectures: Tuesday and Thursday, 2:00pm-3:20pm at WLH 2206
  • Homework Discussion: Every other Wednesday 4-5pm in CSE lab 220 (starting Jan 7)
  • First lecture: Tuesday, January 6th, 2015
  • Homework: programming assignments
  • Research paper presentation
  • Designated computer lab for this course: CSE 220
  • TA: Dylan McCarthy (demccart at ucsd.edu), Office hours: Tue+Thu 12:30-2pm, Wed 5-6pm (CSE lab 220)
  • Tutor: Rex West (rwest at ucsd.edu), Office hours: Tue+Thu 5:30-7pm (CSE lab 220)


Assignment 1 (group) 15%
Assignment 2 (group) 15%
Assignment 3 (group) 15%
Assignment 4 (group) 15%
Assignment 5 (group) 25%
Paper Presentation (individual) 10%
Pop Quizzes 5%

You will find your scores on Ted. Please verify a few days after after every due date that your score has been recorded correctly and inform your grader if it has not.

If your weighted average score across all assignments is 100 points or more, you will get a grade of A+.

Final Project

There will not be a final exam, but the last programming project will be presented to the entire class during our final exam slot on Thursday, March 19th between 3 and 6pm.


The textbook is recommended, but not mandatory as the lecture slides will be made available after each lecture and there will not be reading assignments.

3dui-textbook-200p.jpg Bowman, Kruijff, LaViola, Poupyrev
3D User Interfaces: Theory and Practice
Addison Wesley Longman Publishing Co., Inc. Redwood City, CA, USA 2004
ISBN: 0201758679

Homework Assignments

All homework assignments are due at 1:00pm on the due date and have to be demonstrated to the instructor, TA or tutor in one of the CSE labs during grading time (Fridays 1pm-2:50pm). If someone absolutely cannot present on the due date, they need to arrange for early grading with the TA or tutor by email.