Quick links:

How to cite Whisker

Current versions and manuals

Download area




Famous tasks:





Bussey–Saksida touchscreen paradigms


Philosophy | Design | Implementation | Supported hardware | Development history | Future possibilities | About the authors

See also Whisker in picturesPDF


The philosophy behind Whisker was to create a powerful, cheap system that has a strong basic design. A server program controls the hardware itself, and communicates with clients, which typically embody behavioural tasks. I see the particular strengths of Whisker as these:


The essence of Whisker: a client-server model.

At the core of Whisker is the server. This is a program that runs on your control computer, to which your operant chambers are connected.

Behavioural tasks run as separate programs, called clients. (A client does not necessarily have to be a behavioural task, but most are.) Typically, the clients are run on the same computer as the server.

The clients communicate with the server via a networking protocol called TCP/IP. A client will 'connect' to the server, in exactly the same way that a web browser connects to a web server, and can then control all the devices attached to the server by passing simple text messages to and from the server. For example, the client may tell the server to extend a lever into the operant chamber, and to report back whenever that lever is pressed.


The Whisker server is implemented as a single multithreaded program, written in C++ (using MFC and the MCL threading library).

Behavioural tasks are implemented as separate programs. See Behavioural Tasks for details.

Supported hardware

Development history

Planned developments

About the authors

Whisker was created by people who have expertise in behavioural research as well as extensive experience of computer programming.