TrajTracker Experiment

TrajTracker offers two modes of work.

Off-the-shelf paradigms

TrajTracker includes already-implemented experiments for two experimental paradigms: number-to-position mapping and two-button forced-choice experiments.

These paradigms are fully implemented, so running such an experiment typically requires only minimal configuration: create a stimulus file, define a small number of configuration parameters, and go!

Write your own experiment

For experiments not supported by our paradigms, use TrajTracker's functions and classes to create your own experiment from scratch. TrajTracker offers several kinds of objects and functions:


Validators apply all kinds of restrictions on the mouse/finger movement. For example:


To make validation easy, you typically configure the validator before the trial starts. Then, on each frame during the trial, you just let the validator know the finger’s current coordinates, and the validator takes care of everything else.


Animators are objects that can move stuff around the screen. Expyriment lets you define all kinds of visual objects (shapes, images, etc.). TrajTracker’s animators let you move these visual objects around the screen in predefined pathways. To animate a shape or image, you define a trajectory generator – an object that determines the shape’s coordinate at each given time point. TrajTracker supports some types of trajectory generators:


Monitors are objects that monitor the finger movement during the trial:

  • A speed monitor tells you the finger speed and acceleration in each time point

  • A direction monitor tells you the finger’s direction and can also break down the finger trajectory into a sequence of clockwise and counter-clockwise curves.


Trackers are objects that track the finger movement. Most notably, a trajectory tracker object can track the finger’s coordinate during the trial and save the results to a CSV file.


These are high-level, functionality-rich visual objects, which extend Expyriment’s wide array of basic visual objects. For example:

  • A NumberLine class can present a number line and detect when and where you touch it.

  • A StimulusContainer class can group together a set of stimuli and treat them as one – e.g., you can move them or present them in a single command.


Events provide you with a powerful mechanism to dynamically control when certain functions will be executed.

The idea is that you first define the flow of the trial and define certain events that occur during this flow (e.g., when the finger starts moving, when a response is made, when the trial fails, and so on). Once this is done, you can easily tell the events mechanism to invoke a specific function when a specific event occurs.

Events may be hard to design, so typically they are not an ideal choice for an ad-hoc application that handles one experiment. However, our off-the-shelf paradigms use the events mechanism to let you customize the application's behaviour: it's easy to tell TrajTracker to run your custom function in specific times.