explore visionOS development with Tony from 1984

How About Volumes?

Apple's Developer Center Lobby in Cupertino

The lobby at Apple's Developer Center

Vision Pro Developer Labs

I recently ventured out to The Spaceship in Cupertino (aka Apple Park) for the first time to take part in the Vision Pro Developer Labs. I can't talk about that.

What I can say is that I recommend attending the labs. Especially if you're around one of the cities that hosts labs: You should give it a go. Throw some code together that outlines a concept, apply, and attend. Some tips I can share about the labs:

You learn a lot. I learned a lot.

Shared Space vs. Immersive Space

On a completely unrelated topic: Despite my initial intent, lately I've been reconsidering my determination to have my ARKit-enabled, visionOS version of Float ready for the launch of the Vision Pro (currently expected around March 2024). To use ARKit functionality in a visionOS app you must enter an immersive space – and I'm finding it difficult to build, prototype, and iterate on ARKit visionOS concepts when the simulator lacks any ARKit capabilities.

Dismayed, I decided to revisit the documentation and brush up on some basics. For these first few visionOS projects, what's most important to me is that I build something I find interesting. Secondarily, but also important, it'd be great to build something other people actually use. With that in mind I reviewed the three core visionOS interface elements: windows, volumes, and immersive spaces.

Multiple windows and multiple volumes presented by multiple apps can all be visible and interactable at the same time in what Apple calls the Shared Space. I think of the Shared Space like a typical computer desktop where you have multiple windows open at the same time and you can quickly alt-tab between them.

On the other hand, as soon as a visionOS immersive space (which is required for ARKit) is loaded, all other apps' windows and volumes melt away and the user is single-tasking in one immersive space presented by one app. I think of entering an immersive space somewhat akin to early, pre-multitasking releases of iOS: At any point in time you're only looking at one app's content.

Is the Vision Pro for Multitasking? Single-tasking?

I've had a fundamental question at the back of my mind for months now: How will people use the Vision Pro? Is it going to be primarily a multitasking device that users strap on to jump into various Shared Space setups of floating windows and volumes? Or is it going to be primarily an immersive space device that users put on to enter focused worlds presented by a single app at a time?

I think that's a false dichotomy. I believe the natural answer is it's neither – certain people will never enter immersive spaces, other people will solely enter immersive spaces, most people will lie somewhere inbetween, and aggregate usage will evolve as the platform matures. But the core question remains: How will people use the Vision Pro?

As I've mentioned before, I'm primarily interested in spatial computing concepts. This means I'm biased away from visionOS products that display a 2D app in a window and I'm biased towards volumes and immersive spaces. If I had a Vision Pro right now and I could write some code, push the code to the device to try out seconds later, test my latest changes to see how they interact with the space around me, and then iterate on the code – I'd likely focus exclusively on immersive space apps. Alas, there is no Vision Pro sitting on my desk.

But How About Volumes?

Volumes are the middle-ground of visionOS interface elements. They're definitely 3D. They can coexist alongside windows and volumes created by other apps in the Shared Space. They may be less dynamic and less engaging than a fully immersive space, but that's not a given and likely subjective.

Perhaps most importantly for my next 3+ months before the Vision Pro launches: I'm unaware of anything related to visionOS volumes that is restricted, missing, or inaccessible in the simulator.

I'm unsure what "some new concept that utilizes volumes" means – but baked into not knowing is the fun process of looking at a blank canvas, ideating, and building from scratch. Let's build something that uses a volume!