SlideShare a Scribd company logo
1 of 4
Download to read offline
An Open Source Eye-gaze Interface: Expanding the Adoption of Eye-gaze in
                             Everyday Applications
                                              Craig Hennessey∗                                    Andrew T. Duchowski†
                                            Mirametrix Research                          School of Computing, Clemson University



Abstract                                                                                          ming language. These libraries are included as part of a software
                                                                                                  development kit (SDK) which must be purchased from the vendor.
There is no standard software interface in the eye-tracking industry,
                                                                                                  As every vendor has a different SDK, a software developer must
making it difficult for developers to integrate eye-gaze into their
                                                                                                  acquire an SDK for each eye-tracker they wish to support.
applications. The combination of high cost eye-trackers and lack
of applications has resulted in a slow adoption of the technology.                                    Consequently, it is possible to develop a translator application
To expand the adoption of eye-gaze in everyday applications, we                                   that acts as an intermediary between the vendor’s API and an ap-
present an eye-gaze specific application programming interface that                                plication, as exemplified by the development of the Eye-Tracking
is platform and language neutral, based on open standards, easily                                 Universal Driver (ETU-Driver),1 one of COGAIN’s Work Package
                                                                                                                                                        ˇ
                                                                                                  2 (WP2) deliverables [Bates et al. 2005; Bates and Spakov 2006].
used and extended and free of cost.
                                                                                                  Although this effort also suggested an XML-based universal API,
1 Introduction & Background                                                                       the resultant ETU-Driver was wrapped into a COM object, limiting
                                                                                                  its portability across operating systems.
The use of eye-gaze as an interface is still rarely observed out-
side of research laboratories [Duchowski 2003]. While recent                                      1.3   Open Eye-gaze API
low-cost [Babcock and Pelz 2004; Li et al. 2006] and open
source [San Agustin et al. 2009] initiatives have been proposed,                                  In this paper we propose an open eye-gaze API that combines the
high equipment cost and a lack of applications are holding back                                   best of the techniques described above. A summary of the pro-
widespread adoption of eye-gaze in everyday applications. With no                                 posed eye-gaze interface is shown in comparison with the tradi-
clear standard established, developers wanting to integrate eye-gaze                              tional methods in Table 1.
into their applications must choose between two interface mecha-                                     The open eye-gaze API proposed here is based on the web-
nisms, simple cursor following or a vendor specific application pro-                               services API model. This model uses TCP/IP as the communication
gramming interface (API).                                                                         mechanism and the extensible mark-up language (XML) as the data
                                                                                                  format. Both TCP/IP and XML are open standards that are readily
1.1 Cursor tracking                                                                               available on most operating systems and programming languages.
                                                                                                  Data and commands are encoded in plain text XML and transmit
The simplest way to add eye-gaze to an application is to link the
                                                                                                  as simple strings over the TCP/IP communication layer, providing
mouse cursor position to the eye-tracker point-of-gaze (POG), and
                                                                                                  maximum transparency. The open eye-gaze API will be described
then track the cursor’s position. A number of applications, such
                                                                                                  in detail in the following section.
as Dasher [Ward and MacKay 2002] and Stargazer [Hansen et al.
2008], currently use this technique. Its advantages are simplicity,
availability, and no additional costs.                                                                  Table 1: Comparison of eye-gaze interface techniques.
   However, this approach lacks the additional functionality related
to the POG such as a POG validity flag, binocular data (left and                                    Feature                     Cursor     Vendor         Open eye-
right eye POG), eye position information, fixation/saccade tracking                                                                        API            gaze API
and more. Furthermore, once the mouse cursor is tied to the POG,                                   Platform neutral           Yes         No             Yes
the mouse is no longer available for traditional input.                                            Language neutral           Yes         No             Yes
                                                                                                   Open standards             Yes         No             Yes
1.2 Vendor API                                                                                     Proprietary data format    N/A         Yes            No
Until now, to achieve full eye-gaze application functionality, a ven-                              Cost                       None        High*          None
dor specific API was required. A full API usually provides com-                                     Baseline feature set       X/Y         Full           Full
plete eye-gaze information, including the left and right eye POG,                                  Extendable                 No          No*            Yes
head position, and data validity flags. In addition, vendors may                                    * Vendor dependent
provide the ability to customize the internal algorithms, such as the
filtering and fixation detection methods.
   One disadvantage of using a vendor supplied API is that propri-
etary libraries (lib or dll) must be included, which are typically                                2 Implementation
compiled for a specific operating system and a specific program-
                                                                                                  The open eye-gaze API uses a client-server architecture. The client
   ∗ craig@mirametrix.com                                                                         application configures selected variables on the server such as the
    † duchowski@clemson.edu                                                                       fixation POG or left and right eye positions, and initiates the data
                                                                                                  transmission sequence. The client then listens for data records sent
Copyright © 2010 by the Association for Computing Machinery, Inc.
Permission to make digital or hard copies of part or all of this work for personal or
                                                                                                  by the server each time a new POG is computed. Commands and
classroom use is granted without fee provided that copies are not made or distributed             records are formatted in XML strings which are transmitted over
for commercial advantage and that copies bear this notice and the full citation on the            a TCP/IP connection, allowing communication between multiple
first page. Copyrights for components of this work owned by others than ACM must be               computers. Using TCP rather than UDP ensures records are not
honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on
servers, or to redistribute to lists, requires prior specific permission and/or a fee.
                                                                                                  lost and are received in the correct order.
Request permissions from Permissions Dept, ACM Inc., fax +1 (212) 869-0481 or e-mail
                                                                                                     1 http://www.cs.uta.fi/
permissions@acm.org.                                                                                                              ˜oleg/etud.html
ETRA 2010, Austin, TX, March 22 – 24, 2010.
© 2010 ACM 978-1-60558-994-7/10/0003 $10.00

                                                                                             81
Table 2: Configuration variables for the open eye-gaze API.

            Data ID                             Read/Write     Parameters        Type        Description
            ENABLE SEND DATA                       R/W           STATE          boolean      Start or stop data streaming
            ENABLE SEND COUNTER                    R/W           STATE          boolean      Enable record ID counter data
            ENABLE SEND TIME                       R/W           STATE          boolean      Enable time stamp data
            ENABLE SEND TIME TICK                  R/W           STATE          boolean      Enable high resolution timer tick
            TIME TICK FREQUENCY                     R             FREQ         long long     Tick frequency (signed 64-bit integer)
            ENABLE SEND POG LEFT                   R/W           STATE          boolean      Enable left eye point-of-gaze data
            ENABLE SEND POG RIGHT                  R/W           STATE          boolean      Enable right eye point-of-gaze data
            ENABLE SEND POG FIX                    R/W           STATE          boolean      Enable fixation point-of-gaze data
            ENABLE SEND PUPIL LEFT                 R/W           STATE          boolean      Enable left eye image data
            ENABLE SEND PUPIL RIGHT                R/W           STATE          boolean      Enable right eye image data
            SCREEN SIZE                             R            WIDTH             int       Screen width (pixels)
            SCREEN SIZE                             R           HEIGHT             int       Screen height (pixels)
            CAMERA SIZE                             R            WIDTH             int       Camera image width (pixels)
            CAMERA SIZE                             R           HEIGHT             int       Camera image height (pixels)
            PRODUCT ID                              R            VALUE           string      Product identifier
            SERIAL ID                               R            VALUE           string      Device serial number
            COMPANY ID                              R            VALUE           string      Manufacturer identifier
            API ID                                  R           MFG ID           string      API vendor identity
            API ID                                  R           VER ID           string      API version number
            API SELECT                              R          MFG ID?           string      List of vendors supported
            API SELECT                              R          VER ID?           string      List of versions supported
            API SELECT                              W            STATE             int       Selected API



2.1 XML Format                                                              return (CR), line feed (LF) pair (rn) is introduced, indicating the
Data and commands are formatted using XML string fragments                  end of the string. The CRLF sequence is safe to use as the record
called elements. Each element is defined by an empty-element TAG             delimiter as the XML specification disallows CRLF from appearing
that specifies the element type. An empty-element TAG is of the              within the XML string.
form <GET ... />, which is shorter than the start/end element for-          2.2 Client / Server
mat <GET>...</GET>. Only six XML tags are required for the
open eye-gaze API and are listed in Table 3.                                The eye-tracker operates as the server and the application operates
                                                                            as the client. A TCP stream is opened between the client application
                                                                            and the eye-gaze server using the IP address of the server and an as-
     Table 3: XML TAG identifiers in the open eye-gaze API
                                                                            signed port number (4242 is the default port value). Applications
                                                                            may be run on completely remote computers and connect to the eye-
        Client
                                                                            tracking server by using the appropriate remote server IP address.
        TAG       Description                                               Multiple eye-trackers may also be run on the same machine by as-
        GET       Get a data variable or command                            signing different port numbers to the different servers (for example
        SET       Set a data variable or command                            4242 for tracker 1 and 4243 for tracker 2). A client application may
        Server                                                              then connect to multiple eye-trackers by simply opening two ports
        TAG       Description                                               for communication (4242 and 4243 in this example).
        ACK       Acknowledge a successful command                             The server can operate in three different modes: configuration,
        NACK      Acknowledge a failed command                              calibration and data transmission.
        CAL       Calibration result record                                    Configuration. In configuration mode the server responds to
        REC       Data result record                                        each XML element query (GET or SET TAG) with the appropriate
                                                                            XML (ACK or NACK TAG). This mode is used to select the variables
                                                                            in the requested data stream, query other eye-tracker variables and
  Any additional parameters in a data record or command are de-             to initiate or end calibration and data transmission. An example of a
fined by attributes taking the form of name/value pairs, e.g.:               configuration event where the COUNTER variable is enabled in the
                                                                            data stream would appear as follows:
  <GET ID="ENABLE_SEND_TIME" />
                                                                              CLIENT SEND: <SET ID="ENABLE_SEND_COUNTER" STATE="1" />
   where the attribute is ID and the value is ENABLE SEND TIME.               SERVER SEND: <ACK ID="ENABLE_SEND_COUNTER" STATE="1" />
   As XML elements are read by the client and server it is possible
that a partial element will be read if the reader is faster than the            The full list of configuration variables in the eye-gaze API are
sender, or multiple elements may be read if the reader is slower. A         listed in Table 2. Camera and screen sizes are returned in pixel
partial and multiple record are shown below:                                units. The POG X and Y eye position coordinates are normalized
                                                                            to the screen and camera image sizes respectively. For monocular
  <GET ID="ENABLE_SE                                                        eye-trackers, the LEFT eye data structure should be used and the
  <GET ID="COMPANY_ID" /><GET ID="API_ID" />                                RIGHT eye data structure left cleared (zeroed).
                                                                                Calibration. To reduce the complexity for application develop-
   There is no identifier available to signal end of transmission for        ers, the calibration of the eye-tracker is performed by the server but
an open TCP connection and therefore to delimit records, a carriage         can be initiated by the client using the commands listed in Table 4.


                                                                       82
The calibration process includes the display of calibration markers,           new POG computation. The XML record contains attributes that
the actual calibration procedure, and the display of the results.              match the configured data requested in the configuration mode. At-
   During calibration the server transmits calibration XML ele-                tributes selected with commands in Table 2 are listed in Table 6.
ments (CAL TAG and ID attribute value CALIB RESULT PT) after                      Synchronizing recorded eye-gaze with external data such as soft-
each calibration point is completed as shown in Table 5. The PT at-            ware events and biological data such as EMG and EEG can be
tribute indicates which calibration point was completed. After the             performed using the TIME TICK variable, which is a measure of
entire calibration procedure is complete, the results of the calibra-          elapsed CPU timer ticks and is equal to the output of a high resolu-
tion are returned with the CALIB RESULT attribute, also shown in               tion timing function. Conversion from ticks to seconds is achieved
Table 5. The CALX?/CALY?, LX?/LY? and RX?/RY? results are                      by dividing by the TIME TICK FREQUENCY value from Table 2.
returned in percentages of the screen (0-100%) and can be used to                 Unfiltered POG estimates are available by reading the left and
provide feedback on how well the calibration performed for the eye             right eye POG data (LPOG? and RPOG? respectively). This data
at the indicated point. The LV? and RV? flags provide an indicator              can then be processed using any desired algorithm for filtering and
of whether the calibration was successful at all.                              extracting fixations. To avoid the need for the application devel-
                                                                               oper to implement their own fixation detector, a fixation data record
     Table 4: Commands for calibration display and control.                    is also available (FPOG?). The fixation data record is generated
                                                                               by whichever fixation algorithm (e.g., position-variance, velocity-
 Data ID              Read/      Param         Type   Description              based, etc.) is implemented by the eye-tracker, and provides the
                      Write                                                    X/Y fixation position on the screen, the start time and duration in
 CALIBRATE START      R/W        STATE         Bool   Start or stop the        seconds, a valid flag, and an identifier indicating the fixation’s ID.
                                                      calibration pro-
                                                      cedure                          Table 6: Data attributes available in the data record.
 CALIBRATE SHOW        R/W       STATE         Bool   Show or hide
                                                      the default cali-         Param            Type         Description
                                                      bration window            CNT              int          Sequence counter for data packets
                                                                                TIME             float         Elapsed time in seconds since last
                                                                                                              system initialization or calibration
              Table 5: Calibration data and results.                            TIME TICK        long long    Tick count (signed 64-bit integer)
                                                                                LPOGX            float         Left point-of-gaze X
 Data ID                   Param      Type        Description                   LPOGY            float         Left point-of-gaze Y
 CALIB RESULT PT           PT          int        Calibration point             LPOGV            int          Left point-of-gaze valid flag
                                                  completed                     RPOGX            float         Right point-of-gaze X
 CALIB RESULT              CALX?      float        Calibration X/Y co-           RPOGY            float         Right point-of-gaze Y
                           CALY?                  ordinate for point ?          RPOGV            int          Right point-of-gaze valid flag
 CALIB RESULT              LX?        float        Left eye POG X/Y              FPOGX            float         Fixation point-of-gaze X
                           LY?                    for point ?                   FPOGY            float         Fixation point-of-gaze Y
 CALIB RESULT              LV?           int      Left eye valid flag            FPOGS            float         Fixation start (seconds)
                                                  for point ?                   FPOGD            float         Fixation duration (time since fixa-
 CALIB RESULT              RX?        float        Right eye POG X/Y                                           tion start (seconds))
                           RY?                    for point ?                   FPOGID           int          Fixation number ID
 CALIB RESULT              RV?           int      Right eye valid flag           FPOGV            int          Fixation point-of-gaze valid flag
                                                  for point ?                   LPCX             float         Left eye pupil center X
 ? = the calibration point number                                               LPCY             float         Left eye pupil center Y
                                                                                LPD              float         Left eye pupil diameter
   To illustrate the operation of the open eye-gaze API calibration             LPS              float         Left eye pupil distance (unit less,
procedure the following listing shows an entire calibration sequence                                          from calibration position)
on a 4 point calibration grid.                                                  LPV              int          Left eye pupil image valid
                                                                                RPCX             float         Right eye pupil center X
  CLIENT SEND: <SET ID="CALIBRATE_SHOW" STATE="1" />
  SERVER SEND: <ACK ID="CALIBRATE_SHOW" STATE="1" />
                                                                                RPCY             float         Right eye pupil center Y
  CLIENT SEND: <SET ID="CALIBRATE_START" STATE="1" />                           RPD              float         Right eye pupil diameter
  SERVER SEND: <ACK ID="CALIBRATE_START" STATE="1" />                           RPS              float         Right eye pupil distance (unit less,
  SERVER SEND: <CAL ID="CALIB_RESULT_PT" PT="1" />                                                            from calibration position)
  SERVER SEND: <CAL ID="CALIB_RESULT_PT" PT="2" />
  SERVER SEND: <CAL ID="CALIB_RESULT_PT" PT="3" />
                                                                                RPV              int          Right eye pupil image valid
  SERVER SEND: <CAL ID="CALIB_RESULT_PT" PT="4" />
  SERVER SEND: <CAL ID="CALIB_RESULT"
  CALX1="0.10000" CALY1="0.08000"
  LX1="0.00000" LY1="0.00000" LV1="0"                                             To illustrate the operation of the open eye-gaze API, the follow-
  RX1="0.09881" RY1="0.09238" RV1="1"                                          ing listing shows the configuration of the data record and begins
  CALX2="0.90000" CALY2="0.08000"                                              data transmission. The data record includes the record counter and
  LX2="0.90595" LY2="0.08952" LV2="1"
  RX2="0.88869" RY2="0.09905" RV2="1"
                                                                               the fixation POG. For many applications this is the only data re-
  CALX3="0.10000" CALY3="0.92000"                                              quired for basic eye-gaze operation.
  LX3="0.08631" LY3="0.89143" LV3="1"
  RX3="0.09881" RY3="0.92952" RV3="1"                                            CLIENT SEND: <SET ID="ENABLE_SEND_COUNTER" STATE="1" />
  CALX4="0.90000" CALY4="0.92000"                                                SERVER SEND: <ACK ID="ENABLE_SEND_COUNTER" STATE="1" />
  LX4="0.89524" LY4="0.90095" LV4="1"                                            CLIENT SEND: <SET ID="ENABLE_SEND_POG_FIX" STATE="1" />
  RX4="0.89583" RY4="0.92190" RV4="1" />                                         SERVER SEND: <ACK ID="ENABLE_SEND_POG_FIX" STATE="1" />
                                                                                 CLIENT SEND: <SET ID="ENABLE_SEND_DATA" STATE="1" />
                                                                                 SERVER SEND: <ACK ID="ENABLE_SEND_DATA" STATE="1" />
  Data Transmission. When in free running data transmission                      SERVER SEND: <REC CNT="72" FPOGX="0.5065" FPOGY="0.4390"
mode, the server transmits an XML record (REC TAG) after each                    FPOGD="0.078" FPOGID="468" FPOGV="1"/>



                                                                          83
SERVER SEND: <REC CNT="73"       FPOGX="0.5071" FPOGY="0.4409"
  FPOGD="0.094" FPOGID="468"       FPOGV="1"/>
  SERVER SEND: <REC CNT="74"       FPOGX="0.5077" FPOGY="0.4428"
  FPOGD="0.109" FPOGID="468"       FPOGV="1"/>


2.3 API Extensions
The open eye-gaze API outlined in this paper corresponds to
version 1.0 of the generic eye-gaze interface, identified by the
MFG ID="generic" and VER ID="1.0" variables. Further
collaborative efforts to improve the open eye-gaze API interface
will correspond to increasing API version numbers. The API may
be extended to include head mounted, or 3D eye-tracking specific
variables [Hennessey and Lawrence 2008] by simply adding new
attributes to the XML command and data tables.
   Eye-tracking vendors should always at least support the generic,
1.0, interface, but may also add their own unique additions to the
API under their own MFG ID identifier.
   The supported APIs for a given eye-tracker can be listed and
selected using the API SELECT command from Table 2. An ex-
ample listing of available APIs for an eye-tracker is shown below.

  CLIENT SEND: <GET ID="API_SELECT" />
  SERVER SEND: <ACK ID="API_SELECT" MFG_ID0="generic"
  VER_ID0="1.0" MFG_ID1="Mirametrix" VER_ID1="1.0" />
  CLIENT SEND: <SET ID="API_SELECT" STATE="1" />
  SERVER SEND: <ACK ID="API_SELECT" STATE="1" />
                                                                                           Figure 1: Consumer experience lab.
  Future versions of the open eye-gaze API, as well as example
source code can be found at the following link: http://www.
mirametrix.com/eye-gaze-api.html.                                              symposium on Eye tracking research & applications. ACM, New
                                                                               York, NY, USA, 109–114.
3 Applications                                                                                               ˇ
                                                                             BATES , R., I STANCE , H., AND S PAKOV, O. 2005. D2.2 Re-
The eye-gaze interface was tested with a binocular portable eye-               quirements for the Common Format of Eye Movement Data.
gaze tracker for evaluation. The interface was used for two dif-               Tech. Rep. IST-2003-511598: Deliverable 2.2, Communication
ferent applications at two institutions, one integrating with EEG              by Gaze Interaction (COGAIN).
recording, and another using projection screen eye-tracking. The
projection screen system’s (see Figure 1) application was devel-                             ˇ
                                                                             BATES , R. AND S PAKOV, O. 2006. D2.3 Implementation of
oped entirely within the Qt toolkit under Windows XP in MS                     COGAIN Gaze Tracking Standards. Tech. Rep. IST-2003-
Visual Studio 2008. Qt provides an API to underlying TCP/IP                    511598: Deliverable 2.3, Communication by Gaze Interaction
(e.g., QtcpSocket) as well XML parsing functionality (e.g.,                    (COGAIN).
QtXmlSimpleReader), and is easily portable to Linux and Mac
OS X. The application was developed within one 16 week semester.             D UCHOWSKI , A. T. 2003. Eye Tracking Methodology: Theory and
                                                                                Practice. Springer-Verlag.
4 Conclusions
                                                                             H ANSEN , D. W., S KOVSGAARD , H. H. T., H ANSEN , J. P., AND
The presented open standard eye-gaze API provides the basic func-               M ØLLENBACH , E. 2008. Noise tolerant selection by gaze-
tionality required to integrate eye-gaze into applications. By basing           controlled pan and zoom in 3d. In ETRA ’08: Proceedings of
the API on established and well known standards such as TCP/IP                  the 2008 symposium on Eye tracking research & applications.
and XML, the API is accessible on most operating system plat-                   ACM, New York, NY, USA, 205–212.
forms and programming languages without any additional libraries
or cost. The API provides a standard format for eye-gaze data and            H ENNESSEY, C. AND L AWRENCE , P. 2008. 3d point-of-gaze es-
minimizes the need for application developers to deal with eye-                 timation on a volumetric display. In ETRA ’08: Proceedings of
gaze specific issues such as calibration and fixation detection. The              the 2008 symposium on Eye tracking research & applications.
API also provides a mechanism for accommodating future improve-                 ACM, New York, NY, USA, 59–59.
ments and enhancements to the interface, allowing eye-trackers and
applications to support multiple API versions. The open eye-gaze             L I , D., BABCOCK , J., AND PARKHURST, D. J. 2006. openeyes:
API can be used by commercial, low cost and open-source eye-                     a low-cost head-mounted eye-tracking solution. In ETRA ’06:
tracker developers to quickly support all eye-gaze aware applica-                Proceedings of the 2006 symposium on Eye tracking research
tions based on the API.                                                          &amp; applications. ACM, New York, NY, USA, 95–100.
   The proposed standard provides developers with a simple and
                                                                             S AN AGUSTIN , J., S KOVSGAARD , H., H ANSEN , J. P., AND
effective method for adding eye-gaze to their applications. Should
                                                                                H ANSEN , D. W. 2009. Low-cost gaze interaction: ready to
eye-tracking companies adopt this standard, the ensuing number of
                                                                                deliver the promises. In CHI EA ’09: Proceedings of the 27th
applications could advance eye-gaze as the next big thing in human
                                                                                international conference extended abstracts on Human factors
computer interaction.
                                                                                in computing systems. ACM, New York, NY, USA, 4453–4458.
References                                                                   WARD , D. J. AND M AC K AY, D. J. C. 2002. Fast hands-free writ-
BABCOCK , J. S. AND P ELZ , J. B. 2004. Building a lightweight                ing by gaze direction. Nature 418, 6900, 838.
  eyetracking headgear. In ETRA ’04: Proceedings of the 2004


                                                                        84

More Related Content

What's hot

10 Key Criteria for Mobile Platform Selection
10 Key Criteria for Mobile Platform Selection10 Key Criteria for Mobile Platform Selection
10 Key Criteria for Mobile Platform SelectionJason Haygood
 
SOFIA Poster (Abstract) - ADK RED DSDM. INDRA-ESI
SOFIA Poster (Abstract) - ADK RED DSDM. INDRA-ESISOFIA Poster (Abstract) - ADK RED DSDM. INDRA-ESI
SOFIA Poster (Abstract) - ADK RED DSDM. INDRA-ESISofia Eu
 
EclipseCon 2010 API Design and Evolution (Tutorial)
EclipseCon 2010 API Design and Evolution (Tutorial)EclipseCon 2010 API Design and Evolution (Tutorial)
EclipseCon 2010 API Design and Evolution (Tutorial)moberhuber
 
Gnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 yearsGnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 yearsGnana Bocha
 
EGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL OverviewEGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL OverviewWill Smythe
 

What's hot (13)

Sip and the java platforms
Sip and the java platformsSip and the java platforms
Sip and the java platforms
 
Hemanth_CV
Hemanth_CVHemanth_CV
Hemanth_CV
 
New Dot Net SDK
New Dot Net SDKNew Dot Net SDK
New Dot Net SDK
 
Bhanu_Pottipareddy_CV
Bhanu_Pottipareddy_CVBhanu_Pottipareddy_CV
Bhanu_Pottipareddy_CV
 
10 Key Criteria for Mobile Platform Selection
10 Key Criteria for Mobile Platform Selection10 Key Criteria for Mobile Platform Selection
10 Key Criteria for Mobile Platform Selection
 
VeenaChilukala
VeenaChilukalaVeenaChilukala
VeenaChilukala
 
Resume
ResumeResume
Resume
 
SOFIA Poster (Abstract) - ADK RED DSDM. INDRA-ESI
SOFIA Poster (Abstract) - ADK RED DSDM. INDRA-ESISOFIA Poster (Abstract) - ADK RED DSDM. INDRA-ESI
SOFIA Poster (Abstract) - ADK RED DSDM. INDRA-ESI
 
EclipseCon 2010 API Design and Evolution (Tutorial)
EclipseCon 2010 API Design and Evolution (Tutorial)EclipseCon 2010 API Design and Evolution (Tutorial)
EclipseCon 2010 API Design and Evolution (Tutorial)
 
Gnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 yearsGnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 years
 
Anurag Gautam
Anurag GautamAnurag Gautam
Anurag Gautam
 
EGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL OverviewEGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL Overview
 
Phonegap
PhonegapPhonegap
Phonegap
 

Viewers also liked

DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Aggressive Driving Res...
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Aggressive Driving Res...DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Aggressive Driving Res...
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Aggressive Driving Res...Dealin Doug
 
Goldberg Scanpath Clustering And Aggregation
Goldberg Scanpath Clustering And AggregationGoldberg Scanpath Clustering And Aggregation
Goldberg Scanpath Clustering And AggregationKalle
 
Doing Business With Aboriginal People
Doing Business With Aboriginal PeopleDoing Business With Aboriginal People
Doing Business With Aboriginal PeopleLee_Ahenakew
 
TDR - Predstavljanje poslovanja za 2009. godinu
TDR - Predstavljanje poslovanja za 2009. godinuTDR - Predstavljanje poslovanja za 2009. godinu
TDR - Predstavljanje poslovanja za 2009. godinuTDR d.o.o Rovinj
 
Komogortsev Qualitative And Quantitative Scoring And Evaluation Of The Eye Mo...
Komogortsev Qualitative And Quantitative Scoring And Evaluation Of The Eye Mo...Komogortsev Qualitative And Quantitative Scoring And Evaluation Of The Eye Mo...
Komogortsev Qualitative And Quantitative Scoring And Evaluation Of The Eye Mo...Kalle
 
Jarodzka A Vector Based, Multidimensional Scanpath Similarity Measure
Jarodzka A Vector Based, Multidimensional Scanpath Similarity MeasureJarodzka A Vector Based, Multidimensional Scanpath Similarity Measure
Jarodzka A Vector Based, Multidimensional Scanpath Similarity MeasureKalle
 
Homophones Lesson
Homophones LessonHomophones Lesson
Homophones Lessonjgd7971
 
רישום שמות מתחם
רישום שמות מתחםרישום שמות מתחם
רישום שמות מתחםhaimkarel
 
עיר בראי תקופה
עיר בראי תקופהעיר בראי תקופה
עיר בראי תקופהhaimkarel
 
ZFConf 2010: Proposal Lifecycle
ZFConf 2010: Proposal LifecycleZFConf 2010: Proposal Lifecycle
ZFConf 2010: Proposal LifecycleZFConf Conference
 
Blignaut Visual Span And Other Parameters For The Generation Of Heatmaps
Blignaut Visual Span And Other Parameters For The Generation Of HeatmapsBlignaut Visual Span And Other Parameters For The Generation Of Heatmaps
Blignaut Visual Span And Other Parameters For The Generation Of HeatmapsKalle
 
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Traffic Safety Index
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Traffic Safety IndexDealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Traffic Safety Index
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Traffic Safety IndexDealin Doug
 
Why businesses should talktojason the Leeds public relations and communicatio...
Why businesses should talktojason the Leeds public relations and communicatio...Why businesses should talktojason the Leeds public relations and communicatio...
Why businesses should talktojason the Leeds public relations and communicatio...Jason Kelly
 
Hyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van WouterHyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van Wouterguest2f17d3
 
Morimoto Context Switching For Fast Key Selection In Text Entry Applications
Morimoto Context Switching For Fast Key Selection In Text Entry ApplicationsMorimoto Context Switching For Fast Key Selection In Text Entry Applications
Morimoto Context Switching For Fast Key Selection In Text Entry ApplicationsKalle
 

Viewers also liked (20)

DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Aggressive Driving Res...
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Aggressive Driving Res...DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Aggressive Driving Res...
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Aggressive Driving Res...
 
Goldberg Scanpath Clustering And Aggregation
Goldberg Scanpath Clustering And AggregationGoldberg Scanpath Clustering And Aggregation
Goldberg Scanpath Clustering And Aggregation
 
Doing Business With Aboriginal People
Doing Business With Aboriginal PeopleDoing Business With Aboriginal People
Doing Business With Aboriginal People
 
TDR - Predstavljanje poslovanja za 2009. godinu
TDR - Predstavljanje poslovanja za 2009. godinuTDR - Predstavljanje poslovanja za 2009. godinu
TDR - Predstavljanje poslovanja za 2009. godinu
 
Komogortsev Qualitative And Quantitative Scoring And Evaluation Of The Eye Mo...
Komogortsev Qualitative And Quantitative Scoring And Evaluation Of The Eye Mo...Komogortsev Qualitative And Quantitative Scoring And Evaluation Of The Eye Mo...
Komogortsev Qualitative And Quantitative Scoring And Evaluation Of The Eye Mo...
 
Jarodzka A Vector Based, Multidimensional Scanpath Similarity Measure
Jarodzka A Vector Based, Multidimensional Scanpath Similarity MeasureJarodzka A Vector Based, Multidimensional Scanpath Similarity Measure
Jarodzka A Vector Based, Multidimensional Scanpath Similarity Measure
 
testeeeestes
testeeeestestesteeeestes
testeeeestes
 
Homophones Lesson
Homophones LessonHomophones Lesson
Homophones Lesson
 
רישום שמות מתחם
רישום שמות מתחםרישום שמות מתחם
רישום שמות מתחם
 
עיר בראי תקופה
עיר בראי תקופהעיר בראי תקופה
עיר בראי תקופה
 
Web 2 0
Web 2 0Web 2 0
Web 2 0
 
ZFConf 2010: Proposal Lifecycle
ZFConf 2010: Proposal LifecycleZFConf 2010: Proposal Lifecycle
ZFConf 2010: Proposal Lifecycle
 
Blignaut Visual Span And Other Parameters For The Generation Of Heatmaps
Blignaut Visual Span And Other Parameters For The Generation Of HeatmapsBlignaut Visual Span And Other Parameters For The Generation Of Heatmaps
Blignaut Visual Span And Other Parameters For The Generation Of Heatmaps
 
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Traffic Safety Index
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Traffic Safety IndexDealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Traffic Safety Index
DealinDougCommunity.com - ArapahoeOnline.com; 2009 AAA Traffic Safety Index
 
Why businesses should talktojason the Leeds public relations and communicatio...
Why businesses should talktojason the Leeds public relations and communicatio...Why businesses should talktojason the Leeds public relations and communicatio...
Why businesses should talktojason the Leeds public relations and communicatio...
 
Testcase
TestcaseTestcase
Testcase
 
RASCmar2010
RASCmar2010RASCmar2010
RASCmar2010
 
Hyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van WouterHyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van Wouter
 
Morimoto Context Switching For Fast Key Selection In Text Entry Applications
Morimoto Context Switching For Fast Key Selection In Text Entry ApplicationsMorimoto Context Switching For Fast Key Selection In Text Entry Applications
Morimoto Context Switching For Fast Key Selection In Text Entry Applications
 
news file
news filenews file
news file
 

Similar to Hennessey An Open Source Eye Gaze Interface Expanding The Adoption Of Eye Gaze In Everyday Applications

LANGUAGE TRANSLATOR APP
LANGUAGE TRANSLATOR APPLANGUAGE TRANSLATOR APP
LANGUAGE TRANSLATOR APPIRJET Journal
 
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...Codemotion
 
Beelders Using Vision And Voice To Create A Multimodal Interface For Microsof...
Beelders Using Vision And Voice To Create A Multimodal Interface For Microsof...Beelders Using Vision And Voice To Create A Multimodal Interface For Microsof...
Beelders Using Vision And Voice To Create A Multimodal Interface For Microsof...Kalle
 
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...SBGC
 
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...apidays
 
SOFIA Poster (Abstract) - ADK VLHCC 2010. INDRA/ESI
SOFIA Poster (Abstract) - ADK VLHCC 2010. INDRA/ESISOFIA Poster (Abstract) - ADK VLHCC 2010. INDRA/ESI
SOFIA Poster (Abstract) - ADK VLHCC 2010. INDRA/ESISofia Eu
 
Vii 2 Z Final Slides Os Gi Iess 2010
Vii 2 Z Final Slides Os Gi Iess 2010Vii 2 Z Final Slides Os Gi Iess 2010
Vii 2 Z Final Slides Os Gi Iess 2010IESS
 
Introduction to OSLC and Linked Data
Introduction to OSLC and Linked DataIntroduction to OSLC and Linked Data
Introduction to OSLC and Linked Dataopenservices
 
OSGi DevCon 2009 Review
OSGi DevCon 2009 ReviewOSGi DevCon 2009 Review
OSGi DevCon 2009 Reviewnjbartlett
 
Emotion recognition from facial expression using fuzzy logic
Emotion recognition from facial expression using fuzzy logicEmotion recognition from facial expression using fuzzy logic
Emotion recognition from facial expression using fuzzy logicFinalyear Projects
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dmActian Corporation
 
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...IRJET Journal
 
TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFrameworkShankar Nair
 

Similar to Hennessey An Open Source Eye Gaze Interface Expanding The Adoption Of Eye Gaze In Everyday Applications (20)

LANGUAGE TRANSLATOR APP
LANGUAGE TRANSLATOR APPLANGUAGE TRANSLATOR APP
LANGUAGE TRANSLATOR APP
 
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium ParisProject Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium Paris
 
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
 
Sqgo Ip
Sqgo IpSqgo Ip
Sqgo Ip
 
Beelders Using Vision And Voice To Create A Multimodal Interface For Microsof...
Beelders Using Vision And Voice To Create A Multimodal Interface For Microsof...Beelders Using Vision And Voice To Create A Multimodal Interface For Microsof...
Beelders Using Vision And Voice To Create A Multimodal Interface For Microsof...
 
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
 
GraphQL for Native Apps
GraphQL for Native AppsGraphQL for Native Apps
GraphQL for Native Apps
 
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
 
Open life in the cloud
Open life in the cloudOpen life in the cloud
Open life in the cloud
 
SOFIA Poster (Abstract) - ADK VLHCC 2010. INDRA/ESI
SOFIA Poster (Abstract) - ADK VLHCC 2010. INDRA/ESISOFIA Poster (Abstract) - ADK VLHCC 2010. INDRA/ESI
SOFIA Poster (Abstract) - ADK VLHCC 2010. INDRA/ESI
 
Vii 2 Z Final Slides Os Gi Iess 2010
Vii 2 Z Final Slides Os Gi Iess 2010Vii 2 Z Final Slides Os Gi Iess 2010
Vii 2 Z Final Slides Os Gi Iess 2010
 
Introduction to OSLC and Linked Data
Introduction to OSLC and Linked DataIntroduction to OSLC and Linked Data
Introduction to OSLC and Linked Data
 
OSGi DevCon 2009 Review
OSGi DevCon 2009 ReviewOSGi DevCon 2009 Review
OSGi DevCon 2009 Review
 
Emotion recognition from facial expression using fuzzy logic
Emotion recognition from facial expression using fuzzy logicEmotion recognition from facial expression using fuzzy logic
Emotion recognition from facial expression using fuzzy logic
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dm
 
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
 
One pk whitepaper
One pk whitepaperOne pk whitepaper
One pk whitepaper
 
TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFramework
 
Junos Space SDK
Junos Space SDKJunos Space SDK
Junos Space SDK
 
Shibboleth Federations and Secure SDI
Shibboleth Federations and Secure SDIShibboleth Federations and Secure SDI
Shibboleth Federations and Secure SDI
 

More from Kalle

Blignaut Visual Span And Other Parameters For The Generation Of Heatmaps
Blignaut Visual Span And Other Parameters For The Generation Of HeatmapsBlignaut Visual Span And Other Parameters For The Generation Of Heatmaps
Blignaut Visual Span And Other Parameters For The Generation Of HeatmapsKalle
 
Zhang Eye Movement As An Interaction Mechanism For Relevance Feedback In A Co...
Zhang Eye Movement As An Interaction Mechanism For Relevance Feedback In A Co...Zhang Eye Movement As An Interaction Mechanism For Relevance Feedback In A Co...
Zhang Eye Movement As An Interaction Mechanism For Relevance Feedback In A Co...Kalle
 
Yamamoto Development Of Eye Tracking Pen Display Based On Stereo Bright Pupil...
Yamamoto Development Of Eye Tracking Pen Display Based On Stereo Bright Pupil...Yamamoto Development Of Eye Tracking Pen Display Based On Stereo Bright Pupil...
Yamamoto Development Of Eye Tracking Pen Display Based On Stereo Bright Pupil...Kalle
 
Wastlund What You See Is Where You Go Testing A Gaze Driven Power Wheelchair ...
Wastlund What You See Is Where You Go Testing A Gaze Driven Power Wheelchair ...Wastlund What You See Is Where You Go Testing A Gaze Driven Power Wheelchair ...
Wastlund What You See Is Where You Go Testing A Gaze Driven Power Wheelchair ...Kalle
 
Vinnikov Contingency Evaluation Of Gaze Contingent Displays For Real Time Vis...
Vinnikov Contingency Evaluation Of Gaze Contingent Displays For Real Time Vis...Vinnikov Contingency Evaluation Of Gaze Contingent Displays For Real Time Vis...
Vinnikov Contingency Evaluation Of Gaze Contingent Displays For Real Time Vis...Kalle
 
Urbina Pies With Ey Es The Limits Of Hierarchical Pie Menus In Gaze Control
Urbina Pies With Ey Es The Limits Of Hierarchical Pie Menus In Gaze ControlUrbina Pies With Ey Es The Limits Of Hierarchical Pie Menus In Gaze Control
Urbina Pies With Ey Es The Limits Of Hierarchical Pie Menus In Gaze ControlKalle
 
Urbina Alternatives To Single Character Entry And Dwell Time Selection On Eye...
Urbina Alternatives To Single Character Entry And Dwell Time Selection On Eye...Urbina Alternatives To Single Character Entry And Dwell Time Selection On Eye...
Urbina Alternatives To Single Character Entry And Dwell Time Selection On Eye...Kalle
 
Tien Measuring Situation Awareness Of Surgeons In Laparoscopic Training
Tien Measuring Situation Awareness Of Surgeons In Laparoscopic TrainingTien Measuring Situation Awareness Of Surgeons In Laparoscopic Training
Tien Measuring Situation Awareness Of Surgeons In Laparoscopic TrainingKalle
 
Takemura Estimating 3 D Point Of Regard And Visualizing Gaze Trajectories Und...
Takemura Estimating 3 D Point Of Regard And Visualizing Gaze Trajectories Und...Takemura Estimating 3 D Point Of Regard And Visualizing Gaze Trajectories Und...
Takemura Estimating 3 D Point Of Regard And Visualizing Gaze Trajectories Und...Kalle
 
Stevenson Eye Tracking With The Adaptive Optics Scanning Laser Ophthalmoscope
Stevenson Eye Tracking With The Adaptive Optics Scanning Laser OphthalmoscopeStevenson Eye Tracking With The Adaptive Optics Scanning Laser Ophthalmoscope
Stevenson Eye Tracking With The Adaptive Optics Scanning Laser OphthalmoscopeKalle
 
Stellmach Advanced Gaze Visualizations For Three Dimensional Virtual Environm...
Stellmach Advanced Gaze Visualizations For Three Dimensional Virtual Environm...Stellmach Advanced Gaze Visualizations For Three Dimensional Virtual Environm...
Stellmach Advanced Gaze Visualizations For Three Dimensional Virtual Environm...Kalle
 
Skovsgaard Small Target Selection With Gaze Alone
Skovsgaard Small Target Selection With Gaze AloneSkovsgaard Small Target Selection With Gaze Alone
Skovsgaard Small Target Selection With Gaze AloneKalle
 
San Agustin Evaluation Of A Low Cost Open Source Gaze Tracker
San Agustin Evaluation Of A Low Cost Open Source Gaze TrackerSan Agustin Evaluation Of A Low Cost Open Source Gaze Tracker
San Agustin Evaluation Of A Low Cost Open Source Gaze TrackerKalle
 
Ryan Match Moving For Area Based Analysis Of Eye Movements In Natural Tasks
Ryan Match Moving For Area Based Analysis Of Eye Movements In Natural TasksRyan Match Moving For Area Based Analysis Of Eye Movements In Natural Tasks
Ryan Match Moving For Area Based Analysis Of Eye Movements In Natural TasksKalle
 
Rosengrant Gaze Scribing In Physics Problem Solving
Rosengrant Gaze Scribing In Physics Problem SolvingRosengrant Gaze Scribing In Physics Problem Solving
Rosengrant Gaze Scribing In Physics Problem SolvingKalle
 
Qvarfordt Understanding The Benefits Of Gaze Enhanced Visual Search
Qvarfordt Understanding The Benefits Of Gaze Enhanced Visual SearchQvarfordt Understanding The Benefits Of Gaze Enhanced Visual Search
Qvarfordt Understanding The Benefits Of Gaze Enhanced Visual SearchKalle
 
Prats Interpretation Of Geometric Shapes An Eye Movement Study
Prats Interpretation Of Geometric Shapes An Eye Movement StudyPrats Interpretation Of Geometric Shapes An Eye Movement Study
Prats Interpretation Of Geometric Shapes An Eye Movement StudyKalle
 
Porta Ce Cursor A Contextual Eye Cursor For General Pointing In Windows Envir...
Porta Ce Cursor A Contextual Eye Cursor For General Pointing In Windows Envir...Porta Ce Cursor A Contextual Eye Cursor For General Pointing In Windows Envir...
Porta Ce Cursor A Contextual Eye Cursor For General Pointing In Windows Envir...Kalle
 
Pontillo Semanti Code Using Content Similarity And Database Driven Matching T...
Pontillo Semanti Code Using Content Similarity And Database Driven Matching T...Pontillo Semanti Code Using Content Similarity And Database Driven Matching T...
Pontillo Semanti Code Using Content Similarity And Database Driven Matching T...Kalle
 
Park Quantification Of Aesthetic Viewing Using Eye Tracking Technology The In...
Park Quantification Of Aesthetic Viewing Using Eye Tracking Technology The In...Park Quantification Of Aesthetic Viewing Using Eye Tracking Technology The In...
Park Quantification Of Aesthetic Viewing Using Eye Tracking Technology The In...Kalle
 

More from Kalle (20)

Blignaut Visual Span And Other Parameters For The Generation Of Heatmaps
Blignaut Visual Span And Other Parameters For The Generation Of HeatmapsBlignaut Visual Span And Other Parameters For The Generation Of Heatmaps
Blignaut Visual Span And Other Parameters For The Generation Of Heatmaps
 
Zhang Eye Movement As An Interaction Mechanism For Relevance Feedback In A Co...
Zhang Eye Movement As An Interaction Mechanism For Relevance Feedback In A Co...Zhang Eye Movement As An Interaction Mechanism For Relevance Feedback In A Co...
Zhang Eye Movement As An Interaction Mechanism For Relevance Feedback In A Co...
 
Yamamoto Development Of Eye Tracking Pen Display Based On Stereo Bright Pupil...
Yamamoto Development Of Eye Tracking Pen Display Based On Stereo Bright Pupil...Yamamoto Development Of Eye Tracking Pen Display Based On Stereo Bright Pupil...
Yamamoto Development Of Eye Tracking Pen Display Based On Stereo Bright Pupil...
 
Wastlund What You See Is Where You Go Testing A Gaze Driven Power Wheelchair ...
Wastlund What You See Is Where You Go Testing A Gaze Driven Power Wheelchair ...Wastlund What You See Is Where You Go Testing A Gaze Driven Power Wheelchair ...
Wastlund What You See Is Where You Go Testing A Gaze Driven Power Wheelchair ...
 
Vinnikov Contingency Evaluation Of Gaze Contingent Displays For Real Time Vis...
Vinnikov Contingency Evaluation Of Gaze Contingent Displays For Real Time Vis...Vinnikov Contingency Evaluation Of Gaze Contingent Displays For Real Time Vis...
Vinnikov Contingency Evaluation Of Gaze Contingent Displays For Real Time Vis...
 
Urbina Pies With Ey Es The Limits Of Hierarchical Pie Menus In Gaze Control
Urbina Pies With Ey Es The Limits Of Hierarchical Pie Menus In Gaze ControlUrbina Pies With Ey Es The Limits Of Hierarchical Pie Menus In Gaze Control
Urbina Pies With Ey Es The Limits Of Hierarchical Pie Menus In Gaze Control
 
Urbina Alternatives To Single Character Entry And Dwell Time Selection On Eye...
Urbina Alternatives To Single Character Entry And Dwell Time Selection On Eye...Urbina Alternatives To Single Character Entry And Dwell Time Selection On Eye...
Urbina Alternatives To Single Character Entry And Dwell Time Selection On Eye...
 
Tien Measuring Situation Awareness Of Surgeons In Laparoscopic Training
Tien Measuring Situation Awareness Of Surgeons In Laparoscopic TrainingTien Measuring Situation Awareness Of Surgeons In Laparoscopic Training
Tien Measuring Situation Awareness Of Surgeons In Laparoscopic Training
 
Takemura Estimating 3 D Point Of Regard And Visualizing Gaze Trajectories Und...
Takemura Estimating 3 D Point Of Regard And Visualizing Gaze Trajectories Und...Takemura Estimating 3 D Point Of Regard And Visualizing Gaze Trajectories Und...
Takemura Estimating 3 D Point Of Regard And Visualizing Gaze Trajectories Und...
 
Stevenson Eye Tracking With The Adaptive Optics Scanning Laser Ophthalmoscope
Stevenson Eye Tracking With The Adaptive Optics Scanning Laser OphthalmoscopeStevenson Eye Tracking With The Adaptive Optics Scanning Laser Ophthalmoscope
Stevenson Eye Tracking With The Adaptive Optics Scanning Laser Ophthalmoscope
 
Stellmach Advanced Gaze Visualizations For Three Dimensional Virtual Environm...
Stellmach Advanced Gaze Visualizations For Three Dimensional Virtual Environm...Stellmach Advanced Gaze Visualizations For Three Dimensional Virtual Environm...
Stellmach Advanced Gaze Visualizations For Three Dimensional Virtual Environm...
 
Skovsgaard Small Target Selection With Gaze Alone
Skovsgaard Small Target Selection With Gaze AloneSkovsgaard Small Target Selection With Gaze Alone
Skovsgaard Small Target Selection With Gaze Alone
 
San Agustin Evaluation Of A Low Cost Open Source Gaze Tracker
San Agustin Evaluation Of A Low Cost Open Source Gaze TrackerSan Agustin Evaluation Of A Low Cost Open Source Gaze Tracker
San Agustin Evaluation Of A Low Cost Open Source Gaze Tracker
 
Ryan Match Moving For Area Based Analysis Of Eye Movements In Natural Tasks
Ryan Match Moving For Area Based Analysis Of Eye Movements In Natural TasksRyan Match Moving For Area Based Analysis Of Eye Movements In Natural Tasks
Ryan Match Moving For Area Based Analysis Of Eye Movements In Natural Tasks
 
Rosengrant Gaze Scribing In Physics Problem Solving
Rosengrant Gaze Scribing In Physics Problem SolvingRosengrant Gaze Scribing In Physics Problem Solving
Rosengrant Gaze Scribing In Physics Problem Solving
 
Qvarfordt Understanding The Benefits Of Gaze Enhanced Visual Search
Qvarfordt Understanding The Benefits Of Gaze Enhanced Visual SearchQvarfordt Understanding The Benefits Of Gaze Enhanced Visual Search
Qvarfordt Understanding The Benefits Of Gaze Enhanced Visual Search
 
Prats Interpretation Of Geometric Shapes An Eye Movement Study
Prats Interpretation Of Geometric Shapes An Eye Movement StudyPrats Interpretation Of Geometric Shapes An Eye Movement Study
Prats Interpretation Of Geometric Shapes An Eye Movement Study
 
Porta Ce Cursor A Contextual Eye Cursor For General Pointing In Windows Envir...
Porta Ce Cursor A Contextual Eye Cursor For General Pointing In Windows Envir...Porta Ce Cursor A Contextual Eye Cursor For General Pointing In Windows Envir...
Porta Ce Cursor A Contextual Eye Cursor For General Pointing In Windows Envir...
 
Pontillo Semanti Code Using Content Similarity And Database Driven Matching T...
Pontillo Semanti Code Using Content Similarity And Database Driven Matching T...Pontillo Semanti Code Using Content Similarity And Database Driven Matching T...
Pontillo Semanti Code Using Content Similarity And Database Driven Matching T...
 
Park Quantification Of Aesthetic Viewing Using Eye Tracking Technology The In...
Park Quantification Of Aesthetic Viewing Using Eye Tracking Technology The In...Park Quantification Of Aesthetic Viewing Using Eye Tracking Technology The In...
Park Quantification Of Aesthetic Viewing Using Eye Tracking Technology The In...
 

Hennessey An Open Source Eye Gaze Interface Expanding The Adoption Of Eye Gaze In Everyday Applications

  • 1. An Open Source Eye-gaze Interface: Expanding the Adoption of Eye-gaze in Everyday Applications Craig Hennessey∗ Andrew T. Duchowski† Mirametrix Research School of Computing, Clemson University Abstract ming language. These libraries are included as part of a software development kit (SDK) which must be purchased from the vendor. There is no standard software interface in the eye-tracking industry, As every vendor has a different SDK, a software developer must making it difficult for developers to integrate eye-gaze into their acquire an SDK for each eye-tracker they wish to support. applications. The combination of high cost eye-trackers and lack of applications has resulted in a slow adoption of the technology. Consequently, it is possible to develop a translator application To expand the adoption of eye-gaze in everyday applications, we that acts as an intermediary between the vendor’s API and an ap- present an eye-gaze specific application programming interface that plication, as exemplified by the development of the Eye-Tracking is platform and language neutral, based on open standards, easily Universal Driver (ETU-Driver),1 one of COGAIN’s Work Package ˇ 2 (WP2) deliverables [Bates et al. 2005; Bates and Spakov 2006]. used and extended and free of cost. Although this effort also suggested an XML-based universal API, 1 Introduction & Background the resultant ETU-Driver was wrapped into a COM object, limiting its portability across operating systems. The use of eye-gaze as an interface is still rarely observed out- side of research laboratories [Duchowski 2003]. While recent 1.3 Open Eye-gaze API low-cost [Babcock and Pelz 2004; Li et al. 2006] and open source [San Agustin et al. 2009] initiatives have been proposed, In this paper we propose an open eye-gaze API that combines the high equipment cost and a lack of applications are holding back best of the techniques described above. A summary of the pro- widespread adoption of eye-gaze in everyday applications. With no posed eye-gaze interface is shown in comparison with the tradi- clear standard established, developers wanting to integrate eye-gaze tional methods in Table 1. into their applications must choose between two interface mecha- The open eye-gaze API proposed here is based on the web- nisms, simple cursor following or a vendor specific application pro- services API model. This model uses TCP/IP as the communication gramming interface (API). mechanism and the extensible mark-up language (XML) as the data format. Both TCP/IP and XML are open standards that are readily 1.1 Cursor tracking available on most operating systems and programming languages. Data and commands are encoded in plain text XML and transmit The simplest way to add eye-gaze to an application is to link the as simple strings over the TCP/IP communication layer, providing mouse cursor position to the eye-tracker point-of-gaze (POG), and maximum transparency. The open eye-gaze API will be described then track the cursor’s position. A number of applications, such in detail in the following section. as Dasher [Ward and MacKay 2002] and Stargazer [Hansen et al. 2008], currently use this technique. Its advantages are simplicity, availability, and no additional costs. Table 1: Comparison of eye-gaze interface techniques. However, this approach lacks the additional functionality related to the POG such as a POG validity flag, binocular data (left and Feature Cursor Vendor Open eye- right eye POG), eye position information, fixation/saccade tracking API gaze API and more. Furthermore, once the mouse cursor is tied to the POG, Platform neutral Yes No Yes the mouse is no longer available for traditional input. Language neutral Yes No Yes Open standards Yes No Yes 1.2 Vendor API Proprietary data format N/A Yes No Until now, to achieve full eye-gaze application functionality, a ven- Cost None High* None dor specific API was required. A full API usually provides com- Baseline feature set X/Y Full Full plete eye-gaze information, including the left and right eye POG, Extendable No No* Yes head position, and data validity flags. In addition, vendors may * Vendor dependent provide the ability to customize the internal algorithms, such as the filtering and fixation detection methods. One disadvantage of using a vendor supplied API is that propri- etary libraries (lib or dll) must be included, which are typically 2 Implementation compiled for a specific operating system and a specific program- The open eye-gaze API uses a client-server architecture. The client ∗ craig@mirametrix.com application configures selected variables on the server such as the † duchowski@clemson.edu fixation POG or left and right eye positions, and initiates the data transmission sequence. The client then listens for data records sent Copyright © 2010 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or by the server each time a new POG is computed. Commands and classroom use is granted without fee provided that copies are not made or distributed records are formatted in XML strings which are transmitted over for commercial advantage and that copies bear this notice and the full citation on the a TCP/IP connection, allowing communication between multiple first page. Copyrights for components of this work owned by others than ACM must be computers. Using TCP rather than UDP ensures records are not honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. lost and are received in the correct order. Request permissions from Permissions Dept, ACM Inc., fax +1 (212) 869-0481 or e-mail 1 http://www.cs.uta.fi/ permissions@acm.org. ˜oleg/etud.html ETRA 2010, Austin, TX, March 22 – 24, 2010. © 2010 ACM 978-1-60558-994-7/10/0003 $10.00 81
  • 2. Table 2: Configuration variables for the open eye-gaze API. Data ID Read/Write Parameters Type Description ENABLE SEND DATA R/W STATE boolean Start or stop data streaming ENABLE SEND COUNTER R/W STATE boolean Enable record ID counter data ENABLE SEND TIME R/W STATE boolean Enable time stamp data ENABLE SEND TIME TICK R/W STATE boolean Enable high resolution timer tick TIME TICK FREQUENCY R FREQ long long Tick frequency (signed 64-bit integer) ENABLE SEND POG LEFT R/W STATE boolean Enable left eye point-of-gaze data ENABLE SEND POG RIGHT R/W STATE boolean Enable right eye point-of-gaze data ENABLE SEND POG FIX R/W STATE boolean Enable fixation point-of-gaze data ENABLE SEND PUPIL LEFT R/W STATE boolean Enable left eye image data ENABLE SEND PUPIL RIGHT R/W STATE boolean Enable right eye image data SCREEN SIZE R WIDTH int Screen width (pixels) SCREEN SIZE R HEIGHT int Screen height (pixels) CAMERA SIZE R WIDTH int Camera image width (pixels) CAMERA SIZE R HEIGHT int Camera image height (pixels) PRODUCT ID R VALUE string Product identifier SERIAL ID R VALUE string Device serial number COMPANY ID R VALUE string Manufacturer identifier API ID R MFG ID string API vendor identity API ID R VER ID string API version number API SELECT R MFG ID? string List of vendors supported API SELECT R VER ID? string List of versions supported API SELECT W STATE int Selected API 2.1 XML Format return (CR), line feed (LF) pair (rn) is introduced, indicating the Data and commands are formatted using XML string fragments end of the string. The CRLF sequence is safe to use as the record called elements. Each element is defined by an empty-element TAG delimiter as the XML specification disallows CRLF from appearing that specifies the element type. An empty-element TAG is of the within the XML string. form <GET ... />, which is shorter than the start/end element for- 2.2 Client / Server mat <GET>...</GET>. Only six XML tags are required for the open eye-gaze API and are listed in Table 3. The eye-tracker operates as the server and the application operates as the client. A TCP stream is opened between the client application and the eye-gaze server using the IP address of the server and an as- Table 3: XML TAG identifiers in the open eye-gaze API signed port number (4242 is the default port value). Applications may be run on completely remote computers and connect to the eye- Client tracking server by using the appropriate remote server IP address. TAG Description Multiple eye-trackers may also be run on the same machine by as- GET Get a data variable or command signing different port numbers to the different servers (for example SET Set a data variable or command 4242 for tracker 1 and 4243 for tracker 2). A client application may Server then connect to multiple eye-trackers by simply opening two ports TAG Description for communication (4242 and 4243 in this example). ACK Acknowledge a successful command The server can operate in three different modes: configuration, NACK Acknowledge a failed command calibration and data transmission. CAL Calibration result record Configuration. In configuration mode the server responds to REC Data result record each XML element query (GET or SET TAG) with the appropriate XML (ACK or NACK TAG). This mode is used to select the variables in the requested data stream, query other eye-tracker variables and Any additional parameters in a data record or command are de- to initiate or end calibration and data transmission. An example of a fined by attributes taking the form of name/value pairs, e.g.: configuration event where the COUNTER variable is enabled in the data stream would appear as follows: <GET ID="ENABLE_SEND_TIME" /> CLIENT SEND: <SET ID="ENABLE_SEND_COUNTER" STATE="1" /> where the attribute is ID and the value is ENABLE SEND TIME. SERVER SEND: <ACK ID="ENABLE_SEND_COUNTER" STATE="1" /> As XML elements are read by the client and server it is possible that a partial element will be read if the reader is faster than the The full list of configuration variables in the eye-gaze API are sender, or multiple elements may be read if the reader is slower. A listed in Table 2. Camera and screen sizes are returned in pixel partial and multiple record are shown below: units. The POG X and Y eye position coordinates are normalized to the screen and camera image sizes respectively. For monocular <GET ID="ENABLE_SE eye-trackers, the LEFT eye data structure should be used and the <GET ID="COMPANY_ID" /><GET ID="API_ID" /> RIGHT eye data structure left cleared (zeroed). Calibration. To reduce the complexity for application develop- There is no identifier available to signal end of transmission for ers, the calibration of the eye-tracker is performed by the server but an open TCP connection and therefore to delimit records, a carriage can be initiated by the client using the commands listed in Table 4. 82
  • 3. The calibration process includes the display of calibration markers, new POG computation. The XML record contains attributes that the actual calibration procedure, and the display of the results. match the configured data requested in the configuration mode. At- During calibration the server transmits calibration XML ele- tributes selected with commands in Table 2 are listed in Table 6. ments (CAL TAG and ID attribute value CALIB RESULT PT) after Synchronizing recorded eye-gaze with external data such as soft- each calibration point is completed as shown in Table 5. The PT at- ware events and biological data such as EMG and EEG can be tribute indicates which calibration point was completed. After the performed using the TIME TICK variable, which is a measure of entire calibration procedure is complete, the results of the calibra- elapsed CPU timer ticks and is equal to the output of a high resolu- tion are returned with the CALIB RESULT attribute, also shown in tion timing function. Conversion from ticks to seconds is achieved Table 5. The CALX?/CALY?, LX?/LY? and RX?/RY? results are by dividing by the TIME TICK FREQUENCY value from Table 2. returned in percentages of the screen (0-100%) and can be used to Unfiltered POG estimates are available by reading the left and provide feedback on how well the calibration performed for the eye right eye POG data (LPOG? and RPOG? respectively). This data at the indicated point. The LV? and RV? flags provide an indicator can then be processed using any desired algorithm for filtering and of whether the calibration was successful at all. extracting fixations. To avoid the need for the application devel- oper to implement their own fixation detector, a fixation data record Table 4: Commands for calibration display and control. is also available (FPOG?). The fixation data record is generated by whichever fixation algorithm (e.g., position-variance, velocity- Data ID Read/ Param Type Description based, etc.) is implemented by the eye-tracker, and provides the Write X/Y fixation position on the screen, the start time and duration in CALIBRATE START R/W STATE Bool Start or stop the seconds, a valid flag, and an identifier indicating the fixation’s ID. calibration pro- cedure Table 6: Data attributes available in the data record. CALIBRATE SHOW R/W STATE Bool Show or hide the default cali- Param Type Description bration window CNT int Sequence counter for data packets TIME float Elapsed time in seconds since last system initialization or calibration Table 5: Calibration data and results. TIME TICK long long Tick count (signed 64-bit integer) LPOGX float Left point-of-gaze X Data ID Param Type Description LPOGY float Left point-of-gaze Y CALIB RESULT PT PT int Calibration point LPOGV int Left point-of-gaze valid flag completed RPOGX float Right point-of-gaze X CALIB RESULT CALX? float Calibration X/Y co- RPOGY float Right point-of-gaze Y CALY? ordinate for point ? RPOGV int Right point-of-gaze valid flag CALIB RESULT LX? float Left eye POG X/Y FPOGX float Fixation point-of-gaze X LY? for point ? FPOGY float Fixation point-of-gaze Y CALIB RESULT LV? int Left eye valid flag FPOGS float Fixation start (seconds) for point ? FPOGD float Fixation duration (time since fixa- CALIB RESULT RX? float Right eye POG X/Y tion start (seconds)) RY? for point ? FPOGID int Fixation number ID CALIB RESULT RV? int Right eye valid flag FPOGV int Fixation point-of-gaze valid flag for point ? LPCX float Left eye pupil center X ? = the calibration point number LPCY float Left eye pupil center Y LPD float Left eye pupil diameter To illustrate the operation of the open eye-gaze API calibration LPS float Left eye pupil distance (unit less, procedure the following listing shows an entire calibration sequence from calibration position) on a 4 point calibration grid. LPV int Left eye pupil image valid RPCX float Right eye pupil center X CLIENT SEND: <SET ID="CALIBRATE_SHOW" STATE="1" /> SERVER SEND: <ACK ID="CALIBRATE_SHOW" STATE="1" /> RPCY float Right eye pupil center Y CLIENT SEND: <SET ID="CALIBRATE_START" STATE="1" /> RPD float Right eye pupil diameter SERVER SEND: <ACK ID="CALIBRATE_START" STATE="1" /> RPS float Right eye pupil distance (unit less, SERVER SEND: <CAL ID="CALIB_RESULT_PT" PT="1" /> from calibration position) SERVER SEND: <CAL ID="CALIB_RESULT_PT" PT="2" /> SERVER SEND: <CAL ID="CALIB_RESULT_PT" PT="3" /> RPV int Right eye pupil image valid SERVER SEND: <CAL ID="CALIB_RESULT_PT" PT="4" /> SERVER SEND: <CAL ID="CALIB_RESULT" CALX1="0.10000" CALY1="0.08000" LX1="0.00000" LY1="0.00000" LV1="0" To illustrate the operation of the open eye-gaze API, the follow- RX1="0.09881" RY1="0.09238" RV1="1" ing listing shows the configuration of the data record and begins CALX2="0.90000" CALY2="0.08000" data transmission. The data record includes the record counter and LX2="0.90595" LY2="0.08952" LV2="1" RX2="0.88869" RY2="0.09905" RV2="1" the fixation POG. For many applications this is the only data re- CALX3="0.10000" CALY3="0.92000" quired for basic eye-gaze operation. LX3="0.08631" LY3="0.89143" LV3="1" RX3="0.09881" RY3="0.92952" RV3="1" CLIENT SEND: <SET ID="ENABLE_SEND_COUNTER" STATE="1" /> CALX4="0.90000" CALY4="0.92000" SERVER SEND: <ACK ID="ENABLE_SEND_COUNTER" STATE="1" /> LX4="0.89524" LY4="0.90095" LV4="1" CLIENT SEND: <SET ID="ENABLE_SEND_POG_FIX" STATE="1" /> RX4="0.89583" RY4="0.92190" RV4="1" /> SERVER SEND: <ACK ID="ENABLE_SEND_POG_FIX" STATE="1" /> CLIENT SEND: <SET ID="ENABLE_SEND_DATA" STATE="1" /> SERVER SEND: <ACK ID="ENABLE_SEND_DATA" STATE="1" /> Data Transmission. When in free running data transmission SERVER SEND: <REC CNT="72" FPOGX="0.5065" FPOGY="0.4390" mode, the server transmits an XML record (REC TAG) after each FPOGD="0.078" FPOGID="468" FPOGV="1"/> 83
  • 4. SERVER SEND: <REC CNT="73" FPOGX="0.5071" FPOGY="0.4409" FPOGD="0.094" FPOGID="468" FPOGV="1"/> SERVER SEND: <REC CNT="74" FPOGX="0.5077" FPOGY="0.4428" FPOGD="0.109" FPOGID="468" FPOGV="1"/> 2.3 API Extensions The open eye-gaze API outlined in this paper corresponds to version 1.0 of the generic eye-gaze interface, identified by the MFG ID="generic" and VER ID="1.0" variables. Further collaborative efforts to improve the open eye-gaze API interface will correspond to increasing API version numbers. The API may be extended to include head mounted, or 3D eye-tracking specific variables [Hennessey and Lawrence 2008] by simply adding new attributes to the XML command and data tables. Eye-tracking vendors should always at least support the generic, 1.0, interface, but may also add their own unique additions to the API under their own MFG ID identifier. The supported APIs for a given eye-tracker can be listed and selected using the API SELECT command from Table 2. An ex- ample listing of available APIs for an eye-tracker is shown below. CLIENT SEND: <GET ID="API_SELECT" /> SERVER SEND: <ACK ID="API_SELECT" MFG_ID0="generic" VER_ID0="1.0" MFG_ID1="Mirametrix" VER_ID1="1.0" /> CLIENT SEND: <SET ID="API_SELECT" STATE="1" /> SERVER SEND: <ACK ID="API_SELECT" STATE="1" /> Figure 1: Consumer experience lab. Future versions of the open eye-gaze API, as well as example source code can be found at the following link: http://www. mirametrix.com/eye-gaze-api.html. symposium on Eye tracking research & applications. ACM, New York, NY, USA, 109–114. 3 Applications ˇ BATES , R., I STANCE , H., AND S PAKOV, O. 2005. D2.2 Re- The eye-gaze interface was tested with a binocular portable eye- quirements for the Common Format of Eye Movement Data. gaze tracker for evaluation. The interface was used for two dif- Tech. Rep. IST-2003-511598: Deliverable 2.2, Communication ferent applications at two institutions, one integrating with EEG by Gaze Interaction (COGAIN). recording, and another using projection screen eye-tracking. The projection screen system’s (see Figure 1) application was devel- ˇ BATES , R. AND S PAKOV, O. 2006. D2.3 Implementation of oped entirely within the Qt toolkit under Windows XP in MS COGAIN Gaze Tracking Standards. Tech. Rep. IST-2003- Visual Studio 2008. Qt provides an API to underlying TCP/IP 511598: Deliverable 2.3, Communication by Gaze Interaction (e.g., QtcpSocket) as well XML parsing functionality (e.g., (COGAIN). QtXmlSimpleReader), and is easily portable to Linux and Mac OS X. The application was developed within one 16 week semester. D UCHOWSKI , A. T. 2003. Eye Tracking Methodology: Theory and Practice. Springer-Verlag. 4 Conclusions H ANSEN , D. W., S KOVSGAARD , H. H. T., H ANSEN , J. P., AND The presented open standard eye-gaze API provides the basic func- M ØLLENBACH , E. 2008. Noise tolerant selection by gaze- tionality required to integrate eye-gaze into applications. By basing controlled pan and zoom in 3d. In ETRA ’08: Proceedings of the API on established and well known standards such as TCP/IP the 2008 symposium on Eye tracking research & applications. and XML, the API is accessible on most operating system plat- ACM, New York, NY, USA, 205–212. forms and programming languages without any additional libraries or cost. The API provides a standard format for eye-gaze data and H ENNESSEY, C. AND L AWRENCE , P. 2008. 3d point-of-gaze es- minimizes the need for application developers to deal with eye- timation on a volumetric display. In ETRA ’08: Proceedings of gaze specific issues such as calibration and fixation detection. The the 2008 symposium on Eye tracking research & applications. API also provides a mechanism for accommodating future improve- ACM, New York, NY, USA, 59–59. ments and enhancements to the interface, allowing eye-trackers and applications to support multiple API versions. The open eye-gaze L I , D., BABCOCK , J., AND PARKHURST, D. J. 2006. openeyes: API can be used by commercial, low cost and open-source eye- a low-cost head-mounted eye-tracking solution. In ETRA ’06: tracker developers to quickly support all eye-gaze aware applica- Proceedings of the 2006 symposium on Eye tracking research tions based on the API. &amp; applications. ACM, New York, NY, USA, 95–100. The proposed standard provides developers with a simple and S AN AGUSTIN , J., S KOVSGAARD , H., H ANSEN , J. P., AND effective method for adding eye-gaze to their applications. Should H ANSEN , D. W. 2009. Low-cost gaze interaction: ready to eye-tracking companies adopt this standard, the ensuing number of deliver the promises. In CHI EA ’09: Proceedings of the 27th applications could advance eye-gaze as the next big thing in human international conference extended abstracts on Human factors computer interaction. in computing systems. ACM, New York, NY, USA, 4453–4458. References WARD , D. J. AND M AC K AY, D. J. C. 2002. Fast hands-free writ- BABCOCK , J. S. AND P ELZ , J. B. 2004. Building a lightweight ing by gaze direction. Nature 418, 6900, 838. eyetracking headgear. In ETRA ’04: Proceedings of the 2004 84