The SCCN eyetracker can operate on its own (in which case it gives data according to where a pupil is looking in the screen camera's viewing frame) or it can be co-registered with PhaseSpace so that the pupil direction and scene camera location form a vector. By using Hotspots, this vector can be used to locate where a subject is supposedly gazing within some fixed predefined plane inside the lab. The latency of the eyetracker by itself was calculated here. This experiment took into account the output of Hotspots, which (configured properly) outputs the XY position of a subjects gaze in along a fixed, predefined plane in real space.

Experimental Procedure

In order to determine the entire latency of the SCCN eyetracker, I calibrated they system then recored eyetracking data (which comes out of Hotspots) as well as EMG with external electrodes placed around my eyes. The task was to oscillate my gaze between two points on a screen that were roughly the same height but some significant distance apart. Using EEG lab and ICA as well as some code courtesy of Makoto Mayakoshi, an IC was extracted from the EMG giving the actions of my eye movements. The usual 7.72ms was subtracted from the timestamps of the BioSemi acquisition and 28.9 was taken from the eyetracker. This signal resembled a square wave and correlated extremely well to the horizontal movement reported by the eyetracking system.

These signals (after filtering and normalization) were analyzed and the moments of significant zero crossings were found. This is probably a reasonable choice to compare.

In this figure the upper signal is the eyetracker and the lower signal is the IC corresponding to eye muscles moving the eyes. The red lines mark the zero crossings of interest in the former, the green, the latter. The code I used can be found here.


One issue here is that the sampling rate of the eyetracker is an order of magnitude lower than that of the BioSemi. Although Hotspots outputs at the sampling rate of PhaseSpace (400Hz), the cameras in the eyetracker output at a framerate of 33.33Hz. But Hotspots is also correcting for the location of the viewer. Furthermore, camera frames may be dropped, in which case Hotspots assumes the previous gaze position as its input. For these reasons I do not downsample the output of Hotspots to 33.33Hz as is often done. Also, when I did introduce downsampling, the results obtained had nearly the same mean and median values, but far greater jitter. This suggests that the higher sampling rate is an appropriate choice here.

Below is a histogram of the eyetracker latencies as well as a plot of the latencies against time.


The latency of the eyetracking system, with Hotspots is 60.16ms (we take the median to be the midpoint due to the rather large outlier in the analysis) with a standard deviation of 4.89.

One note is that this value is significantly larger than the measured latency of the eyetracker without Hotspots. This either means that the eyetracker latency pre-hotspots is greater than previously measured or that for whatever reason Hotspots is getting input from Gazestream that is one camera frame late (the extra latency is conspicuously near to 33.33ms).

The data for this experiment were gathered on 12/12/2014.