HMD & Other Gear

Hi all,

I was wondering if there’s a good resource you can point me to that talks about the logistics of using HMDs, trackers, and other “VR gear”. I know nothing about the hardware side of VR, and would be interested in setting up a small rig to see how things work. I’d like to know about what options exist and how they work together. (To clarify, I’m not currently looking for any sort of help in interfacing Panda with them, although that is the ultimate goal. I’d just like to know what sort of hardware options exist first.)


HMDs are easy: they’re just unusual monitors. Sometimes, they show up as dual monitors. Either way, it’s a VGA hookup.

Motion trackers are another story. The only one I have personal experience with is the Polhemus Liberty magnetic system. They provide you with a very large USB peripheral, the motion tracker. They also provide you with a driver and a library of subroutines to fetch data.

It would theoretically have been possible for me to hack this library directly into panda, but according to local tradition, I used an interface layer called VRPN. The vrpn server calls the polhemus library to fetch data, and then serves it up on a TCP/IP port. Panda connects to the vrpn server via TCP/IP, and fetches the data, which it applies to a nodepath.

The panda code to contact a VRPN server was already written. I had to hack the VRPN server to make it read from the polhemus liberty library.

Thanks for the quick reply Josh. So how would multiple inputs work together? For instance, in a FPS type environment, I would imagine the following setup:

  • HMD
  • Tracker on HMD for head turning
  • Joystick for backward/forward movement (or is there a better way to do this?)

Would the joystick or other control device have to connect through VRPN too since Panda gets positioning data from there?

Also, the reason I mention a joystick is because the target audience will not be able to use their feet (as I get the impression is an option using more trackers).

You can think of the VRPN server as just another peripheral. We use joysticks, mice, the motion trackers, and so forth all at the same time.