This plug-in provides support for the eye tracking upgrade for the HTC Vive by SensoMotoric Instruments (SMI).
A full sample script can be found at \examples\devices\smiViveExample.py
Note: The SMI Vive plug-in is not supported on 32-bit versions of Vizard
The SMI Vive plug-in is implemented as a Vizard extension. In order to use the plug-in you must first install the Vive eye tracker drivers and software provided by SMI.
The SMI Vive extension object has the following methods/constants:
Method |
Description |
<smi>.addEyeTracker() |
Connects to the Vive eye tracker and returns a sensor object. |
<smi>.CALIBRATE_RESET <smi>.CALIBRATE_1_POINT <smi>.CALIBRATE_3_POINT <smi>.CALIBRATE_5_POINT <smi>.CALIBRATE_TRIANGULAR <smi>.CALIBRATE_RECTANGULAR |
Modes for performing user eye calibration. |
The SMI Vive Eye Tracker sensor object has the following methods in addition to the standard extension sensor methods:
Method |
Description |
<vive>.calibrate(mode=CALIBRATE_RECTANGULAR) |
Start calibration procedure. Can use one of the calibration modes in table above. |
<vive>.showValidation() |
Show validation visualization. |
<vive>.showNumericValidation() |
Show numeric validation visualization. |
<vive>.showPositionalGuidance() | Show positional guidance visualization. |
<vive>.stopVisualization() | Stop any active calibration/visualization. |
<vive>.loadCalibration(name='') | Load a previously saved calibration. |
<vive>.saveCalibration(name='') | Save the current calibration under the specified name. |
<vive>.getCalibrationList() | Get list of saved calibration names. |
<vive>.setWindow(window) | Set window to use for eye tracker visualizations (should be same as Vive render window). |
<vive>.getTimestamp() | Get timestamp of last gaze sample. |
<vive>.getGazeDirection() |
Get binocular gaze direction. The gaze direction is also accessible using the sensor rotation matrix, <vive>.getMatrix(). |
<vive>.getLeftGazeDirection() | Get left eye gaze direction. |
<vive>.getRightGazeDirection() | Get right eye gaze direction. |
<vive>.getPor() | Get binocular POR (point of regard). |
<vive>.getLeftPor() | Get left eye POR (point of regard). |
<vive>.getRightPor() | Get right eye POR (point of regard). |
<vive>.getLeftGazeBasePoint() | Get left eye gaze base point. |
<vive>.getRightGazeBasePoint() | Get right eye gaze base point. |
<vive>.getIPD() | Get dynamically computed IPD. |
The following example shows how to connect to the SMI Vive eye tracker:
The next example shows how to get the gaze vector and perform an intersection test to determine where the user is looking: