lab

E. coli simulation

lab · software · hardware · Python · Citizen CBM 910 II

Petri dish, offline

t 0 pop 0 energy 0 waste 0

An agent based reading of E. coli behaviour turned into text, print, and image. Python runs the sim; Citizen receipt printers write first person log lines as the voice of cells; on screen renders show the same system as particle fields, waste heatmaps, and a desktop control panel.

The Petri dish bar above polls a headless copy of the same sim on this server: population, energy, waste, and recent first person lines.

Shown at Aldea

The receipt paper pile first appeared as Unconventional Embodiments, Stories from the petri dish in Weaving Algebraic Patterns, Flowers and Leaves at Aldea, Bergen.

Serial printers

The physical output path uses Citizen CBM 910 II printers over serial. A USB serial converter meets the printer DB25 port through a custom jumper cable soldered on the bench (DB9 side of the converter to the printer). Test slips in the gallery document the handshake that worked here: 4800 baud, 8 data bits, no parity, one stop bit, COM3, custom cable. That is documentary of this setup, not a how to.

Dual printers sit beside the laptop while the sim runs, spooling ticker strips of timed first person lines (I swim towards you stationary, I remain here, I created new life).

Software and voice

Python drives both the agent sim and the printer stream. Each cell gets a short narrative line; the paper pile is a sculptural log of that voice over time.

Viz and waste heatmaps

The other face of the same system is visual. Gallery stills show swimming agents as particle fields and purple swarms. Separate exports map waste concentration as color fields while bacteria eat, multiply, and leave metabolic byproducts that slow growth.

The desktop app titled E. coli Simulation shows bacterium narratives beside a population graph, with toggles for Show Waste, Show Temperature, and Show Bacteria, plus Save Heatmap. Overlay views place agent dots on the waste field so the log lines and the color map stay linked.