Skip to content

Goxpyriment Example Experiments

Psychological Experiments

Attention-Posner-Task

Arrow cue directs covert attention; measure cost/benefit on reaction time to a peripheral target

Posner (1980)
Attentional-Blink

RSVP stream; participant detects two targets embedded in a stream of distractors — the second target is often missed within ~500 ms of the first

Raymond et al. (1992)
Change-Blindness

Flicker paradigm: alternating original and modified scenes separated by blanks; participant detects what changed

Rensink et al. (1997)
Classification-Posner-Mitchell

Classify letter pairs at three levels (physical, name, rule identity); RT increases with depth of processing required

Posner & Mitchell (1967)
Contrast-Detection-QUEST

2-IFC adaptive staircase estimating the contrast detection threshold for a Gabor patch; converges on the 82 % correct point

Watson & Pelli (1983)
Finger-Tapping

Patterned finger-tapping: memorise a key sequence then reproduce it 6 times consecutively as fast as possible; only error-free runs recorded

Povel & Collard (1982)
Finger-Tracking

Number-to-position task: drag the finger (or mouse, button held) from a bottom box up to an unmarked 0-40 number line, aiming at a target number; the full trajectory, endpoint, bias, and movement time are recorded

Dotan & Dehaene (2013)
Go-NoGo

Stop-signal task: respond to letters on go-trials; withhold response when a stop-signal tone is played at variable delays

Logan et al. (1984)
Hemispheric-differences-word-processing

Lateralised recognition memory: words studied in LVF or RVF, tested centrally with old/new judgements

Federmeier & Benjamin (2005)
Letter-size-illusion

Compare heights of letters vs. mirror/pseudo-letters; replicates the letter height superiority illusion (two experiments)

New et al. (2015)
lexical_decision

Decide whether a letter string is a word or a non-word (F / J keys); stimuli loaded from a CSV file
LoT-geometry

Comprehension of geometric primitives and rules; reproduces Amalric et al. (2017)

Amalric et al. (2017)
Magnitude-Estimation-Luminosity

Stevens' magnitude estimation of luminance: assign a number to perceived brightness of grey disks

Stevens (1957)
Memory-for-binary-sequences

Memory and reproduction of auditory binary sequences of varying complexity

Planton et al. (2021)
Memory-Iconic-Sperling

Partial-report procedure measuring capacity and duration of iconic (visual sensory) memory

Sperling (1960)
Memory-Scanning

Hold a set of digits in memory; decide whether a probe was in the set — RT scales with set size

Sternberg (1966)
Memory_span

Adaptive staircase measuring immediate serial recall span for digits, letters, or words
Mental-Logic-Card-Game

Mental logic and inference task using a card-game paradigm
Mental-Rotation-2D

Decide whether two 3-D figures are identical or mirror images; RT increases linearly with angular disparity

Shepard & Metzler (1971)
Mental-Rotation-3D

Decide whether two 3D figures (procedurally generated assemblies of cubes) are identical or mirror images; RT increases linearly with angular disparity.

Shepard & Metzler (1971)
Mouse-tracking

Mouse-trajectory paradigm (written-word adaptation of Spivey et al.): click the labelled box matching a written target word that appears 500 ms after onset, while the cursor path is sampled at ~36 Hz, revealing continuous attraction toward phonological cohort competitors

Spivey et al. (2005)
Multiple-Object-Tracking

Track a subset of identical moving targets among distractors; evidence for a parallel tracking mechanism

Pylyshyn & Storm (1988)
Number-Change-Detection

Two concurrent dot-array streams (5 vs 20 dots) test infants' preference for numerosity change; experimenter codes looking direction in real time

Decarli, Piazza & Izard (2023)
Number-Comparison

Compare numerical magnitudes of digits and dot patterns; stimulus group (digits / regular / irregular / random) selected via GetParticipantInfo UI

Buckley & Gillman (1974)
Number-Double-Digits-Comparison

Compare two-digit numbers against a fixed standard (55 or 65); two experiments with different response-key mappings

Dehaene et al. (1990)
parity_decision

Classify single digits (0–9) as even or odd (F / J keys)
Perception-of-Temporal-Patterns

Reproduction of isochronous and non-isochronous rhythmic patterns; tests internal clock induction and coding complexity

Povel & Essens (1985)
picture_naming

Vocal naming-latency task: a picture is named aloud while a microphone voice key measures RT from image onset; per-trial WAV files are saved for offline verification
Posner-ANT

Attention Network Task (vertical variant): flanker arrows above/below fixation measure alerting, orienting, and executive attention networks

Fan et al. (2009)
Psychological-Refractory-Period

Two tasks presented in rapid succession; the second response is delayed when the SOA is short

Welford (1952)
Retinotopy

HCP retinotopic mapping paradigm (ported from Python); flickering wedge/ring/bar stimuli for visual cortex mapping; run type selected via GetParticipantInfo UI
RSVP-Images

RSVP oddball-detection task replicating Hebart et al. (2023, THINGS-data). Object images are shown in rapid serial visual presentation on a mid-gray background with a central black fixation dot; the participant presses SPACE whenever a pixelated oddball appears. Timings are read from a design CSV (onset,duration,trial_type,file_path); companion tool cmd/gen-design produces the MEG (SOA 1500±200 ms) and fMRI (SOA 4.5 s) designs. Oddballs are pixelated at runtime; results add a reaction_time column.

Hebart, M. N. et al. (2023). THINGS-data, a multimodal collection of large-scale datasets for investigating object representations in human brain and behavior. eLife 12:e82580.
RSVP-Images-OneBack

One-back RSVP picture task: images from images/ flash by in random order (200 ms on, 100 ms blank); ~10% are immediate repeats and the participant presses SPACE on repeats, with a buzzer on misses. VSYNC-locked, with per-image onset/offset, response, and hit/false-alarm logging
Sensory-Threshold-Estimation-Auditory

1-up/2-down adaptive staircase with 2-IFC to estimate pure-tone hearing thresholds across multiple frequencies

Levitt (1971)
shadowing

Vocal shadowing-latency task: repeat a played sound aloud while a microphone voice key measures the delay between audio onset and speech onset
Simon_task

Identify colour of a square regardless of its screen position; congruent trials are faster

Simon (1969)
simple_reaction_times

20-trial simple RT task: press any key as quickly as possible when a target appears
SNARC-effect

Parity judgment on digits 0–9 with reversed key mappings across blocks; demonstrates the SNARC effect

Dehaene, Bossini & Giraux (1993)
Statistical-Learning-Auditory

Statistical learning of tone sequences: exposure to a continuous tone stream with structured transitional probabilities, probed with 2AFC or head-turn preference

Saffran et al. (1999)
Statistical-Learning-Community-Structure

Implicit learning of community structure in a continuous visual sequence, with random-walk exposure and spacebar-based event segmentation

Schapiro et al. (2013)
Statistical-Learning-Visual

Implicit learning of statistical regularities in a shape stream, probed with forced-choice and RT tests

Turk-Browne et al. (2005)
Stroop_task

Name the ink colour of colour words; incongruent trials (e.g. RED in blue ink) are slower

Stroop (1935)
Subliminal-Priming

Masked word priming: words rendered invisible by surrounding masks still influence processing

Dehaene et al. (2004)
Temporal-Integration-Word-Recognition

Alternating odd/even letter components at variable SOA; Exp 1 (subjective report: 0/1/2 words perceived) and Exp 2 (lexical decision with RT); experiment selected via GetParticipantInfo UI

Forget et al. (2010)
Trubutschek_Unconscious_Working_Memory

Probe access to briefly presented stimuli below and above the threshold of consciousness

Trübutschek et al. (2017)
Visual-Illusion-Lilac-Chaser

Lilac chaser illusion: a ring of disappearing disks produces a rotating green afterimage
Visual-Search

Feature vs. conjunction visual search across set sizes (4/12/24), measuring how reaction time scales with the number of distractors

Treisman & Gelade (1980)

Programs that open a GetParticipantInfo dialog collect all setup interactively (subject ID, monitor dimensions, fullscreen toggle, and any experiment-specific options). Pass -headless on the command line to skip the dialog and use field defaults — useful for scripted runs and automated testing. Programs that do not use the dialog still accept -w for windowed mode, -d N to select a monitor, and -s <id> for a subject ID.

Note: These experiments record and save behavioural data to an .csv file in goxpy_data/.


Demonstrations

Visual illusions, interactive showcases, and minimal templates. Most do not write a data file.

hello_world

Simplest possible goxpyriment program — good starting point for new users
Motion-Blur

Motion blur vs. phantom array demo: animated bar demonstrates retinal blur and the strobe effect at 60 Hz
play_two_gvvideos

Plays two .gv videos side by side, synchronised, logging keypresses with their time relative to video onset
play_two_videos

Plays two MPEG videos side by side, synchronised, logging keypresses with their time relative to video onset
play_videos

Plays a sequence of MPEG video files found in the assets folder
random-dot-stereogram

Random-dot stereogram that reveals a 3-D shape when fused binocularly
simple-rt-example

Minimal 10-trial reaction-time loop using ShowTS / GetKeyEventTS for hardware-timestamped RT
stimuli_extras

Showcase of advanced stimuli: visual mask, Gabor patch, dot cloud, stimulus circle, thermometer
Visual-Angle-Calibration

Draws concentric rings at 2°, 5°, and 10° of visual angle for a quick sanity-check of the units.Monitor calibration
Visual-Illusion-Ebbginghaus

Animated Ebbinghaus (Titchener circles) size-contrast illusion
Visual-Illusion-Kanizsa

Kanizsa illusory-contour square: a square is perceived where none is drawn
Visual-Persistence

Persistence-of-vision illusion: an image seen only through moving vertical slits integrates into a whole when the eyes track a moving dot

Technical Tests

Hardware, timing, and feature tests live in the tests/ directory at the repository root (separate Go module). Build them with make tests.

bouncing_gv_movies

Two .gv movies bounce around the screen, additively blend on overlap, fire beep tones at frame markers, and log full state to the data file on every key press; demonstrates every runtime mutator media.Movie exposes (Pause, PauseWithLoop, SetRate, SeekFrame, SetPosition, SetSize, SetBlendMode) with the multi-movie synchrony invariant preserved via BeginBurst/EndBurst
GvFiles

Plays sequences of .gv movies while flashing a white square and pulsing DLP-IO8 line 0 at frame markers, for photodiode+oscilloscope display/TTL synchrony checks (port of PsyScope WhiteSquareSync)
set_fullscreen

Minimal SDL program that toggles exclusive fullscreen mode — sanity check for the fullscreen video path
sync_two_gv_movies

Two .gv movies played side by side under a shared MasterClock; demonstrates media.MovieManager multi-movie sync, burst-pause, Movie[At]/Movie[AtDisplay], and Display[Onset/Offset] events with optional TTL-trigger wiring
tearing_test

Full-height white bar sweeping horizontally to reveal screen tearing; prints frame-interval statistics on exit
test_av_sync

Verifies PlaySyncedWithFlip aligns audio onset with the VSYNC flip (icon flash + 1 kHz tone each second)
test_canvas

Drawing on an off-screen Canvas surface before presenting it in one frame
test_follow_mouse

A white dot follows the mouse cursor every frame — minimal real-time input loop
test_ft232h

Exercises an Adafruit FT232H breakout as an 8-bit TTL trigger device (output + input loopback)
test_fullscreen

Sanity check for fullscreen rendering through the control facade
test_getinfo

Demonstrates the GetParticipantInfo dialog: collects participant demographics and monitor characteristics before the experiment window opens
test_images

Loads every PNG file in the current directory and displays each one centered for one second
test_images_embedded

Displays embeded images sequentially, each one centered for one second
test_joystick

Move a cursor with a controller's analog stick (gamepad API with raw-joystick fallback, dead zone, live axis readout) — analog input handling
test_keyboard

Demonstrates every keyboard input method provided by the framework, section by section
test_labjackt4

Exercises a LabJack T4 as an 8-bit TTL trigger device (output + input loopback)
test_linuxgpio

Exercises a Linux GPIO character-device (v2) trigger as an 8-bit TTL device (output + input loopback)
test_menu

Demonstrates the stimuli.Menu widget
test_mouse_audio_feedback

Left/right mouse clicks trigger ping/buzzer audio; useful for testing sound output
test_parallel_port

Reads and writes a Linux LPT parallel port via the ppdev kernel interface
test_playgv

Plays a single .gv video through the control facade
test_stream_callback

Per-frame FrameCallback for stream overlays and real-time feedback (PresentStreamOfStimuliFunc)
test_stream_images

High-precision RSVP loop streaming a sequence of images (PresentStreamOfImages)
test_stream_mixed

Heterogeneous stream mixing visual and audio stimuli via PresentStreamOfStimuli
test_stream_text

High-precision RSVP loop streaming a sequence of text strings
test_stream_tones

Sequential auditory stream playing a regular sequence of pure tones with timing logs
test_text_input

Demonstration of the TextInput stimulus collecting free-text keyboard input
test_vsync_blocking

Compares FlipTS and PacedFlipTS to determine if the platform/driver blocks on VSYNC or returns immediately
Timing-Tests

Hardware timing verification suite: eleven sub-tests (frame jitter, true refresh rate, audio latency, photodiode/BBTK/oscilloscope checks) selected with -test

Binaries

If you have followed the installation instructions, running the script build-all.sh has created binaries for all examples in the subfolder _build. You can just open this folder and launch the executables.

Else, you can download pre-built executable programs for all examples.

Alternatively, you can read the next section if you want to compile these experiments on your computer.

Building from source

If you have installed go on your computer, you can run any example directly from a local clone of the goxpyriment repository:

go run ./examples/parity_decision/ -w -s 1

Or build and run from inside the example directory:

cd examples/hello_world
go run .            # fullscreen by default
go run . -w         # windowed 1024×768
go run . -w -s 1    # windowed, subject ID = 1
go run . -d 1       # fullscreen on monitor 1
go run . -w -d 1    # windowed on monitor 1
go build .          # build a standalone binary

To build all examples (and tests) at once (binaries go to _build/):

./build-all.sh      # from the repo root — works on Linux, macOS, and Windows (Git Bash)

(On Linux/macOS you can also use make examples or make all.)