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 May 24 2013 09:56:08.
Total number of downloads + updates : 117870
Total number of unique installations : 40423
Breakdown of installations by Psychtoolbox flavor:
'beta'/'current' : 38207
'unsupported' aka 'stable' : 683
'trunk' : 38
Psychtoolbox-3.0.7 : 0
Psychtoolbox-3.0.8-PreTiger : 5
Psychtoolbox-3.0.8 : 30
Psychtoolbox-3.0.9 : 7
Unclassified : 1448
Breakdown by host operating system:
MacOS-X all : 12086 ( 29.899%)
Windows all : 27020 ( 66.843%)
Linux all : 1317 ( 3.258%)
Linux 64 Bit Matlab/Octave : 492 ( 37.358% of all Linux systems)
Windows 64 Bit Matlab/Octave : 1493 ( 5.526% of all Windows systems)
MacOS-X 64 Bit Matlab/Octave : 2719 ( 22.497% of all MacOS-X systems)
For Macintosh - Breakdown by system architecture:
PowerMac : 1444 ( 11.948% of all Apple systems)
IntelMac : 10559
IntelMac (Intel Matlab) : 10187
IntelMac (Matlab on Rosetta) : 14
Unknown : 83
For Macintosh - Breakdown by OS/X version:
10.3 - Panther : 156
10.4 - Tiger : 1879
10.5 - Leopard : 3107
10.6 - Snow Leopard : 3994
10.7 - Lion : 1743
10.8 - Mountain Lion : 1210
For MS-Windows - Breakdown by Windows version:
Windows additional preVistas : 1119
Windows 2000 : 131
Windows XP : 13557
Windows Vista : 2521
Windows 7 : 9458
Windows 8 : 234
For MS-Windows - Breakdown by Matlab release:
Matlab R2007a (V7.4) or later: 21679
Previous Matlab releases : 5198
Breakdown for all systems by Matlab major versions:
Matlab 5.x : 1
Matlab 6.x : 532
Matlab 7.x : 37004
Matlab 7.0 (R2005a) : 2161
Matlab 7.1 (R2005b) : 1331
Matlab 7.2 (R2006a) : 879
Matlab 7.3 (R2006b) : 1144
Matlab 7.4 (R2007a) : 3124
Matlab 7.5 (R2007b) : 4005
Matlab 7.6 (R2008a) : 2690
Matlab 7.7 (R2008b) : 2050
Matlab 7.8 (R2009a) : 2992
Matlab 7.9 (R2009b) : 3104
Matlab 7.10 (R2010a) : 5320
Matlab 7.11 (R2010b) : 1844
Matlab 7.12 (R2011a) : 1880
Matlab 7.13 (R2011b) : 1855
Matlab 7.14 (R2012a) : 2625
Matlab 8.0 (R2012b) : 1733
Number of GNU/Octave V3+ installations by system:
Octave on OS/X : 358 ( 2.962% of all OS/X installs)
Octave on Linux : 275 ( 20.881% of all Linux installs)
Octave on Windows : 143 ( 0.529% of all Windows installs)
Total number of downloads + updates : 117870
Total number of unique installations : 40423
Breakdown of installations by Psychtoolbox flavor:
'beta'/'current' : 38207
'unsupported' aka 'stable' : 683
'trunk' : 38
Psychtoolbox-3.0.7 : 0
Psychtoolbox-3.0.8-PreTiger : 5
Psychtoolbox-3.0.8 : 30
Psychtoolbox-3.0.9 : 7
Unclassified : 1448
Breakdown by host operating system:
MacOS-X all : 12086 ( 29.899%)
Windows all : 27020 ( 66.843%)
Linux all : 1317 ( 3.258%)
Linux 64 Bit Matlab/Octave : 492 ( 37.358% of all Linux systems)
Windows 64 Bit Matlab/Octave : 1493 ( 5.526% of all Windows systems)
MacOS-X 64 Bit Matlab/Octave : 2719 ( 22.497% of all MacOS-X systems)
For Macintosh - Breakdown by system architecture:
PowerMac : 1444 ( 11.948% of all Apple systems)
IntelMac : 10559
IntelMac (Intel Matlab) : 10187
IntelMac (Matlab on Rosetta) : 14
Unknown : 83
For Macintosh - Breakdown by OS/X version:
10.3 - Panther : 156
10.4 - Tiger : 1879
10.5 - Leopard : 3107
10.6 - Snow Leopard : 3994
10.7 - Lion : 1743
10.8 - Mountain Lion : 1210
For MS-Windows - Breakdown by Windows version:
Windows additional preVistas : 1119
Windows 2000 : 131
Windows XP : 13557
Windows Vista : 2521
Windows 7 : 9458
Windows 8 : 234
For MS-Windows - Breakdown by Matlab release:
Matlab R2007a (V7.4) or later: 21679
Previous Matlab releases : 5198
Breakdown for all systems by Matlab major versions:
Matlab 5.x : 1
Matlab 6.x : 532
Matlab 7.x : 37004
Matlab 7.0 (R2005a) : 2161
Matlab 7.1 (R2005b) : 1331
Matlab 7.2 (R2006a) : 879
Matlab 7.3 (R2006b) : 1144
Matlab 7.4 (R2007a) : 3124
Matlab 7.5 (R2007b) : 4005
Matlab 7.6 (R2008a) : 2690
Matlab 7.7 (R2008b) : 2050
Matlab 7.8 (R2009a) : 2992
Matlab 7.9 (R2009b) : 3104
Matlab 7.10 (R2010a) : 5320
Matlab 7.11 (R2010b) : 1844
Matlab 7.12 (R2011a) : 1880
Matlab 7.13 (R2011b) : 1855
Matlab 7.14 (R2012a) : 2625
Matlab 8.0 (R2012b) : 1733
Number of GNU/Octave V3+ installations by system:
Octave on OS/X : 358 ( 2.962% of all OS/X installs)
Octave on Linux : 275 ( 20.881% of all Linux installs)
Octave on Windows : 143 ( 0.529% of all Windows installs)
Parsed lines in registration log : 119350
Invalid (skipped) log entries : 6