Physarum polycephalum time-lapse imaging
Time-lapse colour scans of the slime mould Physarum polycephalum growing among arrangements of oat flakes, collected by Kyle Harrington and Iris Harrington in 2023. In each of four experiments, six 90 mm dishes sat together on a flatbed scanner (Canon CanoScan LiDE 400), which scanned them every 2 or 5 minutes for 2.5 to 6 days. The release splits them into 24 dish series: 51,036 dish frames from 8,506 scans, 132.93 GB of OME-Zarr.
The dataset is scanned pixels only. It has no segmentations or derived measurements, so it is raw material for studying network formation, foraging and growth dynamics, and for training and testing image-analysis methods.
Dataset: Harrington, K. and Harrington, I. (2026). Physarum polycephalum time-lapse imaging: 24 dish series from four six-dish experiments (OME-Zarr). Zenodo. doi:10.5281/zenodo.22868368 · record · licensed CC-BY-4.0

The experiments
| experiment | frames | interval | recorded (local time) | size |
|---|---|---|---|---|
| 001 | 1,696 | 5 min | 2023-08-26 → 09-01 | 26.3 GB |
| 002 | 1,527 | 5 min | 2023-09-01 → 09-06 | 24.8 GB |
| 008 | 1,891 | 2 min | 2023-09-29 → 10-02 | 29.2 GB |
| 009 | 3,392 | 2 min | 2023-10-08 → 10-13 | 52.6 GB |
Frames are per dish; each experiment has six dishes. Exact first and last timestamps are in the record’s manifests.
What changes from dish to dish is the arrangement of the oat flakes and of the Physarum inoculum. Scans were made in the Alexandria, VA area (America/New_York, UTC−04:00 throughout).
Two series are shorter than the recordings they come from. Experiment 002 stops before its last two frames, which are blown out to near white. Experiment 009 stops before an interval of suspected contamination. The full recordings are kept privately.
Every dish
Each strip shows one dish at four evenly spaced times, from the first to the last public frame, labelled with hours since the first frame. Frames are rendered straight from the released archives. Click a strip to enlarge it; the caption links that dish’s archive.
Experiment 001 · every 5 min · 141 hours






Experiment 002 · every 5 min · 127 hours






Experiment 008 · every 2 min · 63 hours






Experiment 009 · every 2 min · 113 hours






Final frames
The last public frame of the other three experiments.



Format
Each dish series is one OME-NGFF 0.5 image (Zarr v3), packaged as an uncompressed ZIP64 archive so the Zarr chunks can be read without unpacking:
s0:uint8array with axest, c, y, x(RGB), compressed losslessly with Blosc zstd level 5.acquisition/timestamp_utc_ns: exact capture time of every frame. The OMEtscale is the nominal interval; use these timestamps for anything quantitative.dish_support,registration/dish_circle_xyr_px: the region kept for the dish and the dish circle fitted to each frame.
Pixels inside the dish support are bit-exact copies of the source scans, and pixels outside it are zero. The scanner images each dish from below, through its base, so every frame is a mirror image of the dish as seen from above. The images are not registered: dish positions drift slightly between scans, and the per-frame circle fits record that drift. Every scan covers the scanner’s full 216 × 297 mm bed at 300 dpi, so the pixel pitch is 0.08467 mm (11.81 px/mm) for every dish. Use that value rather than the millimetre scale stored in the images: it was estimated from the fitted dish diameter and ranges from 11.02 to 11.73 px/mm. The record’s notes carry the same correction.
The record also holds a per-frame manifest for every series (timestamp, source
filename, checksum, fitted circle), SHA256SUMS, QC notes, CITATION.cff, and
release-summary.json, which has every number above in machine-readable form.
Reading the data
Pooch can download any dish by name. It reads the file list and checksums from the Zenodo record, verifies each download, and caches it, so later calls return the local copy. Archives are 4–9 GB each.
import pooch # pooch >= 1.8; install tqdm for the progress bar
import zarr # zarr >= 3.1
physarum = pooch.create(
path=pooch.os_cache("physarum"),
base_url="doi:10.5281/zenodo.22868368/",
)
physarum.load_registry_from_doi()
path = physarum.fetch("physarum-009-dish3-r1c1.ome.zarr.zip", progressbar=True)
root = zarr.open_group(zarr.storage.ZipStore(path, mode="r"), mode="r", zarr_format=3)
frames = root["s0"] # (3392, 3, 1169, 1276) uint8
frame = frames[0] # (3, y, x) RGB
times = root["acquisition/timestamp_utc_ns"][:] # int64, UTC nanoseconds
To open an archive you already have, pass its path to zarr.storage.ZipStore.
zarr-python 3 and TensorStore are tested. Older OME-NGFF 0.4 / Zarr v2 viewers
may not open the files.
Citation
Please cite the dataset by its DOI, 10.5281/zenodo.22868368:
@dataset{harrington_2026_physarum,
author = {Harrington, Kyle and Harrington, Iris},
title = {Physarum polycephalum time-lapse imaging: 24 dish series
from four six-dish experiments (OME-Zarr)},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.22868368},
url = {https://doi.org/10.5281/zenodo.22868368}
}
Related work on Physarum in spatial ecosystems: Complex population dynamics in a spatial microbial ecosystem with Physarum polycephalum (Biosystems, 2021).