iTrace - Features

Here's what iTrace has to offer

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

  • 9 point calibration
  • Tracking multiple source code files and text files within the IDE
  • Tracking Bug reports, Stack Overflow pages, and custom websites (need to extend for this to work.)
  • Session Creation
  • Source Code Entity Level Tracking
  • Line level tracking on text files
  • Several Fixation Detection algorithms via Toolkit
  • Querying via Toolkit
  • A SQL Database of all eye movement data for participants in a study
  • Raw Data Exports in an easy to understand format via Toolkit

iTrace - Core

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, GazePoint trackers, and the Smarteye trackers. It is designed to add new tracker support fairly easily. The core also is able to display a recticle of your current gaze to check calibration accuracy.


The current plugins supported are Visual Studio, Eclipse, Atom, 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 event-id field in each gaze response record.

Fixation Event Detection

iTrace presently supports three fixation filtering algorithms performed as an offline post processing phase using iTrace Toolkit The current fixation algorithms supported 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. A simple UI for toolkit let's you start processing gazes by first creating databse of gazes.

iTrace Toolkit - 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, iTrace Toolkit supports mapping raw gazes and fixations to syntactic and token information derived from source code written in C, C++, C#, or Java. iTrace toolkit provides the complete toolchain for generating the fixations and the token mapping from the raw gaze generated from the plugins. iTrace Toolkit is not a statistical application. You can export the fixation data you need and perform statistical tests in your favorite statistical package.