Class FittsTaskTwo

  extended by FittsTaskTwo

public class FittsTaskTwo
extends java.lang.Object

FittsTaskTwo -- an application to evaluate the performance of computer pointing devices.

The application implements a two-dimensional Fitts' law task, as per Task #2 in ISO9241-9. Performance data are gathered and saved in output files for follow-up analyses.


     PROMPT>java FittsTaskTwo
There are three output data files: sd1, sd2, and sd3. ("sd" is for "summary data".) The data are comma delimited for easy importing into a spreadsheet or statistics program.

sd1 Output File

The sd1 file contains the following summary data for each trial:

     Trial - trial number
     A - amplitude (distance to target in pixels)
     W - width (diameter of target in pixels)
     Ae - effective amplitude (pixels; see below)
     dx - delta x (pixels; see below)
     PT - pointing time (ms)
     ST - selection time (ms) - the time the button is down
     MT - movement time (ms) - Note: MT = PT + ST
     Error - 0 = hit, 1 = miss
     TRE - target re-entries
     TAC - task axis crossings
     MDC - movement direction changes
     ODC - orthogonal direction changes
     MV - movement variability
     ME - movement error
     MO - movement offset
The first three entries (Trial, A, W) are the task conditions. The next six (Ae, dx, PT, ST, MT, Error) are gross measures of the participant's performance for each trial.

Ae is the effective amplitude -- the actual cursor distance moved projected on the task axis. Ae < A for undershoots and Ae > A for overshoots.

dx is the delta x of the selection coordinate. It is normalized relative to the center of the target and to the task axis. For example, dx = 1 is the equivalant of a one-pixel overshoot while dx = -1 is the equivalent of a one-pixel undershoot. Note that dx = 0 does not mean selection was precisely at the centre of the target. It means selection was on the line orthogonal to the task axis going through the centre of the target. This is consistent with the inherently one-dimensional nature of Fitts' law.

The last seven measures (TRE, TAC, MDC, ODC, MV, ME, MO) capture accuracy characteristics of the cursor path during a trial. These measures are fully described in Accuracy Measures for Evaluating Computer Pointing Devices by MacKenzie, Kauppinen, and Silfverberg (2001).

sd2 Output File

The sd2 file contains summary data for a block of trials, specifically
     OP - order of presentation for the A-W conditions
     BRC - block repeat count
     Trials - number of trials
     A - target amplitude (pixels)
     W - target width (diameter) (pixels)
     ID - index of difficulty (bits)
     Ae - effective target amplitude (pixels)
     We - effective target width (pixels)
     IDe - effective index of difficulty (bits)
     PT - pointing time (ms)
     ST - selection time (ms)
     MT - movement time (ms)
     ER - error rate (%)
     TP - throughput (bits/s)
     TRE - target re-entries
     TAC - task axis crossings
     MDC - movement direction changes
     ODC - orthogonal direction changes
     MV - movement variability
     ME - movement error
     MO - movement offset
The first six entries (OP, BRC, Trials, A, W, ID) are the task conditions. OP shows the order of presenting the A-W conditions. The order is either (i) the order of the A and W conditions specified in the configuration file, or (ii) random if the "Randomize Target Conditions" is selected in the setup dialog (see below). BRC is the block repeat count -- the number of times the block was repeated due the error threshold being exceeded. (Note: BRC isn't a task condition!)

The remaining entries are all measures of participant behaviour, computed over a block of trials for the specified A-W condition. (Note: A "block" is a sequence of trials. The number of trials in the block is n - 1, where n is the number of targets.) All the values, except TP, are means, computed over the trials in the block. TP is the Fitts' law throughput, in bits/s, computed over the block.

sd3 Output File

The sd3 file contains trace data. For each trial, the on-going timestamps, x coordinates, and y coordinates are collected and saved. There is a separate application (FittsTaskTwoTrace) that facilitates viewing the trace data. Click here to view the API.


FittsTaskTwo works with a set of arguments with default values loaded from FittsTaskTwo.cfg. The arguments can be changed using the setup dialog that pops up when the program is launched (see below). Consult the comments in the config file for additional information on the configuration arguments.

Here are some files and screen snaps of interest:

Screen snap of setup dialog:

Screen snap of a task screen:

Screen snap of popup window at the end of a task condition ("Block Summary"):

Screen snap of popup window at the end of a session of task conditions ("Session Summary"):

The following are the "sd" (summary data) files, associated with the demo pics above.

sd1 file: Click here

sd2 file: Click here

sd3 file: Click here

If you have any questions, please contact Scott MacKenzie at mack "at"

Scott MacKenzie, 2008, 2009

Constructor Summary
Method Summary
static void main(java.lang.String[] args)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public FittsTaskTwo()
Method Detail


public static void main(java.lang.String[] args)