PEBL: The Psychology Experiment Building Language


Community and Support



Test Battery




Tech Reports

Sourceforge Project Site

	    Language at Fast,
	    secure and
	    Free Open

Buy a printed copy of the PEBL manual or
download it for free.


This is the main website for the PEBL programming language and execution environment. PEBL is:

PEBL offers a simple programming language tailor-made for creating and conducting many standard experiments. It is Free software, licensed under the GPL, with both the compiled executables and source code available without charge. PEBL is available at

PEBL is designed to be easily used on multiple computing platforms. Its current implementation uses the SDL as its implementation platform, which is also a cross-platform library that compiles natively under Win32, Linux, and Macintosh Operating Systems.

PEBL is programmed primarily in C++ (although you do not need to know C++ to use PEBL), but also uses flex and bison (GNU versions of lex and yacc) to handle parsing.


[2018-01] PEBL Version 2.0 (Final)
After a lot of testing, PEBL 2.0 is finally released! Along with substantial changes porting to SDL2 (which incorporates hardware video support, better internationalization, and a lot of fixes under the hood), we also include many new translations to tests in the test battery (Thanks to many international contributors), several new tests for the test battery, and changes too numerous to cover in detail.

How to install get started (Updated!)

[2017-04] PEBL Version 2.0 Beta 4
I've released an update as PEBL 2-beta 4 officially numbered 2.0.4. This should address some installation problems occurrring with PEBL not appearing in the start menu on Windows, plus some other fixes that have trickled in over the past few months. MacOS has not been updated.

[2016-09] PEBL Version 2.0 Beta 3 [Update]. New beta 3 is now available on all platforms. This should fix problem on OSX. The second beta release of PEBL 2.0 is here. Along with updates and fixes in 2.0beta1, this includes a new translation scheme for the test battery. Now, to translate a test, you simply need to set your 2-letter language code in the launcher, select the test in the battery, and tlick the 'translate test' button. This will let you translate each instruction and label needed for the test. If no major problems are reported, this release will become PEBL 2.0. PEBL 2.0 beta3 is available both stand-alone and as an installable package for windows.

Here is a video describing installation and some basic features of PEBL 2.0:

[2016-09] PEBL Version 2.0 Beta After two years, version 2.0 of PEBL is in Beta release. This release involves a transition to hardware-accelerated graphics, and many updates and changes. The beta release is available on OSX as a package and on windows as a standalone executable (it does not need to be installed--just run it from your desktop). The final version of 2.0 will have updated documentation and improvements to translations and individual tests that don't yet appear in the beta release. I'd recommend using 0.14 (which will turn into 1.0) unless you are having specific problems with that release (such as most OSX users) If you find any problems with 2.0 beta 1, please send feedback on the forum or email.

[2014-06] PEBL Version 0.14

The latest release of PEBL, version 0.14, is now available. As part of Version 0.14, we offer many new features including custom object support that allows for better object-oriented UI. As part of this, I have completely revamped the launcher to make it more polished and easier to use. One important addition this adds is the ability to set and change running parameters of tests in the battery. As a consequence, every single test battery test has been modified, and we have added at least ten new tests, bringing the total to around 100. Complete release notes are available here. Highlights to the test battery include new O-span, Sym-span, and reading-span tasks contributed by David Hegarty, an improved Iowa task contributed by Peter Bull, new code to do PAR-type scoring on the Wisconsin (Berg) card-sorting test, a dual n-back task, a Luck-and-vogel style change detection task, several verbal and memory tasks (DRM; probe-digit; ebbinghaus, brown-peterson, recognition memory, remote association task, paired-associates learning), some nice new scales (Berlin numeracy, handedness, big-five personality), Esposito's Bivalent Shape Task (a nonverbal stroop analog), and really to many improvements to list here. Also, we have started a crowd-funding campaign to help support future development of PEBL. When you launch the PEBL launcher, you will be given the option to donate to the project. Donors will be given a special access password allowing them immediate access to the launcher, and our eternal gratitude. In the coming weeks, I'll be making several getting started videos available via the PEBL Blog, to help new users.

[2012-12]PEBL Version 0.13 and Test Battery 0.7

The latest release of PEBL, version 0.13, is now available. Along with a lot of little fixes and updates, there are two major new functionalities that will impact users. First, the underlying list structure used by PEBL is now a vector, allowing constant-time access of arbitrary elements. This transition has some pretty nice benefits for accessing elements efficiently, with very little drawback for the typical uses of PEBL. Next, we now support playback of movies and audio-media files via the waave library, which itself uses the ffmpeg library. Smaller changes include improved functions for handling screen size, network communication, improvements to the launcher, a change in how AddObject works when the object already has een added to a window, In the battery, I've changed every test so that they save data in .csv format for easier analysis, and they should also save in a data\ subdirectory. I've added several new tests to the test battery, including Salthouse's Connections task, a few memory tasks (one patterned on Ebbinghaus, the so-called Brown-Peterson test, the Dual N-Back test, Sternberg's memory scanning task, and others. Also, there is improved support for multi-user systems. Now, PEBL will launch the first time and copy files to your Documents folder.

[2012-01-02]PEBL Version 0.12 and Test Battery 0.7

The latest public release of PEBL, version 0.12, brings with it a lot of new features and capabilities. Highlights include support for a number of hardware interface devices, a new launcher, over 250 total functions, audio input, and a number of new tests in the PEBL Test Battery, and many bug fixes and improvements. Some of the biggest and most visible changes include:

  • A new cross-platform launcher that is written in PEBL itself. The old launcher will probably still work if you want it to, but it is no longer possible to update it.
  • The test battery has grown to nearly 60 tests, with many new translations.
  • Basic support for many hardware devices, including joysticks, parallel port input/output, and serial port input and output, which allows use of a lot of USB devices such as the DLP-IO8, Cedrus RB button boxes, Lu's RTBox, and others.
  • More forgiving interaction with your computer, including fallback screen resolutions, no more overwriting data files, better audio support, and improved filesystem access.

[2010-07-23]PEBL Version 0.11 and Test Battery 0.6

I've released the newest version of PEBL, version 0.11, and a new version of the PEBL test battery, called 0.6. Version 0.11 contains a lot of under-the-hood fixes to memory management. Previously, PEBL had a number of memory leaks which could end up crashing the system if it ran for too long. Most (all?) are now gone, which should improve performance. Also, a new widget called a 'canvas' is available, which lets you create more complex widgets, do pixel-drawing and other cool stuff. Using it sometimes can (reliably) cause crashes the program on windows that I have not yet tracked down, so think of it as fairly experimental right now.

Also, I've made a lot of progress toward enabling internationalized experiments. I've also now have translations of the BCST and Bechara Gambling task into polish, chinese, and korean, and translation of TOL into Spanish (and Portuguese soon). Those of you who want translated versions of these tasks can now do translations of text strings and run by specifying a two-character country code in the launcher. This comes at a slight cost--korean and chinese fonts are now included, making the download about 50% larger than last time. Also, I've moved to a default font which handles western characters much better, so accents on most european languages should be handled seamlessly.

Also, along with a windows installer, I'm releasing a stand-alone version for windows (in case you don't want to install it), and a .deb suitable for some Ubuntu linux systems. I once again have PEBL running on OSX, and will work toward a distributable version of PEBL 0.11 on OSX in the near future.

[2010-02-09]PEBL Test Battery Version 0.5
I've uploaded a new revision of the PEBL test battery, which I'm calling version 0.5. It is a drop-in replacement for the Battery Version 0.4 that comes with the last release of PEBL, and includes:

  • Updates to Card sort and gambling task to support mouse control, easy internationalization, and improved visual feel.
  • Improvements to the Tower of London to make it a full-fledged test.
  • Substantial improvements to the trail-making test
  • Several new tests that did not make it into previous batteries, including
    • matchtosample; The match-to-sample test
    • itemorder: The "item-order" test that appears in some traditional aptitude test batteries
    • mspan: A new memory span test with visual-grid input. Available both as a staircase and a build-up method (sort of like the game Simon)
    • probmon: Probability monitoring--watch 1-3 gauges for a noisy signal
    • satest: A visual situation awareness monitoring task.
    • timetap: A simple tapping test
This brings to total number of tests in the battery to 37. The new battery can be downloaded here. You still need PEBL version 0.10 to run the battery, which must be downloaded separately.

Community and Support

For help designing and writing an experiment, you can contact the PEBL Project at: You can sign up for this email list or browse the archives here. The PEBL WIKI allows anybody to edit or add content related to PEBL, including hints, new experiments, and library functions. Finally, there are a number of community forums to ask questions on. More information about Shane Mueller, PEBL's creator and maintainer, is available here.