Software
The following
software components are included wth the base EyeLink 1000 system.
|
Host PC Tracker Application
Drives the EyeLink 1000 system, performs
image analysis and eye event segmentation, and saves the data
for future analysis.
C Developers Kit - API
Provides a C interface to the
EyeLink for tracker control ,real-time data access, and timestamped
experiment event messaging into the EyeLink data files.
Python Package (Pylink)
The Pylink module is a Python library that provides the same
functionality as the C API, but within the Python programming
language.
|
 |
Host PC Tracker Application
The EyeLink 1000 Tracker Application
runs on the Host PC in a ROMDOS 7.1 operating environment (included
with the base system). The Tracker application is tightly integrated
with the EyeLink 1000 High Speed Eye Tracker hardware, and serves
several high level functions:
|
|
Performs
image analysis, eye event parsing, and data recording
functions. |
|
Facilitates
for the selection of 5 different calibration types (3pt
- 13pt). |
|
|
Allows
the system operator to view real-time gaze position overlaid
on a static display representation while data recording
is being performed. |
|
Allows
preference selection, camera setup, calibration, and recording
functions when the tracker is not being used with a Windows
/ MacOS / Linux, or DOS Display PC. |
|
|
Controls
setup of the optional Scene Camera, Analog Output Board
and Gaze Video Overlay System. |
|
|
If the Display PC is using the EyeLink Developers kit, many
of the preference and setup functions available on the Host
PC Tracker Application can be controlled programmatically from
the Display PC itself.
Back To Top
|
 |
C Developers Kit - API
The EyeLink Development Kit provides a 'C' interface
to the EyeLink for tracker control ,real-time data access, and
timestamped experiment event messaging into the EyeLink data
files. EyeLink®'s ease of use and high end specifications
make it perfect for a vast range of applications, and the supplied
Application Programming Interface (API) makes it easy for C
programmers to get started and take full advantage of the power
of the EyeLink 1000 system! The C Developers kit is supported
on Windows (98/2000/XP Professional Service Pack 1), Mac OSX and Linux platforms
Eye Tracker Control
Programmers have the ability to control EyeLink settings and
state from the the C API. This functionality makes the EyeLink
a truly intelligent tracking system. Tracker control features
include:
Starting the calibration procedure, including image access on the Display PC during headband setup
Performing drift correction at anytime during an experiment (pre or post trial).
Setting any tracker preference
Setting the graphics to Display on the Host PC Record screen
Real-Time Data Access
The C API provides access to both eye sample and eye event data
in the form of C structures. Data is sent from the Host PC to
the Display PC via a dedicated Ethernet connection between the
two computers. Both samples and events are placed in a data
queue on the Display PC so no data is lost. Sample data includes:
| Field |
Contents |
| time: |
Timestamp when camera imaged eye (in milliseconds since EyeLink tracker was activated) |
| flags: |
Bits indicating what types of data are present, and for which eye(s) |
| px, py: |
Camera X, Y of pupil center |
| hx, hy: |
HEADREF angular gaze coordinates |
| pa: |
Pupil size (arbitrary units, area or diameter as selected) |
| gx, gy: |
Display gaze position, in pixel coordinates set by the screen_pixel_coords command |
| rx, ry: |
Angular resolution at current gaze position, in screen pixels per visual degree |
| status: |
Error and status flags (reports CR status and tracking error) |
| input: |
Data from input port(s) |
| buttons: |
Button input data |
Samples are available
as quickly as 3ms from when the camera image was taken.
See the technical
specifications section on the details of how link filtering
and sampling rate effect sample delay.
Event data (Fixations, Saccades, Blinks,
Messages) is also available as a C structure.
Eye Events are available 20 - 30 ms after the event actually
occurred. The event structure includes:
| Field |
Contents |
| time |
Timestamp of sample causing event (when camera imaged eye, in milliseconds since EyeLink tracker was activated) |
| type |
Type of event (Saccade, Fixation, Blink) |
| eye |
Eye for which event was produced |
gstx, gsty
genx, geny
gavx, gavy |
Display gaze position, in pixel coordinates
set by the
screen_pixel_coords command. Positions at start, end,
and
average during saccade, fixation or FIXUPDATE period are
reported. |
hstx, hsty
henx, heny
havx, havy |
HEADREF gaze position at start, end, and
average during saccade,
fixation or FIXUPDATE period. |
| svel, evel, avel,pvel |
Gaze velocity in visual degrees per second.
The velocity at the start
and end of a saccade or fixation, and average and peak
values of
velocity magnitude (absolute value) are reported. |
supd_x, supd_y
eupd_x, eupd_y |
Angular resolution at start and end of saccade
or fixation, in screen
pixels per visual degree. The average of start and end
values may be
used to compute magnitude of saccades. |
Custom Messaging
The EyeLink C API allows the programmer
to insert custom messages into the EyeLink data file as the
experiment is underway. These messages are timestamped in line
with the rest of the eye data being recorded and can be used
for calculating reaction times and other statistics at a later
time. Examples of custom messages include:
indicating a stimulus onset
or offset
indicating trial conditions
writing commands for
the optional EyeLink Data Viewer to interpret
providing target positioning
for smooth pursuit paradigms
The custom messages can be any string
up to 255 characters and messages can be sent as rapidly as
every 2-4 ms.
Sample Experiments
The EyeLink 1000 Windows Developer's Kit and API includes several
sample programs with full source code that serve as tutorials
in programming EyeLinkII experiments using Visual C. These
include simple experiments that present stimuli such as text
and pictures, as well as several dynamic stimulus display
examples that use real-time gaze position data from the EyeLink 1000.
Gaze Contingent Display Paradigm
In addition to providing important data
that can be analyzed off line, real time monitoring of gaze
position permits the introduction of display changes that are
contingent on the spatial or temporal characteristics of eye
movements. Such methodology is referred to as a gaze contingent
display paradigm. For example,
in the moving window paradigm, degraded stimulus display is
presented outside the boundaries of a region of normal display
centered on the point of gaze (i.e., the window). As gaze position
changes so does the location of the window. Two screen shots
from the gaze contingent display tutorial are shown above. The
first displays a window of clear text at the subject's point
of gaze (at the center of the display in these pictures) with
all letters replaced by "XXX" outside of this window.
The second image shows a gaze-contingent display using a photograph.
Here a small window of clear picture follows the subject's gaze,
while the rest of the image is heavily blurred.
Gaze contingent displays are one of the most exciting and popular
applications of EyeLink technology and the Windows API. With
EyelinkII the delay in window movement has been measured (using
a light sensor on the monitor and an electronic artificial pupil)
to be as low as 6 milliseconds (at 500 Hz data rate and a monitor
refresh rate of 160 Hz), using the simple source code in the
tutorial.
Gaze Control Paradigm
An application that is of interest to many researchers is the
control of computers by gaze. That is, gaze is used as a human-computer
interface modality. The screen shot below is from a tutorial
program that shows how to use EyeLinkII data to select visual
control buttons-in this case, a grid of letters. All that would
be required to implement a "typing by eye" application
would be to add a text window and backspace and "enter"
control buttons.
Back To Top
|
 |
Python Package (Pylink)
The Python EyeLink (Pylink) module provides
Python programmers all the same functionality as our C
API , but within the Python object oriented scripting environment.
Pylink allows for tracker control, real-time data access, and
external synchronization with eye data via custom messaging.
Pylink can also be used in combination
with the excellent third party open source VisionEgg
software; providing a combined visual presentation and eye tracking
scripting package.

The Pylink package includes a sample
experiment that uses pygame for graphics presentation as well
as a modified VisionEgg example demonstrating gaze contingent
control of a moving gradient.
Download the Python
Package from our resource center.
Back To Top
|
|
|
|
|