VR HMD

SandboxWorldHero.jpg

Developing a Custom Eye-Tracking HMD

Jan 2014

 

I built a custom virtual reality headset to further my understanding of VR technology. It supported 3-dof movement using an IMU and had integrated IR cameras for eye tracking.

Custom 3D-Printed VR HMD

I decided it would be fun to build a custom virtual reality headset. I based the design on the Socket HMD reference from USC’s MxR Lab. The headset uses an  imported a Chinese LCD and and IMU. The tracking tech layer interfaces with Unity.

TheBox.jpg

Duct Tape Prototype

Look at all of that tape! That’s how you know it’s good.

SandboxWorldStacked.jpg

Eye Tracking

Side-mounted IR cameras + lights capture the user’s eye movement at 120hz.

AroundTheBox.jpg

3D-Printed Enclosure

It actually looked pretty nice before all the tape.

The Process

Inspired by Palmer Luckey’s work, I decided to develop a Socket HMD implementation of my own.

With only minor tweaks, I printed the enclosure in PLA using a Replicator 2. Then, I mounted the lenses and attached the IMU and LCD. Finally, attached the ski goggle frame.

Once the hardware was in place, I read the tracking data using an Arduino and piped it into Unity.

In Unity, I recycled a lens distortion shader and wrote a simple test app. It worked!

Finally, I attached the IR cameras and lights inside the HMD and started reading frames using openFrameworks. While I got basic glint tracking working, I never got it to perfectly line up with the position in the HMD.

I had a lot of fun playing with this project and it taught me quite a bit about VR. Mostly, I gained even more respect for the folks building cutting edge VR hardware. It isn’t easy!

Keywords: Virtual Reality, Hardware, Arduino, Unity, IMU, Eye Tracking, openFrameworks, C++

Matt Sonic