This release is a pre-release and may not be stable for production use.
__ __ ______ ______ ______ ______ __ ______ __ _____
/\ "-./ \ /\ ___\ /\ ___\ /\ __ \ /\ ___\ /\ \ /\ ___\ /\ \ /\ __-.
\ \ \-./\ \ \ \ __\ \ \___ \ \ \ \/\ \ \ \ __\ \ \ \ \ \ __\ \ \ \____ \ \ \/\ \
\ \_\ \ \_\ \ \_____\ \/\_____\ \ \_____\ \ \_\ \ \_\ \ \_____\ \ \_____\ \ \____-
\/_/ \/_/ \/_____/ \/_____/ \/_____/ \/_/ \/_/ \/_____/ \/_____/ \/____/
Mesofield is a PyQt6-based framework for running real-time, multi-camera
neuroscience experiments. It coordinates hardware via serial connections
and MicroManager (through pymmcore-plus
custom MDAEngines and multi-CMMCorePlus instancing) and manages
experiment configuration, acquisition orchestration, and data logging.
Cameras run on either the MicroManager or an OpenCV backend.
Acquisitions writes an AcquisitionManifest declaring what files saved
according to the mesokit-schema type contract.
The project is aimed at laboratory use and is not a full production package; some specialised knowledge of device hardware and MicroManager device configuration is necessary to get started.
Documentation
Documentation lives at gronemeyer.github.io/mesofield and is split by audience:
- Tutorial — the fastest path from a fresh conda env to a working acquisition on your hardware.
- User Guide —
for experimenters running acquisitions: launching the GUI, writing
experiment.json, interpreting the on-disk output. - Developer Guide —
for developers extending mesofield: custom devices,
Proceduresubclasses, frame processors, threading models. - API Reference — auto-generated from docstrings.
Quick start
conda create -n mesofield python=3.12 -y
conda activate mesofield
pip install -e .
or
pip install mesofield
Register this machine's hardware once, then scaffold an experiment against it:
mesofield rig new my-rig # write a hardware.yaml template to edit
mesofield rig list # show rigs registered on this machine
mesofield init my-experiment # scaffold an experiment (--rig my-rig to skip the prompt)
Launch the acquisition GUI by pointing at a rig name or a path:
mesofield launch dev # mock rig, no hardware required
mesofield launch my-rig # a registered rig by name
mesofield launch path/to/experiment/ # dir: procedure.py + experiment.json + hardware.yaml
mesofield launch path/to/experiment.json # rig + params (sibling hardware.yaml auto-detected)
A scaffolded experiment can also be run headless with python procedure.py.
Beyond acquisition, the CLI is grouped by task — run mesofield <group> --help:
| Command | Purpose |
|---|---|
mesofield launch | init | playback | viewer |
acquisition workflow |
mesofield rig ... |
manage this machine's canonical hardware.yaml rigs |
mesofield datakit ... |
build, explore, profile, and inspect datasets |
mesofield process ... |
batch-process and convert recorded data |
mesofield tools ... |
setup, export, and diagnostic utilities |
For end-to-end setup, follow the Tutorial.
System requirements
Tested on Windows 10/11. For multi-camera acquisition with large files we recommend ≥ 32 GB RAM, a 12th-gen Intel i7 or equivalent, and fast local NVMe storage for the experiment directory.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mesofield-0.5.0b0.tar.gz.
File metadata
- Download URL: mesofield-0.5.0b0.tar.gz
- Upload date:
- Size: 44.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2823fadb4f7af73b3f43bd6638bbb321ffa9057bfdad0db9fe8aabdcce9f3ed1
|
|
| MD5 |
e8fc4c0d8c3e483c1f6b479a390f93a2
|
|
| BLAKE2b-256 |
46cf14410bed4eeb492b8b8885f1caa07a52e3745192f3075e2b35809e23429b
|
Provenance
The following attestation bundles were made for mesofield-0.5.0b0.tar.gz:
Publisher:
release.yml on Gronemeyer/mesofield
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mesofield-0.5.0b0.tar.gz -
Subject digest:
2823fadb4f7af73b3f43bd6638bbb321ffa9057bfdad0db9fe8aabdcce9f3ed1 - Sigstore transparency entry: 2373384370
- Sigstore integration time:
-
Permalink:
Gronemeyer/mesofield@5acd685b166a8573c021779774230000a4246c52 -
Branch / Tag:
refs/tags/v0.5.0-beta - Owner: https://github.com/Gronemeyer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5acd685b166a8573c021779774230000a4246c52 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mesofield-0.5.0b0-py3-none-any.whl.
File metadata
- Download URL: mesofield-0.5.0b0-py3-none-any.whl
- Upload date:
- Size: 44.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dae42d3db0dc15c958c7dfad601eaa2b00b6c927b3e8f3cbea9e68b6f25178ab
|
|
| MD5 |
d1db9f51afc87d9fb4fd21bd972cbb3d
|
|
| BLAKE2b-256 |
991e44ac2cdef0640d0223258a6d0ee6cd7695485dbb12c16898d369b50e11e0
|
Provenance
The following attestation bundles were made for mesofield-0.5.0b0-py3-none-any.whl:
Publisher:
release.yml on Gronemeyer/mesofield
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mesofield-0.5.0b0-py3-none-any.whl -
Subject digest:
dae42d3db0dc15c958c7dfad601eaa2b00b6c927b3e8f3cbea9e68b6f25178ab - Sigstore transparency entry: 2373384970
- Sigstore integration time:
-
Permalink:
Gronemeyer/mesofield@5acd685b166a8573c021779774230000a4246c52 -
Branch / Tag:
refs/tags/v0.5.0-beta - Owner: https://github.com/Gronemeyer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5acd685b166a8573c021779774230000a4246c52 -
Trigger Event:
push
-
Statement type: