This is the thirtieth part of the Availability Anywhere series. For your convenience you can find other parts in the table of contents in Part 1 – Connecting to SSH tunnel automatically in Windows
I started my VR journey over 2 years ago to be able to have same office setup wherever I go. I spent tons of money, reorganized my virtual machines, learned dozens of networking protocols and remote-access solutions, tried various hardware (obvious ones like VR goggles and keyboards, and non-obvious ones like portable light sources and air mice emulated with smartwatches), and all of that just to learn that maybe everything I needed was available over a decade ago when Google Cardboard was released. In this post, I briefly summarize my VR journey and explain why a pair of lenses is all you need for office work.
Table of Contents
My journey with specialized solutions and basic web browser
Before I started playing with VR, I was already a big fan of working from remote machines. I didn’t like the idea of having a heavy laptop with loud fans on my desk let alone when traveling. I think it all started around 2010 with Azure when I moved my coding environment from locally hosted VMs to cloud-based ones. I learned SSH, port forwarding, RDP, and other stuff that let me move my IDE to a much more powerful machine and use tiny low-end laptop to still do the work. And then I started going down the rabbit hole.
Standalone VR
When I considered VR for work, I wanted to keep my setup as light as possible. Therefore, PCVR and other heavy-weight solutions that would generate the image locally were a no-go. I wanted to take the VR headset, connect to my remote machine, and carry on as usual. My first setup was just like that – I used vSpatial application to connect to my remote machine and keep rolling.
vSpatial is great, it’s like a VNC on steroids, with audio and camera support. I still use it for many things and I can highly recommend it. However, working directly from the VR headset had few drawbacks.
First and foremost – Quest 3 is based on Android, so all special hotkeys (like ALT+TAB or including WINDOWS key) collide with the system. I played with fancy adapters for keyboard to remap keys over Bluetooth and then remap them back using PowerToys – this solved the problem but was far from perfect.
Second, VR needs some keyboard and mouse. I used Perixx keyboard which is full-sized and has built-in touchpad. I tried other Bluetooth keyboards like this foldable silicon one or this foldable with touchpad, but non was as robust and comfy as the Perixx one. However, carrying another keyboard when travelling is something that I really wanted to avoid.
This pushed me to look for some other approach.
VR with laptop
At some point I realized that I don’t need a remote-access solution per se. All I need is the screen-share solution. Having that configured, the remote work looks much different – I still use my lightweight laptop, but I watch the remote screens using VR headset.
This approach solves the problems with funky keyboards and ALT+TAB-like shortcuts, and I can also ditch the extra keyboard when travelling.
This also lets me use many applications at once. I don’t need to stick with one vSpatial only, but I can use whatever works best, as long as my headset has a decent web browser.
On the go
VR is great. However, it’s bulky. taking it with me when traveling or while walking on the street is not quite comfy. I started exploring some miniaturized solutions that would still work.
So the idea was to find a VR headset that would support decent browser with multiple windows, have a good battery life, and be small enough to really fit the handbag. The closest one I found was INMO Air3, but I passed as I read the battery life isn’t up to the task. So in short, I haven’t yet found a good piece of hardware.
However, since I switched my technical layer to browser-based, I realized that I can really work from any device. And I mean any. I can work from my laptops, tablets, and smartphones (obviously). But I can also work from my TV, overhead projector, smartwatch, gaming console, cooking robot, and Kindle. Yes, I can connect remotely from my cooking robot between cooking meals, and I can work remotely from Kindle e-book reader. I’m quite sure I could also do the same using my car, Android-based photo frame, or even entry phone.
This is great because I can really work from my foldable smartphone. I again researched tons of software and glued things together in HTML, and now I can work from my smartphone as do all the multitasking by opening just a single webpage. I have great screen resolution, access to multiple screens, I can dial into meetings and do GPU-heavy tasks wherever I go.
My day-to-day solution is now a single webpage with tons of iframes. I glue together NoVNC, RustDesk, vdo.ninja, custom RDP client, copyparty, and many other tools. This way, all I need to do is just open a single page and I can get rolling.
And then it hit me.
Cardboard
I had my first Cardboard over 10 years ago, but I never actually found a good use for it. I looked for VNC clients (there was one), browsers that would let me run multiple windows (found one, but things are now abandoned), or other apps that I could use for remote work. Over the years, I just couldn’t find anything that would actually work.
But the I realized, that I don’t need anything special. VR is really simple conceptually – it’s just two screens put very close to your eyes that show the same picture on both. That being said, you don’t need two things. You only need one showing two. In other words: I don’t need a browser to show two windows. I only need one browser showing one window with two (you guessed it) iframes in it. That’s exactly the same setup that I described earlier.
Given that smartphones now have gyroscopes and other fancy hardware, it’s actually quite easy to react to your device moving, as long as you figure out a solution for gimbal lock. Once you have that, all you need to do is build a single webpage with two iframes showing the same content. Each iframe can show another page with multiple VNC clients (to independent screens or machines). You then add scrolling based on your head movement and you have your VR.
The last thing you need is some decent lenses and shell to keep everything tight. These things are often quite cheap (like 20 USD) at the cost of quality, but your mileage may vary. You may also get just the lenses and wire them up any way you wish.
To sum up:
- Get lenses or an entire VR headset
- Build a webpage with gyroscope and conveniently placed iframes with VNC client inside
- Use that with your smartphone
Last but not least, notice that the hardware and software we’re using here has been around for years.
Is Cardboard the ultimate solution?
That being said, is Google Cardboard or Cardboard-like VR glasses the ultimate solution? Well, yes and no.
On one hand, your smartphone is exactly what you need. It supports any browser you like, has decent battery life, supports external devices (think headphones, keyboards, etc.), and you probably have it with you all the time anyway.
However, VR needs a really good screen quality. Quest 3 has ~1200 pixels per inch (ppi), Apple Vision pro is around ~3300 ppi. Your typical smartphone has around 500, and the highest you can get is slightly above 800. That being said, it may be simply not up to the task. It will probably do the job when watching 3D videos on YouTube, but once you spin Excel via VNC on a Full HD remote screen, all you see are blurry lines (unless you zoom in so much that you see 3 rows and 2 columns).
Unfortunately, the Cardboard-like VR boom is now long gone. Doesn’t seem like we’ll be getting a high-end Cardboard-like glasses anymore. If you have your pair around, try it out with your next smartphone to see if it’s good enough. Otherwise, we’ll probably need to wait for yet another generation of standalone VR headsets.