Augmented Reality
I developed and taught this course on augmented reality. It covers topics such as tracking, visual coherence, interaction, and applications. Unity and Vuforia Engine are used for programming projects. I emphasize hands-on work, and have the students work during class to complete lab assignments, usually one per week. Students also do more involved programming assignments, and an independent final project of their own choosing.
Topics
Introduction to augmented reality, Unity, and Vuforia
Displays and transformations
Image targets and natural features
Tracking and SLAM
Sounds, animations
Visual coherence: lighting, shadows, occlusions
Situated visualization
Interaction techniques
Physics simulation
Plane finding
Modeling and annotations
Example Class Assignments
Coherent Rendering
This shows correct occlusions and shadows between real and virtual objects.
Physics
This app allows the user to manipulate virtual objects, and have the virtual objects physically interact with each other and with real objects.
Interaction
This app demonstrates annotating (or "tagging") an object with pointers and labels.
Example Final Projects
AR Framing
Evan Lim created a smart phone app called AR Framing. AR Framing is an interactive 3D modeling program to create and visualize a frame design for a house or barn. It allows a person to create a life size version of the framing of a structure so that they can walk through it pre-construction. The app provides a “computer assist” feature to allow snapping to rotation and scale.
Magic Leap Simulated Drone Swarm Controller
Joss Chapman created this app which runs on the Magic Leap AR headset. It is an app to control a simulated drone swarm. The drones have logic to avoid hitting each other and to avoid hitting obstacles in the real world environment. In addition, when part or all of a drone moves behind something, as determined by the spatial map, it is rendered as an orange wireframe instead of as a full solid object. This, in conjunction with stereo vision, clearly shows the user where the object is, while still showing that it is behind something.
