Building an app for HoloLens
Incidentally, HoloLens is a completely self-contained computer. It doesn't require any connection to a PC to work. You only need to hook it up to a PC with a micro-USB cable to upload apps to it. When it's connected like this, you can also manage the device via a web-based UI running on port 10080 – to stop, restart, and delete running apps, for example, or to check for error codes when something goes wrong with the hardware. But the processors that run your code and generate the holograms are all contained within the headset itself. It needs no outside help.
Once we had a few holograms on our virtual stage, the demo staff had us add new features to our app in phases. First we added physics to some of the objects, for example, so that they would fall when we clicked on them. Later we made it possible to position the objects in different locations around the room using the gaze cursor. Each step was fairly straightforward and required nothing more than importing a few pre-built assets. And while the code was pre-written for us, the syntax we were shown was straightforward.
One of the more interesting steps in the process was adding spatial awareness to our app, so that our holograms also knew something about the real, physical world. Clicking a box in our Unity project allowed us to see the world the way HoloLens sees it, as a mesh of polygons that wraps around physical objects.
As mentioned, the demo reps wouldn't tell us what sensors HoloLens uses to determine what's around it, but this mesh was no pre-built spatial map. Microsoft hadn't scanned the room ahead of time and imported the data into HoloLens. It was all generated by the headset itself, in real time. The mesh would even wrap around people as they moved in and out of the scene.
Clicking another button in the Unity project let us make the mesh invisible to our eyes, but holograms still interacted with it. With this spatial awareness enabled, for example, objects that we made fall from mid-air would no longer keep falling into infinity. Now they would drop to the floor and roll around there, bouncing back from any objects they bumped into along the way. It was a neat trick.
So what's it good for?
That's the impression we were left with after the demo, though. Is there really anything more to HoloLens than a bunch of neat tricks?
For a portable device like HoloLens to generate the faux-holographic 3D visuals it does with such clarity and fidelity is definitely impressive. You don't realize how many micro-movements your head makes each second until you see the way the HoloLens gaze cursor bounces and wobbles around the scene with each tiny motion of your neck. And yet the holograms remain completely stationary, occasionally offering only the barest perception of flicker.
And yet, for now it's all mostly just a gimmick. The current generation of the HoloLens hardware and software simply does not offer the kind of immersive visual experience that would make possible any of the lofty goals that HoloLens headman Alex Kipman talked about during his Build keynote.
It's hard to see a surgeon learning a new procedure while peering through a tiny window to see the virtual patient, for example. Placing virtual objects around your apartment is pretty pointless when you can't see one that's sitting on the arm of your chair without turning your head to look directly at it. And the "anatomy lesson" app that was demoed onstage at Build seems much less impressive once you realize that an actual HoloLens can't display a hologram the size of a human body without you bobbing your head up and down.
Our demo app was also simplistic in the extreme. The 3D graphics were primitive, looking nothing like modern videogames. The opportunities for interaction were limited. Forget what you see in the promotional videos; Minority Report-style UIs are beyond the capabilities of this version of HoloLens. Clicking on things with the gaze cursor was awkward. Voice commands are comparable to what you can do with modern smartphones today.
Will Microsoft improve upon all of these things? Most assuredly. Will it be able to improve them to the point that HoloLens becomes a useful technology that people will want for their homes and workplaces? That's less clear. As Microsoft learned with Kinect – another Kipman creation – just because you build it doesn't mean customers will see the value.
Little wonder, then, that Redmond doesn't want people taking pictures or shooting video of HoloLens in action. The software giant doesn't want you thinking too much about the practicalities of wearing a honking big visor over your face, waving your hands about, and barking commands into midair. Just think about all of the neat things you could do with it if you had it.
That is, if it really existed. ®