Active-learning-driven adaptive experimentation in psychophysics
Installation | Documentation | Examples | Contributing
Overview
psyphy is an open-source, JAX-based framework for psychophysics research. It leverages GPU acceleration and efficient approximate inference to power Bayesian, active-learning-driven adaptive experiments.
Designed to be modular and extensible, psyphy accelerates research workflows and enables real-time adaptive experiments. While currently focused on human color perception, it can be adapted to other perceptual modalities.
The package is under active development, and we welcome contributions.
Install
psyphy only supports python 3.10+. We recommend installing psyphy under a virtual environment. Once you've created a virtual environment for psyphy and activated it, you can install psyphy using pip:
pip install psyphy
If you're developer or want to use the latest features, you can install from GitHub using:
git clone https://flatironinstitute.github.io/psyphy.git
cd psyphy
pip install -e .
Contributors can also use uv, which installs from the committed uv.lock for a reproducible environment instead of resolving the loose ranges above fresh each time; see CONTRIBUTING.md for the uv-based workflow.
GPU support
The commands above install a CPU-only jax. For an NVIDIA/CUDA GPU (including the Flatiron cluster), install the cuda extra instead:
pip install "psyphy[cuda]" # from PyPI
pip install -e ".[cuda]" # from a clone
This pulls in JAX's own cuda12 extra, which bundles a matching CUDA/cuDNN runtime as pip packages — no system CUDA module needs to be loaded alongside it.
Apple Silicon (M-series) GPUs are not supported. JAX's Metal backend cannot do float64, which some psyphy examples require for published-precision comparisons (Apple/Google's own jax-metal package is also no longer maintained). On a Mac, psyphy runs on CPU.
Quickstart
- Go here for a light-weight tutorial that demonstrates how to instantiate, evaluate and fit a model quickly. You should be able to run the underlying script on your CPU.
- Go here for a more comprehensive example visualizing a spatially varying covariance field, also explaining the underlying math. The underlying script for this tutorial requires a GPU.
Contributing
For contributors, see CONTRIBUTING.md for full doc guidelines and NumPy-style docstrings.
Metadata
Release files for psyphy 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| psyphy-0.0.5.tar.gz | 106.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| psyphy-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 181.2 kB
Release files / psyphy-0.0.5.tar.gz
| Download URL | psyphy-0.0.5.tar.gz |
|---|---|
| Size | 106.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0927cfa38e7d341631c2623d25e9aa04887243fdffa03bbf84aa3b076bd7fe55
|
|
BLAKE2b-256 checksum How to use checksums |
200ab864a0af6f6a819f5916e89cf896db3e6f90c54425b24a130dc477bafb72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / psyphy-0.0.5-py3-none-any.whl
| Download URL | psyphy-0.0.5-py3-none-any.whl |
|---|---|
| Size | 74.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f254108d01e9a94275a2ced938af25b45871b11a0cefb851c8ee0f0a919abc8a
|
|
BLAKE2b-256 checksum How to use checksums |
442603c46ac4d5aa56c65d192d51e846a448175c5d940ede156f8d50b8b007dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency log