Writes the Motoko radio-pipe firmware (266 KB) to an ESP8266 / D1 Mini over USB, using esptool-js + Web Serial. Once it's flashed, hit 🛰 connect receiver and this piece visualizes the 802.11 frames it hears — strictly read-only.
The firmware is a promiscuous radio pipe: it ships inert and bundles no attack tooling, and this site only ever reads from it — but the firmware itself is transmit-capable (a host program can drive it to send 802.11 frames). Install it only where you're allowed to.
Needs a Chromium browser (Chrome / Edge / Brave) with Web Serial, over HTTPS or localhost. Demo Mode and read-only visualization never touch this gate.
a browser recreation of Bleuje’s interactive-physarum, fed by Wi-Fi packet entropy
Millions of agents deposit and follow trails; their four classic physarum parameters are modulated by the sensed trail value (mxsage’s “36 Points” technique). A pen area around your cursor carries a second parameter set, spatially blended into the background set — move it around to morph the organism.
| move | position the pen (parameter blend area) |
| drag | push particles (displacement bias) |
| click | circular particle spawn |
| right click | scatter spawn near pen |
| middle click | trigger wave |
| wheel | pen size |
| ← → | change Point of selected layer (with 0.5 s transition) |
| ↑ ↓ | select pen / background layer |
| R, Space | random points |
| S | swap pen ↔ background |
| D / F | circular / scatter spawn |
| X / C | pen size − / + |
| W | wave |
| A | color mode |
| P | show/hide pen circle |
| H | hide / show the menu (clean view) |
| [ ] | previous / next packet mode |
| I | show/hide the mode caption |
| 0–9 | jump to Point A–J |
| N | reset particles |
| drag | move pen + push particles |
| tap | circular spawn |
| 2-finger tap | wave |
| pinch | pen size |
Left stick: pen · Right stick: push particles · L2: inertia · D-pad: points · A/B: spawns · X: swap · Y: color · LB/RB: pen size · R-stick click: wave · Back: random.
Two ways to feed the organism the radio around you. 🛰 Connect receiver links a Motoko radio-pipe (an ESP8266 running the passive sniffer firmware) over USB and plays the 802.11 frames it hears live, in real time — for an ongoing installation, just leave it connected. Or load / drop a .pcap / .pcapng capture to replay one. No hardware handy? Demo drives live mode with synthetic packets so you can rehearse.
Don't have a receiver yet? ⚡ Flash a receiver writes the firmware to a bare ESP8266 / D1 Mini straight from the browser (esptool-js + Web Serial), then connect it. The radio-pipe firmware ships inert and this piece only reads from it, but it is transmit-capable, so install asks you to affirm authorized use first.
Either way, every device gets a stable identity from its MAC hash — a home position, a color, and its own perturbation direction on the 15-parameter matrix. With follow on, the pen wanders on its own while your mouse is idle; the influence slider sets how hard the radio bends the organism. G pauses PCAP playback.
The row of icons at the top of the 📡 panel switches how packets become art (each also brings its own color palette). Try them under Demo — the synthetic feed exercises every one. A short caption at the bottom names the current mode's rule (dismiss with I or ×). Use ✎ curate to hide the modes you don't want (it remembers your set), 🙈 hide menu (or H) to hide the whole menu for a clean view — press H again to bring it back — and [ ] to flip between modes hands-free.
| 🌊 Currents | data traffic flows as currents across the canvas; deauths are squalls, probes scatter. The default. |
| 🌡 Presence | signal strength dominates — the organism blooms toward whoever is physically near. |
| ✦ Constellation | APs are stars; a probe lights its network's star; data draws links; deauths are shooting stars. |
| 🎛 Spectrum | Wi-Fi channels become colored horizontal lanes; busy channels glow brighter. |
| 💓 Pulse | traffic accumulates into a heartbeat; busy air beats faster and the field breathes. |
| 🚨 The Jammer | a deauth flood is an attacker — the swarm scatters, a red pathogen blooms. Broadcast deauths hit hardest. |
| 🐋 Airtime Barons | airtime claimed (Duration/NAV) becomes mass — a 4K stream grows gravitational; a sensor stays tiny. |
| 🎵 Metronomes & Jazz | perfectly-timed machine traffic crystallizes into rigid lattice; bursty human traffic stays turbulent. |
| 🏷 Maker's Marks | the MAC's OUI sorts the swarm into species (Apple, Espressif, …); randomized MACs drift as grey ghosts. |
| 📍 Room of Bodies | with the 3-adapter rig, devices are placed in the physical room by signal strength and drift as people move. (Demo simulates the rig.) |
🛰×3 — three receivers, no scanning. One receiver must hop channels and misses ~90% of the air; three parked on channels 1/6/11 capture the whole 2.4 GHz band continuously. Click 🛰×3 and pick three Motoko boards in turn. For Room of Bodies localization specifically, spread the three receivers apart on the same channel instead — position is triangulated from how loud each hears a device (rough by nature — the shimmer is the art).
The receiver link is read-only: the piece only ever reads the frames the radio hears — it never transmits, injects, or attacks. Live capture needs a Chromium browser (Chrome / Edge / Brave) with Web Serial, over HTTPS. Console API: physarum.loadPcapBuffer(buf, name), physarum.connectReceiver(), physarum.connectRig(), physarum.startDemo(), physarum.setMode('metronomes').
Credits: interactive-physarum by Etienne Jacob (Bleuje), technique & parameters from 36 Points by Sage Jenson (mxsage). See Bleuje’s explanation article. License CC BY-NC-SA 3.0.