Experiment Creation

Experiment Creation

Design experiments using PsychoPy — the leading open-source platform for behavioral research. EYNA Helix is designed to seamlessly integrate with PsychoPy providing precise timing synchronization between your PsychoPy experiment design and eye tracking data.

Calibration & Setup GUI

An intuitive, streamlined graphical interface for camera setup, focus optimization, and calibration. Pre-trial gaze verification makes it easy to confirm and maintain accurate gaze estimation during every recording session.

Calibration & Setup GUI
Python
# Import the Eyetracker class
from eyna.eyetracker import Eyetracker

# Start recording when experiment starts
Eyetracker.start()

# Add time-synchronized markers in your trial loop
Eyetracker.add_marker(trial, marker=1) # Stimulus onset
Eyetracker.add_marker(trial, marker=2) # Stimulus offset

# Stop recording when experiment ends
Eyetracker.stop()

Data Recording

A simple Python API to control recording: start, stop, and add time-synchronized markers — all in a few lines of code. Real-time data streaming from the USB3 camera with automatic file creation and buffer management.

Data Processing & Cleaning

Eye tracking studies produce three distinct data streams — experiment, calibration, and recorded gaze data. Helix functions import each stream separately, then automatically integrate and organize them into analysis-ready pandas DataFrames with one-line calls. Bad trials are detected and excluded across all streams simultaneously.

Python
# Import all data streams
E = helix.import_experiment_data(base_dir)
C = helix.import_calibration_data(base_dir)
R = helix.import_recorded_data(base_dir, C)

# Exclude bad trials
R, E, C = helix.exclude_bad_trials(R, E, C, threshold=30)

# Generate fixation DataFrame
F = helix.create_fixation_df(R)
Statistical Analysis

Statistical Analysis

Built-in Bayesian mixed-effects models via the Bambi package. Purpose-built support for area-of-interest analysis, global (e.g., dispersion), fixation metrics, saccade metrics, pupillometry, and scanpath analysis.

Easy Data Visualization

Generate publication-ready visualizations with simple function calls. Plot raw gaze data, cleaned fixation traces, heatmaps, and scanpath overlays — or create movies of gaze behavior over time. See your eye movement data clearly at every stage of processing.

visualization
visualization
visualization
visualization
Project Structure
project_name/
├── analysis/
│   └── results/
├── config/
│   └── pyproject.toml
├── data/
│   ├── EYNA/
│   │   ├── calibration/
│   │   └── recorded/
│   └── experiment/
├── docs/
│   └── readme.txt
└── experiment/
    ├── experiment.py
    ├── experiment_utils.py
    ├── static/
    └── stimuli/

Reproducible & Shareable

A standardized project structure that works identically across all EYNA studies. Poetry dependency management locks exact package versions for full reproducibility to .toml file. Clean CSV files and Python code throughout — no proprietary formats.

Ready to Learn More?

Get Early Access