Architecture

shoal — an open-source distributed water remediation and monitoring system based on biomimetic fish that metabolize aquatic pollutants for power.

Contents

A swarm of small soft-bodied fish forages contaminated waterways. Their guts are microbial fuel cell stacks seeded with substrate-specific consortia. They eat hydrocarbons and dissolved organics for power, mechanically capture microplastics and heavy metals for return-to-dock disposal, and continuously map water quality. Docks are passive benthic installations providing recharge, data offload, biological maintenance, and waste aggregation.

This document specifies the full architecture: what we fork from existing open work, what we adapt, and what is original to the project.


0. Design principles

  1. Open everything. Hardware, firmware, RTL, mechanical CAD, microbial protocols, data schemas, fleet management software, training datasets. CERN-OHL-S for hardware, Apache 2.0 for software, CC-BY-SA for documentation, CC0 for datasets.
  2. The pollutant is the fuel. Energy budget is closed by the work the fish does, not by what we plug in. No on-fish solar, no thermoelectric. The biology is the harvester.
  3. Specialist niches, common chassis. One body, swappable guts. Hydrocarbon fish, organic-load fish, plastic-collector fish, metal-precipitator fish — same hardware, different microbial cartridge.
  4. The dock is half the system. Treat docks as fixed infrastructure with a lifecycle independent of the fish.
  5. Data is the product. Remediation is the justification. The pollution map is what funds the next deployment.
  6. Fail safe to inert. Every component degrades to environmentally inert material or is recoverable at the dock. No engineered organisms enter the open environment.
  7. Match the environment’s clock. The fish operates on biological timescales. Don’t fight that.

1. Fork map: what we take from where

This is what already exists open-source or open-licensed and what we’ll build on.

1.1 Mechanical chassis

Project What it gives us License Status
OpenFish (TU Delft, van den Berg et al. 2022) Thunniform soft body, active+passive tail design, cable-driven motor propulsion, full CAD + BOM, validated to 0.85 m/s. The reference open-source soft fish. CC-BY-NC-ND 4.0 (research-only — we’ll need to clean-room or relicense for commercial fleet ops; non-issue for OSS) Fork as shoal-chassis, redesign hull for gut-stack volume
OpenFish/FISHR expansion (Texas A&M 2025) Hull and internal-component redesign of OpenFish, more robust modular subsystems Open-access, HardwareX Pull design improvements into chassis
CarbonFish (Columbia, Xiong et al. 2023) Bistable hair-clip mechanism, ~10 Hz undulation from a single actuator, carbon-fiber compliant structure Research paper, no formal HW license Reimplement clean-room as alternate “high-frequency low-power” chassis variant
SoFi (MIT CSAIL, 2018) Acoustic command protocol, dive-plane control surfaces, hydraulic tail design Papers only, not open hardware Reference architecture
ZTUNA (Elwahsh & Radwan) Modular subsystem design with detachable head/middle/fins for maintenance Research paper Modularity pattern

Original work: The hull is redesigned to accommodate a 30–80 mL flow-through MFC stack as the body cavity. The peristaltic effect of swimming becomes the gut’s pump. This is the project’s mechanical thesis.

1.2 Microbial fuel cell (the gut)

There is no “open MFC” project at the level of OpenFish. The MFC literature is fragmented across thousands of papers. We synthesize:

Source Contribution
Hydrocarbonoclastic biofilm MFC (Paenalcaligenes/Providencia/Pseudomonas) Anode bio-design for oil/BTX/PAH targeting
3D N-doped graphene aerogel anodes (Yu et al., Sci Adv) Best published volumetric power density at mL scale (~750 W/m³ of anode)
Carbon nanofiber-modified graphite felt High-substrate-concentration tolerance, 7× current density vs. bare graphite felt
Benthic MFC (BMFC) literature for BTX/PAH/PFAS Microbial consortia selection by target pollutant
Bristol Row-bot Conceptual precedent for MFC-powered swimmer

Original work: A modular gut cartridge — a sealed flow-through micro-MFC stack with standardized fluid + electrical interfaces. The cartridge is the unit of biological maintenance: swap a cartridge to switch the fish’s diet. Cartridges are recharged, reseeded, and refurbished at the dock.

1.3 Comms

Project Role
JANUS / STANAG 4748 NATO open standard for underwater acoustic comms. 80 bps baseline at 11.5 kHz, GPL-licensed implementations exist. The lingua franca. Use for: discovery, distress, command, low-rate telemetry.
GitHub: tuff-krister/janus-consensus Open implementation of JANUS-based consensus for swarm coordination
UNetStack (Subnero) Open-source software-defined underwater networking stack, JANUS-compliant
Open-source acoustic modems (Newcastle Nanomodem V3, Red Pitaya–based modems) Hardware reference designs
Optical modems: open designs exist (Sonardyne BlueComm-like architectures replicable from blue-green LED + photodiode) Bulk data offload at dock

Original work: A two-tier comms protocol on top of JANUS: low-rate broadcast for swarm state + high-rate optical burst at dock. The dock-burst protocol is original.

1.4 Compute / silicon

This is where we use OpenIE’s existing stack.

OpenIE property Role in shoal
silicon.openie.dev The on-fish SoC. Heterogeneous chiplet: RISC-V housekeeping + CGRA for control loops + PIM block for inference + sensor analog frontend + energy-harvesting power management. The remediation fish is the ideal validation workload for this architecture.
joulesperbit.ai The η framework, extended: η_remediation = (g_pollutant_removed × value) / E_consumed; η_data = bits_useful_pollution_data / E_consumed. Both target functions for the fleet’s RL policy.
compute.openie.dev Periodic Stack framework — the fish’s duty cycle (sense → swim → digest → comm → idle) is a textbook periodic stack.
corridor.openie.dev The edge compute and DOT procurement playbook ports directly: stormwater-outfall fish for municipal water utilities is a corridor-class procurement target.
OpenROAD / Chisel / Yosys / ofpga-fab The on-fish SoC is built on the same toolchain.

Original work: A reference SoC tape-out targeting the fish’s power envelope (10–100 mW continuous, watt-class bursts). This is shoal-soc, a sibling to silicon.openie.dev.

1.5 Software / fleet management

Project Role
ROS 2 Per-fish onboard middleware. Standard in marine robotics.
MOOS-IvP Mission-oriented behavior framework, used heavily in AUV literature for plume tracking and adaptive sampling. Open source.
PX4 / ArduPilot Vehicle abstraction and simulation patterns. Not directly applicable but architectural reference.
Stonefish Open-source underwater simulator (Gazebo-based)
CARL / Caltech plume-tracking RL policies Reference RL training for chemotaxis

Original work: shoal-fleet, the cloud + dock-side fleet manager. Watershed-scale mission planning, cartridge-rotation scheduling, pollution map generation, data product API.

1.6 The data layer

Reference Role
OGC SensorThings API Open standard for sensor data interchange
Open Geospatial Consortium WaterML 2.0 Hydrology-specific data schema
EPA Water Quality Exchange (WQX) US regulatory reporting format

Original work: shoal-data — open dataset and API for real-time pollution mapping, with tiered access (public free tier, professional API, regulatory feed).


2. The fish: full subsystem spec

2.1 Form factor

  • Length: 350–450 mm (carangiform/thunniform proportions)
  • Mass: 600–900 g wet
  • Body cavity volume: ~250 mL, of which:
    • ~80 mL gut cartridge (MFC stack)
    • ~40 mL battery + supercap buffer
    • ~30 mL electronics + sensors
    • ~50 mL actuator + propulsion
    • ~50 mL ballast + structural

2.2 The gut cartridge

The architectural keystone. A removable, standardized, sealed assembly.

                    inflow port (head end)
                          │
                          ▼
                  ┌───────────────┐
                  │ pre-filter    │  <-- mesh, traps macro-debris
                  │ (mesh)        │
                  ├───────────────┤
                  │               │
                  │  MFC STACK:   │  <-- 50–100 micro-cells in series/parallel
                  │  N-doped      │      each ~0.5–1 mL chamber volume
                  │  graphene     │      anode: N-GA on flexible carbon substrate
                  │  aerogel      │      cathode: air-cathode (gas exchange via
                  │  anode        │              hydrophobic membrane to
                  │  array        │              swim-bladder air reservoir)
                  │               │      membrane: sulfonated PEEK or bacterial
                  │               │              cellulose composite (Nafion alt)
                  ├───────────────┤
                  │ post-filter   │  <-- captures microplastics/precipitates
                  │ (collection)  │      offloaded at dock
                  └───────┬───────┘
                          │
                          ▼
                  outflow port (tail end / gill flaps)

Electrical: cells are wired in series-parallel matrix to produce 3.3 V regulated output via a low-Vin boost converter (cold-start from ~200 mV — the BQ25504-style architecture works here, but we can spec a custom one in the SoC).

Biological maintenance: cartridge is sealed. Bacteria don’t enter the environment. At the dock, fluid ports connect to a reseeding loop that flushes spent media and replenishes nutrients/cultures. Cartridges have a service life (estimate 30–90 days deployed) before full refurbishment.

Cartridge variants (same physical interface, different biology):

  • gut-hc-v1: hydrocarbon (oil, BTX, PAH) — Pseudomonas/Paenalcaligenes consortium
  • gut-org-v1: dissolved organic load — Geobacter/Shewanella
  • gut-n-v1: nitrogen/ammonia — anammox + nitrifiers
  • gut-metal-v1: heavy metal precipitation — Desulfovibrio (energy-negative; cartridge has supplementary substrate)
  • gut-plastic-v1: passive collection only, no MFC, just adsorptive matrix and filter
  • gut-pfas-v1: research-grade, Acidimicrobium consortium + activated carbon

2.3 Propulsion

Two chassis variants supported:

shoal-chassis-A (OpenFish-derived): thunniform, cable-driven, single brushed DC motor pulling alternating cables to flex the active tail segment. Top speed ~0.5–0.8 m/s, average draw 1–2 W at cruise. Use case: fast deployment, large area coverage.

shoal-chassis-B (CarbonFish-derived): bistable hair-clip carbon fiber tail. Snap dynamics give 5–10 Hz undulation from a single low-power actuator. Top speed ~0.3–0.5 m/s, average draw 0.05–0.2 W at low duty cycle. Use case: slow forage, long deployment, energy-positive cruise.

Foraging missions default to chassis-B. Survey missions default to chassis-A.

2.4 Sensor suite

The fish needs to find pollutant gradients, navigate, and characterize what it finds.

Always-on (~5 mW total):

  • 9-DoF IMU (motion, posture)
  • Pressure sensor (depth)
  • Temperature
  • Battery/MFC monitoring (the MFC output is itself a sensor)
  • Bilateral lateral-line MEMS pressure array (flow sensing for plume tracking)

Event-triggered (~50–200 mW when active):

  • Bilateral electrochemical sensor pair (head + tail differential):
    • dissolved oxygen
    • ORP / redox
    • pH
    • conductivity (proxy for dissolved solids / salinity intrusion)
  • Optical absorbance sensor (turbidity, dye concentration, fluorescence at 365/450 nm for PAH and BTEX)
  • Compact CMOS camera with blue-green LED illumination (low-rate, event-driven)
  • Hydrophone (acoustic comms + ambient noise / leak detection)

Cartridge-specific:

  • Hydrocarbon cartridge: fluorescence at PAH-specific wavelengths
  • Metal cartridge: ion-selective electrode array
  • Plastic cartridge: NIR reflectance / fluorescence for polymer ID

2.5 The on-fish SoC (shoal-soc)

Heterogeneous chiplet, fabricated via the OpenIE benchtop process or initial run on commercial node. Architecturally:

┌────────────────────────────────────────────────────┐
│                   shoal-soc                        │
│                                                    │
│  ┌───────────┐  ┌───────────┐  ┌───────────────┐   │
│  │ RISC-V    │  │ CGRA      │  │ PIM           │   │
│  │ housekeep │  │ control   │  │ inference     │   │
│  │ (1 core)  │  │ loops     │  │ (chemotaxis,  │   │
│  │           │  │ (CPG,     │  │  classifier,  │   │
│  │           │  │  swim     │  │  policy)      │   │
│  │           │  │  policy)  │  │               │   │
│  └───────────┘  └───────────┘  └───────────────┘   │
│  ┌───────────┐  ┌───────────┐  ┌───────────────┐   │
│  │ analog    │  │ acoustic  │  │ power mgmt    │   │
│  │ frontend  │  │ DSP       │  │ + energy      │   │
│  │ (sensors, │  │ (JANUS    │  │ harvesting    │   │
│  │  electro- │  │  modem)   │  │ (MFC boost,   │   │
│  │  chem)    │  │           │  │  battery mgr) │   │
│  └───────────┘  └───────────┘  └───────────────┘   │
└────────────────────────────────────────────────────┘

Targets:

  • Sleep: <100 µW (deep sleep, IMU + MFC monitor wake-on-event)
  • Cruise: ~10 mW (CGRA running CPG, sensors at low rate, RISC-V mostly idle)
  • Forage: ~30 mW (PIM running plume policy, all sensors active)
  • Comm burst: ~500 mW peak for 1–10 s (acoustic transmit) or ~200 mW for ~30 s (optical burst at dock)

The PIM block runs the plume-tracking RL policy — sub-MB model, 8-bit quantized, micro-batched updates from on-board experience. This is the policy that decides “swim toward gradient / cast / surface / return to dock.”

2.6 Power architecture

   MFC stack ─────► boost converter ─────┐
                    (cold-start to        │
                     3.3 V)               │
                                          ▼
   small Li-ion ─────────────────► supercap buffer ─────► SoC + actuators
   (5–10 Wh)                       (10–100 J)              + sensors
                                                           + comms
                                          ▲
                                          │
   inductive coil ─────► rectifier ───────┘
   (dock charging)

The Li-ion is small — it absorbs the gap between MFC harvest rate and instantaneous load. Supercap handles the actuator surges. The fish is primarily MFC-powered; battery is buffer.

2.7 Materials and end-of-life

Every external surface must be either marine-inert, biodegradable, or recoverable. Specifically:

  • Hull skin: silicone elastomer (Ecoflex / Dragon Skin family) — inert, decades-stable
  • Adsorptive coating (where present): nacre-inspired graphene/cyclodextrin composite — biocompatible
  • Internal frame: PETG or PLA-PHA (biodegradable in marine env over 1–2 years if lost)
  • Battery: contained in IP68 module, recoverable
  • Cartridge: sealed, recoverable; biology never exposed

If a fish is lost, it should degrade to inert components with no persistent harm. This is a hard constraint.


3. The dock

The dock is at least as much engineering as the fish. It’s also where almost all the human interaction happens — fish are autonomous between dock visits.

3.1 Dock subsystems

                    ┌──────────────────────────────────────┐
                    │         SURFACE BUOY (optional)      │
                    │  - solar panel (20–50 W)             │
                    │  - LTE/satellite uplink              │
                    │  - GPS time reference                 │
                    │  - acoustic modem (surface side)     │
                    └─────────────────┬────────────────────┘
                                      │ tether
                                      │ (power + data)
                                      ▼
        waterline  ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─

                    ┌──────────────────────────────────────┐
                    │            DOCK BODY                 │
                    │                                      │
                    │  ┌────────────┐  ┌────────────────┐  │
                    │  │ benthic    │  │ bay 1          │  │
                    │  │ MFC field  │──│ (fish slot)    │  │
                    │  │ (sediment) │  │  - inductive   │  │
                    │  │ ~0.5–2 W   │  │    charge coil │  │
                    │  │ continuous │  │  - optical     │  │
                    │  └────────────┘  │    transceiver │  │
                    │                  │  - cartridge   │  │
                    │  ┌────────────┐  │    swap arm    │  │
                    │  │ JANUS      │  │  - waste port  │  │
                    │  │ acoustic   │  └────────────────┘  │
                    │  │ modem      │                      │
                    │  │ (subsea)   │  ┌────────────────┐  │
                    │  └────────────┘  │ bay 2..N       │  │
                    │                  │ (parallel)     │  │
                    │  ┌────────────┐  └────────────────┘  │
                    │  │ biology    │                      │
                    │  │ reservoir: │  ┌────────────────┐  │
                    │  │ - cultures │  │ waste hopper   │  │
                    │  │ - nutrient │  │ (microplastics,│  │
                    │  │ - fresh    │  │  metal precip) │  │
                    │  │   cartrdg  │  │ retrieved by   │  │
                    │  └────────────┘  │ human service  │  │
                    │                  └────────────────┘  │
                    │  ┌────────────────────────────────┐  │
                    │  │ dock SoC (similar to shoal-soc │  │
                    │  │ but power-relaxed)             │  │
                    │  └────────────────────────────────┘  │
                    └──────────────────────────────────────┘
                                     ▲
                                     │ optional fiber/power
                                     │ (shore-connected variant)
                                     ▼
                              shore network

3.2 Dock variants

shoal-dock-A (autonomous benthic): pure benthic-MFC powered, surface buoy for comms only. Solar buoy supplements when weather permits. Self-contained for 6+ month deployments. Use case: remote rivers, marine, wetlands.

shoal-dock-B (shore-tethered): hardwired power and fiber to shore. Effectively unlimited recharge and bandwidth. Use case: harbors, urban stormwater, industrial outfalls.

shoal-dock-C (mobile / drift): temporary deployment from a ship for spill-response missions. Battery-buffered, no benthic MFC. Use case: oil spill rapid response.

3.3 The biology reservoir

The unique dock subsystem. A small bioreactor (~5 L) maintains live cultures of every consortium the local fleet uses. Functions:

  1. Reseed depleted cartridges: spent gut cartridges are flushed and reinoculated
  2. Quality control: monitors community composition via genomic markers (off-fleet, periodic, low duty cycle)
  3. Adaptation: runs slow directed-evolution experiments — exposes cultures to local pollutant chemistry to improve degradation rates over time
  4. Containment: fully sealed; UV-treated effluent if water exchange is needed; no cultures enter environment

This is the part that requires the most novel biology engineering. It’s also the part that makes the system get better over time at handling local conditions.

3.4 Dock placement

Dock spacing is a function of fish energy budget. With 50 mW continuous MFC harvest in moderate pollutant load:

  • Energy-positive cruising radius: ~500 m round trip
  • Survey radius (battery-buffered): ~2 km round trip
  • Recommended dock spacing for dense deployment: 300–500 m
  • Sparse deployment / monitoring only: 1–2 km

A typical river stretch might run 5–20 docks per linear km of waterway in dense remediation mode, 1 every few km in monitoring mode.


4. The protocols

4.1 Acoustic (always-on, fleet-wide)

Layer 0: JANUS / STANAG 4748. 80 bps baseline at 11.5 kHz. 64-bit packets, 34 bits user-defined.

Layer 1 (shoal-link): defined on top of JANUS user bits.

  • Discovery: fish-to-dock and fish-to-fish presence
  • Heartbeat: 1 packet per minute per fish (battery, MFC output, depth, GPS-equivalent dead-reckoned position)
  • Distress: low-battery, stuck, lost, anomaly
  • Command: from dock to fish, from operator via dock

Layer 2 (shoal-mesh): optional multi-hop relay through other fish for distant fish to reach dock. Inspired by janus-consensus.

4.2 Optical (dock-local, high-rate)

Layer 0: blue-green LED + PIN photodiode, OOK at 1–10 Mbps within ~10 m line-of-sight at dock.

Layer 1 (shoal-burst): dock-local protocol for bulk data offload. When a fish is within optical range of its bay:

  • Telemetry log dump (typically <10 MB per dock visit)
  • Sensor data (camera frames, full electrochem traces)
  • Updated mission parameters / model weights pushed to fish
  • Software updates

4.3 Surface (dock-to-cloud)

LTE, satellite, or hardwired. Standard IoT patterns. Telemetry → cloud time-series DB. Pollution maps → tile server. Dashboard → web app.

4.4 Data schemas

Public schema for water quality data, designed for OGC SensorThings + WaterML 2.0 + EPA WQX interop. Schema documents are part of the open release. Every fish observation lands in a versioned, signed, append-only log.


5. The cognitive layer

5.1 Per-fish behaviors

Five primary behaviors, scheduled by an onboard policy:

  1. Forage: gradient-following plume tracking using flow + chemical sensors, optimizing for MFC power output (i.e., the fish is hungry and looking for food)
  2. Survey: spatial-coverage pattern, sampling water quality on a grid (commanded mission, energy-budget-aware)
  3. Capture: when in a microplastic / heavy metal hotspot, slow down and operate adsorptive surfaces / filtration
  4. Return: navigate to nearest dock when battery low, cartridge full, or mission complete
  5. Idle: park on substrate, low-power listen for command

5.2 Plume tracking

Hybrid approach combining several literature-validated methods:

  • Flow-sensing primary (Caltech CARL approach): bilateral lateral-line MEMS detects upstream/downstream cues — works even when chemical signal is intermittent
  • Chemotaxis secondary: bilateral electrochemical sensor differential for fine-grained gradient
  • Infotaxis fallback: when no gradient detected, maximize information gain (Vergassola formulation)
  • MFC output as guidance: power increases when on substrate — the simplest and most biologically faithful signal

Trained in CFD simulation (Stonefish + custom plume models), refined in tank, deployed with online adaptation.

5.3 Fleet-level behaviors

At the dock and in the cloud:

  • Coverage planning: which fish goes where, based on prior pollution map and sensor revisit times
  • Cartridge rotation: schedule cartridge swaps based on age and degradation rate
  • Anomaly response: when a fish reports unusual readings (sudden hydrocarbon spike), dispatch nearby fish to characterize
  • Map fusion: aggregate fish observations into a watershed-level pollution model

6. Repository structure

shoal/
├── README.md
├── ARCHITECTURE.md          (this document)
├── LICENSE-HARDWARE         (CERN-OHL-S 2.0)
├── LICENSE-SOFTWARE         (Apache 2.0)
├── LICENSE-DATA             (CC-BY-SA 4.0)
├── LICENSE-DOCS             (CC-BY-SA 4.0)
│
├── chassis/                 mechanical CAD, hull, propulsion
│   ├── chassis-A-thunniform/
│   └── chassis-B-bistable/
│
├── gut/                     MFC cartridge — design, biology, manufacturing
│   ├── shell/               cartridge mechanical
│   ├── stack/               anode/cathode/membrane spec
│   ├── consortia/           microbial protocols per pollutant target
│   └── seeding/             dock-side reseeding procedures
│
├── soc/                     shoal-soc RTL, simulation, tooling
│   ├── rtl/                 Chisel / SystemVerilog
│   ├── pim/                 PIM block
│   ├── cgra/                control fabric
│   ├── analog/              sensor frontend
│   └── pdk/                 (links to ofpga-fab process)
│
├── firmware/                runs on shoal-soc
│   ├── hal/
│   ├── behaviors/
│   ├── janus/
│   ├── policies/            RL policy weights + runtime
│   └── safety/
│
├── dock/                    dock hardware + firmware
│   ├── mechanical/
│   ├── electronics/
│   ├── biology-reservoir/
│   └── firmware/
│
├── fleet/                   cloud + dock-side software
│   ├── api/                 shoal-data API
│   ├── mission/             planner
│   ├── viz/                 pollution map dashboard
│   └── ops/                 fleet management
│
├── sim/                     simulation
│   ├── stonefish-models/
│   ├── plume-models/
│   └── training/            RL training pipelines
│
├── docs/
│   ├── building-a-fish.md
│   ├── building-a-dock.md
│   ├── deploying-a-shoal.md
│   ├── biology-handbook.md
│   ├── safety-and-ethics.md
│   └── regulatory.md
│
└── data/
    ├── schemas/             OGC SensorThings extensions, WaterML mapping
    ├── reference-datasets/
    └── pollution-maps/

7. Roadmap

Phase 0 — months 0–3: paper architecture + community

  • Publish this architecture document
  • Publish reference dock spec and reference fish spec
  • Open the GitHub org, license everything
  • Initial DARPA / EPA / NOAA / NSF / foundation outreach
  • Seed academic partnerships (TU Delft for chassis, biology labs for consortia)

Phase 1 — months 3–9: tethered prototype

  • Build shoal-chassis-A with tethered power + comms
  • Build gut-hc-v1 cartridge, validate in lab with diesel-contaminated water
  • Demonstrate energy-positive operation in static tank
  • First dataset published

Phase 2 — months 9–18: untethered single-fish

  • Off-the-shelf SoC (RP2350 or ESP32-S3) initially, not shoal-soc yet
  • Standalone dock prototype (shore-tethered)
  • Real river or contained pond deployment
  • 10-fish initial run
  • First pollution map data product

Phase 3 — months 18–30: shoal-soc + multi-fish

  • Tape out shoal-soc on a commercial node (180 nm or 65 nm — not ofpga-fab yet)
  • Multi-cartridge fleet (hydrocarbon + organic + plastic)
  • Watershed-scale deployment in partnership with a municipal water utility
  • Data product revenue

Phase 4 — months 30+: fab convergence

  • Migrate shoal-soc to ofpga-fab benchtop process — closes the OpenIE loop
  • Fleet expansion via data-product revenue funding
  • PFAS and metal-precipitation cartridges as biology matures
  • Open-source kit for any university / NGO to deploy a shoal in their watershed

8. What needs original engineering

Not borrowed, not adapted — must be invented:

  1. The flow-through MFC gut cartridge with standardized fluid + electrical interface, hot-swap at dock
  2. The peristaltic-pumping integration of swimming undulation into MFC flow rate
  3. The dock biology reservoir — sealed bioreactor that maintains and reseeds cartridge cultures
  4. The shoal-soc — heterogeneous SoC tuned for the bursty intermittent power profile
  5. The cartridge-rotation fleet logistics — scheduling, handling, refurbishment
  6. The pollution-map data product — schema, API, business model
  7. The dock-to-fish optical handshake at the bay
  8. The waste-aggregation-and-retrieval logistics for non-metabolizable captures

Everything else is forks, ports, or integrations of prior work.


9. Safety and ethics

This is open-source, environmentally-released robotics with biological components. The constraints are real:

  • No engineered organisms in the open environment. Only naturally-occurring consortia, only enriched/selected, never genetically modified, always sealed inside cartridges. UV-treated effluent.
  • Materials degrade to inert. Lost fish must not become persistent pollution themselves.
  • Acoustic emissions are biology-aware. Use JANUS frequencies and power levels validated against marine mammal impact studies.
  • Data privacy at the regulatory layer. The pollution map is a public good, but raw data may be subject to municipal / utility / industrial confidentiality.
  • Indigenous and community consent. Watershed deployments require local consent. Standard FPIC protocols.

These are part of the open governance model, documented in safety-and-ethics.md, and not optional.


10. Why open source

Three reasons.

Trust. Environmentally-released systems with biological components require radical transparency. Anyone deploying a shoal in a watershed must be able to inspect every part. Closed-source remediation is an unstoppable trust failure waiting to happen.

Distribution. The pollution problem is global, fragmented across millions of small water bodies, mostly underserved by capital. A proprietary fleet operator can serve maybe a few high-value deployments. An open kit replicated by hundreds of universities, NGOs, water utilities, and citizen-science groups can reach the rest.

Compounding. Every deployment makes the next one cheaper. Better consortia get contributed back. Better policies emerge from more training data. Better hardware emerges from more iteration. The open commons is the only structure where the project gets stronger faster than its operators do.

This is the OpenIE thesis applied to a new substrate. The fab, the silicon, the energy-efficiency framework, the periodic stack, the corridor edge compute — they all converge on a fish that eats pollution, powers itself, and reports what it sees.


shoal is open source. Hardware: CERN-OHL-S 2.0. Software: Apache 2.0. Docs and data: CC-BY-SA 4.0. Datasets: CC0 1.0.

This site uses Just the Docs, a documentation theme for Jekyll.