So it's been a personal project of mine to get Roomscale VR going without purchasing a VR headset since, well, it's expensive. This has been hit and miss, but I wanted to update my progress so far.
Step 1 - Seeing is Believing.
VR isn't VR without being able to see what you are doing. Since the headsets are the main cost factor here, I needed an alternate solution. This came in the form of the various methods of using cellphones as a screen. There were a few options I could go down. Since I have a S7 as a phone, my options were Google Cardboard, Proprietary apps with headsets, and Occulus's own Gear VR. I was originally going to head down the Proprietary app road, but after I found a S7 Gear VR headset going for $20 on TradeMe, I picked up one of those. This both helped and hindered me. The headset is the nicer option out of them all, and it has it's own app ecosystem, but for it to be able to use all the buttons on the Headset itself, it hijacks the microUSB port on it. This will be an issue later.
Step 2 - Tricking Steam
Since SteamVR is pretty open as a platform, people have been developing various means of getting 3rd party headsets working on it. For cellphone related methods however, there was originally only one way of getting it working. Riftcat was a paid software with a free trial that I used for a while, and it did work, tricking SteamVR into thinking there was a headset. However, this came with the problem of how to get the signal to the phone in the first place. Since the Gear VR uses the MicroUSB port, it removed USB streaming as an option, so it had to be over WiFi, and Riftcat only let you change the 'Quality' of the stream. This meant you had to deal with a highly compressed signal, or face dropped frames, and the only option to customize the quality of the stream was the arbitrary 'Quality' slider. This is where the project stagnated for some time until I discovered the open source app "ALVR" which not only gave you full control over bitrate, resolution, and buffer size, but also emulated controllers. I managed to get an acceptable quality stream at 2k resolution, with dropped frames just being skipped rather than being forced into other frames. The only other problem that this setup has is that it doesn't do full 6DoF for the headset. I can only give it movement in terms of left/right, up/down and rotation, while full VR allows for movement towards and away. This is where this project sits now. However, I have found a solution....
Step 3 - Kinecting it all together.
So I recently came across an article about how people were using the Kinect as a full body motion controller for SteamVR using 'Driver4VR'. While the use case they provided was full body tracking in VRChat, it could also be used for Controller-Free play of Beat Saber. Another interesting feature is that it could also provide tracking information for your head, and use that as the headset position. This seems like the next logical step to take this project, and only requires an adapter for the Kinect to the PC. Tracking lag could be an issue here, as well as how do I then emulate controller inputs? My best bet is using a couple of PS4 controllers, as they have rotation sensors and a touchpad, but it remains to be seen if it will play nice with them. The PSMove controllers are also apparently supported, and they can be 'emulated' by sticking an LED into a pingpong ball for the camera to pick up, so that's another option to head down.