This is an interview with Asad Naweed about augmented reality.

I met Asad at CppCon in 2019 when he asked some questions at one of the presentations I also attended. We started talking at first about teaching coding. He has taught others how to code through education programs at Google. I especially liked his business card that I recognized immediately as being related to Google Cardboard. You can find more information at https://vr.google.com/cardboard

I asked him to come on the podcast to talk to you about augmented reality.

If you’d like to improve your coding skills so that you can apply augmented reality in your code, then browse the recommended books and resources at the Resources page. You can find all my favorite books and resources at this page to help you create better software designs.

Listen to the episode for more details or read the summary below.


What is augmented reality?

Augmented reality, or AR for short, puts a layer over the physical world so you can use your smart phone to view additional information or images.

The initial version of Pokemon Go loses the illusion of reality when you move around. This might be changing with more advanced versions that can anchor the images in the real world.

Can you walk around and view images from behind?

Augmented reality is inherently 3D, so, yes you should be able to do this. The application needs to be aware of anchor points and planes and use modern libraries.

What about shadows and lighting in an augmented reality scene?

A lot depends on the inertial measurement unit on your phone. Asad works with technology that will let you estimate where the light is coming from and create realistic looking experiences. He’s also working to lower the bar so that developers can come up with realistic images easily.

How easy is it to use a Google library instead of writing something yourself?

Motion tracking is a big part of this. It’s challenging to keep track of 6 degrees of freedom and has taken years of research to get this working.

We still rely on the developers to specify where the anchor points will be located. The future has even more advances that will help.

Google makes it easy for developers to use Unity and C#. Other options are to use Java or the C API. C++ developers can use the C API. There’s feature parity between all the APIs so you can do the same things with each of the APIs.

What types of skills are needed to get into 3D augmented reality?

Asad recommends using Android and having a solid knowledge of 3D math, such as matrix math and transformations. That’s because we’re dealing with 6 degrees of freedom, rigid body transformations, and animations.

CppCon is an awesome experience that’s not just for advanced programmers. The conference is very beginner friendly. Also check out the #include C++ channel on Discord.