Scientific Python for multimodal physiology + eye tracking
Measure. Align. Validate. Report.¶
gpbiometricspy brings the complete 406-function gpbiometrics 2.0.0 surface into Python for EDA/GSR/SCR, PPG/IBI/HRV, pupil, gaze, AOIs, event alignment, quality control, reporting, and research-tool interoperability — with gpbiometricspy Studio as a Shiny for Python application layer over the same public scientific API.
Stable 0.1.5 release source
Stable gpbiometricspy 0.1.5 (2026-09-08) preserves 406/406 exports with 0 pending and freezes the current validation baseline at 567 passing tests, 10,456/10,456 statements = 100.00%, and 5,629/5,648 raw branches = 99.6636%. The same 19 reviewed structural arcs remain, with 0 unexpected, 0 stale, and 0 unaudited branch debt. Audited branch accounting is 5,648/5,648 = 100.0000% without relabelling the honest raw metric. The 0.1.5 Zenodo version DOI is 10.5281/zenodo.22672823; the previous 0.1.4 DOI remains 10.5281/zenodo.22515782, and the software concept DOI remains 10.5281/zenodo.22150872. The immutable 0.1.5 wheel and sdist are public on PyPI, while live repository development proceeds as 0.1.6.dev0.
0.1.5 measurement-accountability additions
Version 0.1.5 adds metric-specific ECG-HRV/PPG-PRV agreement through compare_hrv_prv_devices(), retention-first SCR responsivity through scr_responsivity_sensitivity(), a five-stage validation_ladder(), and experimental topology-aware PPG morphology through ppg_topology_features(). Agreement is assessed per derived metric and acquisition configuration, low-reactive SCR participants are retained for sensitivity analysis rather than automatically deleted, generalization requires held-out-person evidence, and topology outputs remain structural descriptors rather than direct physiological surrogates. See Measurement accountability.
Installed Studio replay evidence
Stable 0.1.5 expands production browser validation into installed wheel and sdist replay paths on Python 3.11 and 3.14. High-value physiology, gaze/pupil, external event/alignment, multimodal/modelling, and cluster-permutation paths are exercised with deterministic replay completion checks and fail-closed dataset/secondary-resource fingerprint validation. The public synthetic deployment boundary remains upload-restricted and separate from full local/authenticated research-data use.
Code or Studio¶
Use the Python API when you want scripts, notebooks, pipelines, or direct integration into a larger analysis stack. Use Studio when you want one stateful research interface over the same package functions.
Python API
Install the package and build explicit scripts around the complete 406-function scientific surface.
Start coding →gpbiometricspy Studio
Run QC, annotation, EDA/SCR, PPG/HRV, pupil, gaze/AOI, alignment, multimodal, modelling and reproducibility workflows in Shiny for Python.
Open Studio guide →The Studio public-deployment boundary is synthetic-only and fail-closed for external file uploads. Research data belong in the full local Studio or an appropriately authenticated/private deployment.
Install and move¶
import gpbiometricspy as gp
data = gp.load_kiosk_demo()
validity = gp.summarise_gazepoint_biometric_validity(data)
events = gp.extract_gazepoint_ttl_events(data)
Choose your workflow¶
EDA / GSR / SCR
Clean electrodermal signals, inspect artifacts, decompose tonic/phasic activity, detect responses, and build event-linked summaries.
Open workflow →PPG / IBI / HRV
Detect pulses, derive beat-to-beat intervals, compute HRV families, and cross-check pyHRV, HeartPy, BioSPPy, and NeuroKit-style paths.
Open workflow →Pupil / gaze / AOI
Audit pupil and gaze quality, summarize AOI-linked biometrics, inspect saccades, and connect eye-tracking behavior to physiology.
Open workflow →Multimodal alignment
Align Gazepoint streams, TTL/event markers, trials, AOIs, and external recordings on defensible shared timebases.
Open workflow →QC + reporting
Turn raw signal diagnostics into explicit validity audits, exclusion evidence, visual QC, and reproducible reporting outputs.
Open workflow →Interoperability
Bridge into MNE, EEG/LSL, pyxdf, BioSPPy, HeartPy, pyHRV, and NeuroKit-style workflows without hiding backend assumptions.
Open workflow →Built for research you can audit¶
Parity with provenance
The frozen R reference is retained alongside the Python implementation, with 406/406 exports registered and 26 article companions preserved.
Inspect parity →Validation as a first-class output
Stable 0.1.5 CI enforces 100% statement coverage across Ubuntu, Windows, and macOS on Python 3.11–3.14; the branch audit reports 5,629/5,648 raw branches = 99.6636%, enforces a 99.6% raw floor, and requires exact equality to the reviewed 19-entry structural-debt ledger with zero unexpected, stale, or unaudited missing paths. Deep parity, interoperability, Studio smoke, Chromium E2E and installed production-deployment checks remain independent gates.
See validation →Conservative interpretation
Signal processing and descriptive summaries are kept distinct from unsupported claims about emotion, stress, preference, cognition, or diagnosis.
Read guardrails →From raw export to defensible result¶
Gazepoint / external streams
→ schema + channel audit
→ timing / TTL / dropout QC
→ EDA / PPG / IBI / pupil / gaze preprocessing
→ event / AOI / multimodal alignment
→ feature extraction + model-ready tables
→ plots + reports + reproducibility outputs
→ optional external-toolbox cross-checks
Generated by the package, not drawn for the website¶
Every gallery image is regenerated from the current Python API during the documentation workflow. Browse all 13 generated figures.