Psychtoolbox-3 Overview


The attraction of using computer displays for visual psychophysics is that they allow software specification of the stimulus. Programs to run experiments are often written in a low-level language (e.g. C or Pascal) to achieve full control of the hardware for precise stimulus display. Although these low-level languages provide power and flexibility, they are not conducive to rapid program development. Interpreted languages (e.g. BASIC, LISP, Mathematica, and Matlab) are abstracted from hardware details and provide friendlier development environments, but don't provide the hardware control needed for precise stimulus display. The Psychophysics Toolbox is a software package that adds this capability to the Matlab and Octave application on Macintosh, Linux and Windows computers (we will only mention Matlab for the remainder of this text, but statements mostly apply to Octave as well).

Matlab is a high-level interpreted language with extensive support for numerical calculations. The Psychophysics Toolbox interfaces between Matlab and the computer hardware. The Psychtoolbox's core routines provide access to the display frame buffer and color lookup table, allow synchronization with the vertical retrace, support millisecond timing, allow access to OpenGL commands, and facilitate the collection of observer responses. Ancillary routines support common needs like color space transformations and the QUEST threshold seeking algorithm.

The Matlab & Psychtoolbox environment is flexible yet relatively easy to learn. Canned experimental programs fail because they usually can't do a really new experiment. For that you need the expressive scope of a full-fledged computer language, such as C or Matlab. Matlab is a particularly good language for running laboratory experiments. Even for experienced programmers, three features of Matlab greatly speed the development cycle over other languages. Matlab has a rich library of high-level functions available to do math and plotting. It operates on arrays and images as named variables. And it is interactive, so that one can type 1+1 and immediately see the answer 2, which is invaluable when developing laboratory software to run experiments.

Brand-new users who've never programmed before will find that they're learning three things when they start using the toolbox: Matlab, how to create stimuli and measure responses, and how to organize an experiment. There's almost no overlap between those three topics. The included demos illustrate how many common tasks may be accomplished (type help PsychDemos). For learning the language, many people say they liked the Matlab manual. Others skipped the manual and learned by trial and error. Everyone uses Matlab's help feature frequently. It's one of Matlab's best features and we have tried to follow their conventions with the toolbox routines.

The Psychtoolbox is popular. As of October 2006, Psychtoolbox-2 has been downloaded thirty thousand times: 24,324 Windows and 8,743 Mac OS 9. Psychtoolbox-3 for Mac OSX was downloaded 1,832 times before 22 September 2006. The current count, since 22 September 2006, of registered unique installations of Psychtoolbox-3 appears below. The Psychtoolbox forum has over 1500 members and about 4 messages a day. Principal investigators and their collaborators have identified at least 127 grant-supported projects that use it. We know of 404 papers that cite it, and according to Google scholar, over 3200 articles cite it.

Click the following link to download a PDF file with the slides of a presentation (held at ECVP 2007 in Arezzo by Mario Kleiner). These slides will give you a quick overview about the new features of Psychtoolbox-3 and differences to the old Psychtoolbox-2:

Talk slides of Psychtoolbox presentation, given at ECVP 2007 Arezzo

Good luck programming.

Mario Kleiner, David Brainard, Denis Pelli, Chris Broussard, Tobias Wolf, Diederick Niehorster
The Developers



Registered Psychtoolbox-3 installations as of April 25 2014 03:26:42.

Total number of downloads + updates : 146968

Total number of unique installations : 51039

Breakdown of installations by Psychtoolbox flavor:

'beta'/'current' : 48361
'unsupported' aka 'stable' : 684
'trunk' : 38
Psychtoolbox-3.0.7 : 0
Psychtoolbox-3.0.8-PreTiger : 5
Psychtoolbox-3.0.8 : 27
Psychtoolbox-3.0.9 : 16
Psychtoolbox-3.0.10 : 71
Psychtoolbox-3.0.11-PreWinGst : 1
Unclassified : 1829

Breakdown by host operating system:

MacOS-X all : 15052 ( 29.491%)
Windows all : 34287 ( 67.178%)
Linux all : 1700 ( 3.331%)
Linux on ARM embedded/mobile : 3
Linux 64 Bit Matlab/Octave : 823 ( 48.412% of all Linux systems)
Windows 64 Bit Matlab/Octave : 5925 ( 17.281% of all Windows systems)
MacOS-X 64 Bit Matlab/Octave : 5957 ( 39.576% of all MacOS-X systems)

For Macintosh - Breakdown by system architecture:

PowerMac : 1446 ( 9.607% of all Apple systems)
IntelMac : 13506
Unknown : 100

For Macintosh - Breakdown by OS/X version:

10.3 - Panther : 156
10.4 - Tiger : 1868
10.5 - Leopard : 3061
10.6 - Snow Leopard : 4252
10.7 - Lion : 2118
10.8 - Mountain Lion : 2395
10.9 - Mavericks : 1212

For MS-Windows - Breakdown by Windows version:

Windows additional preVistas : 1117
Windows 2000 : 145
Windows XP : 14133
Windows Vista : 2630
Windows 7 : 15093
Windows 8 : 1136
Windows 8.1 : 33

For MS-Windows - Breakdown by Matlab release:

Matlab R2007a (V7.4) or later: 28915
Previous Matlab releases : 5211

Breakdown for all systems by Matlab major versions:

Matlab 5.x : 1
Matlab 6.x : 528
Matlab 7.x : 40673
Matlab 7.0 (R2005a) : 2183
Matlab 7.1 (R2005b) : 1329
Matlab 7.2 (R2006a) : 878
Matlab 7.3 (R2006b) : 1141
Matlab 7.4 (R2007a) : 3124
Matlab 7.5 (R2007b) : 4144
Matlab 7.6 (R2008a) : 2740
Matlab 7.7 (R2008b) : 2117
Matlab 7.8 (R2009a) : 3123
Matlab 7.9 (R2009b) : 3287
Matlab 7.10 (R2010a) : 5872
Matlab 7.11 (R2010b) : 2174
Matlab 7.12 (R2011a) : 2413
Matlab 7.13 (R2011b) : 2325
Matlab 7.14 (R2012a) : 3823
Matlab 8.0 (R2012b) : 3136
Matlab 8.1 (R2013a) : 3715
Matlab 8.2 (R2013b) : 1745

Number of GNU/Octave V3+ installations by system:

Octave on OS/X : 396 ( 2.631% of all OS/X installs)
Octave on Linux : 336 ( 19.765% of all Linux installs)
Octave on Windows : 161 ( 0.470% of all Windows installs)

Parsed lines in registration log        : 148993
Invalid (skipped) log entries : 6
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki