iTrace directly supports many software engineering tasks by providing the following features.

  • Session Creation
  • Calibration
  • Displacement Adjustment
  • Source Code Entity Level Tracking
  • Coarse-grained tracking on text files
  • Raw Data Exports in an easy to understand format
  • Fixation Exports.


The iTrace Core is responsible for managing all aspects of the physical eye tracking devices. It also maintains the session state and maintains any gaze related data files produced during the study. Lastly, the core assists with plugin management indicating when to start and stop recording information in the IDE. The most current release supports Tobii Pro and 4C (with pro upgrade) eye trackers. Support for Gazepoint and other trackers is planned for future releases.


Presently development is underway to provide plugin support for Visual Studio, Eclipse, and the Google Chrome web browser. The Plugin in capable of converting screen gaze positions supplied by the core to specific text and interface elements contained with the IDE. The plugin also features the ability to enable an on-screen gaze cursor to show where a participant is looking within the IDE.

Data Format

When a session is finished the core and plugin will both produce a set of recorded data about the study in XML format. The response records are joined by the session-time field in each gaze response record.

Fixation Filter Information

iTrace presently supports three fixation filtering algorithms performed as an offline post processing phase using our supplementary tool Gaze2Src.

The current fixation algorithms are:

  • Basic: Generic area based fixation algorithm based on Olsson (2007)
  • I-VT: Calculate velocity based fixations. Remove high velocity gazes to create clusters of slower eye movements, then filter those clusters to ensure they meet a minimum fixation length to get the final set of fixations.
  • I-DT: Calculate dispersion based fixations. These are sequences of gazes (of at least a minimum length) where the sum of the maximum difference in x values and the maximum difference in y values is less than the dispersion threshold.

All parameters used in the calculation of the fixation filters are modifiable for custom tuning.

Additional fixation filters will be added to the iTrace infrastructure in the future.

Analysis and Supporting Tools

Output from iTrace is intended to be generic enough for any type of task. To support researchers working in specific areas such as program comprehension, Gaze2Src supports mapping raw gazes and fixations to syntactic and token information derived from source code written in C, C++, C#, or Java. For now, this data analysis is done offline. Additional analysis and supporting tools will be released in the future.