Tuesday, May 23, 2017

DeveloLens 1 - Introduction

HoloLens Development Impressions




The inspiration for the DeveloLens blog series came from my finding a lack of practical examples of how to utilize HoloLens abilities despite the wealth of functionality provided for it. I am not a professional blogger, but wanted to help others getting into this space. HoloToolkit-Unity is a great project that was put out there for all AR developers wanting to kick it into next gear. My goal is to provide some practical examples for others to see how easy it is to use. I welcome any and all feedback.


Background


In November my company, Illumination Works, purchased a few Development Edition HoloLenses. Being the most experienced with Microsoft development and Azure technologies, I was asked to familiarize myself with the device and development experience. 

I found that there is information out there for us when it comes to basics like setup, understanding what the HoloLens does conceptually, and "Hello World" examples. But there are not as many resources to get you from there to Young Conker. The good news is Microsoft has given us a really great lever for HoloLens functionality, the bad news is many will reinvent the wheel before they uncover these hidden artifacts. This is my "holo brain-dump", which will hopefully prevent a holographic arrow to the knee.


Install the moving target


If you have the device already, then you're familiar with the Install the tools page MS put up for us. This will get you going, but there are new versions of these tools coming out regularly. Even with all the stars aligned, there's a lot of monkeys throwing wrenches here. Maybe you're a wizard with requirements, but just in case you're a mere mortal like myself I wanted to share a few caveats.

The Emulator


If you don't have the device, this is pretty important piece to have. Even if you do, it's pretty handy when you're just trying to debug your application. If it's not deploying correctly from Visual Studio, then luckily you get to learn a lot more about the Hyper-V Windows feature that the emulators use. The unfortunate reality is, "run as admin" or not,  I still get this half the time:
But the other half of the time it's a very convenient feature.  

Having my environment on a company issued machine, and being on my company's network added a few kinks. So if possible, I recommend a dedicated machine that's without network admin concerns. The same kind of trouble comes with deploying to the actual device, as it's a breeze on my home network but Visual Studio never finds my device on the office network and I have to connect through USB.

The Windows 10 SDK

The hurdle that took me the longest time to figure out was the Windows 10 SDK versioning mismatch. When you log into your shiny new HoloLens, it wants to start updating, and you want it to start updating. But keep on eye on the sdk versions installed in the installation of Visual Studio you will be deploying with.

HoloToolkit


From here on out I'm going to assume you know Unity and can deploy a floating cube or maybe some Origami to your emulator or device. You're ready to have everyone think you're a wizard because you've mastered spatial mapping, and can make the HoloLens say their name. Welcome to the HoloToolkit.


Academy and HoloToolkit


The Academy lessons by Microsoft are helpful in understanding the capabilities of the HoloLens device. People come to the device with some extreme over-estimations of what it can do, so it's good to watch these videos and get a grasp of what it's actually doing. 

The problem I encountered was when I delved into the coding sections. They introduce you to the fantastic work being done by Microsoft developers called HoloToolkit, unfortunately they introduce you to what it was in November 2016. Much of toolkit has changed since then, for the better I might add. But this is a problem for beginners like me who didn't have much else to draw from.

HoloToolkit & HoloToolkit-Unity


Which one do you need to get started with? You can develop a HoloLens application without Unity, and that is where HoloToolkit comes into play. I assume it's for anyone wanting to build with a platform other than Unity, or some wizard who can visualize 3D objects through code and wants to build only in Visual Studio. 

But luckily for mortals and wizards alike, there is HoloToolkit-Unity. When you look at the two projects, you can see there is a lot more functionality and related examples here. It's comforting to see this big project with a lot of active development going on, but you have to stay up to date with all of this content if you want to use the latest and greatest.

Developing with HoloToolkit-Unity 


What is it and how do I use it? That's what the rest of this series is for. When you read the overviews in GitHub it can come off as daunting, you can quickly fall into a rabbit hole of descriptions with no practical application. Keep coming back to learn more about what you can do with this great project.


DeveloLens 2 - HoloToolkit-Unity init >>

1 comment:

  1. Some wizard. Hehe. Firstly, thank you for putting this out there. Nextly, I wanted to put this somewhere:
    I found that doing the Origami tutorial was helpful in learning the development environment, but I had some unexpected errors while trying to build to Windows Store in Unity. This was due to needing to be logged in to my Unity account and to have my project set up with Unity Services through my login Unity Services ID. If that helps somebody, then great. Keep sharing your adventures in hololand, brother.

    ReplyDelete