Hello, Instructables! Today, I will be showing you how to make your very own DIY Oculus Rift called The Nova!
In this instructable, I will be walking you through the design of The Nova's headset, the build process of said headset, and the head tracking techniques used in order to create the illusion of virtual reality.
Without any further ado, let's get to building!
Hey Instructables! So, it's been almost two years since I first published this instructable. A lot has changed since then! There are now cloned parts and pieces for the official Oculus Development Kit 1 since it was made open-source sometime last year, so you can now use those parts for your DIY Rift.
Keep in mind, however, that there is no guarantee that upon the retail release of the Oculus Rift that the hardware used for this guide will be compatible with the full version of the Oculus Rift software, as this DIY Rift guide uses parts from the Development Kit 1. Some other open source software such as OpenVR may include support, but it may have some compatibility issues anyway.
So keep in mind, this Rift will only work with DK1 and some DK2 Oculus demos!
If you have any questions, the /r/DIYRift subreddit is a great place for community-sourced answers. You could probably get a much faster and more accurate response from there than from me!
Cheers, and have fun!
Step 1: First Things First: Why Go DIY?
Good question! With the Oculus Rift releasing sometime within the next year or so, and plenty of Oculus Rift Development Kits available for sale and preorder, making your own Virtual Reality Headset would seem a bit absurd.
However, there are many reasons why you'd want to make your own:
Y̶o̶u̶ ̶d̶o̶n̶'̶t̶ ̶h̶a̶v̶e̶ ̶t̶o̶ ̶w̶a̶i̶t̶ ̶f̶o̶r̶ ̶t̶h̶e̶ ̶o̶f̶f̶i̶c̶i̶a̶l̶ ̶r̶e̶l̶e̶a̶s̶e̶.̶
L̶e̶t̶'̶s̶ ̶f̶a̶c̶e̶ ̶i̶t̶—̶t̶h̶e̶ ̶O̶c̶u̶l̶u̶s̶ ̶R̶i̶f̶t̶ ̶w̶o̶n̶'̶t̶ ̶g̶e̶t̶ ̶h̶e̶r̶e̶ ̶s̶o̶o̶n̶ ̶e̶n̶o̶u̶g̶h̶.̶ ̶W̶h̶y̶ ̶w̶a̶i̶t̶,̶ ̶w̶h̶e̶n̶ ̶y̶o̶u̶ ̶c̶a̶n̶ ̶m̶a̶k̶e̶ ̶y̶o̶u̶r̶ ̶o̶w̶n̶?̶
- You want to learn more about VR.
The Virtual Reality market is growing at an exponential rate. You can get in on the VR craze and learn a thing or two by building your own VR headset—you could even brainstorm a new VR concept that you can implement into your own VR headset and share with the world.
- You can create your own design that fits your needs.
The Oculus Rift has many great features and looks pretty slick, but what if you could come up with a better design? One that suits your face better, maybe? Or maybe make one in a different color? The sky's the limit: this is YOUR VR headset!
- It's a great weekend project.
The total build time is ~30 hours, including cutting out the pieces, hot gluing everything together, soldering the head tracking LEDs (if you opt for them), and setting up the software. You can start making your own VR headset on a Friday afternoon and be up and running by Sunday afternoon!
- You can make one yourself without being bought out by a sketchy third party
Looking at you, Palmer. I don't blame him though, 2 billion dollars is a lot of money to go into making a high-quality a̶n̶d̶ ̶a̶f̶f̶o̶r̶d̶a̶b̶l̶e̶ VR unit, so maybe things will work out in the end. Until then, you can still make your own VR headset for less than half the cost of a development kit!
Are you convinced yet? Great! Then let's go on to the next step: Parts and Tools!
Step 2: Parts and Tools
Important update 5/1/15:
You can now purchase LCD displays that are spoofed to have the same monitor information as the Oculus Rift DK1. This allows you to use it with the Oculus SDK with barrel warping in official Oculus Rift demos. You can now also purchase official Oculus Rift head trackers, which will allow you to play Oculus Rift DK1 demos with real, plug-and-play headtracking. The parts list has been updated to reflect this new availability.
Here are the parts and tools you will need for this build, separated into categories:
Head-Mounted Display Case:
Forney 55320 Goggles
5x pocket loupe magnifier with Aspheric Lens
$12.95 x2 = $25.90
Oculus Rift Development Kit: $350.00
You can find a spreadsheet of the parts and links to buy each part by clicking this link.
Some notes, as well as some things I forgot to mention:
- You'll need a hot glue gun to put it all together, although you can use pretty much any adhesive of your choice.
- Question: Why do I need lenses?
Answer: Look at the palm of your hand. Currently you are looking at your hand from a comfortable distance, which allows your eyes to focus on the lines and creases of your hand. Now, take the palm of your hand and look at it from roughly 2 inches away. Can you see the lines and other small details of you palms? No. This is because your eyes cannot focus at this length. This is where lenses come in, because they allow you to look at objects with higher detail at a closer distance.
You're going to be putting a screen in front of your eyes at roughly 2 inches away. The lenses allow your eyes to focus on the images on the display at a close distance.
There is no getting around this; you will need lenses, period.
Step 3: Prototyping
Here's the fun part of making the head-mounted display: Designing and Prototyping!
Thankfully, I've already gone through all the boring stuff that went into making the design so you don't have to. You can download the digitally rendered dimensions in a .pdf file below, so all you have to do is print it out and go on to the next step.
However, if you want to know how I arrived at the design, you can keep reading below:
- I wrote down the dimensions of the LCD screen, which was ~16.3cm in width and ~11.2cm in height. I wanted the LCD to fit nice and snug, so I started with a back panel that was just a couple centimeters larger than the actual screen.
- The focus distance of the lens I used is roughly 5cm. With this in mind, I cut out side panels of 5cm.
- In order to finish up the "box" holding the LCD, I had to make a front panel with eye holes and a bridge for the nose. I own a pair of round glasses, which I measured and placed in the center of the front panel and traced out. I made some adjustments so that it could hold the lenses I was using, and then started on a design that forms to the head.
- The HMD needed to be able to block out most of the surrounding lights in order to create a more immersive experience, so I measured about 5cm in order to blind the peripheral vision and added that to the side of the eye panel. I then bent a wire on the surface of my forehead, and cut that part out of both the top panel and the bottom panels
- I then taped all adjacent pieces together, resulting in a total of 7 pieces—the back panel, the two bottom panels, the two side panels, the top panel, and the front eye panel
With the design ready, we can now move on to cutting out the pieces!
Step 4: Cutting Out the Pieces
Now that we've designed out headset, it's time to get down to the real work: Cutting out the pieces!
I taped down all the pieces to the ABS plastic and traced along the outsides using a razor. Since the plastic is black which makes it difficult to see razor cuts, I taped over the cuts with invisible tape in order to see the pieces better (irony, huh?). I then used a hand saw to cut everything out—however, it's likely much easier to cut with a laser if you have a laser cutter available to you.
Note: Use eye protection! No matter how cool you think you are, being blind from some freak plastic-cutting incident isn't cool!
After cutting everything out, you need to sand the edges down. After all, you don't want plastic splinter bits sitting on your face! I used a large and rough sanding tool to get the big chunks of plastic off the edge, and then followed up with a smoother sanding tool to smooth everything down.
Note: You should still be using eye protection! Your eyes do not like plastic dust!
With all the pieces cut out, you can now move on to gluing everything together. Fire up your hot glue gun, we're almost there!
You can also use black foam board instead, which greatly decreases the weight of the unit!
Step 5: Putting the HMD Together:
This step is fairly easy, just hot-glue all the pieces together.
- Start with the back panel. Hot glue the top and side panels to the back panel, and then slide in the eye panel to ensure it fits. If not, trim off a couple of millimeters off until it fits snugly.
- Once you've fitted the eye panel, remove the eye panel and lay down the LCD screen. Hot glue the back of the screen in each of the four corners and place it onto the back panel.
- Wrap the controller board around the back and hot glue it to the back. Thread the cable between the unused parts of the board (the VGA and Video port).
- Hot glue the controller board's switch onto the unit. I chose to place it on the left side.
- Place the lenses inside the eye holes of the eye panel. Make sure they're level with the panel, and then hot glue them in place.
- Remove the visor from the ski goggles if you haven't already. Place the bridge of the ski goggles in-between the two eye holes, and hot glue the goggles into place. Use plenty of hot glue here; you don't want your Nova to fall off your face and possibly break.
- Load up a screenshot of an Oculus Rift demo and place the unit on its back. Slide the eye panel inside the unit and adjust it until it is focused properly, then hot glue it in place.
Step 6: Take a Break!
Congratulations, you now have yourself a 3D Head Mounted Display!
If you adjusted the lenses properly, then you can now watch Side by Side 3D videos and play certain games in 3D!
Here is a roller coaster video you can use to test out the 3D effect:
Also, you can check out this breathtaking video of "The Jump from Space":
Speaking of roller coasters, you can download a roller coaster demo for the Oculus Rift (although without head-tracking) here:
It will likely be in a higher quality than the video above—plus, you have a whole park full of rides to choose from!
Want to watch your own regular or 3D videos in a proper Oculus Rift format? Use Bino to watch your videos in side-by-side mode. It's a free and open source application for Windows, Mac, and Linux. Download it from here: http://bino3d.org/
You can also use your desktop in a 3D space using an application called Ibex. This will allow you to view your desktop as a sort of "window" in a beautiful 3D world so you can use your desktop as normal while wearing your HMD. It's free and open source for Windows, Mac, and Linux. Download it from here: http://hwahba.com/ibex/
Go ahead, show your friends and family! When you come back, we'll go into detail about a very important part of your new VR Headset: Head Tracking.
Step 7: Head Tracking: Why It's So Important
You can completely bypass this step by purchasing an Oculus Rift DK1 head tracker, which will do all the head tracking for you automatically with the same precision as an Oculus Rift DK1. Link
Welcome back! It's time we spoke about something very, very important: Head Tracking. You may think: "Well, I could just use the mouse and be perfectly fine," however, this is meant to be a Virtual Reality headset, not a "Look around with the mouse with the convenience of a 3D display strapped to you face" headset.
If you don't care about any of this and don't feel like reading all of it, then you can proceed to the next step—you won't be missing anything crucial to the build. It's good to know your options though, so read on if you're interested!
So the question here is: "How do we implement head tracking into our VR Headset without breaking the bank?"
There are many ways we can implement head tracking into our device:
- A 3DOF sensor
- An infrared tracker
- An arduino sensor
- An "air mouse"
So, what are the main differences between these methods? First, we'll need to know some basic head-tracking terminology:
Yaw: How far you've turned your head left or right
Pitch: How far you've turned your head up or down
Roll: How far you've rolled your head clockwise or counter-clockwise
X: How far you've moved your head to the left or right
Y: How far you've moved your head up or down
Z: How far you've moved your head towards or away from the screen
Drift: When, after moving the sensor, your original orientation is not the same as when you started
Degrees of Freedom: The extent of which your head is tracked, for instance, 2DOF only tracks yaw and pitch, 3DOF tracks yaw, pitch, and roll, 6DOF tracks yaw, pitch, roll, X, Y, and Z, and so on.
Latency: How quickly your computer takes the motion of your head and sends the signal saying you've moved your head. The lower the latency, the better.
We'll start our evaluation on the pricey side, with the 3DOF sensor. This is mainly in reference to something like the FSM-9 module from Hillcrest Labs.
- Can track your head's yaw, pitch, and roll pretty accurately
- Boasts very low-latency head-tracking capabilities
- Offers plug-and-play capabilities
- Is normally extremely expensive
- Often uses a wired connection
- Can't track the X, Y, and Z position of your head
- Depending on the sensor you buy, drift could easily become a problem
Now, let's look at an alternative: an Arduino sensor. This generally refers to the 9DOF sensor provided by Sparkfun, but can be applicable to the many other kinds of sensors available for Arduino.
- Generally less expensive than a high-quality sensor
- Can be fairly accurate
- Requires adept programming knowledge
- Normally wired, but could be circumvented though bluetooth (at the cost of latency)
- Can't track X, Y, or Z (if you find one, let me know)
- Cheap IMUs could be less accurate and have more drift depending on the model
And thirdly, we have something called an "air mouse." I personally have never used one before, so I'm not aware of all the pros and cons. For the sake of this list, we're going to include all devices in this category that use gyroscopes to track mouse position, which includes air mice, iPhones/Andoid phones, Wiimotes,Playstation Move controllers, and the Razor Hydra.
- Less expensive than previous options
- Plug-and-play capability (for the most part, compared to Arduino)
- Depending on your controller's API you can map the motions to actual Oculus Rift output through opentrack or FreePIE
- Big and bulky; you may not want to strap a phone or a remote to your head
- Depending on the device, latency could be an issue
- Drift on some devices is common and fairly noticeable
- May require some programming knowledge for certain functions (Example: Using the PS Move API for gyroscopic mouse movement)
- For certain devices (such as the air mouse), roll, X, Y, and Z positioning is not tracked.
Now, for the least expensive and least time-consuming method:
- Far less expensive than a 3DOF sensor
- Can track yaw, pitch, roll, AND the X, Y, and Z position of your head.
- Wireless and powered by batteries, which means one less thing you have to plug into your lovely face
- No matter what your setup is, latency can be fairly high, which can cause motion sickness
- You can only turn your head a certain distance before the camera loses track of the LEDs.
- Losing track of an LED could cause the tracker to freak out, interfering with the experience and potentially causing motion sickness
- The lighting in the room needs to be just right, or the tracker will pick up a stray beam of light and swing your view in a completely different direction than intended.
So then, what should you use for head-tracking? It all depends on how much you're willing to spend. How valuable is head-tracking quality to you? You can sacrifice latency and accuracy for the sake of staying within your budget, but it depends—some people don't mind the latency at all, while others get motion sickness from it.
Since I'm a broke college student and don't feel like spending all of my money, I'll be showing you step-by-step how to set up a 3-point infrared head tracking system. Let's get on with it, then!
Step 8: Wiring and Mounting a 3-point Head Tracking System
This part can be a bit tricky if you've never done any kind of LED work before. The amount of wiring can also make this step confusing, but if you've never done this before, don't worry! Just follow these steps, and with the help of the instructables below, you'll be done in no time!
First, we'll need to diffuse the LEDs. This is because while the LEDs are viewed from the front, they're bright, but are nowhere nearly as bright when viewed from the side. Diffusing the LED allows for even lighting when viewed from any angle. If you want to know more about how to diffuse an LED, click here to go to an instructable on how to do so. All you have to do is run some sandpaper along the surface of the LED until it looks cloudy all over, and then you can move on to soldering the LEDs together.
Next, we'll have to solder some wires together. You can follow the simple schematic above in case you get lost or confused. If you don't know how to solder wires together, click here to go to an instructable on how to do so. It's a lot simpler than you think—just dab some solder on your soldering iron, twist the wires together, place the soldering iron on the wire, and then run the solder along the exposed copper. Remember, the long wire of the LED is the positive side, and the shorter wire is the negative side!
Once you've soldered the LEDs together, you'll need to find a place to mount the battery pack. Since the HMD is already fairly heavy, I decided to hot glue it to the headband.
You can check to see if your LED system works by aiming your phone's camera toward the LEDs and flipping the on switch. If they show up as bright white light, then congratulations, you've finished your head tracking system!
Now, we need to remove the infrared filter from the PS Eye.
Step 9: Removing the PS Eye Infrared Filter:
The photos here do not belong to me, the belong to Code Laboratories. They did a much better job of showing you how to remove the IR filter than I ever could—follow the link below for a walkthrough of how to remove the IR filter directly on the Code Laboratories website:
Before you can use the PS Eye for IR tracking, you will need to remove the IR filter. Even when I was using the super-bright IR LEDs, the IR filter on the PS Eye was still too strong for any actual IR tracking. This is where removing the IR filter comes in.
This will permanently damage the picture quality of your PS Eye. If you intend on using your PS Eye for anything other than IR tracking (such as for the PS Move or use as a webcam), you should buy a separate PS Eye for this step.
Here are the steps you should take toward removing the IR filter of the PS Eye:
- Remove the four screws along the back.
- Gently pry open the case. It will be difficult to remove, so be careful when separating the two parts of the case.
- Once the PS Eye is open, unscrew the four screws on the lower half of the circuit. Do not unscrew the top screws, those hold the microphone in place.
- Once the circuit board is freed from the PS Eye case, look on the side of the board opposite from the lens for two screws. Unscrew those two screws, and the lens should fall right off.
- Look inside the lens and you'll see the IR filter. Use a small philips head screwdriver or an X-Acto knife to cut out the IR filter. The filter is heat pressed in, so it should take too much effort to remove.
- With the IR filter removed, you can now start putting it back together. Follow the steps in reverse to put the PS Eye back together.
If you need any additional help, you can follow the video guide below:
Now that the IR filter is removed, we can now move on to setting up the software for 3D and head tracking!
Step 10: Setting Up the Software:
Now we're ready to play some games!
Keep in mind that this step is a general how-to guide and that each game has its own settings that need to be adjusted prior to loading each game. This is not a plug-and-play deal—you will need to adjust the settings on your own to fit your game!
That being said, let's go on to install the software.
First, let's install the PS Eye driver:
- Download the driver from here: http://codelaboratories.com/products/eye/driver/
- Install the driver from the .exe you downloaded. Accept any warnings about it being an unsigned driver.
- Once installed, test out your PS Eye by clicking on the CL Eye Test shortcut on your desktop. If you can see your beautiful mug from the PS Eye's camera, then you're good to go!
- If for some reason it does not work, please search the CL Eye forums for an answer. You can also try reinstalling the drivers, which works almost every time.
Next, let's set up FaceTrackNoIR:
- Download FaceTrackNoIR here: http://facetracknoir.sourceforge.net/home/default....
- Install FaceTrackNoIR from the setup .exe you downloaded.
- Once installed, you'll need to download the point tracker plugin from here: http://ftnoirpt.sourceforge.net/
- Install the point tracker plugin using the .exe you downloaded.
- Once installed, open FaceTrackNoIR. Set your webcam as the PS Eye, set the plugin to "Point Tracker," set the game protocol to "Mouse Look," and hit "Start." You should see a video feed from your PS Eye.
- Turn on your head tracking unit. If FaceTrackNoIR picks up the three LEDs and is moving your mouse around, then congratulations, you are now set up with FaceTrackNoIR!
- You can now fine-tune the settings for FaceTrackNoIR to your preferences. Refer to the image above for an example of what settings you can use.
- You are now ready to use your IR head tracking unit for mouse emulation!
Now, let's install the Minecrift mod:
- Purchase and/or download Minecraft from the official Minecraft website: https://minecraft.net/
- Once installed, create a profile called "Minecrift" and run Minecraft version 1.6.4 at least once.
- After you run 1.6.4 at least once, close out of Minecraft and download the Minecrift mod from here: http://www.mtbs3d.com/phpbb/viewtopic.php?f=142&t=...
- Run the installer after you've downloaded it. Click the "OK" button to install Minecrift. It should tell you that you've successfully installed Minecrift.
- Go back into the Minecraft launcher and open up the Minecrift profile. Select the executable with the name something like: "minecrift 1.6.4 noForge noHydra" and hit save.
- Start Minecraft. If successful, you'll be greeted with a menu and a button to turn VR mode on. Turn VR mode on, and play around with the settings until your eyes are comfortable.
- Congratulations, you're ready to play Minecraft in VR mode!
If you are using a cloned DK1 Head Tracking unit, follow these steps:
- Download the Oculus SDK and Runtime 0.4.4 Beta for your platform:
- Run the included installers
- Done! Plug it in, and it should pick up as an Oculus Rift DK1, granted you have both a DK1 head tracking unit and a properly spoofed EDID monitor attached.
Last, we'll install the Vireio driver:
- Vireio is a free driver that displays certain DirectX9, DX10, and DX11 applications in Side-By-Side 3D. You will need this driver to play other games in 3D, such as Skyrim or Left 4 Dead.
- Download the driver from the Vireio website here: http://vire.io/
- Install Vireio from the .exe you downloaded.
- Once installed, you should see an application called "Perception.exe." Run this application.
- Select your viewing method. Generally, you can choose either Oculus Rift or DIY Rift since they both work almost the same way, but you can also use Side By Side mode as well if the other two don't suit your needs.
- Select a head tracking method. We'll leave it as "None", since FaceTrackNoIR is already handling the mouse look protocol.
- Run your game. If it's supported by Vireio, then the game will open up in your selected display format!
- Congratulations, you're ready to play your game in VR mode!
Step 11: Done!
Congratulations, you have officially built your very own Virtual reality headset!
So, what can you do?
- Show it off to friends and family
- Play video games and watch videos in full stereoscopic 3D
- Improve the design of the Head Mounted Display to make it lighter or more comfortable
- Optimize head tracking settings to reduce latency
- Upgrade the screen to a higher resolution to reduce the "screen door" effect
- Look into other head-tracking options such as the 3DOF sensor
The beauty of a DIY VR Headset is you can modify and improve it as much as you want, because you know exactly how you made it! I'll be setting aside a small budget for improvements in the future, so when I find something that I can implement into The Nova, I can take it apart and make it better.
Step 12: Updates and Improvements:
This step is a placeholder for any updates and/or improvements made in the future. As new technologies arise, more affordable options will become available, and when they do, I will definitely improve the Nova!
Check back every couple months or so, you might be surprised what new updates you'll find!
Instructable Update 1.0.1
- Fixed some typos and wrong word usage
- Added a link to an instructable on how to make your own Arduino head tracker, courtesy of Instructables user millmore.
- Added a link to Bino, a free 3D video player software for head-mounted displays.
Instructable Update 1.0.2
- Updated the "Updates and Improvements" step to include the new design of the Nova
- Attached the new cutout guide
- Added a link to Ibex, a free and open-source desktop viewer for Rift-like devices
Instructable Update 1.0.3
- Added a link to the goggles I used in the new Nova
- Added a link to the wireless air/fly mouse I used in the new Nova
- Fixed some confusing wording to make the "Updates and Improvements" step easier to understand
Instructable Update 1.0.4
- Shamelessly promoted my DIY Rift subreddit, /r/DIYRift, at the end
- Fixed the revised template to include the part that replaces the filter on the flat-visor goggles
- Explained why you need lenses in the Notes section of the "Parts and Tools" step
Instructable Update 1.0.5
- Changed the intro video to the first episode of DIY Rift Gaming to better reflect the state of the current Nova
- Added a warning about using the lenses I initially used
- Won first place in the Sensors contest! Woo!
Instructable Update 2.0
- Thanks to the recent open-sourcing of the Oculus Rift DK1's internals and schematics, cloned parts are now easily accessible and available to purchase from overseas via eBay. Threw out the old parts list and added a cloned DK1 monitor and head tracking unit to the parts list to avoid confusion.
- Updated total price to reflect the sum of the newly available parts.
- Changed formatting of parts list and added links so that users can click directly on the links to the parts from the instructable without going to the Google Docs parts list.
- Updated the Google Docs parts list.
- Added second video in DIY Rift Gaming series in the first step
- Changed some wording on some of the steps and added more information.
Headset Update v 2.0
- Completely took apart the old Nova
- Designed new housing for LCD screen to fit the visor of the welding goggles
- Cut out new pieces out of the ABS plastic to reflect the new design
- Melted together small strips of ABS plastic along the edges for greater impact resistance
- Removed visor from welding goggles. Cut out a custom visor that could hold the lenses in place of the visor.
- Hot glued controller board to bottom of the HMD. Controls are now on the right side of the HMD.
- Replaced original welding goggles strap with the strap from the ski goggles
Removed entire infrared LED setup in lieu of a wireless air mouse, hot glued to the top of the HMD.
After finishing the initial design, I decided that I could probably do a much better job. After researching some different designs, I decided to take apart the Nova entirely and start from scratch. The new design allows for the use of a set of flat-visor welding goggles (You can buy them from here) to be attached and offers a much lighter design than the previous one. The welding goggles completely block out outside light and conform to the face much better than the ski goggles, and they have air vents to prevent the lenses from fogging up. They also have a flat visor which can be switched out with my custom-made visor, which holds the two 5x loupe lenses. This means that the display can be detached from the lenses for any reason, such as removing dust from the screen. The lens are now much closer to each other in the visor, which meant I had to set up a divider inside the case to alleviate cross-talk between the two images. Cross-talk is where you see part of the image meant to be seen by your right eye in the image you're supposed to see in your left eye, and vice-versa. The divider was made by cutting out a piece of cardboard, painting it black, and then taping it to the edge of the visor where the lens slide in to hold it in place. The IR tracking setup from before worked well, but had some glaring flaws that I felt could be fixed with a new head tracking system. So I decided to do something different this time and ordered a cheap air mouse (You can buy the one I used here, but I'd recommend getting a better and more accurate model than I did). I hot glued the PCB of the air mouse to the top of the Head Mounted Display, which means all you have to do is hold your head at a regular position, turn on the air mouse, and you can now move the mouse (and subsequently, the game's view) with your head. It works well, but has some drift that can be adjusted manually with the mouse.
Want to find more DIY Rift projects like this one and share your build on Reddit? Come over to /r/DIYRift and share your builds and ideas!