From data to living visualization
TouchDesigner as the bridge between biological signal and spatial experience
The experiments documented here are the first layer — sensor data, logged and interpreted. The next layer asks: what if the data did not live in a graph but in the plant itself? We are using TouchDesigner to develop visualizations that are dynamic, embodied, and inherent to the biological logic of the specimen. CO₂ flux drives bioluminescent glow. Node networks drift and reconnect as gas concentrations shift. The plant's metabolic state becomes legible as light, motion, and texture — without labels, without axes.
This is the beginning of a speculative design trajectory: a future in which plants are not passive objects in space but active computational interfaces, their internal rhythms made visible through responsive, data-driven environments. Engineered circadian rhythms — not imposed on the plant, but drawn out of it, amplified, and returned to the space as atmosphere.
Passive biological computation through photosynthetic response
How does a spider plant respond to light as a computational input?
A spider plant (Chlorophytum comosum) was placed within an instrumented enclosure and exposed to four distinct lighting conditions. CO₂ concentration was logged continuously via an Adafruit SCD40 photoacoustic sensor at 5-second intervals over ~20 minutes per condition.
The resulting data demonstrates measurable, condition-specific CO₂ flux — evidence that the biological system is performing distributed computation (light integration → metabolic response) without any programmatic instruction. Sensors here function as witnesses, not controllers.
The box lid was left open with the plant positioned near a window under diffuse natural light. This condition establishes the ambient CO₂ baseline — the sensor reading room air mixed with plant respiration and photosynthesis simultaneously.
The spike between 3–7 minutes is an artifact of the experimenter breathing near the open box during setup. After this disturbance clears, the plant's net photosynthetic uptake becomes legible as a slow, steady decline from ~808 ppm down to ~801 ppm. The signal is weak because the open lid allows continuous CO₂ exchange with the room, masking the biological flux.
The enclosure was sealed and all light sources removed. In darkness, photosynthesis ceases entirely. The plant continues cellular respiration — consuming O₂ and releasing CO₂ — making this the condition where biological CO₂ output is highest and uncontested by any uptake.
The data shows a plateau through the first ~7 minutes as the sensor equilibrates, followed by a clear rise from ~1094 to a peak of 1120 ppm at ~13 minutes — the respiration signal accumulating in the sealed volume. The decline after 13 minutes corresponds to the lid being opened to transition conditions, allowing CO₂ to escape. The peak at 1120 ppm is the clearest evidence of pure plant respiration in the dataset.
The same natural light condition as experiment 01, but with the lid sealed. Sealing the enclosure is critical: without ambient air exchange, every ppm of CO₂ change is attributable to the plant alone. This produces a much cleaner biological signal than the open condition.
The data shows an initial rise through ~12 minutes — residual CO₂ from the previous darkness condition still present in the sealed volume — before photosynthesis overtakes respiration and CO₂ begins declining from 889 ppm down to 793 ppm. The inflection at ~12 minutes is the plant reaching its light compensation point: the moment where photosynthetic uptake exactly equals respiratory output.
A purple grow light (combined red ~660nm + blue ~450nm spectrum) was introduced inside the sealed enclosure. These wavelengths correspond directly to the absorption peaks of chlorophyll-a and chlorophyll-b — the primary photosynthetic pigments — making this the condition most biochemically tuned to drive photosynthesis.
The result is the strongest photosynthetic response in the dataset: a sustained CO₂ decline from 748 ppm down to a minimum of 634 ppm over ~15 minutes. The curve then flattens and reverses slightly, suggesting the plant reached light saturation — the point where additional photons no longer increase the photosynthetic rate. This plateau is a meaningful biological threshold: the plant's maximum uptake capacity under this light intensity.
All conditions overlaid
486 ppm dynamic range across four light conditions
Viewed together, the four conditions map the full metabolic range of the plant under controlled light inputs. The spread between the darkness peak (1120 ppm) and the purple light minimum (634 ppm) is 486 ppm — the dynamic range of this biological signal. Each curve is a distinct computational output produced by the same organism in response to a different light input, with no programmatic intervention.
The conditions do not share a common CO₂ starting point because each was run sequentially with residual CO₂ from previous readings present in the enclosure. Future experiments will use a ventilation reset between conditions to establish a shared baseline. Click legend items to isolate individual conditions.
Instrumentation & protocol
| Sensor | Adafruit SCD40 photoacoustic CO₂ sensor |
| Microcontroller | Adafruit Metro RP2040 |
| Sampling interval | 5 seconds (0.2 Hz) |
| Duration per condition | ~20 minutes |
| Enclosure | Cardboard box 12″ × 8″ × 10″, sealed with duct tape between conditions |
| Grow light | Full-spectrum + purple (red/blue) dual-mode LED, positioned inside enclosure |
| Specimen | Chlorophytum comosum (spider plant), established pot |
| Condition order | Natural open → Darkness sealed → Natural closed → Purple light sealed |
| Data capture | Python pyserial logger → timestamped CSV |
| Location | GSAPP Biocomputation Lab, Columbia University |
Situating the data within the thesis argument
This experiment is one node in a larger sensing network. CO₂ flux is treated not as a measurement to be optimized, but as a witness to biological computation — the plant integrating light information and producing a metabolic output without programmatic instruction.
The 486 ppm dynamic range across conditions represents the signal bandwidth of this biological system. Future experiments will correlate CO₂ flux with bioelectrical activity (Ag/AgCl electrode array), transpiration rate (SHT41 multi-point thermal sensing), and a 24-hour circadian run under natural light only — asking whether the rhythm of CO₂ flux is driven by the light cycle or by an endogenous biological clock.
19:06 March 28 → 18:59 March 29, 2026 — 17,155 readings
Two consecutive logging sessions were combined to capture a near-complete 24-hour arc. The plant was left undisturbed in natural ambient conditions with the lid slightly ajar, exposed only to the ambient light cycle of the room — no grow light, no intervention.
The data produces a curve that is counterintuitive at first glance: the CO₂ minimum does not occur at solar noon as a simple light-drives-photosynthesis model would predict. Instead, the lowest recorded value (558 ppm) occurs at approximately 01:48 — in the middle of the night. CO₂ then rises slowly through the early morning hours before a dramatic spike to a peak of 1083 ppm at 14:02 in the afternoon.
Several mechanisms likely account for this shape. The overnight minimum may reflect cumulative CO₂ dissolution into the plant's moist leaf tissue and room surfaces as atmospheric concentration gradually depletes in a semi-enclosed space — a physical buffering effect rather than active photosynthesis. The sharp afternoon spike at 14:02 — a rise of over 400 ppm within a short window — far exceeds what plant respiration alone could produce and is most likely an environmental event: a person nearby, a door opening, or HVAC activity. The subsequent decline from 14:02 through the evening is more consistent with afternoon photosynthesis driving CO₂ uptake as the light cycle continues.
What this dataset most clearly demonstrates is the limitation of CO₂ as a sole sensor in an open environment: the signal is real but noisy, mixing biological flux with environmental fluctuation. The next iteration will log the APDS9960 light sensor in parallel, enabling the biological signal to be separated from ambient room dynamics. The 24-hour run is less a clean result than a map of the system's complexity — which is itself a meaningful finding.