Expanding the Peripheral View of Oculus Rift




Introduction: Expanding the Peripheral View of Oculus Rift

About: "Magic is just science we don't understand yet." Let's face the obvious: yesterday we were nerds, today we're the cognitive elite. Let's conquer. Religion is what happens when people can't just accept "We'...

Lets remove the black tunnel.

TODO> add milky plexiglass cover to act as diffusion

Step 1: Introduction

This Instructable is how to easily and fast recreate the basic idea behind the concept put forward by Robert Xiao, Carnegie Mellon University and Hrvoje Benko, Microsoft Research.

The idea is to have controllable light sources fill in the blank within the headset on the outside part of the lenses so the field of view is perceived as enlarged. No more tunnel effect of narrow field of view.

To get started you will need two rings with addressable rgb leds. This instructable will use ws2812 chipset of LEDs. You can get them from all over the place. Adafruit, ebay, or http://www.banggood.com/New-LED-Ring-24-x-WS2812-5...

You will also need a Arduino, I used Arduino Nano as its smaller and more manageable than the big one, but any will do.

And thats it for needed parts.

Step 2: Connecting the Parts

Red wire is 5V

Black is GND

Green is Signal. Each ring has IN and OUT. First ring is connected to Arduino via pin 12 to IN and its OUT is connected to second rings IN.

Depending from which vendor you buy your rings they could have pins all close to each other (useful) or apart as I have them (harder to organize cables)

Step 3: Code

There are a bunch of tutorials how to program arduino so I will assume you know how to do it or are capable of finding out.

Code is a variation of Adafruit Ambilight changed to work with FastLED library which enables use of what ever led chipset you will use.

Code can be found on pastebin and was uploaded by.... Guest so no ability to give credit where credit is due.

Change the variable #define NUM_LEDS94 to #define NUM_LEDS48 as we have 48 leds on two 24 led rings.

Upload the code to Arduino and thats it for hardware.

Step 4: Software

Now, we need a way to send information to the rings.

I used AmbiBox. But you could use original Adafruit Adalight code for Processing. But AmbiBox is simpler and I used it for years.

Click on Inteligent backlight display and then on "More Settings" (above Exit).

Select Device > Adalight

Select port to which arduino is connected.

Change Number of zones to 48. And if colors are wrong, change the Order of colors.

Now, you can start playing with lights.

In the Mode: select [Software] Screen Capture, then select Show Areas of capture

Step 5: Setting Up Screen Capture Areas

Once you click Show areas of capture an overlay will show on
screen where you can setup your zones for each of 48 leds. Click and drag to move the areas. When dragging the corresponding led is lit so you can see what led will be affected. You can turn on and off areas as well as resize them. I turned off leds that are on the inside of the lenses as in research paper.

Most games, at least the ones that I tried had somewhat uniform screen size so you set up your areas once.

The AmbiBox also allows you to save profiles so you can create profiles for each games you play.

Once you are satisfied with your areas click hide areas of capture and you are set.

Step 6: Conclusion

What is left is to jam the rings in the headset the best way you can.

This was a fast and dirty hack to get a result similar to
the one described in research. It works fine. One thing that still needs to be done is to add plexiglass cover over the ring as diffusor.

First Time Author Contest 2016

Participated in the
First Time Author Contest 2016

Be the First to Share


    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020
    • Maps Challenge

      Maps Challenge

    4 Discussions


    4 years ago

    Thank you so much for this tutorial! I've just ordered an arduino, for the LED Part i'll try with short strips with ws2812 controller. Thats also because this specific ring cant be ordered in germany for an acceptable price.


    4 years ago

    Thanks for sharing this project!