Columbia University
Department of Computer Science

COMS W4172: 3D User Interfaces and Augmented Reality

Spring 2019, Tu/Th 1:10–2:25pm, 627 SW Mudd

Prof. Steven Feiner 
feiner [AT] cs [DOT] columbia [DOT] edu

A maintenance technician's view through a see-through head-worn display
    of augmented reality instructions for assembling an aircraft engine combustion chamber. A remote expert demonstrates how to place a virtual copy of the chamber top,    while the technician holds the real chamber top and moves it into place, guided by colored \

Syllabus and assignments


3D user interfaces are already essential to fields as diverse as visualization and video games, and are becoming even more important as the major personal computer and smartphone user interfaces incorporate increasingly powerful 3D technology. COMS W4172 provides an introduction to this exciting way of interacting with computers, with an emphasis on methods for designing and developing effective 3D user interfaces. The course's name acknowledges the major role played in our projects by augmented reality—dynamically integrating spatially registered 3D virtual media with our experience of the real world. We will explore:

Your grade will be based on:

Team project themes will be determined by you, with the option to select ones co-advised and critiqued by members of The Making and Knowing Project directed by Prof. Pamela H. Smith (Department of History). The “Making and Knowing” projects will address how we can use 3D user interfaces and augmented reality to visualize and interact with historical artifacts.

There will be no final exam, but we hope you'll be having too much fun doing the final project to miss it.

Prerequisites are one of the following:

Please don't hesitate to talk with me to find out if this is the right course for you! Prior familiarity with the 3D math used in COMS W4160  will be helpful, but is not required: the course will include a review of the 3D math needed to understand the material and do the assignments.


Steve Feiner (feiner [AT] cs [DOT] columbia [DOT] edu) is a Professor of Computer Science and director of the Computer Graphics and User Interfaces Lab. He is interested in most aspects of human–computer interaction and computer graphics, with special emphasis on interactive 3D user interfaces, virtual and augmented reality, mobile and wearable computing, hybrid user interfaces that combine different display and interaction technologies, automated design of graphics and multimedia, computer games, healthcare applications, and information visualization (i.e., “fun stuff”). His office is 609 Schapiro CEPSR (212-939-7083), where he will hold office hours Monday and Wednesday 1–2pm (other hours by appointment—please don't hesitate to email/call). If he's not in his office, try his lab across the hall (6LE3 Schapiro CEPSR, 212-939-7101), where you can find members developing and testing experimental 3D (and 2D) user interfaces for a variety of technologies, ranging from hand-held and head-worn, to table-top and wall-sized. He will usually stay after class for as long as it takes to answer any questions you have.

Instructional Assistants

Jen-Shuo Liu (jl5004 [AT] columbia [DOT] edu) is a CS PhD student in the Computer Graphics and User Interfaces Lab. His current research interests include user interface design for augmented reality and virtual reality. He is also interested in most topics in the fields of computer vision and color science. He received his MS and BS degrees from National Taiwan University in 2016 and 2014, respectively. He will hold office hours Thursday 10am–noon in 6LE3 Schapiro CEPSR (212-939-7101).

Sara Samuel (sas2361 [AT] barnard [DOT] edu) is a senior at Barnard College double majoring in Computer Science and English. Her interests include augmented reality, virtual reality, and computer animation.  She will hold office hours Wednesday 2:30pm–4:30pm in 6LE3 Schapiro CEPSR (212-939-7101).


J. LaViola Jr., E. Kruijff, R. McMahan, D. Bowman, and I. Poupyrev. 3D User Interfaces: Theory and Practice, 2nd Edition. Addison-Wesley, Boston, 2017, ISBN-13 978-0-13-403432-4 [required].

D. Schmalstieg and T. Höllerer. Augmented Reality: Principles and Practice. Addison-Wesley, Boston, 2016, ISBN-13 978-0-32-188357-5 [required].

Additional reading material will be announced in the syllabus and in class.

Computing Environment

For those assignments that involve programming, we will use Unity (initially Unity 2018.3, progressing to later versions as the semester unfolds), which supports the development of 3D applications for desktop, hand-held, and head-worn displays. To enable augmented reality, in which the user's perception of the surrounding real world is integrated with geometrically aligned 3D media, we will rely on PTC Vuforia Engine (initially Vuforia 7, but expecting to progress to Vuforia 8), a computer-vision–based software tracking library that is integrated into Unity (and downloaded along with it). Vuforia includes support for Google ARCore and Apple ARKit, which can detect planar surfaces when run on selected Android and iOS devices, respectively.

You will be deploying your apps to your own handheld Android and iOS devices with cameras (smartphones and tablets). You will also have the option of deploying some of your work to Acer Windows Mixed Reality Headsets and Lenovo Mirage Solo with Daydream headsets that we will provide, noting that an Acer headset must be connected to your own computer running Windows and a Lenovo headset runs standalone.

Rules of the Game

You are responsible for all material covered in class and all the assigned reading listed in the syllabus, including any changes or additions announced in class. If you miss a class, please talk to someone who didn't. (Copies of each class's slides will be linked to the syllabus.)

Course material will be found on the web through CourseWorks, and the syllabus and assignments will be linked through

Submission Policy

Each assignment should be submitted electronically through CourseWorks, before the beginning of the class (1:10pm) on the day the assignment is due. If you don't submit an assignment on time, the following lateness policy applies.

Lateness Policy

All assignments are due at 1:10pm on the scheduled due date before, not during or after, class. To make the deadlines more manageable, each student will be allowed four “late days” during the semester for which lateness will not be penalized. However, no late days may be applied to the final project, and only one late day may be applied to the first assignment. Otherwise, your four late days may be used as you see fit.

Anything turned in past the start of class until midnight the next day is one day late. Every (partial) day thereafter that an assignment is late, including weekends and holidays, counts as an additional late day.

Absolutely no late work will be accepted beyond that accounted for by your late days. If you're not done on time, please be sure to turn in whatever you have completed on time to receive partial credit. Now, please go back and read this section over again!

Academic Honesty Policy

Please make sure that you have read the Department of Computer Science Policies and Procedures Regarding Academic Honesty. Collaboration on any assignment (except as an approved part of team projects) is, as in all Columbia courses, strictly prohibited.  Infractions will be reported to the Department of Computer Science Academic Committee and referred to the Deans.

For example, this means that if you use GitHub (or any similar facility) to maintain material for an individual or team assignment, you must use a private repository whose access is appropriately restricted. (Note that the GitHub Student Developer Pack is free for registered students and includes a GitHub plan that allows the creation of an unlimited number of private repositories. However, as of January 2019, this now appears to be the same plan available to anyone for free and is restricted to at most three collaborators on private repositories.)