FaceFocusVR
Offline Version
This document is an exported copy of the online instructions. For interactive pictures, videos, and the latest updates, please use the website. This PDF is a backup in case the website is unavailable or you have no internet access.
If you need help, join our Discord (facefocusvr.com/discord).
What you should know before you install your FaceFocusVR kit.
Installing the kit is mostly straightforward. It takes about one to two hours if you follow the steps carefully and at your own pace. There is no need to rush.
This guide shows the method I have found to be the most reliable and the easiest. If you find a better way while installing, for example a different cable routing, feel free to use it. Still, I strongly recommend following my instructions exactly as written, especially the first time.
The FaceFocusVR board is the heart of your kit. It connects all cameras, LEDs, and the fan. Before you start, take a moment to get to know each connector and what it is for.
Camera Connectors
The three wide connectors are for the camera ribbon cables: Eye Right and Eye Left at the top, Face at the bottom. The eye cameras sit in the eye modules, which mount around your headset lenses. The face camera sits in the face module.
LED Connectors
The three small connectors along the bottom edge are for the infrared LEDs: Eye R and Eye L on the right, Face on the left. The LEDs make tracking work even in complete darkness.
Fan and Power Button
The fan header at the top powers the cooling fan. The power button plugs into the connector on the right side.
USB
You can use the extra USB port on the front of the board for accessories such as a Bluetooth dongle. Its power is limited, though, so I do not recommend using it.
How to install the FaceFocusVR kit in your Valve Index.
Only needed if you use VROptiker prescription lens inserts. You move the lenses from their holders into the new eye modules from this kit.
Video: https://www.youtube.com/watch?v=_L7_H5s50D8&t=45s
Part 1: Remove the existing lens inserts
Take your current prescription inserts out of their holder. The video shows how.
Part 2: Install the lenses in the new eye modules
The eye modules do not need to be in the headset for this. It is easiest to do it in your hands. Use the original holder as a reference: look at how each lens is oriented and how the holder keeps it in place. Then click each lens into the matching eye module, in the press order shown in the pictures.
1. Place the lower (sharper) corner of the lens into the eye module first.
2. Press the outer edge of the lens into the eye module until you hear it click into place.
3. Press the top of the lens into the eye module until you hear it click into place.
Once both lenses are in, gently push against the back of each lens to set it in its final position. Check that it stays in place.
Adjust a few settings and remove the detachable parts.
Source: ifixit.com
Take off the face gasket bezel so you can reach the inside of the headset.
Source: ifixit.com
Carefully detach the eye tube gasket with tweezers.
Source: ifixit.com
Take off the front cover and the motherboard cover to reach the inside of the headset.
Source: ifixit.com
From here on, the work gets more delicate because you are handling ribbon cables. Take your time!
In the next four steps, you install the two eye modules for eye tracking. Each eye module contains a camera and a circuit board with LEDs that light up your eye.
It is often easier to work toward a goal you can see. That is why the pictures show what your setup should look like after steps 5 to 8.
In step 5, you route the left ribbon cable through the headset. In step 6, you do the same on the right side. In steps 7 and 8, you route the LED cables.
At the end, four cables should come out of the front of your Index, exactly as shown.
Guide the left ribbon cable through the headset so it comes out at the front.
The ribbon cable goes behind the plastic part marked in blue. It comes out through the small hole where light shines through, along the orange arrow in the first picture.
If it is hard to guide the cable through the hole or to see it, place a light in front of the headset. Then you can clearly see where the cable should come out.
The last picture shows where the ribbon cable should come out. With enough light and some patience, it is quite easy to guide the cable through the hole.
Once the cable is through, gently press the eye module onto the lens to keep it in place.
Now repeat step 5 for the right side.
Again, the ribbon cable goes behind the plastic part marked in blue. It comes out through the small hole where light shines through, along the orange arrow in the first picture.
The last picture shows where the ribbon cable should come out.
Once the cable is through, gently press the eye module onto the lens to hold it in place.
Route the left LED cable along the same path as in step 5.
Now that both camera ribbon cables are in place, route the left LED cable along the same path as in step 5.
You may need to lift the eye module slightly off the lens to get the cable through. Be careful not to let the camera ribbon cable slip out while you do this.
Connect the LED cable to the eye module. Then press the eye module back onto the lens and gently pull the excess cable out at the front.
Route the right LED cable along the same path as in step 6.
Now repeat step 7 for the right side: route the right LED cable along the same path as in step 6.
Again, you may need to lift the eye module slightly off the lens to get the cable through. Be careful not to let the camera ribbon cable slip out while you do this.
Connect the LED cable to the eye module. Then press the eye module back onto the lens and gently pull the excess cable out at the front.
With all cables routed, reattach the eye tube gasket.
Source: ifixit.com
Now reattach the face gasket bezel.
Source: ifixit.com
To keep the left ribbon cable from getting caught in the fan, route it through a specific gap.
Route the cables through the new frunk and attach it to the headset.
Read the whole step before you start!
This step takes some patience and care, because the cables tend to stand up or shift out of position.
It sometimes helps to pre-bend the cables slightly, as shown in the picture. Then they fall into the right position more easily during installation.
When you attach the frunk, make sure the cables run roughly as shown in the pictures. The exact routing is not critical, but it is very important that they are not pinched or sharply bent.
Pay special attention to the right cable near the USB port. In my experience, it tends to stand up in front of the connector. The cable should run away from the USB port, not in front of it.
You should not feel much resistance when you put the new frunk in place. If you have to force it down, a ribbon cable is probably pinched, most likely the right one (seen from the front of the Index).
The cables should stick out about 1 cm past the edge of the frunk, so you can connect them easily later. The exact length is not critical, as long as there is enough cable to plug them in comfortably.
Before you tighten the screws, make sure no ribbon cable has moved into the path of a screw (see step 11).
Carefully insert the board into the USB connector and secure it.
Connect the ribbon cables, the LED connectors, and the fan.
Before you close everything up, compare your connectors with these reference pictures. A connector that is not fully seated is the most common reason why a camera does not show up later.
Camera (ribbon) cables: The left side of the picture shows how it should not look. Push the ribbon cable all the way into the connector, so that no gold contacts are visible anymore. Also check that the locking tabs are pressed down fully, with no gap left.
LED connectors: As described in step 14, insert each connector straight and the right way around. They need very little force to seat, so do not force them. Compare them with the pictures and make sure they are fully seated.
Attach the new front cover with the face module and the power button.
Route the ribbon cable through the holder and mount the arm to finish the installation.
Your hardware installation is complete. Follow the steps below to check that everything works.
To test everything, power on your Index and switch on your new hardware with the button on the front. A blue LED on the board should light up. You can see it through the top ventilation slots above the power button.
Next, open the Device Manager. If it lists three camera devices, as shown in the picture, the board is working correctly. If you only see two, turn the system off and on again once. Sometimes Windows or the USB connection does not set up all devices on the first try.
Now open the Windows Camera app and switch between all three video streams. If that works: congratulations, your hardware is installed and working correctly.
Now continue with the software part.
Set up the tracking software on your PC.
This project is about the hardware. Your PC sees the three cameras (Eye L, Eye R, Face) as standard UVC webcam streams. Any software that can process a webcam stream will work.
Popular tracking software includes ETVR, Ryan's Eye Tracking, and Project Babble. All of them work with this hardware. I recommend Baballonia by Project Babble for the best results and ease of use, but feel free to try others.
This guide shows how to set up Baballonia.
VRCFT works as a translator for VRChat. It takes the face and eye tracking data from Baballonia and turns it into parameters that VRChat understands. That way, your avatar's expressions and movements follow yours.
To use face tracking (and eye tracking) in VRChat, you need VRCFT, whether you use my hardware or any other face tracking solution.
Baballonia analyzes the camera streams of your eyes and face. From them, it works out where you are looking, how open your eyes are, and your facial expressions. Then it sends this data to VRCFT.
Do the following steps with the headset on. You can also do them while VRChat is running, but then the model training after the calibration can take much longer.
Only the face camera needs a crop. Set it so your face stays visible in every extreme position, with as little background as possible. I recommend this approach:
It does not have to be perfectly precise. In my testing, it is better to include a bit more background than to cut off parts of your face by accident. Your crop will probably end up looking similar to mine in the last picture.
Video: https://www.youtube.com/watch?v=CmLql1VxT-I
I highly recommend watching the video before you start the calibration.
This teaches the software what your eyes look like when closed, because that can change with your facial expression or the headset position.
Eye and face tracking are now ready to use. To test them in VRChat, try this avatar.
To fine-tune your tracking, fix problems with blinking or winking, or exaggerate certain expressions, switch to the Fine-Tuning tab.
Adjust the tracking parameters to get the best results for your expressions.
Only change these settings if you notice a specific problem, for example blinking that does not work right, expressions that trigger too early, or expressions that are not strong enough. If everything works fine, you do not need to change anything.
If your avatar does not blink correctly, or you want smiles and other expressions to look stronger or weaker, you can fine-tune them in Baballonia with the threshold settings.
Each parameter, such as LeftEyeLid, RightEyeLid, or a face parameter like smile, has two controls: a minimum (circled in yellow) and a maximum (circled in pink). The red dot shows the current state and moves with your expression. For example, it moves to the left when your face is relaxed, and to the right when you start smiling.
The minimum sets when a shape starts to activate. Raise it if the shape triggers too early or stays active while your face is relaxed. The maximum controls how far the shape can move. Lowering it exaggerates the motion within the new range.
I highly recommend just playing VRChat with your avatar, looking in a mirror, and experimenting with the minimums and maximums. The values update live, so you do not need to switch between tabs to see the results.
If your avatar's blinking or winking does not work as expected, or it does not blink at all, raise the minimum value of the eyelids. This makes the blink trigger earlier and look faster.
Your value will probably be higher than the one in the picture. Depending on the calibration, mine is usually between 0.15 and 0.4.
Sometimes you may want an expression to trigger earlier, to stay slightly active all the time, or to be exaggerated.
Smiling is a good example. If you want your avatar to keep a slight smile even when your face is mostly relaxed, just lower the maximum value of the smile parameter.
Sometimes an expression triggers too early. For example, you open your mouth and your avatar sticks out its tongue, even though you are not doing that.
In that case, raise the minimum value of the matching parameter, so the expression only activates when it should.
A browser tool to control your FaceFocusVR hardware.
FFVR Connect is a web-based tool that lets you control your FaceFocusVR hardware right from your browser. You can adjust the fan speed, change the LED brightness, and turn on and read logs. Firmware updates will follow in the future.
The tool is designed to be easy to use. Open it in your browser, connect your board, and you are ready to go.
You can find it here: connect.facefocusvr.com
FFVR Connect needs a Chromium-based browser (Google Chrome, Microsoft Edge, Brave). I recommend Google Chrome. Firefox and Safari are not supported.
If your board cannot connect, it is most likely running an older firmware version that does not support the tool. Boards shipped before March 15, 2026, have no hardware for fan control, so they do not need a manual firmware update.
If you still want to update, please get in touch on Discord.
Fan Speed: The default is 30%, which is also what I recommend. Do not set it below 25%.
LED Brightness: You can change it, but you do not need to. Only change it if FaceFocusVR support asks you to.
Logging: Turn on and read device logs for troubleshooting.
Firmware Updates: Coming to FFVR Connect in the future.