Maybe you’ve played AR games like Pokemon Go, or tried out a VR headset, but do you know what it takes to build AR and VR products? As AR and VR become more ubiquitous in gaming, education, and healthcare, the need for AR and VR engineers who can build these products is likely to increase. In this guide to AR and VR, Carrie Ybay, a Software Engineer for Holberton School’s AR/VR curriculum, explains the difference between AR vs VR, what technologies you need to build AR/VR products, what sort of companies hire AR/VR engineers, and how to get started in AR and VR!
Most people are familiar with the concept of Virtual Reality (VR), which involves wearing a headset and essentially placing yourself in a digital space separate from actual reality. VR is most well-known in terms of video games and entertainment, but it's also used in:
On the other hand, Augmented Reality (AR) is viewing and interacting with digital content placed in your physical space. The most well-known AR application is probably Pokemon Go, but AR is also used in:
If it helps, think of VR as The Matrix, and AR as the really cool 3D-overlays-in-the-real-world tech you see in the Iron Man movies.
VR has been around for decades with the earliest VR head-mounted display created in the late 60s. Up until the 90s, VR technology was primarily used in sectors involved with flight simulation, military training, and medical usage, but the 90s saw the start of using VR hardware in gaming with Nintendo's Virtual Boy and Sega's VR-1. These early VR experiences were limited by the technology of the time and didn’t really catch on, and most of the 00s were relatively quiet in terms of growth in the industry. Only in recent years has VR hardware become more accessible for consumers, most notably with PSVR, Oculus, and Vive.
Like VR, AR also got its start in the late 60s, but the term "augmented reality" wasn’t coined until the 90s. Just like VR, AR was primarily used for simulation and training purposes, as well as in the manufacturing industry. In the late 00s, advertising and marketing companies found value in creating AR campaigns. As with VR hardware, advances have been made in wearable AR technology such as Google Glass and Microsoft HoloLens, though wearable AR tech has yet to reach mainstream adoption with consumers.
Common technologies used to build AR and VR applications are:
There are several SDKs (software development kits) available depending on the target device and purpose of the application. Here are some examples:
AR and VR jobs are available in a variety of different industries including:
According to Statista.com, the AR and VR markets are projected to increase exponentially within the next ten years. As the accessibility and prevalence of AR and VR hardware increases, more industries will adopt ways to utilize this technology, much in the way that industries targeted mobile phones as they became more ubiquitous. Even now, the potential audience for AR apps and products is enormous because nearly every smartphone is AR-capable, and just as there was a boom for mobile app developers, that's on the horizon for AR and VR developers as well.
Basic programming skills are a must – at Holberton, students learn the fundamentals in their first year and can choose AR/VR in their second year. Beyond that, working knowledge of geometry, 3D space, and linear algebra is especially helpful. Depending on what aspect of AR or VR a developer wants to get involved with can help you focus as the field is very expansive right now, and it can be helpful to know non-programming skills such as 3D modeling or sound design as well.
AR/VR is a rapidly growing industry, and job opportunities in this space are only going to increase as the technology and hardware become more accessible. Few schools teach AR/VR, and Holberton aims to train engineers who can fill the available jobs that will inevitably arise. We also offer several other specializations including Machine Learning and Low-Level specializations. Check out our Pathways page to see our latest specializations.
We use C# and Unity3D as our main development tools, and students will utilize ARCore, ARKit, and Vuforia in AR projects and a variety of VR SDKs like Oculus SDK, OpenVR, and Google VR. Since the AR/VR industries are evolving so rapidly, the technology we use today may not be the industry standard six months from now. It's important for us to touch upon what's available now but focus towards keeping students flexible and able to learn new technology instead of specializing in one development stack.
The AR/VR curriculum track includes:
In terms of topics, much of what we cover in our curriculum has a strong emphasis on user interface (UI) and user experience (UX) design. Designing for mixed reality interactivity can be significantly different from designing for 2D / screen interactions and creating effective, intuitive interactions is paramount for AR/VR. We also cover introductory linear algebra, shader programming, and test-driven development; skills that are critical to long-term success in the AR/VR space.
As the hardware that supports AR and VR becomes even more accessible for consumers, more and more industries and companies will find ways to leverage this new technology. I expect the industry to make leaps and bounds in progress compared to its development in the past. I especially think that AR will be utilized in ways to make our lives more informed, connected, and convenient, and before long, well-designed AR experiences could become the norm for everything from museum visits to sports games to your daily commute, and everything in-between.
My first advice would be to experience as much AR and VR as possible! Download AR and VR apps to your phone, get a cardboard VR headset, and experience it for yourself! Technically speaking, I would also recommend familiarizing yourself with basic linear algebra on Khan Academy and concepts surrounding 3D computer graphics. Both Unity3D and Unreal Engine are free to download and try, and there are a number of excellent tutorials for both that can be found on their official websites as well as developer-created videos on YouTube. You can also reach out to me via email (firstname.lastname@example.org) or Twitter (@hicarrie_)!
Joe Eddy from data science bootcamp Metis breaks down how (and when) to learn Pandas.
Flatiron School instructor Graham Troyer-Joy explains object-oriented programming for beginners!