Background

Documentation


iTrace Suite Features


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

Tutorials


Tutorials and demonstrations of iTrace can be found on our YouTube channel.

Community Requested Features


  • Tracking Gaze During Editing: Currently, iTrace does not support tracking developer gaze while editing code in a way that is meaningful or accurate simply because of how eye tracking works. This is a complex problem and we are working towards a solution to support this requested feature in the future.
  • Support Visual Studio Code: Currently, iTrace cannot develop a full plugin for VSCode. We offer a dev-console script that users can use instead. See this GitHub issue for more details.

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.

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.

iTrace-Visualize

Visualization of Eye Tracking


Eye-tracking sessions generate a lot of data, and this data can be daunting to understand at a glance. To help researchers understand exactly what data they have, iTrace-Visualize offers various visualizations of the collected data - including a marked-up video of the session in conjuction with our OBS plugin.

Plugins


The current plugins supported are Visual Studio, JetBrains, Eclipse, Atom, Sublime, Notepad++, the Google Chrome web browser, and OBS. The Plugins are 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.

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 iTrace-Toolkit lets you start processing gazes by first creating a database of gazes.

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.