Introduction

Eye-hand coordination is the important and complex way we respond to objects we see. For example, if you want to grasp a coffee cup in front of you, you (unconsciously!) estimate the distance between your hand and the cup and make a movement. This seemingly trivial task has been studied in depth by psychologists interested in eye-hand coordination and motor control.

INFO: Anyone who has observed how gradually babies develop their eye-hand coordination knows that it is, of course, not a trivial task at all. It is trivial for adults, but it takes humans months to develop.

The American psychologist Paul Fitts published about how difficult it is to move our hand towards an object in the 1950s and his mathematical description is known as Fitts’s Law.

In those times, researchers sometimes used the word law, that is, psychology and neuroscience inspired by the laws of physics. Nowadays, psychologist will rarely use the word Law to describe regularities. Also, there are various different useful equations based on the parameters of the experiment (see the wikipedia page).

Fitts’s Law is about how long it takes to move your hand to an object. This Law states exactly how the time it takes is a function of the combination distance to the object and its size.

For example, a small object 1 feet meter from your hand takes more time to grasp than a large object; that is, size plays a role. But a small object close by can be just as easy to grasp as an object further away, given that that object is larger.

The essence of Fitts’s Law

Movement Time = Log2( 2 * Distance / Size )

About this implementation

Fitts’s original study only used one dimension of movement and here we use 2.

At the end of this demo, the PsyToolkit function "feedback" will draw a simple XY plot of the data. An example based on only 20 trials is below. Of course, you get a more nicely shaped scatter plot when you have more trials. For example, you might try this yourself in your PsyToolkit account and set the number of trials from 20 to 100.

fitts feedback screenshot

Run the demo

On each of the 20 trials, you need to do the following:
  1. Move the mouse cursor to the small yellow rectangle in the top left of the screen, and click the (left) mouse button once

  2. Now a red rectangle of a randomly set size will appear, and you need to move the cursor as soon as you can into the red rectangle area (you do not need to click it).

Data output file

TODO

In PsyToolkit, the data output file is simply a textfile. The save line of the PsyToolkit experiment script determines what is being saved in the data output file. Typically, for each experimental trial, you would have exactly one line in your text file, and each number/word on that line gives you the information you need for your data analysis, such as the condition, response speed, and whether an error was made.

Meaning of the columns in the output datafile. You need this information for your data analysis.

Colum Meaning

1

x-position of stimulus

2

y-position of stimulus

3

size of stimulus

4

distance of stimulus from start position

5

the Fitts' calculation (predicted RT based on distance and size)

6

the response time (ms)

7

status (1=correct, 2=error, 3=too slow)

PsyToolkit code

Click to expand the PsyToolkit script code (part of zip file below)
options
  mouse on
  bitmapdir stimuli
  origin topleft

bitmaps
  afterwords
  instruction

fonts
  arial 20
  
task fitts
  set $x random 50 750                 # choose a random x position
  set $y random 50 550                 # choose a random y position
  set $w random 5 100                  # choose a random size
  show rectangle 10 10 20 20 255 255 0 # show top left yellow rectangle
  readmouse l 1 10000 range 1 1        # wait until user clicks yellow rectangle
  clear 1                              # and erase the yellow rectangle
  delay 300                            # wait a little bit
  show rectangle $x $y $w $w 255 0 0   # show red target
  readmouse 2 2000                     # measure how long it takes to move there
  clear 2                              # erase the red target rectangle
  delay 1000                           # intertrial interval of 1 second
  set $distance expression sqrt ( $x * $x + $y * $y )
  set $fittslaw expression log2 ( 2 * $distance / $w ) * 100.0
  save $x $y $w $distance $fittslaw RT STATUS # save everything to data file

block test
  message instruction
  tasklist
    fitts 20
  end
  feedback
    text 400 150 "Press space bar to continue"
    xyplot c5 c6 ; select c7 == 1
  end
  message afterwords

Download

If you have a PsyToolkit account, you can upload the zipfile directly to your PsyToolkit account. Watch a video on how to do that. If you want to upload the zipfile into your PsyToolkit account, make sure the file is not automatically uncompressed (some browsers, especially Mac Safari, by default uncompress zip files). Read here how to easily deal with this.

Further reading

  • 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.

The 1954 paper was reprinted in 1992 in the Journal of Experimental Psychology: General, 121, 262-269. If you have access to a University library, you can download this classic paper as PDF.
  • On the web: MacKenzie, I. S. (1995). Movement time prediction in human-computer interfaces. In R. M. Baecker, W. A. S. Buxton, J. Grudin, & S. Greenberg (Eds.), Readings in human-computer interaction (2nd ed.) (pp. 483-493). Los Altos, CA: Kaufmann. [reprint of MacKenzie, 1992].

  • Gross, J. (2011). Improving Usability with Fitts’ Law. Helpful explanations on web blog