Problem
Augmented reality (AR) applications sense the environment, then render virtual objects on human senses. Examples include smartphone applications that annotate storefronts with reviews and XBox Kinect games that show ``avatars'' mimicking human movements. No current OS has special support for such applications.
Approach
As a result, permissions for AR applications are necessarily coarse-grained: applications must ask for access to raw sensor feeds, such as video and audio. These raw feeds expose significant additional information beyond what applications need, including sensitive information such as the user's location, face, or surroundings. Instead of exposing raw sensor data to applications directly, we introduce a new OS abstraction: the recognizer.
Results
A recognizer takes raw sensor data as input and exposes higher-level objects, such as a skeleton or a face, to applications. We propose afine-grained permission system where applications request permissions at the granularity of recognizer objects. We analyze $87$ shipping AR applications and find that a set of four core recognizers covers almost all current apps. We also introduce privacy goggles, a visualization of sensitive data exposed to an application. Surveys of $950$ people establish a clear ``privacy ordering" over recognizers and demonstrate that privacy goggles are effective at communicating application capabilities.