Statonwest / VR_Ambilight

The VR Ambilight enhances VR immersion with dynamic ambient lighting synchronized to on-screen content.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction

The VR Ambilight is a project that enhances the immersive experience of virtual reality (VR) by creating dynamic ambient lighting that synchronizes with the on-screen content. This guide will walk you through the process of building your own VR Ambilight system.

V1

It performs exceptionally well for games that feature vibrant colors, like Beat Saber.

Features

Dynamic ambient lighting synchronized with VR content.

Adjustable color and brightness settings.

Support for Valve Index.

Materials

Arduino Nano

WS2812b Individually Addressable led Strip 144Pixels/m

Soldering equipment

Defusion sheet


Alternative 3D printed diffuser:

Clear filament

Paper

Glue

Wiring Diagram

Ensure that the LED strip you are using operates at a voltage of 5V. Wiring Digram Typically, for larger LED strip setups, it would require a separate power supply unit (PSU). However, in this case, the number of LEDs is small enough to be powered directly from the Arduino board itself.

Arduino Setup

Download and install the Arduino IDE from the official Arduino website (https://www.arduino.cc/en/software).

Install the FastLED libruary.

Clone or download the project files from the GitHub repository: VR_Ambient_light.ino

The original repository can be found here. adalight.ino

Building the VR Ambilight

Cut two LED strips, each with 9 LEDs.

Solder the two individual strips together using wire lengths that are long enough to route around to each side of the face gasket.

Leds

Connect the data line, GND, and the 5V of the LED strip to the Arduino. Connect the DIN (data input) pin of the LED strip to digital pin 6 on the Arduino.

Double-check all the connections to ensure they are secure.

Position the LED strip on the sides of your face gasket, ensuring an even distribution of light. Refer to the image below for reference:

Face Gasket wireing

Choose a wire routing method that works best for you. I opted to route the wires from underneath and over the top of the gasket, but there are other possible arrangements. Adjust your Prismatik settings accordingly to match your wire placement.

Mount the Arduino Nano securely at the front of the index. Connect the Arduino Nano to the USB port for power and data transmission.

Arduino mounted

Diffusion Sheet

Cut out the diffusion sheet using the provided Diffusion Template. I used an old display's diffusion and polarizing sheets.

Obtain two polarizing layers and place them parallel to each other. On top of these layers, position the diffusion sheet for optimal results. The order of arrangement should be as follows: "Vertical polarizing filter," "Horizontal polarizing filter," and "Diffusion Sheet."

Cut the tab off the middle sheet and hold all the layers together by using a small amount of tape along the edges.

Fold the tab and secure it with a dab of hot glue. Please note that the diffusion sheet may not easily stick to the glue, so scuff it up a bit before applying the adhesive. Diffusion Sheet Ex

The bent tab provides a bit of "spring" action, allowing the filter to move along with the lenses to accommodate different IPDs

Screen Capture

Prismatik serves as the primary software solution for our guild's needs, although there are several alternative options available, such as Firefly Luciferin. Firefly is recognized for its lower computational resource requirements.

The software is used for screen content capture and data transmission to the Arduino.

Launch Prismatik and go through the initial setup process. Follow the on-screen instructions to configure the display settings. Prismatik settings

Configure the output settings to match your Arduino connection. Select the correct COM port corresponding to the Arduino Nano.

Adjust any additional settings in Prismatik according to your preferences, such as brightness (e.g. 10%), and capture area (e.g. Screen 1).

Steam VR / Auto Launch

Open Steam VR and choose the option "Display VR View" to enable viewing through both eyes.

Next, download the file Auto_Launch.bat and ensure it is placed in the identical directory as Steam VR. Usually, this directory can be found at "C:\Program Files (x86)\Steam\steamapps\common\SteamVR".

Make sure that the locations of both Prismatik and Steam VR installations are consistent.

Finally, include the following Launch Option in Steam VR: "Auto_Launch.bat %COMMAND%".

Alternative 3D printed diffuser

The 3D printed diffuser version was designed to provide better color-depth and ease of maintenance.

Both an STL and a Step file have been provided for printing and modification. Mirror the diffuser for the left side.

Parts

The diffusers are held in place by the face gasket and silicone membrane around the lenses. Parts assembled

Instead of mounting the LEDs to the face gasket, they are instead glued to the headset, pushed up against the edge on each side. Alternative LED mounting

Glue more layers of paper onto the outside of the 3D print for more diffusion and light reduction. This example uses 2 layers of paper, allowing Prismatik to run at 50% brightness or 7 bits worth of color depth, resulting in less flashing. Diffuser example

Notes for the 3D print in example:

  • Filament: Clear ABS

  • Extrusion width: 0.86 (0.6 nozzle)

  • Layer height: 0.16 (smaller layers recommended to avoid layers concentrating light into lines)

  • Temperature: Below manufacturer recommendation for a matte finish

To do

  • Better diffusion

  • Better Mount for arduino

  • Auto close screen capture with Steam VR

About

The VR Ambilight enhances VR immersion with dynamic ambient lighting synchronized to on-screen content.

License:GNU General Public License v3.0


Languages

Language:C++ 98.1%Language:Batchfile 1.9%