Experiment 001 — Diurnal Electrical States

Fungus Baseline Run · 24 Oct – 30 Oct 2025 · EarthTalk Lab

← Back to Experiment 001 Hub ← Back to Lab Analysis

Abstract

Motivation. We suspected the fungus cycles through electrical ΓÇ£statesΓÇ¥ (resting, feeding, growing, etc.) across the day, and that stimuli might trigger different responses depending on the state it is already in. Before naming or modelling those states, we needed to prove they exist and to see how stable the baseline is.

Approach. Using the 24ΓÇô30 Oct 2025 baseline, we averaged raw electrode readings (ESPs 04, 05, 08, 11, 13, 14, 17) into 10-minute blocks, rolled them into hourly means, and clustered the hourly curves. We then applied the exact same reducer to saline-control runs (3ΓÇô9 Oct) to check for hardware artefacts, and finally broke the fungus run back into individual days to see which hours truly contributed to the ΓÇ£average.ΓÇ¥

Results. The fungus traces exhibit a consistent dayΓÇônight rhythm and two spatially coherent clusters. That split raises the possibility that the single physical block may actually host two semi-independent mycelial ΓÇ£organismsΓÇ¥ (or at least two regions connected by too few hyphae to share state quickly). The saline control stayed largely flat, aside from a noon dip on the hottest days that we attribute to bath heating/evaporation rather than instrumentation drift. Daily coverage revealed that only 23ΓÇô25 Oct contained full data, so later hours in the aggregate trace were based on sparse or zero samples.

Conclusions & next steps. The baseline does contain repeatable states, but we need denser data (Experiment 001A) and a temperature-controlled saline repeat before we can label those states or tie stimuli to them. This report documents the processing pipeline, sanity checks, gaps discovered, and the follow-up experiments required.

Introduction

Understanding how fungal electrical signalling varies through circadian cycles is critical for correlating physiological states (“sleeping,” “feeding,” “growing,” etc.) with environmental drivers. We hypothesize that responses are state-dependent—stimulus → state → outcome—so the first question was simply: do repeatable electrical states exist over the day?

Previous EarthTalk experiments highlighted response peaks during stimulus protocols; here we characterize the inherent baseline dynamics. We focus on ESPs encircling a single substrate block, capturing absolute electrode potentials (a0ΓÇôa3) referenced to a shared ground.

Objective. Quantify diurnal patterns in baseline electrical activity, identify coherent ESP clusters, and establish a reproducible processing template for subsequent experiments.

To keep the narrative linear, this page follows the same order we worked through in the lab: first the hourly aggregation (Results) to look for states, then a saline sanity check (Saline control) to confirm the rhythm is biological, and finally a per-day coverage audit (Data coverage) that revealed the gaps which triggered Experiment 001A.

Materials & Methods

Data Acquisition

Raw voltage readings were logged every Γëê2 seconds by each electrode channel (a0ΓÇôa3) for ESPs 04, 05, 08, 11, 13, 14, and 17. (ESP07 had already been decommissioned before this baseline run, which is why it does not appear in the figures.) Data were exported to CSV from the InfluxDB bucket blocks_raw using the helper script push_experiment_to_notion.py for esp04 and pre-existing exports for all other ESPs.

Signal Processing

  1. Ten-minute block means. For each ESP, samples were partitioned into contiguous 10-minute windows. Within each window, we averaged all readings per electrode, then averaged across a0ΓÇôa3, producing one ΓÇ£mean block potentialΓÇ¥.
  2. Hourly aggregation. Ten-minute values whose start time fell within the same clock hour were averaged across the six-day run, yielding a multi-day hourly mean per ESP.
  3. State mapping (esp04). Using analyze_fungal_states.py, we computed biological σ by subtracting saline noise in quadrature, assigned state bins (S0–S4), and produced fixed/rolling baseline visualizations with spike smoothing <3 samples.
Plain-language walkthrough.
  1. Take every 10-minute chunk inside an hour (00:00–00:10, 00:10–00:20, …) and average all four electrodes together for that chunk.
  2. Average those six chunk values to get a single number for that hour on that day.
  3. Repeat for each day, then average the per-day hour values to obtain the final point we plot for that hour.
  4. Do the same for every hour of the day so the curves show the true diurnal shape.

Software

Processing relied on Python 3.10+, Pandas, and Matplotlib. Scripts central to this study:

  • compute_hourly_cycle_multi_from_csv.py ΓÇö hourly aggregation & plotting from CSV exports.
  • compute_means_10min.py ΓÇö 10-minute mean tables, min/max windows, and bin counts.
  • analyze_fungal_states.py ΓÇö state classification for targeted windows.

Results

Global Overview

Hourly cycle comparison across ESPs
Figure 1. Hourly mean electrode potentials averaged across a0ΓÇôa3 for all active ESPs (04, 05, 08, 11, 13, 14, 17). Two clusters emerge: a northern arc (esp17/14/08) and a western block (esp04/05/11/13).

Cluster Analysis

Hourly cycle subset: esp17, esp14, esp08
Figure 2. Cluster A ΓÇö ESP17, ESP14, and ESP08. The three devices track nearly identically, suggesting shared microenvironmental drivers.
Hourly cycle subset: esp04, esp05, esp11, esp13
Figure 3. Cluster B ΓÇö ESP04, ESP05, ESP11, and ESP13. Slightly elevated absolute potentials with a consistent diurnal waveform.
Hourly total power comparison
Figure 4. Hourly total power (sum of squared voltages) averaged over the baseline run for all ESPs.

Spatial Context

Electrode wiring layout
Figure 5. Electrode layout used in the baseline run. Cluster A (esp17/14/08) occupies the northern arc; Cluster B (esp04/05/11/13) spans the western and central electrodes.

Emerging hypothesis. The two hourly clusters show up on opposite sides of the block and barely influence one another. That raised the possibility that weΓÇÖre effectively monitoring two semi-independent mycelial organisms sharing the same substrate. To test that, we plan a follow-up where we inoculate a fresh block very lightly, record its state map while the hyphae are sparse, then keep logging for several weeks as the hyphae knit the regions together. If the hourly states gradually synchronize as connectivity increases, weΓÇÖll have evidence that a minimum hyphal ΓÇ£bandwidthΓÇ¥ is required for full state transfer.

Saline Control (Hardware Baseline)

To ensure the observed diurnal structure is biological rather than an instrumentation artifact, we applied the identical aggregation pipeline to saline calibration runs collected 3ΓÇô9 October 2025. The aggregate control curve shows a modest noon dip only on the final three days (7ΓÇô9 Oct) when the uncovered bath warmed and partly evaporated; earlier days stay flat within Γëê50 counts. We therefore treat the trough as temperature-driven drift, not a fundamental property of the hardware. Raw saline CSVs live under analysis/local_workspace/data_for_professor_Adamatzky/espXX_saline_experiment_20251003_to_20251009.csv, and the derived hourly tables/plots are in analysis/local_workspace/fungal_state_mapping_outputs/saline/.

Hourly cycle comparison ΓÇô saline
Figure 6. Hourly mean electrode potentials for saline runs (esp04, esp05, esp06, esp08, esp11, esp13, esp14, esp17). Aside from the noon sag introduced on 7ΓÇô9 Oct when the saline bath level dropped, the controls stay within a few dozen counts, underscoring that the stronger diurnal waves arise in the biological run.
Hourly total power ΓÇô saline
Figure 7. Hourly total power for saline runs. Total energy remains stable across the day, reinforcing that the oscillations observed in Figure 4 arise from biological processes.
Saline subset: esp17, esp14, esp08
Figure 8. Saline control for Cluster A devices (esp17/14/08). The clustered rhythm observed in the fungus run collapses to a flat profile.
Saline subset: esp04, esp05, esp11, esp13
Figure 9. Saline control for Cluster B devices (esp04/05/11/13). Daily structure vanishes in the absence of fungal activity.

Data Coverage

Every timestamp was converted to Costa Rica local time (UTC−6) and grouped by day, yielding per-ESP sample counts and a representative trace for each date. This makes it clear which days actually contribute to the hourly averages.

Quick read. Only 23ΓÇô25 Oct retained dense coverage across all channels; afterwards the electrodes streamed reference channels only, so the daily plots flatten and the counts drop to zero, signalling the effective end of the baseline capture. That realization directly motivated Experiment 001A, which repeats the workflow on a cleaner slice (06ΓÇô12 Nov) with all ESPs online.

23 Oct 2025

ESPTotal samplesa0a1a2a3
ESP048,5368,5368,5368,5368,536
ESP059,7269,7269,7269,7269,726
ESP088,5708,5708,5708,5708,570
ESP119,7189,7189,7189,7189,718
ESP139,7359,7359,7359,7359,735
ESP148,6058,6058,6058,6058,605
ESP179,7069,7069,7069,7069,706
Experiment 001 23 Oct 2025 per-ESP time series
Experiment 001 ┬╖ 23 Oct 2025 ┬╖ Mean electrode potential per ESP.

24 Oct 2025

ESPTotal samplesa0a1a2a3
ESP0433,16233,16233,16233,16233,162
ESP0537,05137,05137,05137,05137,051
ESP0833,19633,19633,19633,19633,196
ESP1137,70937,70937,70937,70937,709
ESP1337,68137,68137,68137,68137,681
ESP1433,31633,31633,31633,31633,316
ESP1737,66837,66837,66837,66837,668
Experiment 001 24 Oct 2025 per-ESP time series
Experiment 001 ┬╖ 24 Oct 2025 ┬╖ Mean electrode potential per ESP.

25 Oct 2025

ESPTotal samplesa0a1a2a3
ESP0421,93815,43115,43115,43115,431
ESP0524,89017,48717,48717,48717,487
ESP0821,96415,44615,44615,44615,446
ESP1124,93617,53317,53317,53317,533
ESP1324,98817,57517,57517,57517,575
ESP1422,07515,53915,53915,53915,539
ESP1724,94417,55617,55617,55617,556
Experiment 001 25 Oct 2025 per-ESP time series
Experiment 001 ┬╖ 25 Oct 2025 ┬╖ Mean electrode potential per ESP.

26 Oct 2025

ESPTotal samplesa0a1a2a3
ESP0426,8860000
ESP0530,6200000
ESP0826,9970000
ESP1130,5790000
ESP1330,6620000
ESP1427,0010000
ESP1730,6400000

27 Oct 2025

ESPTotal samplesa0a1a2a3
ESP0400000
ESP0537,1790000
ESP0832,6460000
ESP1137,0070000
ESP1337,2920000
ESP1432,6950000
ESP1737,2550000

28 Oct 2025

ESPTotal samplesa0a1a2a3
ESP0400000
ESP0537,6410000
ESP0832,9000000
ESP1137,5800000
ESP1337,5950000
ESP1432,9660000
ESP1737,5780000

29 Oct 2025

ESPTotal samplesa0a1a2a3
ESP0400000
ESP0537,8830000
ESP0833,1970000
ESP1137,7170000
ESP1337,9460000
ESP1433,2070000
ESP1737,9180000

30 Oct 2025

ESPTotal samplesa0a1a2a3
ESP0400000
ESP0528,1150000
ESP0824,5420000
ESP1128,1740000
ESP1328,0840000
ESP1424,6010000
ESP1728,0980000

Daily counts reflect non-null readings per channel after converting to Costa Rica local time. Zero values indicate the channel did not report that day.

Discussion & Conclusions

What we learned. The hourly reducer shows that the fungus naturally settles into a night-time lull, climbs through the morning, dips slightly around noon, then ramps again toward evening. Two spatial clusters behave almost like twins, which hints that location (moisture, shade, airflow) influences the baseline voltage.

Why the saline check matters. Running the same math on the saline bath confirmed that the instrumentation itself stays essentially flat; the only wiggle is the noon dip on 7ΓÇô9 Oct when the bath warmed and evaporated. That gives us confidence that the bigger swings in the fungus traces are biological and not an ADC quirk.

Gaps we uncovered. Once we inspected the daily counts we saw that most channels went silent after 25 Oct. Instead of quietly averaging in hours with no true data, we documented the gap here and spun up Experiment 001A to redo the baseline with solid coverage.

Where we go from here. The concrete follow-ups (canonical baseline, saline rerun, hyphal-connectivity test) are listed in the Future Experiments section so they stay visible as active work items.

Future Experiments

  • Baseline reboot (Experiment 001A). Use the 06ΓÇô12 Nov capture (all channels healthy) as the canonical baseline going forward, and rerun the hourly clustering on that dataset to confirm the spatial groupings hold when coverage is complete.
  • Temperature-controlled saline repeat. Re-run the saline baseline with the bath in a thermostated enclosure (or at least covered and continuously topped off) to confirm that the noon dip truly tracks ambient heating/evaporation. Capturing synchronized ambient temperature alongside the control will let us regress out residual drift and tighten future normalization steps.
  • Hyphal connectivity / state-transfer study. Start with a lightly inoculated block, log per-hour states while regions are poorly connected, then let the hyphae knit together and monitor whether the two electrical clusters synchronize. This will tell us whether a minimum hyphal ΓÇ£bandwidthΓÇ¥ is required for full state sharing.

Reproducibility & Data Accessibility

  • Raw CSVs: analysis/fungal_state_mapping/outputs/experiment_001/CSV/espXX_experiment_001.csv.
  • Extraction script: analysis/fungal_state_mapping/scripts/extract_experiment_001_range.py.
  • Hourly aggregation: compute_hourly_cycle_multi_from_csv.py, compute_means_10min.py, analyze_fungal_states.py, query_influx_mean_std.py.
  • Daily coverage assets: analysis/fungal_state_mapping/scripts/generate_daily_coverage_assets.py writes experiments/experiment-001/day_coverage_sections.html and experiments/experiment-001/assets/day_plots/.
  • Legacy state plots: fixed_baseline_states.png, rolling_baseline_states.png (ESP04 focus).

References

EarthTalk Lab internal documentation on electrode calibration and saline baselines (2025).