XR Development Tools
Macbook Pro and Bootcamp
I nearly left the goodship Apple when they seemed incapable of releasing a laptop that was an actual worthwhile upgrade from my previous model. They redeemed themselves at the 11th hour upon release of the Macbook Pro 16,1 in 2019.
I’d already spent a decent amount of time researching Windows based machines but ultimately I didn’t really want to switch. I have a lot of investment in the Apple ecosystem and my audio production work still leans very much towards Mac. That meant compromise as the 3D and XR world is still very much in Windows land with the Apple GPU profile not really targeting 3D and gaming. In addition, Oculus don’t support OS X with their Rift or Link software and whilst the Steam gaming platform will run, they dropped support for SteamVR on OS X.
My compromise was to buy the Mac, start my XR work on that platform and see how far it takes me. My fallback options are to add an eGPU, dual boot the machine in Windows via Bootcamp or ultimately, consider a Windows desktop or gaming laptop later down the line if required.
That served me well enough for a while but I eventually had cause to reconsider. I attended an online course on ImmersAV for audiovisual art with Bryan Dunphy at the London Music Hackspace. It’s an impressive looking toolkit or custom engine that allows parameter mapping between raymarched OpenGL graphics and the Csound DSP audio engine via a C++ interface. The results can be previewed locally in 2D dev mode and deployed to a SteamVR compatible headset using OpenVR. Whilst I was able to build and test the codebase on my Macbook, I was unable to run on my Quest due to the lack of Oculus Link compatibility.
The second nail in the coffin was hammered in by working on a prototype where I wanted to explore mapping light and sound in Unity using real time synthesis, rather than sample based audio - think something along the lines of Anthony McCall’s Line Describing a Cone, but with live DSP. The subtle tweaks I needed to make to the synthesizer parameter mapping required constant previewing and adjusting so the offline build and deploy process to target my Quest was laborious and unmanageable. I bit the bullet and decided to dual boot my Macbook with Windows. This would allow me to hard link the laptop to Unity via an Oculus Link cable and do previewing directly from within Unity itself.
The Windows install process via Bootcamp was straightforward enough, but I quickly found myself to be very inept at navigating around Windows due to the muscle memory I have for OS X. I added a few tools to make it more Mac-like and make switching between the two operating systems less painful.
After Unity itself, the first thing I installed was Git (for Windows). This comes with the _incredibly_useful Git Bash application which gives you a familiar CLI to work with. So far I haven’t needed another terminal utility. Next I installed Trackpad++ to tame the Macbook trackpad and scrolling. I then installed Sharp Keys but writing this post sometime afterwards I can’t seem to get that app to open so I’m not entirely sure if I used it! I think I likely just remapped the Ctrl and Windows keys on my Apple Keyboard in the Registry so I could use the CMD key as Windows Ctrl key which is what I’d distinctively try and hit. I definitely did use the Microsoft Power Toys utility to remap some of my common keyboard OS X shortcuts. I enabled PowerToys run with Ctrl/Cmd + Space which opens a quick launcher, similar to Spotlight on OS X - the way I tend to open everything. Next I mapped some keyboard shortcuts:
Now that I could sensibly navigate my way around the Windows environment I installed the Oculus Link software so I could enable Link on my device and have a more immediate development flow in Unity :)
I have a suspicion this all might be another stepping stone towards having a dedicated Windows desktop or laptop for XR work but I’ll see how far this next iteration takes me first!
Image Credit: Installation view of Anthony McCall: Split Second at Sean Kelly, New York / Photography: Jason Wyche, New York.
Published on 19 Oct 2021