How to use your iPhone as a VR headset for your cloud gaming rig

Jorge Azevedo
Going Pro
Published in
4 min readDec 1, 2018

Previously in the cloud gaming series we looked at how to play Windows games in stereo 3D by using our standard cloud gaming setup together with Tridef. The immediate follow up question is: is there a way to get headtracking to work?

The answer is yes, kind of! iVRy is an app that makes it possible to use an iPhone as a Steam VR headset. It’s geared towards using a physical PC, but it’s possible to hook it up to a cloud gaming rig. The performance makes it pretty unusable though. The latency is too high and the video quality is too low. But, the app is under active development and performance is improving. Just a few weeks ago support for H.264 shipped and the difference in performance was dramatic. I’m hoping that in the near future, the app will support H.265 and that will push it over the edge.

But, we’re not there yet. So! With the knowledge that this is merely a glimpse into the possible, let’s go!

0. Before you start

You’ll need

  • a working Paperspace P400/moonlight/steam set up as per these instructions.
  • A bluetooth gamepad, as it’s the only practical way to navigate the SteamVR scene
  • A google cardboard style VR headset that works with iPhones

1. Install SteamVR

Use Moonlight on your iPad to remote desktop into your PaperspaceVM. SteamVR is available for installation in your Steam Library, next to all your purchased games. Just install — no need to start it just yet.

2. Install iVRy

iVRy has 2 components: an iPhone app and a PC driver.

Start by installing iVRy from the app store on your iPhone. Open the app and you should see some instructions. On the top right there should be some helpful information including the iPhone’s IP address. Take note of this IP, it will come in handy later!

In the 4th step of the instructions there should be a url for the driver, something like https://tinyurl.com/ivry-hmd-svr. Open this url on your Paperspace VM and it should download an exe like iVRy_SteamVR.exe. Install it and boot Steam VR.

Ups! SteamVR should report that it’s not ready for VR. This is to be expected, let’s fix it.

3.Set up port forwarding on your router

The iVRy server communicates with the iOS app over ports 64206 and 65261. For the connection to work, you’ll need to configure your router to forward TCP communication on these ports to the IP address of your iPhone. Use the IP reported in the app!

4. Manually configure the iVRy driver

iVRy is expecting the PC and the iPhone to be on the same network, so it has a fancy auto-discovery feature that fails in a cloud gaming situation. Luckily, we can manually set the IP of the device in iVRy’s driver configuration file.

Quit SteamVR and open C:\Program Files (x86)\Steam\config\steamvr.settings. It should just read null. Replace it with the following JSON, and change the address property to match your public IP address.

Pro tip: you can easily find our your public IP address by opening whatismyip.com on any device in your network

{
"GpuSpeed" : {
"gpuSpeed0" : 355,
"gpuSpeed1" : 354,
"gpuSpeed2" : 349,
"gpuSpeed3" : 350,
"gpuSpeed4" : 347,
"gpuSpeedCount" : 5,
"gpuSpeedDriver" : "24.21.13.9793",
"gpuSpeedHorsepower" : 351,
"gpuSpeedRenderTargetScale" : 2,
"gpuSpeedVendor" : "NVIDIA Quadro P4000",
"gpuSpeedVersion" : 2
},
"driver_ivry" : {
"address" : "xx.xxx.xxx.xx",
"cardboardParams" : "CgASDkRlc3RlayAyMDE2IHYzHc3MTD0luB6FPSoQAABIQgAASEIAAEhCAABIQlgANQrXIz06CArXI7wK1yM8UABgAA==",
"driverMode" : 1
},
"steamvr" : {
"installID" : "xxxxxxxxxx",
"mirrorViewGeometry" : "0 0 990 468",
"supersampleScale" : 2
}
}

Make sure iVRy is open on your iPhone and boot SteamVR again. You should see iVRy come to life!

iPhone view
iPad remote desktop view (detail)

You’ll need to run the Room Setup in SteamVR, and after that’s finished you should be dropped in the main SteamVR room.

5. Tweaks and known issues

First off, iVRy only streams the image and handles headtracking. Use Moonlight on your iPad to stream audio and handle the bluetooth gamepad.

You’ll immediately notice that performance is not great. Use the settings on the iVRy app to tweak the wifi settings. Make sure to select H.264 as the Frame Encoder, try different resolutions and max bitrates to find the sweet spot.

You might find it difficult to get the gamepad to work. Test it with Steam Big Picture. If you can use your gamepad to navigate the menus there, then it’s a SteamVR configuration problem. I got mine to work by unchecking everything in the “Controller Settings” page on big picture.

Lastly, every VR headset is different. I recommend you download the app Sites in VR and work through its configuration to find out what settings like interpupillary distance are ideal for your case. The app will produce a standard google cardboard QR code, which you can then scan from iVRy. It makes a huge difference for a scene to be rendered in a way that’s ideal for your headset.

--

--