The Apple Vision Pro

Look, but don't touch

As a multi-platform XR developer, I am not Apple's target audience. With that said, the Apple Vision Pro (or AVP for short) is the first mainstream headset in a long time to genuinely impress me. The spatial anchoring and environment mapping techniques used by the AVP, responsible for keeping virtual objects in place and realistically lit, aren't massive technical breakthroughs; but rather polished and elegant implementations of tried and true techniques - and this approach from Apple is nothing new. With these refined features in play, the Apple Vision Pro has crossed a line in terms of virtual presence and significantly shortened the gap between the augmented and the reality. Unfortunately, Apple's obsession with elegance and polish does not extend to the developer experience.

Before I delve into dramatics, let’s get set up - the headset starts at $3499, and you’ll need a Unity Pro license to be able to access Apple’s packages. That’s an extra $2040 per seat per year, so we’re already out of reach for a good chunk of indie developers, and that’s assuming they already have the hardware running macOS required to compile applications for Apple devices. The hardware setup meets the expectations for such a price point though! It’s not a reach to say that Apple has perfected the unboxing experience and subsequent hardware setup process, and this is no exception in that regard, so let’s talk software and jump into Unity.

Following the provided Unity project and package setup steps is easy, though it’s worth noting that the supported version of Unity is strangely unstable, with frequent crashes and disproportionately long compile times. Even more strangely, it’s one of the few LTS versions incompatible with passthrough on the Quest platform. Even if you were to go through the hassle of linking separate projects on different Unity versions to avoid this, you’d quickly find that Unity’s own XR Interaction Toolkit and XR Hands packages, which were created with the express purpose of standardizing input for things like finger tracking and gesture recognition between different XR devices, have not been extended to support the AVP by either Apple or Unity! With how thin of a wrapper is needed to connect these two systems, it almost feels personal to put the responsibility on the developer. These points make concurrent multi-platform development difficult, but with such a wrapper in place the standard input system is in working order so let’s move on.

Coming from a different hand-tracked platform to the AVP, the first thing you’ll notice is something of a delay between your physical and virtual hands. That may be a bit of an understatement since, as of the most recent version, the latency seems to be in the range of multiple hundreds of milliseconds - enough to be visually strange and haptically disorientating to say the least. That’s more than a few times the amount seen in the competition. If you’re passionate about apps that feel good or games that take skill, you know how much this hurts. But how can I mention pain without touching on the biggest of the AVP’s few hardware flaws?

You’ll be relieved to know that during extensive development or gaming sessions, the AVP will supplement its passive cooling by ramping up the active cooling and bringing outside air into the headset. A quiet and steady flow of fresh ambient air, administered directly into the user’s open eyes. As you can imagine, developing for the AVP stings in more ways than one.

I could go on. Believe me, I could go on, because this is how it feels to develop for the Apple Vision Pro in its current state. It stings, and frustrates, and fails to work intuitively at a shockingly high rate, in a way that feels less like incompetence and more like sabotage. I know the platform will mature over time - and I welcome it with open eyes. It’s much too early to mourn what it could’ve been, and I’d very much like it to be the device that bridges the technology gap and brings ‘spatial computing’ (as Apple likes to call it) into the mainstream via ease of use. Unfortunately user-friendliness is irrelevant when developers are suffering just to get apps into the hands of the users. Speaking as one of those developers: I’m not mad, just disappointed.