iLoch
Joined 13 years ago
Joined 13 years ago
I think it's interesting to ask people who are educated in China what they think about the Tiananmen Square Massacre. For instance, what do they think about this photo? https://i.imgur.com/0zAQqAO.png
Though, this line of questioning may be met with hostility. So I suppose you could ask them why they're angry about evidence of a massacre of their own people.
What's new, really? This is just another data point people are willingly handing over for Facebook to sell as per the terms of service.
The user experience --------------
HoloLens is mesmerizing. I'm not big into VR or anything, and will often make the arguement that VR hype will die out and is a fad. But there's something very different about what Microsoft is doing. The ability to incorporate reality as a first class citizen in your 3D applications (or vice versa) is groundbreaking. People often complain about the FOV when they first try it out, and I had the same complaint, but your brain is able to compensate once it gets used to it, and then you stop noticing it. That's something you don't get from a short trial of it at a tech demo. The user inputs are indeed very clumsy still. We'll need vast improvements in this area before HoloLens can feel immersive. But the amazing thing is that this first pass isn't that bad. It can track your hands and it's a computer that sits on your head. I mean, come on! I'm only 22 and even I think that's amazing.
The developer experience ------------------------
One of the major short comings of HoloLens development is its dependency on Unity. C# isn't the problem. I love C# and use it daily now for web development. The problem is Unity uses .NET 2.0, and good luck finding C# libraries that are compatible. So for every new thing you want to do, you're going to have to find a "Unity compatible" C# library, which is very annoying.
Unity will work for what you need most of the time, but it turns out if you want to try something custom (like your own gestures) then you're out of luck, because the Unity APIs are limited in that way.
I suppose I'm mostly just not a fan of Unity's component model. Constantly switching between adjusting settings in the IDE and coding feels like a bad way of developing.
Okay, so maybe you want to try something a little lower level. Microsoft offers a C++ API as well, and for the most part this is what you want if you need to harness the limited power of the HoloLens. I haven't played around with all of the APIs, but I know of one in particular that left a bad taste in my mouth (this applies to Unity too) -- the spatial anchor API. For those of you who are unfamiliar, the spatial anchor API is the only way to acquire a durable and persistent reference to a real world location. This is done (I think) with sensor data (orientation, lighting, and images captured by the 4 on board spatial mapping cameras.) This is really an incredible feat of engineering, however it produces a binary which is around 15MB. Far too large to store in a database at scale. I'd like to see MS open up raw access to those sensors so middleware developers can try their hand at improving this aspect of HoloLens.
If C++ isn't your thing, there's a library called HoloJS. You guessed it, it's a JS runtime for HoloLens with access to native libs. I actually started my own variation on this (called HolographicJS) before Microsoft released theirs, but I'm happy they've taken over.
The future ----------
So what does this all mean for a device that seemly has its share of problems to overcome? Well, after trying it I'm fairly confident that MR as Microsoft calls it, is here to stay. The ability to mix reality with virtual reality, and augment that with a layer of environmental understanding is really incredible. I think we're just scratching the surface of the possiblities.
HoloLens is the first in a new field of devices that I believe will come to replace all forms of computers we currently use: phones, laptops, desktops, tablets, etc. Even things like IOT devices. Why spend time building your own interfaces when you can just augment the users'?
If v2 had better FOV and improved input tracking, I'd consider it a major success. But if it also included improved spatial mapping and a reliable GPS, that could bring us into a whole new world, quite literally.
The way I see it, the first company to solve outdoor use of an MR device, and solve what I'm calling the "universal spatial map" problem, will run the world of tomorrow.
Imagine every machine being capable of interfacing with you without the need for a screen or separate device. Imagine walking down the street, gesturing to a restaurant and placing an order before you even get inside.
Further down the line. What if we could transfer consciousness out of a dying car crash survivor into a computer. What if that person could then be virtually transferred back to the scene of the accident, to be greeted by those who are augmented.
Anyway, that's all crazy futurism; but the point is that reality starts with what is being done with HoloLens, and I think it's an incredible thing to be a part of.
To me, HoloLens feels like the Apple II.
Seems like a silly conclusion
I do think VR devices will live a short life and die off. VR (in the form of a single purpose device) doesn't really have a place once a device can provide both augmentation and a totally virtual experience. I don't think we're far away from that.
Certainly what we'll see is a uptake in MR devices. I suspect future iterations of HoloLens and other MR devices will bring forth a desire to experience and incorporate MR. Some businesses are already jumping on the opportunity, but in my opinion the technology isn't quite there. In the case of HoloLens, it's clear it still lacks a real understanding of intuitive input.
I think one of the big mistakes people make when considering new UX patterns in 3D space is that not everything is designed for 3D space. And conversely, not everything designed for 2D interfaces works in 3D. You can't just move your app to VR. Certainly you'd think it would be rather strange if a restaurant provided its menu as a stack of blocks. Some interfaces are indeed better suited for 2D, so for that reason I believe there is a place for some 2D interfaces in a mixed reality future.
The other big mistake I've found people make is the idea that in order for something to have great UX, it should mimic real life. Perhaps this is true in some cases, and if you're building a product that's designed to mimic real life then that's probably the best choice. But new experiences will undoubtedly emerge (more often than not, I suspect), experiences which are foreign in concept to us now because its simply not possible in our physical world, and that will be a real test for UX experts out there.
One thing we will need to focus on is understanding what it means for an interaction to be discoverable. A lot of people seem to think voice is intuitive, but I don't think that could be further from the truth unless you've got a general intelligence to talk to. No one thinks automated answering systems are user friendly. Even with general intelligence it can be hard to put your intention into words when it comes time to "take an action."
Personally I think the optimal solution for these types of interfaces will be a mixture of context awareness and neural impulses. If I can look at a TV, and the device can see what I'm looking at (on board camera also sees a TV) then it has an understanding of what actions I might be interested in performing. At that point it can show options in 2D above the TV or however you want to lay it out. I'd then be able to look at the option I want (device tracks pupils and knows with accuracy what I'm looking at) and think about touching it. This impulse acts as an "invoke" action on the current thing I'm focused on.
If this stuff becomes possible, then that's about as low friction as I can think of without interfacing with the brain. Will be be there in 5 years? Hard to say. I'd be willing to bet we might have something that gets us partly or mostly there, and may have to be tethered to a secondary device like a phone for additional processing.