goxpyriment

module
v0.9.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2026 License: GPL-3.0

README

goxpyriment

goxpyriment is a high-level Go framework for building behavioral and psychological experiments.

If you are looking for a simpler, no-code experiment generator, check out Gostim2.


Why goxpyriment?

  1. Zero-dependency deployment. Your experiments compile to a standalone executables. No Python, no conda, noFont issue, no DLL hell on lab computers.
  2. Timing precision. The stimulus loop runs VSYNC-locked with GC pauses disabled, giving sub-millisecond frame jitter on typical hardware.
  3. AI-friendly API. The consistent API is well suited to "vibe-coding" — describe your paradigm in plain language to Claude, Gemini, or ChatGPT and the generated code is usually ready to run immediately.

⚠️ Beta: This software is in beta-testing. Report bugs at https://github.com/chrplr/goxpyriment/issues


Documentation

Document PDF
Installation Install Go and build the examples
Getting Started Tutorial for psychologists
Gallery of Examples Ready-to-run experiments and demos
User Manual Core concepts explained in depth
Migration Guide Coming from Expyriment, PsychoPy, or Psychtoolbox?
API Reference Complete function and type reference

Inspired by expyriment.org. Built on libsdl via go-sdl3. Licensed under the GNU GPL v3.

Please cite this repository as:

Christophe Pallier (2026) Goxpyriment vX.Y.Z. Zenodo. https://doi.org/10.5281/zenodo.19200598

Christophe Pallier

Directories

Path Synopsis
Package apparatus provides the low-level input/output subsystems for goxpyriment:
Package apparatus provides the low-level input/output subsystems for goxpyriment:
Package clock provides timing helpers: Wait, GetTime, and a Clock for measuring durations and sleeping until a target offset.
Package clock provides timing helpers: Wait, GetTime, and a Clock for measuring durations and sleeping until a target offset.
cmd
gen-gallery command
gen-gallery regenerates the example tables in docs/GalleryOfExamples.md from per-example meta.yaml files.
gen-gallery regenerates the example tables in docs/GalleryOfExamples.md from per-example meta.yaml files.
get-display-info command
get-display-info queries every connected display via SDL3 and prints its properties: name, bounds, current mode, desktop mode, content scale, orientation, and the full list of available fullscreen resolutions.
get-display-info queries every connected display via SDL3 and prints its properties: name, bounds, current mode, desktop mode, content scale, orientation, and the full list of available fullscreen resolutions.
Package control manages the overall state and initialization of an experiment.
Package control manages the overall state and initialization of an experiment.
Package design provides experiment structure types (trials, blocks, factors) and randomization helpers for building experiment designs.
Package design provides experiment structure types (trials, blocks, factors) and randomization helpers for building experiment designs.
Package geometry provides point/distance and coordinate conversion helpers (Euclidean distance, Cartesian–polar conversion, degree–radian).
Package geometry provides point/distance and coordinate conversion helpers (Euclidean distance, Cartesian–polar conversion, degree–radian).
Package staircase implements adaptive psychophysical threshold estimation.
Package staircase implements adaptive psychophysical threshold estimation.
Package sysinfo collects and formats hardware and software information about the running system (machine type, OS, CPU, memory, GPU, audio).
Package sysinfo collects and formats hardware and software information about the running system (machine type, OS, CPU, memory, GPU, audio).
Package triggers provides hardware trigger interfaces for synchronising stimuli with external recording equipment (EEG/MEG amplifiers, oscilloscopes, photodiodes), and for reading TTL-level response signals.
Package triggers provides hardware trigger interfaces for synchronising stimuli with external recording equipment (EEG/MEG amplifiers, oscilloscopes, photodiodes), and for reading TTL-level response signals.
Package units provides unit conversions for vision-science experiments.
Package units provides unit conversions for vision-science experiments.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL