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

Vive Pro Eye #568

Open
wants to merge 28 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
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
57 changes: 55 additions & 2 deletions Documentation/Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,58 @@

To upgrade from TDW v1.11 to v1.12, read [this guide](upgrade_guides/v1.11_to_v1.12.md).

## v1.12.8

### New Features

- **Added: `ViveProEye` VR-rig add-on.** This rig supports the Vive Pro Eye headset and includes eye tracking data.

### Command API

#### New Commands

| Command | Description |
| ------------------------------ | ------------------------------------------------------------ |
| `send_vive_pro_eye` | Send `ViveProEye` data. |
| `set_vive_pro_eye_gaze_radius` | Set the radius of the spherecast used to find objects that are in focus in a Vive Pro Eye simulation. |

### Output Data

#### New Output Data

| Output Data | Description |
| ------------ | ------------------------------------------------------------ |
| `ViveProEye` | Vive Pro Eye button presses, axis movements, and eye tracking data. |

### `tdw` module

- Added `ViveProEye` add-on as well as two data classes: `ViveEyeData` and `ViveButton`.

### Example controllers

- Added: `vr/vive_pro_eye_minimal.py`
- Added: `vr/vive_pro_eye_composite_object.py`
- Added: `vr/vive_pro_eye_input_callbacks.py`
- Added: `vr/vive_pro_eye_output_data.py`

### Documentation

#### New Documentation

| Document | Description |
| --------------------------------- | ------------------------------------------------------------ |
| `lessons/vr/vive_pro_eye.md` | `ViveProEye` documentation. |
| `python/add_ons/vive_pro_eye.md` | `ViveProEye` API. |
| `python/add_ons/autohand.md` | `Autohand` API (abstract base class for `OculusTouch` and `ViveProEye`) |
| `python/vr_data/vive_eye_data.md` | `ViveEyeData` API. |
| `python/vr_data/vive_button.md` | `ViveButton` API. |

#### Modified Documentation

| Document | Modification |
| ------------------------ | ------------------------------------------------------ |
| `lessons/vr/overview.md` | Added a table of comparison for the supported VR rigs. |

## v1.12.7

### Build
Expand Down Expand Up @@ -373,6 +425,8 @@ Throughout the `lessons/` documentation, references to PyImpact (text, links, ex

To upgrade from TDW v1.10 to v1.11, read [this guide](upgrade_guides/v1.10_to_v1.11.md).

## v1.11.16

## v1.11.23

### Build
Expand Down Expand Up @@ -569,7 +623,7 @@ To upgrade from TDW v1.10 to v1.11, read [this guide](upgrade_guides/v1.10_to_v1

| Output Data | Description |
| ----------- | --------------------------------- |
| `Drones` | Data for each drone in the scene. |
| `Drones` | Data for each drone in the scene. |Eye button presses, axis movements, and eye tracking data. |

### `tdw` module

Expand Down Expand Up @@ -626,7 +680,6 @@ To upgrade from TDW v1.10 to v1.11, read [this guide](upgrade_guides/v1.10_to_v1

## v1.11.15


### Command API

#### New Commands
Expand Down
4 changes: 3 additions & 1 deletion Documentation/api/command_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -1001,7 +1001,9 @@ The type of VR rig to add to the scene.
| --- | --- |
| `"oculus_touch_robot_hands"` | A VR rig based on an Oculus headset (Rift S, Quest 2), Touch controllers and AutoHand grasping. Hands are visualized as robot hands. |
| `"oculus_touch_human_hands"` | A VR rig based on an Oculus headset (Rift S, Quest 2), Touch controllers and AutoHand grasping. Hands are visualized as human hands. |
| `"oculus_leap_motion"` | A VR rig based on an Oculus headset (Rift S, Quest 2) with Leap Motion hand tracking. </summary |
| `"oculus_leap_motion"` | |
| `"vive_pro_eye_human_hands"` | A VR rig based on an HTC Vive Pro Eye headset, eyetracking, controllers and AutoHand grasping. Hands are visualized as human hands. |
| `"vive_pro_eye_robot_hands"` | A VR rig based on an HTC Vive Pro Eye headset, eyetracking, controllers and AutoHand grasping. Hands are visualized as robot hands. |

***

Expand Down
19 changes: 19 additions & 0 deletions Documentation/api/output_data.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ Objects in arrays can't be directly accessed (this is due to how the backend cod
| [Transforms](#Transforms) | Data about the Transform component of objects (position and rotation). | `tran` |
| [TriggerCollision](#TriggerCollision) | Data for a non-physics trigger collision event. | `trco` |
| [Version](#Version) | The build version and Unity version. | `vers` |
| [ViveProEye](#ViveProEye) | HTC Vice Pro Eye output data. | `vipe` |
| [Volumes](#Volumes) | Spatial volume data for objects in the scene. | `volu` |
| [VRRig](#VRRig) | Data about the VR rig currently in the scene. | `vrri` |

Expand Down Expand Up @@ -1151,6 +1152,24 @@ The build version and Unity version.
| `get_tdw_version()` | The version of the tdw. | `str` |
| `get_standalone()` | True if the build is a standalone binary. False if the build is Unity Editor. | `bool` |

## ViveProEye

`v = ViveProEye(byte_array)`

**Identifier:** `vipe`

HTC Vice Pro Eye output data.

| Function | Description | Return type |
| --- | --- | --- |
| `get_focused()` | The IDs of the focused objects. | `np.ndarray` |
| `get_valid(index)` | Booleans whether there is valid data: `[world, local]`. | `bool` |
| `get_eye_ray(index)` | The ray of the eye. | `np.ndarray` |
| `get_blinking()` | Blinking booleans: `[left, right]`. | `np.ndarray` |
| `get_left_axis()` | The axis of the left. | `np.ndarray` |
| `get_right_axis()` | The axis of the right. | `np.ndarray` |
| `get_buttons()` | Booleans indicating whether the left trackpad and reset buttons are clicked. | `np.ndarray` |

## Volumes

`v = Volumes(byte_array)`
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions Documentation/lessons/vr/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ The hardware/rig that you use can greatly alter what the VR simulation is capabl

All VR rigs share some common commands and output data and they all have unique commands and output data as well. To simplify API, each VR rig has a separate TDW add-on class.

| | [Oculus Touch](oculus_touch.md) | [Vive Pro Eye](vive_pro_eye) |
| ---------------- | ------------------------------- | ---------------------------- |
| **Headset** | Rift, Rift S, Quest, or Quest 2 | Vive Pro Eye |
| **Controller** | Oculus Touch | Vive Pro Eye |
| **Eye Tracking** | No | Yes |

## Requirements

*All VR hardware have additional requirements. Read the relevant document to learn more.*
Expand Down
Loading