Monday Musings: Teaching VR & AR Development

Random Musings ,Virtual Reality
November 2, 2015

Welcome to Monday Musings! These are are shorter-form, note-like blog posts that I share that may or may not be related to VR/AR, but that I want to share some quick thoughts on, get some extra insight on, or share out quickly.

One of my favorite parts of my job is teaching VR development and helping students get excited and learning about the principles of immersive computing. I often get people asking about how they can get started, or how they can help others get started, so I figured today’s Monday Musing post was a good time to share some of my thoughts and experiences from the past year.

I have written briefly before about my experiences teaching virtual reality development in Germany, but that experience was a little different than my usual opportunities in that I had the ability to work on a week-long course rather than a shorter form workshop. Generally, I give talks on Introductory VR development that are 45 minutes to an hour, but content scaling has to change depending on what a given experience calls for. That said, I’ve found some helpful tips that may help you if you’re called on to teach some aspiring VR developers!

Always begin with an overview

In developer communities, the definition of ‘introduction’ or ‘beginner’ may vary depending on context – it can be a little bit tricky to figure out the collective skill level of a group of people, so it’s always helpful to start with an overview. If you’re giving a presentation to or teaching a group of developers who don’t have any graphics experience, several minutes reviewing the principles of graphics programming and 3D space are helpful. Developers who have experience building games may not need this content, so it’s just important to know your audience and roll with their comfort level around tooling. That said, in any introduction to VR course or workshop, you should cover the basics of the ecosystem and tooling, and at least cover the following:

  • Desktop vs. mobile VR
  • The basics of an HMD
  • The tooling options: Unity, Unreal, native, etc.

Tailor content to the time frame

One of the most important things with teaching virtual and augmented reality development is making sure that you’re not trying to overfill the time. I don’t do hands-on workshops if I don’t have at least three hours to cover the material. There are several factors for this decision, but it’s primarily around the fact that the tooling system isn’t standard and there’s a lot of variation in how people have development machines set up. Someone always forgets to install the SDK or has the wrong runtime executable, and you’ll also need to account for the range of experience in a given group of people. If I have 3 hours to teach VR development, I’ll probably spend at least one of those going through the content that focuses on the overview, the environment, and showing sample code. Time blocks that I’ve found work nicely:

  • < 30 minutes: Usually better to keep presentations this length to conceptual talks or overviews rather than going into technical implementations and details unless your target audience is already very familiar with virtual and augmented reality technologies
  • 30 minutes – 1.5 hrs: Good for lecture-style talks and presentations around virtual reality, either generalized development overviews or diving into specific areas with VR
  • 1.5 – 3 hrs: This amount of time is great for a development workshop where you are able present at a pace that is friendly for developers to follow along and are covering a very specific topic. Depending on the size of the workshop, it’s good to have a second person who can help on the floor while presentations are going on to keep people from falling behind
  • 3+ hrs: Best for open-ended workshops for building projects – usually good to start with a template if the audience is mainly experienced developers new to VR

Err on the side of too many details

This might be an unnecessary step depending on your target audience, but when I’m doing a longer form workshop, I like to do a pretty in depth example of the code for the target application. It can be helpful to do a quick runthrough of the application that you’re planning to build before breaking it down into individual components, but again – you’ll want to tailor this to your specific audience. If I’m showcasing a tool like Vizor, I want to make sure that I spend a little bit of time walking through the basics before expecting the group to immediately follow along.

Installation environments & dev kits

If you’re going to be teaching a workshop style event where participants are expected to build on their own hardware, make sure to communicate the prerequisites ahead of time. Take into consideration that you may have people with different platforms and plan accordingly. I tend to use the Cardboard SDK + Unity for teaching VR development principles, since it can build for iOS and Android phones and doesn’t require a standalone headset, but if you do expect to be working with or targeting a particular device, you’ll want to make sure to specify which runtimes to use and which versions of the SDK you’re working with.

As I’ve written about a little before, I love WebVR when working with JavaScript developers or if I have the freedom to teach a longer series of courses. The boilerplate code from Boris Smus, paired with the simplicity of web editing tools (I like Visual Studio Code) makes it a good choice to do overviews and get started quickly – consider whether that’s an option for your audience.

Final Thoughts & Resources

There is a growing need for developer mentorships in virtual and augmented reality, and getting new developers excited about VR is one of the best parts of my job. If you’re a developer looking for more content that might help you plan or organize your own VR workshops or talk, the course website for my summer VR intro class can be found here (though I’ll warn you it’s not the prettiest site!)

I can’t wait to see what you come up with!

-L

 

 

Related Posts

Leave a Reply