Psychtoolbox-3

The most advanced toolbox for neuroscience stimulus presentation, response collection and data collection.
10.4K Downloads
Updated 18 May 2024
Psychophysics Toolbox Version 3 (or short "PTB") extends MATLAB with functions for research grade neuroscience stimulus presentation and response collection. The PTB core routines provide trustworthy, precise, and efficient functions for stimulus presentation and response collection in different modalities:
- Visual stimulus presentation by use of modern graphics and display hardware via OpenGL and Vulkan hardware acceleration:
• Drawing of complex 2D stimuli, including use of GPU shaders, framebuffer blending and texture mapping for real-time creation of complex dynamic stimuli and procedural stimuli.
• Movie playback, also of HDR WCG movies, and movie recording, utilizing the GStreamer multi-media framework and many optimizations.
• Video capture and live display, including GPU post-processing of live video, also with precisely timed control of professional class IIDC compliant Firewire and USB-Vision machine vision video cameras and synchronized multi-camera setups (Linux only for IIDC cameras). Includes video recording.
• Drawing of 3D stimuli via direct low level OpenGL commands and via a high level 3D engine.
• Stereoscopic presentation, supporting various different stereoscopic display techniques. This includes support for all head tracked VR, AR, MR headsets with OpenXR driver support on Linux and Windows, e.g., HMDs from Meta / Oculus, HTC, Valve, NorthStar, WMR etc.
• Presentation of stimuli with high color/luminance/contrast precision on a wide range of suitable display hardware for bit depths beyond the typical 8 bits per color range, up to 16 bits per color channel with some equipment.
• High Dynamic Range (HDR) stimulus display on Linux, MS-Windows, and with some limitations on macOS 10.15 and later.
• GPU based fast stimulus post-processing to cover many common tasks like color-correction, gamma correction, geometric display distortion correction, vignette/shading correction.
• Precisely timed and time-stamped stimulus presentation, also on multi-display setups.
• Support for variable refresh rate displays (FreeSync, DisplayPort adaptive sync) on modern Linux.
• Support for multiple types of photometers for display calibration.
- Auditory stimulus presentation with low-latency, sub-millisecond precise timing and time-stamping, multi-channel support and convenient live control of some auditory stimulus parameters. Interfacing with the OpenAL API for 3D spatial stimuli.
- Fast low level control of some types of digital and analog input/output hardware for control of stimulation and recording equipment via serial ports, network and USB.
Response collection, sometimes with millisecond accurate time-stamping is provided from keyboards, keypads, mice, game controllers, and other HID input devices, and also - on Linux and Windows - on multitouch touchscreens. Different common response button boxes and eye trackers are also supported, as well as auditory response collection. Also support for eye gaze tracking on some supported VR headsets.
Psychtoolbox also provides functions for precisely timed execution of code, and for control of the realtime scheduling facilities of the operating system.
Ancillary routines support common needs like color space transformations, the QUEST threshold seeking algorithm and some other psychometric routines, file i/o and various convenient helper routines. A large set of demos is included.
Psychtoolbox works best on recent versions of the GNU/Linux operating system, where it takes advantage of some unique features of that operating system (Ubuntu 20.04-LTS or later, Ubuntu 22.04-LTS or later recommended). It also works reasonably well on Microsoft Windows (Windows-10 recommended) and - with substantial limitations due to many operating system flaws and defects - Apple macOS (version 10.15.7 and later recommended), although those systems are often much more restricted in accuracy and reliability of stimulus presentation and response collection.
Different parts of Psychtoolbox are licensed under different OSI compliant Free Software and Open Source licenses, with the majority of routines licensed under the MIT license.

Cite As

Kleiner M, Brainard D, Pelli D (2007) What's new in psychtoolbox-3?, Perception 36(ECVP 2007 Abstract Supplement) 14.

MATLAB Release Compatibility
Created with R2023b
Compatible with R2014b and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
3.0.19.11

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.11

3.0.19.10

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.10

3.0.19.9

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.9

3.0.19.8

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.8

3.0.19.7

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.7

3.0.19.6

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.6

3.0.19.5

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.5

3.0.19.4

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.4

3.0.19.3

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.3

3.0.19.2

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.2

3.0.19.1

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.1

3.0.19.0

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.19.0

3.0.18.13

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.13

3.0.18.12

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.12

3.0.18.11

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.11

3.0.18.10

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.10

3.0.18.9

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.9

3.0.18.8

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.8

3.0.18.7

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.7

3.0.18.6

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.6

3.0.18.5

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.5

3.0.18.4

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.4

3.0.18.3

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.3

3.0.18.2

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.2

3.0.18.1

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.1

3.0.18.0

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.18.0

3.0.17.12

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.12

3.0.17.11

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.11

3.0.17.10

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.10

3.0.17.9

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.9

3.0.17.8

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.8

3.0.17.7

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.7

3.0.17.6

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.6

3.0.17.5

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.5

3.0.17.4

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.4

3.0.17.3

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.3

3.0.17.2

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.2

3.0.17.1

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.1

3.0.17.0

See release notes for this release on GitHub: https://github.com/Psychtoolbox-3/Psychtoolbox-3/releases/tag/3.0.17.0

3.0.16.8

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.