Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addition of XRE #56

Merged
merged 4 commits into from
Jan 28, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/hardware/VIVE/face-tracker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ The Vive Facial Tracker provides lower face tracking for [Vive Pro](./vpe.mdx) a
It connects to the computer via a short, built-in USB-C cable.
Face tracking data is accessed through [Vive's SRanipal interface](sranipal.mdx).

:::danger
The Vive Facial Tracker has officially been discontinued by Vive.
While it can still be used with VRCFT, expect no support for this product from Vive themselves.
:::

## Why is this setup required?

The Vive Facial Tracker is a high bandwidth USB device sensitive to poor USB connectivity, leading to a lot of "gotchas" in hardware setup.
Expand Down
39 changes: 0 additions & 39 deletions docs/hardware/VIVE/focus3.mdx

This file was deleted.

123 changes: 123 additions & 0 deletions docs/hardware/VIVE/focus3_xre.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
import ReactPlayer from 'react-player'

# Vive Focus 3 / Vive XR Elite

## Introduction

The Vive Focus 3 and XR Elite are standalone VR headsets powered by the Qualcomm XR2, similar to the Quest 2 and Quest Pro headsets from Meta.
Although by default having neither eye nor face tracking, the Focus 3 has 2 add-on modules that can be installed to add eye and face tracking capabilities,
and the XRE has a single, combo module that can be installed to add both eye and face tracking capabilities.
There is currently no way for VRCFT to simultaneously extract data from the headset and send eye and face tracking to the Vive standalone version of VRChat, so the following solutions are only for PCVR.

Since September 2023, the Vive PCVR VR streamer programs (Vive Business Streaming and Vive Streamer Hub) have had the ability to control VRCFT avatars in VRChat on their own (by copying the VRCFT program's functions).
While users can choose to simply forgo using VRCFT, we would recommend *against* using the Vive Streamer built-in outputs and following this guide to use VRCFT instead.
benaclejames marked this conversation as resolved.
Show resolved Hide resolved
We will be unable to provide support to users who experience issues with the VRCFT clone in Vive's streamer software.

## Setup

There are two PCVR Streaming methods that supports the eye and face tracking features:

1. Vive Streamer
2. ALXR

For most users, the Vive Streamer will be more straightforward to set up and use.

### Preliminary Setup

1. Install the eye and/or face tracking modules to the headset. Both modules should come with their own hardware quick-start guides in the box and should generally simply involve a single USB-C port in a nearby location on the headset.

<details>
<summary>Digital Quick Start Guides For Focus 3 Modules</summary>
<div>
<div>
<ol>
<li><a href="https://dl.vive.com/QSG/Accessory/VIVE_Focus_3_Eye_Tracker_QSG.pdf" target="_blank">Face Tracker Quick Start Guide</a></li>
<li><a href="https://dl.vive.com/QSG/Accessory/VIVE_Focus_3_Eye_Tracker_QSG.pdf" target="_blank">Eye Tracker Quick Start Guide</a></li>
</ol>
</div>
</div>
</details>

<details>
<summary>Video Quick Start Guide for the XR Elite Full Facial Tracker</summary>
<div class="row" style={{display: 'flex', justifyContent:'center', alignItems:'center'}}>
<ReactPlayer controls url='https://www.youtube.com/watch?v=BaiuNRrOVQQ'/>
</div>
</details>

2. Make sure that you agree to the privacy notices for eye and face tracking after installation, follow the instructions for eye tracking calibration, and have the eye and face tracking options enabled in the headset Input settings.
3. Install VIVE Console onto your computer. We need this for the latest version (**1.3.6.8+**) of [SRanipal](./sranipal.mdx#installing-via-vive-console)

:::info
For eye expressions (blinking) to work correctly in SRanipal over Vive Streamer streaming, [you **must** use SRanipal version greater than 1.3.6.8](https://forum.htc.com/topic/14087-vbs-pc-vr-how-to-use-facial-tracking-on-focus3/).
Lower face expressions will still mostly work with older versions of SRanipal.
:::

### Vive Streamer Setup

<details>
<summary>Vive Streamer Setup</summary>

1. Install VIVE Business Streaming or VIVE Streaming Hub onto your computer. They are functionally identical. Traditionally one would use VBS for the Focus 3 and the Streaming Hub for the XR Elite.
2. Update the streaming app on the Focus 3 or XR Elite by plugging the headset into the computer then clicking the Update button in the VIVE Streaming application for "Headset software version".
- Focus 3: you will need to unplug the eye tracking module
- XR Elite: you can use the USB-C port on the top of the battery or the dangling USB-C port if using the XRE without the battery

<div style={{
width: '75%',
height: 'auto',
margin: 'auto',
display: 'block'
}}>
<img src={require("../img/vive/rr/streamer_update.png").default} alt="Headset software version Update button" />
</div>

3. Disable the OSC output from the Vive Streamer. The OSC settings may be accesible from the Streamer application itself in a future update and should be disabled there if the settings exist.
- Navigate to `C:\ProgramData\HTC\ViveSoftware\ViveRR\RRServer` and open up the `serverSetting.setting` file in your favorite text editor.
- Scroll to the bottom of the file and set the `VOF` key to "**false**".
- Alternatively/additionally, you can set the "Send to VRC" port (VRCSP) and the "Receive from VRC" port (VRCRP) to values *other* than the defaults of 9000 and 9001.

<div style={{
width: '50%',
height: 'auto',
margin: 'auto',
display: 'block'
}}>
<img src={require("../img/vive/rr/streamer_settings.png").default} alt="Vive Streamer software settings" />
</div>

:::warning
If you do not disable the Streamer's output, it can interfer with VRCFT's ability to bind to the port to get messages from VRC, or it will double-send messages to VRC causing a "stuttering" effect.
benaclejames marked this conversation as resolved.
Show resolved Hide resolved
:::

4. Proceed to [Modules](#modules) for the module to use with Vive Streamer.

</details>

### ALXR Setup

<details>
<summary>ALXR Setup</summary>

1. Download and install the latest ALXR client *and server* from the [ALXR-nightly](https://github.com/korejan/ALXR-nightly/releases) repository.
If this is your first time using ALXR, follow the [Usage guide](https://github.com/korejan/ALVR/wiki/ALXR-Client#usage) and [Android-specific client install instructions](https://github.com/korejan/ALVR/wiki/ALXR-Client#android-all-flavors---questpicogenericetc)
2. Install the **ALXR Remote** module from the VRCFaceTracking module repository.
3. Open the `ALXRModuleConfig.json` found in the installed module directory.
- You may need to navigate to `C:\Users\[username]\AppData\Local\Packages\96ba052f-0948-44d8-86c4-a0212e4ae047_d7rcq4vxghz0r\LocalCache\Roaming\VRCFaceTracking\` to find the module directory and config json.
- [Learn more about the ALXR module configuration options](https://github.com/korejan/VRCFT-ALXR-Modules#module-settings)
4. In `ALXRModuleConfig.json`, in the "RemoteConfig" section set "ClientIpAddress" to the headset IP, this can be found in the ALVR server dashboard.
- You will need to restart VRCFT to reinitialize the ALXR Remote Module with the updated configuration.
5. Proceed to [Modules](#modules) for the module to use with ALXR.

</details>

## Modules

There are 2 modules that can be used with the Vive Focus 3 or XR Elite, one for each possible PCVR streaming method.
Both modules are readily available for installation via the VRCFaceTracking built-in module registry.
[Learn how to install modules from the module registry](../../intro/getting-started.mdx#installing-the-vrcfacetracking-module).

- If you are using a Vive Streamer (Vive Business Streaming / Vive Streamer Hub), you should install the **SRanipalTrackingModule**.
- If you are using ALXR, you should install the **ALXR Remote Module**.

Interested in the source code? Check out the [SRanipalTrackingModule source repository](https://github.com/VRCFaceTracking/SRanipalTrackingModule) and the [ALXR Remote module](https://github.com/korejan/VRCFT-ALXR-Modules) repos.
26 changes: 14 additions & 12 deletions docs/hardware/VIVE/sranipal.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Trivia Fact: SRanipal stands for "*Super Runtime Animation Pal*"

:::warning
SRanipal is generally a *resource intensive* piece of software.
Outside of when used with the Focus 3, SRanipal may cause a noticable performance hit on weaker/older systems!
Outside of when used with a Vive Streaming headset, SRanipal may cause a noticable performance and/or stability hit on weaker/older systems!
:::

## Hardware
Expand All @@ -28,6 +28,7 @@ SRanipal is only intended for the following headsets/hardware:
| Droolon F1 | `✅` Yes | `❌` No | `1.3.0.0` |
| Vive Facial Tracker | `❌` No | `✅` Yes | `1.3.0.0` |
| Vive Focus 3 (with both add-ons) | `✅` Yes | `✅` Yes | `1.3.6.8` |
| Vive XR Elite (with add-on) | `✅` Yes | `✅` Yes | `1.3.6.8` |

## Setup

Expand All @@ -42,24 +43,25 @@ There are three methods of installing SRanipal, in order of most to least recomm
3. Install Vive Console (avaliable on Steam or Vive website)

:::warning
Version 1.3.2.0 is known to unnecessarily hog computer resources. We generally don't recommend using v1.3.2.0.
Version 1.3.2.0 is known to unnecessarily hog computer resources. We generally don't recommend using v1.3.2.0 if you can avoid it.
:::

:::warning
Versions of SRanipal including and after 1.3.6.10 (any version currently packaged with Vive Console) will **only work with a Vive Pro series headset connected to the computer**.
Versions of SRanipal including and after 1.3.6.10 (any version currently packaged with Vive Console) will **only work with a Vive Pro series headset connected to the computer**,
or with a Vive Streaming Headset (Focus 3, XR Elite).
:::

:::warning
Versions of SRanipal including and after **1.3.6.5** will generate *an unreasonable* amount of spam in it's EyeModule log when eye tracking is initialized.
Do not leave VRCFaceTracking unnecessarily running in the background for long periods of time as the size of the log file can easily get into the range of
tens to hundreds of **gigabytes** if left unchecked.
Until this is resolved, we recommend users use older versions of SRanipal if possible.
Until this is resolved, we recommend using older versions of SRanipal if possible.
:::

The recommended version to use as of now (May 2023):
The recommended version to use as of now (January 2024):

- If you aren't using a Focus 3 (basically everyone), you should use the [v1.3.1.1 installer](#installing-via-v1311-installer)
- Focus 3 users **must** use the Vive Console version of SRanipal
- If you aren't using a Focus 3 or XR Elite, you should use the [v1.3.1.1 installer](#installing-via-v1311-installer)
- Focus 3 and XR Elite users **must** use the Vive Console version of SRanipal

### Installing Via v1.3.1.1 Installer

Expand Down Expand Up @@ -92,8 +94,8 @@ try this first:
<ol>
<li>Exit/Finish out of SRanipal installer</li>
<li>Open Windows Terminal / Powershell (as admin)</li>
<li>Run <code>Remove-Service -Name "SRanipalService"</code></li>
<li>Retry installing</li>
<li>Run <code>sc delete SRanipalService</code> or <code>Remove-Service -Name "SRanipalService"</code> if you have Powershell 6.0 or above.</li>
<li>Try installing again</li>
</ol>
</div>
</div>
Expand Down Expand Up @@ -132,7 +134,7 @@ Finally, failing both of these, you can

1. Download the [SRanipal v1.3.6.5 .zip (Discord Link)](https://discord.com/channels/849300336128032789/915075185328152606/1017600042837753906)
2. Unzip the folder and run ``DriverInstaller.msi``
3. Run the following command in a Windows terminal opened in unzipped SRanipal v1.3.6.5 directory: ``New-Service -Name "SRanipalService" -BinaryPathName "SRanipalService.exe" -StartupType Automatic -Description "SRanipal Service"``
3. Run the following command in a Windows Powershell terminal opened in unzipped SRanipal v1.3.6.5 directory: ``New-Service -Name "SRanipalService" -BinaryPathName "SRanipalService.exe" -StartupType Automatic -Description "SRanipal Service"``

An alternative installation method would be to run the v1.3.1.1 (or v.1.3.2.0) installer, then copy the contents of the v1.3.6.5 version into the older version's installation directory.
This will keep the service intact while using the newer runtime.
Expand Down Expand Up @@ -173,7 +175,7 @@ the little SRanipal robot icon.
| `⬛` Black (Dark) | Eye tracker (VPE) was not detected | Vive Facial Tracker was not detected |
| `🟧` Orange | Eye tracker (VPE) was detected, currently uninitialized | Vive Facial Tracker was detected, currently uninitialized |
| `🟩` Green | Eye tracker (VPE) was initialized and sending eye tracking data | Vive Facial Tracker was initialized and sending face tracking data |
| `🟪` Purple | Eye tracker (Focus 3) successful connection | Face Tracker (Focus 3) successful connection |
| `🟪` Purple | Eye tracker (over Vive Streaming) successful connection | Face Tracker (over Vive Streaming) successful connection |
| `🟦` Blue | Some uninitialized state in 1.3.6.10+ versions | Some uninitialized state in 1.3.6.10+ versions |

To actually use your Vive hardware with VRChat, you will need to use the SRanipal VRCFT Module with the VRCFaceTracking software.
Expand All @@ -192,7 +194,7 @@ If you can't seem to right-click the SRanipal tray icon, see the relevant point
### Calibrating Eye Tracking

After installing SRanipal, a new app will be added to your SteamVR dashboard called "Vive Pro Eye Calibration". This app is **only for Vive Pro Eye** (and the Droolon F1 module).
The Vive Focus 3 eye tracker is calibrated with the calibration sequence accessible from the standalone settings menu.
The Vive Focus 3 eye tracker and Vive Full Facial tracker for the XR Elite are calibrated with the calibration sequence accessible from the standalone settings Inputs sub-menu.
Eye tracking calibration is not required to be performed frequently, but should be done after initial SRanipal software installation, after a change to the headset (i.e. change the facial interface), or when switching the headset between users.
Note that the calibration is only for gaze tracking.

Expand Down
6 changes: 5 additions & 1 deletion docs/hardware/hardware_tables/_hardware_table_vr.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ import Link from '@docusaurus/Link';
</tr>
<tr>
<td>HTC VIVE</td>
<td><Link to="../hardware/VIVE/focus3" target="_blank" rel="noopener noreferrer">Vive Focus 3 (with Face/Eye Tracking Add-ons)</Link></td>
<td><Link to="../hardware/VIVE/focus3_xre" target="_blank" rel="noopener noreferrer">Vive Focus 3 (with Eye/Face Tracking Add-ons)</Link></td>
</tr>
<tr>
<td>HTC VIVE</td>
<td><Link to="../hardware/VIVE/focus3_xre" target="_blank" rel="noopener noreferrer">Vive XR Elite (with Eye + Face Tracking Add-on)</Link></td>
</tr>
<tr>
<td>Meta</td>
Expand Down
Binary file added docs/hardware/img/vive/rr/streamer_settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/hardware/img/vive/rr/streamer_update.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.