© 2019 Strange Loop
Building Augmented Reality (AR) systems is a software engineering art. It requires making choices among a set of trade-offs. On one hand, you have complex computer vision and machine learning algorithms that burn many CPU cycles; and on the other hand, you have the conflicting goal of getting the system to be as lean as possible since AR runs on resource-limited hardware such as wearables or mobile devices. This talk will explore how designing AR software is very much like the problem of designing distributed systems.
Like distributed systems, in AR: - We also need highly concurrent systems to take advantage of the many cores in cellphones. Concepts like message queues and "producers-consumers" become valuable tools to reason about computation abstractions on images and sensor data. - We also need highly available systems with an instant response due to the requirement of real-time interactions from the users with AR experiences. - We also need caching mechanisms to enable data locality for AR data retrieval.
Diana currently leads AR engineering at Niantic. Previously, she was the Cofounder and CTO of Escher Reality, a startup that was acquired by Niantic. Escher Reality builds the backend for Augmented Reality applications. In the past, Diana led data science teams to bring research projects into products for cloud television at Intel and Verizon Labs. She holds seven patents in computer vision and machine learning.