Note: This web page is really old, and not being maintained any more, but I've left it up because it may be of use to some.

Generalized Fitts' Law Model Builder


William Soukoreff and Scott MacKenzie

University of Guelph, Guelph Ontario Canada

Version 1.1

March 1996


The Generalized Fitts' Law Model Builder (GFLMB) is a software tool which allows the experimenter to design experiments, capture data, and build models using Fitts' law. The software runs on an IBM or compatible computer equipped with an appropriate graphical display and pointer device (e.g., a VGA screen and a mouse).

Features intended for both HCI educational purposes and experimental research are included, making this a very powerful utility for research in input techniques or Fitts' law.


The GFLMB software, the accompanying manual, and its source code are all Copyright (C) 1996, by R. William Soukoreff and I. Scott MacKenzie.

This software is provided free to the research community for use and distribution. The GFLMB software, source code and manual may not be sold or distributed for a price. Any redistribution of this software or this manual must have the copyright notices and this legal notice attached.

If you modify the software, the manual, or the source code, then you may not redistribute it without permission from the authors.

Permission is hereby granted for the software, source code, or manual to be redistributed in a modified state for educational purposes only, (i.e. by a professor or teacher to his or her pupils) so long as the copyright notice remains intact, and so long as a notice is visibly attached indicating that it has been modified, and is not in its original form.

There is no warranty of any kind expressed or implied. Use at your own risk. Neither the authors nor the University of Guelph shall be held to blame in the event of any damage or other losses incurred due to the usage of this software. We do not guarantee the fitness or accuracy of this software for any purpose. This software works well and accurately on our computers, it may not on yours.


The software is available via anonymous FTP through the internet. The latest version can be found by anonymous FTP, or on the Web at:

Note that if you would like to be informed, by e-mail, of upcoming releases of this software, then read the section of this document titled "GFLMB MAILING LIST" below.


The GFLMB was constructed by William Soukoreff and Scott MacKenzie of the University of Guelph, Ontario, Canada. This work was presented during the Interactive Poster Session of CHI'95, the Conference on Human Factors in Computer Systems (Denver Colorado, 1995).

Any inquiries may be directed to William Soukoreff at:

We welcome any comments or suggestions you may have.

Note that if you would like to be informed, by e-mail, of upcoming releases of this software, then read the section of this document titled "GFLMB MAILING LIST" below.


Fitts' law is a relation derived from information theory (specifically Shannon's Theorem 17) which very successfully models human movement. It was first described by Fitts in 1954.

Fitts' law models rapid, aimed, movements, where one appendage (like a hand) starts at rest at a specific start position, and moves to rest within a target area. Fitts' law is written:

MT = ID / IP

where MT is the Movement Time, the time required to complete the motion; ID is the index of difficulty of the task (defined below); and IP is the index of performance. The index of performance is a constant for a specific appendage. The movement time is commonly measured in milliseconds, the index of difficulty in bits, and the index of performance in bits per second.

The index of difficulty was originally defined by Fitts (1954) as

ID = log2( 2 A / W )

where A is the amplitude of the movement (the distance from the start position to the centre of the target); and W is the width of the target. Both A and W are measured in units of distance (millimetres).

Other formulations for the index of difficulty have been purposed. For example there is the Welford formulation (1960)

ID = log2( A / W + 0.5 ).

Currently, the preferred formulation is that proposed by MacKenzie (1989)

ID = log2( A / W + 1 ).

This is the preferred formulation because it: always yields a positive index of difficulty, provides a slightly better fit with empirical data than the other formulations, and because it exactly reflects Shannon's Theorem 17, which Fitts' law is based upon.

For a more complete discussion of Fitts' law, please see the references included at the end of this document.

The GFLMB software allows the experimenter to investigate the application of Fitts' law to the manipulation of a computer input pointing device (such as a mouse). It has been established that Fitts' law provides an accurate and efficacious means to predict the movement time of a pointing device being manipulated by a human operator.

Many researchers have investigated Fitts' law, applying it to a wide range of movement tasks. Each of these researchers have had to develop their own software to present movement tasks to subjects, and to accurately record the results. The GFLMB software is a highly-configurable Fitts' law experiment system, that only needs to be configured to be used for a specific experiment. Version 1.0 of GFLMB provided complete control over the amplitude of motion, and the dimensions and shape of the target, as well as many other aspects of the movement task. Later releases of the GFLMB software have provided increased control over more aspects of the Fitts movement task. All of the flexibility and control provided by GFLMB is still available through a simple-to-use configuration screen.


This section of the manual describes how to configure GFLMB for a specific experiment. The GFLMB software allows all of the configuration options to be modified in a GUI environment on the Configuration Screen. The configuration is automatically saved to a configuration file in a friendly ASCII format which may be modified using any standard PC text editor.

The GFLMB configuration screen contains several text fields which may contain comma-delimited lists of values. There are four fields labelled: Amplitude, Width, Height and Angle, which allow the experimenter to enter all of the physical conditions that the subjects will be exposed to. A "Trials per Condition" field indicates how many times each of the conditions will be shown to the subjects.

In general, there are four types of movement task which are possible using a computer input device: a discrete pointing task, a discrete dragging task, a serial pointing task, and a serial dragging task.

Pointing tasks require that the subject manipulates a pointing device such that the pointer is placed within the boundary of the target, and that task completion is signalled somehow. The converse of a pointing task is a dragging task. Dragging tasks are only possible on devices which have some kind of button associated with the device(such as a mouse). The subject begins the task by depressing the device button. The movement task is then performed while maintaining the state of the device button (i.e. keeping the button depressed). Finally, the movement task is complete when the operator has moved the pointer within the target, and released the button. This type of task is identical to how selection is generally performed in software supporting a graphic interface.

There are two types of pointing device usage, Discrete, and Serial. Typical pointing device usage is best modelled as Discrete movement tasks, each separated by some other kind of activity. An example of this is word-processing, where a pointing device (such as a mouse) is used intermittently to select things, but inbetween each usage of the pointing device, the user types on the keyboard. Serial movement tasks occur when the selection tasks are immediately consecutive, such as playing a mouse-intensive computer game.

It is useful to think of movement tasks as having events which define the beginning and end of the task. So, a discrete task is characterised by some event which indicates that the task is beginning, followed by the pointer device movement, which terminates with some task ending event. A serial task is slightly different. It begins with some task starting event, followed by a movement and an ending event, which is followed by a second movement, which is again terminated by another ending event. The serial tasks repeat some predetermined number of times.


The physical conditions can be defined simply by entering a comma-delimited list of floating-point values. The configuration screen contains fields named "Amplitude", "Width", "Height", and "Angle", which define the physical experimental conditions. In general, at least one value must be specified in each of these fields. (See the discussion of target shape below for an exception to this.)

For soundness of scientific method, the subjects should be presented with each condition more than once. Enter the number of times each condition should be presented into the "Trials per Condition" field.

The device and control display gain of the device can be specified using the "Device" button and "C-D Gain" field, respectively. (Note: Versions 1.0 and 1.1 support only a mouse pointing device. Anticipate more devices being supported in the future.)

The type of movement task, and the events which signify the beginning and end of each task are specified using the "Task Type", "Task Beginning Event", and "Task Ending Event" buttons.

The task types supported are: Discrete Pointing, Discrete Dragging, Serial Pointing, and, Serial Dragging.

The beginning events are:

Space Bar
The space bar must be hit to signify the beginning of the task, then the same hand that depressed the space bar is moved from the keyboard to the pointing device. This option is intended to support experiments investigating Homing Time (the time between when the space bar is pressed, and the pointing device first moves). If the space bar beginning condition is used, then GFLMB automatically measures the homing time as well as the usual movement time (from the first pointer movement until the end of the task), and records both the homing time and movement time in the data file.

The timing begins as soon as the pointing device moves.

Mouse Click
The button on the pointing device is clicked to indicate the beginning of the task. This option is only valid for devices that have a device button.
The ending events are:

Any Mouse Click
Any device button assertion signifies the end of the task.

Correct Mouse Click
Only an assertion of the device button when the device is correctly positioned within the target will be accepted. If the subject makes an error, the trial will be recorded as being an error, but the subject will have to make a correct selection to continue.

Dwell Time
The task ends when the pointer has hovered within the target boundaries for a long enough time. There is an associated "Dwell Time" field, which will accept an integer indicating how many consecutive milliseconds the pointer must be correctly positioned within the target to terminate the task.
The shape of the target can be changed with the "Target Shape" button. The currently supported shapes are: Rectangle, Square, Circle and Text. Since the Square and Circle shapes are axially symmetric, it is not possible to specify a height for these target types (the same value from the width field is used for both the height and width).

The Text target shape is significantly different from the other target shapes. When any of the other target shapes are used (rectangle, square or circle), the experiment screen appears black, and target(s) appear white on the black background. In the text mode, the background is completely filled with text. The text is white on the black background. The target area appears as a white rectangle which surrounds one or more of the text words. The text that appears on the background is taken from the file named in the "Target Text File" field of the configuration screen. The Text target mode is intended to provide a more realistic Fitts movement task. Some researchers believe that this realism is very important when doing research of this type, and most users use pointing devices on screens that are covered in text (such as when using a word-processor). (See Card, English and Burr, 1978.)

The "Audible Beep on Error" button enables an error beep to provide feedback to the subject during the experiment.

When an External Factor is present in a experiment, a pop-up window informs the subject of which external factor to use, before each movement task. This feature is extremely useful. Consider having the two external factors: "Use Left Hand", and "Use Right Hand". Every time a new condition is presented to the subject, they will be informed about which hand to use, automatically by the software. The external factors are output to the data file, for easy subsequent analysis.


The configuration of GFLMB can be accomplished by using the configuration screen, or by modifying the configuration file with any PC text editor. Any features which are accessible through directly editing the configuration file are also accessible through the configuration screen. Therefore, there is no reason to have to modify the configuration file directly.

Since the configurable options have already been described, the format of the configuration file will only briefly be described.

One may specify a configuration filename on the command-line, when invoking GFLMB. If no filename is specified, then the default configuration file name of "config" is used.

A typical configuration file is included as Figure 1.

# Config file for GFLMB version 1.1c
Device: Mouse 
TaskType: Discrete Pointing 
TaskBeginning: Mouse Click 
TaskEnding: Any Mouse Click 
Target: Text 
ErrorBeep: Yes 
PracticeSession: No 
AmplitudeConditions: 80, 160 
WidthConditions: 2.46, 4.92, 9.84, 20.46 
HeightConditions: 4.56 
AngleConditions: 0 
TrialsPerCondition: 1 
CDGainConditions: 1.0 
DwellTime: 200 
TargetTextFile: textfile 
AspectRatioX: 2.55 
AspectRatioY: 2.525

Figure 1 - The contents of a typical configuration file.

Each line in the configuration file represents the setting(s) of one of the GFLMB options.


Before subjects can be run through the experiment, GFLMB will ask for a file name to use to store the data. The data is not written to the disk device until the subject has finished all tasks within the block that is being presented.

If the subject is running a practice session, then the data file name field can be left blank, and no data file will be written.

A typical example data file appears in Figure 2.

# Data file: DataFile
# Subject #: 
# Session #: 
# Subject Name: 
# Sitting #: 
# Date/Time: 09:32 on Tuesday February 06, 1996 
#   A,    W,   H,  th, CDG,    x,    y, E, HomeT, MoveT 
 80.0,  2.5, 4.6, 0.0, 1.0,  0.4,  0.0, 0,     0,  1297 
 80.0,  4.9, 4.6, 0.0, 1.0,  0.8,  0.0, 0,     0,  1488 
 80.0,  9.8, 4.6, 0.0, 1.0,  0.4,  0.0, 0,     0,   760 
 80.0, 20.5, 4.6, 0.0, 1.0,  5.5,  0.0, 0,     0,   981 
160.0,  2.5, 4.6, 0.0, 1.0,  0.0,  0.0, 0,     0,  2987 
160.0,  4.9, 4.6, 0.0, 1.0,  0.8, -0.4, 0,     0,  1583 
160.0,  9.8, 4.6, 0.0, 1.0, -0.8,  0.4, 0,     0,  1775 
160.0, 20.5, 4.6, 0.0, 1.0,  7.5,  0.0, 0,     0,   929 
# End of data file: DataFile 

Figure 2 - A Typical Data File.

The data file is neatly organised into rows and columns. Each row represents one individual movement task. The column headings are:

A      Amplitude (mm)
W      Width  (mm)
H      Height (mm)
th     Angle  (mm)
CDG    Control-Display Gain
(x,y)  The position, relative to the centre of the target,
       where the subject indicated the end of task (mm)
E      Indicates the task ended in error
HomeT  Homing Time (ms)
MoveT  Moving Time (ms)
If external factors are used, another column (to the right) will appear in the data file, indicating which external factor applied to which datum.


If you have difficulties getting the GFLMB software to work, then please feel free to contact the authors.


A mailing-list does exist for those who would like to be informed about upcoming releases of the GFLMB software. If you would like your e-mail address to be added to this list, then please send e-mail to William Soukoreff () with a subject line of "GFLMB Mailing List". You should receive an acknowledgement within a day or so.


Version 2.0 of the GFLMB software is planned to be released in early 1996. Considerable interest in GFLMB and an unfortunate "feature" of version 1.0 has prompted the authors to release version 1.1 in March 1996. The significant changes in the software between version 1.0 and 1.1 are:
  1. The target's physical qualities (Amplitude, Width, Height, and Angle) are now floating-point numbers, instead of integers.

  2. The External Factors feature of version 1.0 did not work. It has been fixed. When an External Factor is present in a experiment, a pop-up window informs the subject of which external factor to use, before each movement task.

    This feature is extremely useful. Consider having the two external factors: "Use Left Hand", and "Use Right Hand". Every time a new condition is presented to the subject, they will be informed about which hand to use automatically by the software.

    The external factors are output to the data file.

  3. The Text target shape has been added. This feature allows for more Fitts' Law studies to be replicated then was possible with version 1.0.

  4. The Aspect Ratio is now saved to the configuration file. The hassle to experimenters of re-configuring the Aspect Ratio before every subject prompted the release of version 1.1 of the GFLMB.

  5. Pressing the ESCAPE key during an experiment aborts the experiment. In version 1.0, no data file was written in this case. Version 1.1 has changed this. Aborting an experiment in version 1.1 now causes a data file to be written, containing what data was measured.


Below you will find a list of the significant publications in Fitts' Law research. If you're interested in what research has been done on Fitts' Law, this list should be a good starting place.
  1. Card, S. K., English, W. K., and Burr, B. J. (1978). Evaluation of mouse, rate-controlled isometric joystick, step keys and text keys for text selection on a CRT. Ergonomics, 21, 601-613.

  2. Fitts, P. M. (1954). The information capacity of the human motor system in controlling the amplitude of movement. Journal of Experimental Psychology, 47, 381-391.

  3. Fitts, P. M., and Peterson, J. R. (1964). Information capacity of discrete motor responses. Journal of Experimental Psychology, 67, 103-112.

  4. MacKenzie, I. S. (1989). A note on the information-theoretical basis for Fitts' law. Journal of Motor Behaviour, 21, 323-330.

  5. MacKenzie, I. S. (1992). Fitts' law as a research and design tool in human-computer interaction. Human-Computer Interaction, 7, 91-139.

  6. MacKenzie, I. S. (1992). Movement time prediction in human-computer interfaces. Proceedings of Graphics Interface '92, pp. 140-150. Toronto: CIPS.

  7. Shannon, C. E., and Weaver, W. (1949). The mathematical theory of communication, Urbana, IL: University of Illinois Press.

  8. Soukoreff, R. W., and MacKenzie, I. S. (1995). Generalized Fitts' Law Model Builder, Conference Companion of the CHI '95 Conference on Human Factors in Computing Systems, pp. 113-114. New York: ACM.

  9. Welford, A. T. (1960). The measurement of sensory-motor performance: Survey and reappraisal of twelve years' progress. Ergonomics, 3, 189-230.

  10. Welford, A. T. (1968). Fundamentals of skill. London: Methuen.