From selling tractors to coordinating American agriculture — John Deere.
Start with one of the most familiar companies in industrial history. Deere built tractors. It ended up running the layer that American farms plan, execute, and report through. The shift from product company to coordination business is what made Deere durable — and the same shift is available to any platform with sensors at its base.
Modern · AI-era · agriculture
John Deere
WedgeTractors. The legacy hardware sale. Familiar, dumb, unloved by analysts.
EngineGPS + telematics added to the equipment lifted fuel efficiency and uptime — and laid the groundwork to capture operational data per pass over a field. Soil conditions, planting practices, local timing decisions. AI-driven prescription tools and autonomous machinery now determine yield; farms hit targets because of Deere, not just with Deere.
CoordinationThe John Deere Operations Center. Planting schedules, soil profiles, supplier QA, government paperwork, distribution — farms run on it, not just use its tools. Deere stopped being a product company and became a coordination business.
OutcomeTacit knowledge that used to live in the farmer's head — soils, weather, timing — now lives in Deere's models. The business model shifted from selling equipment to coordinating operations. That's the durable position.
"Farms no longer merely use Deere's tools; they build their operations around Deere's infrastructure."
The strategic move. Deere didn't get there by selling more tractors. It got there by becoming the layer that coordinates how the work happens — planning, execution, supplier QA, regulatory filings. The next two slides distill the arc this kind of platform follows, and the trade it asks the customer to make in return. Source: Choudary, Sangeet Paul. Reshuffle: Who Wins When AI Restacks the Knowledge Economy, ch. 8.
The strategic arc
Sensor → Engine → Coordination.
Deere's path, generalized. Two transitions any analytics platform with sensors at its base eventually walks. The dashboard becomes the engine that determines outcomes. The engine becomes the coordination layer that operations run through. The rest of this deck shows what the engine looks like today and what coordination pieces are emerging.
Stage 1
The wedge
Sensor
Sensors generate the row. The smallest sale that gets the platform inside the customer's process.
We are here
Stage 2 · the differentiator
Engine
Models on top of the sensor data determine performance. Yield, quality, consistency — the customer hits targets because of the platform, not just with it.
Stage 3
The prize
Coordination
The platform coordinates how the work happens — planning, execution, supplier QA, regulatory filings flow through one system. The customer's operations are run through the platform, not just supported by it.
Where we sit today. The engine is built (single-tenant). The parameter knowledge graph and outcome-label table are coordination-layer pieces already in place. The cross-customer memory layer that lets the engine compound across deployments is design-sketched, not yet built — activating that is the next strategic build.
Two movements
The engine governs performance. The coordination layer regulates behavior.
These are the two distinct paths Deere walked, and they reinforce each other. The engine determines how well the system runs. The coordination layer determines how the system is run — who talks to whom, what gets reported where, when each step happens. Together they shift the locus of advantage toward the platform.
When a platform decides outcomes for a customer, the customer's operations reorganize around it. That's a real trade. We make it favorable by keeping the customer in control of three things they actually care about: their data, their rules, and the math behind every decision. The platform that earns the dependence is the one that respects it.
AI-first · human-in-proximitythe frame
AI handles continuous reasoning. Humans intervene where it matters.
The system runs autonomously for the bulk of the analytical work — ingestion, feature derivation, drift detection, watchlist ranking, decision synthesis, audit. Proximity engineering dictates where humans are inserted: at moments closest to a consequence — confirming a root cause, approving a regime change, accepting a threshold revision. Everything else is delegated to the AI layer.
AI · autonomous
Continuous reasoning
Ingest FERM_RUNS, FERM_ENV every 30 s
Sensor agents simulate / read instruments; produce traces
Confirm root cause after a contamination event resolves
Override regime when domain context contradicts the synthesizer
Approve a threshold revision (with documented evidence)
Authorize role tier elevation (operator → supervisor)
Triage which in-flight run to focus on next
Annotate post-mortem narrative on a high-impact event
The partition is intentional and observable. Every AI output carries an audit trail; every human action is logged with viewer attribution; the role tier system enforces who can do what. The closer the action is to a consequence with monetary or safety impact, the higher the human-in-loop requirement.
Analytical surfacethe engine — built today
Nine lenses, three scopes — each answers a different operator question.
Every analytical output the dashboard produces falls into one of three scopes: population (what does the dataset say in aggregate), single run (what's happening in this specific batch right now), and action (what should I do about it). Lenses 1–5 build trust in the dataset. Lens 6 + 9 show what's happening in flight. Lens 7 raises the alarm. Lens 8 tells the operator what to do.
Population scope
Build trust in the dataset
L1
Prediction
"What's the chance — overall, and for this run's configuration?"
Wilson CI · stratified contextual baseline
L2
Explanation
"Which factors raise the rate, and what's left after controlling for confounders?"
χ² + BH-FDR · adjusted OR via ridge logistic
L3
Findings
"Which hardcoded process patterns show up in this dataset?"
same stats as L2 · neutral magnitude tags
L4
Biomass signal
"Among continuous predictors, which carry per-SD weight?"
ridge logistic on standardised features
L5
Watch list
"Across ~44 candidate predictors, which are stably selected?"
elastic-net + bootstrap stability · CV-tuned λ
Single-run scope
Show what's happening
L9
Process graph
"Where am I in the lifecycle, and which phase is alarmed?"
reuses L6 phases + L7 alerts · no new stats
L6
Run dynamics
"What did the trajectory of OUR / CER / VCD / iPH / viability look like?"
sensor-agent traces · phase + onset markers
L7
Early warnings
"Did any rule fire on the live trace, and how many hours before harvest?"
"What should I do right now — continue / verify / hold / abort, and why?"
synthesizer over L1–L7 · regime · drivers · differential
+
Differential diagnosis
Ranked candidate causes, each with a confirm-by check.
3 rule-based candidates · up to 2 LLM-proposed · 4/7 automated checks
+
Attention router
"Of the runs in flight, which one needs me next?"
priority score over recent FERM_RUN_STATE rows
L1–L5 · answer "do I trust this system?" — they're the audit-grade evidence that the model has any business making downstream decisions.
L6 + L9 + L7 · are the in-flight panel — trajectory chart, lifecycle strip, and rule-based alerts on the same run.
L8 + extras · close the loop — synthesize, propose actions, rank candidates, route attention. The only lens that recommends.
The same nine lenses feed five presentation layers:
analyst dashboard at / (process scientists — density + audit) ·
Trip view at /trip (operators — route, ETA, re-route options) ·
Run journey at /journey (engineers — one run as a star with phases and the slice of the parameter graph that governs its readings) ·
Parameter repo at /repo (domain experts — full cross-industry knowledge graph) ·
Universe at /universe (VP / investor / board — living particle field where density tracks real record counts).
Same backend, five UX shapes, five different jobs.
Soothing & insightful loading —
every art-style page (/journey, /repo, /universe, /trip) opens with a
quiet composition rather than a spinner: concentric ripples around a slow-pulsing core, six drifting
particles, status sub-line that updates with the work happening underneath
(checking session → resolving run → loading state · phases · parameter graph → weaving the constellation).
The motion respects prefers-reduced-motion; the loader fades out on the same RAF cycle the constellation's
own appear animations begin, so the particles you were watching seamlessly become the data. Calm, status-aware,
audit-grade — the product breathes even before it has anything to say.
Presentation surfacesengine surfaces
Five UX shapes over one backend — one per audience.
Same nine lenses, same endpoints, same audit trail. The deployed site exposes five distinct routes — each tuned to a different reader and a different question. Density-and-audit for analysts; route-and-ETA for operators; constellations for engineers and domain experts; particle field for the boardroom.
Analyst
Dashboard
Process scientist · data analyst
"Do I trust this system, and what does the data say about contamination drivers?"
/
Operator
Trip view
Bioreactor operator · shift lead
"Is my batch on track, and what do I do next?"
/trip
Engineer
Run journey
Process engineer · QA reviewer
"This run, in its full regulatory cosmos."
/journey
Domain expert
Parameter repo
Regulatory affairs · subject expert
"What governs each parameter, who measures it, how does it fail — across industries?"
/repo
Executive
Universe
VP · investor · board
"What's the shape and scale of the entire dataset?"
/universe
The next three slides walk through what each operator-facing surface looks like. The analyst dashboard is the original product surface (covered by the Nine Lenses slide already); the parameter repo follows the same constellation idiom as Run journey at a different scale.
/trip · operator
Trip view — Maps-style decision UI for the bioreactor floor.
Modeled on Waze. The operator gets a route, an ETA, traffic ahead, and re-route options — not a wall of metrics. Same data the analyst dashboard has, framed as navigation.
What it shows
Trip bar — ETA to harvest · contam probability with CI · earliest alert · drift · regime pill · recommended action.
The route — large SVG lifecycle. Phases as nodes; severity-gradient edges flow source-color → destination color; you-are-here pulses; alerted phases turn red with a count badge; ambient page tint cued off the regime.
Run switcher — top 5 in-flight runs ranked by priority, color-coded by regime. Click to hop without typing IDs.
What's ahead — Lens 7 alerts colored by severity, sorted by hours-before-harvest.
Re-route options — recommended action and alternatives, each with consequence.
For a contaminated LIVE_… run with active alerts, the trip-bar reads "ABORT · 113 h remaining · now at t=55 h" — the operator sees the action and the runway in one glance.
/journey · engineer
Run journey — one batch as a star, surrounded by what governs it.
For the process engineer or QA reviewer who wants the full picture of a single run. The run is a pulsing white star at the center; phases orbit blue; live readings bind to canonical parameters; regulations · vendors · failure modes fan out as outer arcs — only the slice of the parameter graph that governs this run's measurements, not the full universe.
What it shows
Center — the focused run as a pulsing white star.
Inner orbit — the four phases (Lag · Exp · Stat · Harvest), chained by lifecycle edges. Phases with attached Lens 7 alerts pulse red and carry a count badge.
Mid orbit — live parameter readings (OUR · CER · RQ · iPH · Viability) bound to canonical KG parameters via is_a edges.
Outer arcs — only the slice of the parameter knowledge graph that governs this run's measurements: regulations (top, amber), vendors (left, purple), industries (right, green), failure modes (bottom, red).
Alerts — comet flares anchored on the affected phase node, with continuously pulsing connecting edges.
Ambient body tint cues off the regime — green / amber / red wash, very subtle.
Click any node → slide-in detail panel with confidence bar, metadata, grouped-by-edge-kind connections (each clickable to navigate the graph). Drag to pan, scroll to zoom.
/universe · executive
Universe — the entire dataset as a living particle field.
For the boardroom view: every entity in the system as a glowing point. Color encodes type; particle density tracks real record counts in the dataset; connections form by canvas proximity with traveling pulses on each edge. The visual swarm is the dataset's shape.
What it shows
Every dot is a real entity — KG parameter, regulation, vendor, failure mode, industry, run, outcome label. Hover any dot for type · label · context · the 3 nearest particles in canvas distance.
Color encodes type — teal parameters · amber regulations · purple vendors · red failure modes · green industries · white runs · blue snapshots · violet labels.
Density tracks real counts — more white particles = more runs in the dataset; more amber = more regulatory anchors. The visual swarm is data-truthful.
Connections form by proximity with a traveling pulse on each edge. Hover a particle: dim non-neighbors, brighten the actual semantic edges to its 1-hop neighbors.
Click any particle → drill in. Parameters/regulations open /repo; runs open /journey?run_id=….
Stats panel at bottom-left shows the live counts driving the field. Calm motion (orbit speeds, drift radii, edge pulses all ~3× slower than first build) so the field reads as ocean swell, not insect twitch.
Brain ↔ Memory — where data lives and how it flows.
The AI-first surface area sits inside the brain — per-run intelligence (regime, drift, alerts, decision) cached in a small hot tier the operator UI reads in O(1). The data lake is the historian — consulted only on cache miss, append-only for audit, and the source of population-level priors. The two feed each other on a defined cadence; the human only intervenes at proximity events (next slide).
Hot — sub-second reads
Warm — single-digit-second reads
Operational reference
Audit / outcome
Cold — historical / time-series
What's not yet built — the cross-customer memory layer.
Brain ↔ Memory above is single-tenant. Every customer would run their own brain and their own historian; nothing pools across deployments. The strategic arc that opened the deck calls for a shared memory layer — federated learning, anonymized cross-customer patterns, a benchmarked watchlist that improves with every deployment. That's the build that turns "compounding intelligence" from a promise into a moat. Today we have the per-tenant inversion working; the federation layer above it is design-sketched but not implemented.
Data inventorythe wedge
Every table and view, with role and cadence.
Color = tier. Each card answers: what is this?, who reads / writes it?, how fresh?. The full schema lives in data/01_*.sql through data/10_*.sql and is exposed in the dashboard's methodology panel.
Viewer-attributed log of every endpoint call — who read what, when, with what question.
tier · auditwrite · log_event from every endpoint read · /api/audit · retention indefinite
End-to-end flowengine pipeline
From observation to decision to label — the full pipeline.
Each box is a stage; the latency tag tells you the dominant cost. The hot tier ends the chain — operators read from FERM_RUN_STATE, never from raw rows.
The feedback loopinfrastructure — closes the loop
How the brain learns from memory.
Population-level priors flow from the lake into the brain on every recompute. Per-run conclusions flow from the brain back into the lake as audit + labeled outcomes. Each pass tightens the next: the more confirmed cases FERM_OUTCOME_LABEL accumulates, the closer the differential's heuristic ★ ratings get to calibrated Bayesian probabilities.
For data governance: every step has a defined owner, latency target, and audit link. The brain is the operator's source of truth; the lake is the historian; the loop is what keeps the brain calibrated. As the labeled set grows, the differential's heuristic ★ ratings approach Bayesian posteriors — which is what regulated industries need to defend the system in audit.
Agentic frameworkengine internals
What's autonomous, layer by layer.
Five tiers of agents, each with its own role · methods · tools · skills · memory. Sensing agents read instruments. Analytical agents fit models. Reasoning agents synthesize. Triage agents allocate attention. The narration agent translates results to plain language.
TIER 1Sensing · 18 agents in 5 packsread instruments → produce per-batch summaries + traces
methodsget/set via MERGE upserttoolsFERM_RUN_STATE tableskillsO(1) lookup with TTL freshnessmemeverything — this IS the memory
OutcomeLearner
Future: turns labels into Bayesian priors for the differential
methodsposterior_update() — plannedtoolsFERM_OUTCOME_LABEL · hypothesis priorsskills★ → P(cause | evidence) at ~50 cases per causememlifetime label history
TIER 5Narration · 1 translatorstructured outputs → operator-readable English
GemmaNarrator
Translates already-computed numbers into plain language. Never invents new numbers, never re-derives results — strictly a JSON-to-text translator. Falls back to a structured auto-summary if the LLM is slow or unavailable.
methods/api/narratetoolsGemma-7B (cloud) or local Ollamaskillsstructured-data → textmemstateless · per-call only
TIER 3+ · 5+LLM-augmented · 3 agents (Claude / Gemma · local Ollama for air-gapped)extend the deterministic core where free-text reasoning helps · fail-soft
LLMDifferentialDiagnoser
Proposes UP TO 2 additional candidate causes the rule-based library missed, using free-text reasoning over evidence + label history. Tagged speculative.
methodspropose()toolscall_llm · Claude Haiku 4.5 · JSONskillsreads run state + ≤20 recent labelsmemstateless · audit-logged
LLMConfirmByChecker
Fallback when a hypothesis has no hardcoded probe (3 of 7 today). Renders supports / refutes / inconclusive verdict from the confirm-by text + run-state evidence.
33 of 34 agents are operational today. The framework now includes 3 LLM-augmented agents (Tier 3+ / 5+) layered on top of the 30-component deterministic core, plus the original GemmaNarrator and the future-tier OutcomeLearner. One agent (OutcomeLearner) is built into the architecture as future-tier — its data pipeline is live (FERM_OUTCOME_LABEL + /api/label_outcome), the Bayesian posterior step activates once ~50 confirmed cases per cause accumulate. Everything else is in production code.
33 of 34 ACTIVE
Built into 18 sensor classes · 6 analytical functions · 3 reasoning synthesizers · 2 triage agents (router + cache) · 4 LLM-augmented agents (1 narrator + 1 differential proposer + 1 confirm-by checker + 1 operator QA) · plus the planned posterior calibrator that activates on accumulated labels.
Where next
Industrial verticals the framework handles with minimum changes.
The architecture is sensor-agnostic and outcome-flexible. The nine lenses, the hot-tier inversion, the parameter knowledge graph, the agentic stack, the five presentation surfaces — none of it is fermentation-specific. Five adjacent verticals adapt with bounded engineering work; the table below shows what stays, what swaps, and the lift to ship a domain pack.
Industrial enzymes
Running today
StatusLive in this preview. Built on a public Kaggle industrial-enzymes dataset (~57K rows) + a synthesized env layer. Every lens, every endpoint, every art surface runs against this data right now.
StaysEverything — this is the dataset the framework was authored against.
SwapsPer-customer SOPs and parameter-catalog enzyme-spec rows when onboarding a real customer. Outcome label is yield-grade vs spec; regs typically ISO 9001 + customer-specific.
Lift to ship~2 weeks per real customer for SOP + spec mapping. Detergent, food, textile, paper-pulp, animal-feed enzymes all share the same shape. Demo-ready as proof.
Brewing — beer · wine · spirits · kombucha
Native fit · ready to onboard
StatusArchitecturally compatible; not yet onboarded. Yeast biology, sensor stack, env-layer shape, all 9 lenses, hot tier, decision card, KG, the five surfaces — every framework piece applies as-is.
StaysEngine + infrastructure unchanged. Trip view especially fits brewing's shift-paced operations; Run journey fits supplier QA workflows.
Lift to shipSmallest lift to a real-customer dataset. Zero framework changes — needs brewing data + outcome labels + a brewing-tuned KG seed. ~6 weeks for a first pilot.
StaysBioreactor sensor stack, hot-tier, lenses, decision card, KG framework.
SwapsOutcome → viable cell density spec, transduction efficiency, vector titer. Regulations to 21 CFR Part 211 + EU GMP Annex 2. Vendor catalog adds Sartorius BioPAT, Cytiva.
Time~3 months. Highest-margin vertical but heaviest validation overhead.
Wastewater treatment & anaerobic digesters
Larger lift
StaysAll 9 lenses, hot-tier, decision card, agentic stack, the whole presentation surface (Trip view fits especially well).
SwapsSensors are different (DO, COD, BOD, NH₄⁺, total N, P, ORP). Process is anaerobic-aerobic cascade. Outcome → effluent spec breach, biogas yield, odor. Regs → EPA Clean Water Act permits, regional environmental.
Time~4–5 months. Sensor agents need a new family; everything downstream stays.
What's true today vs what's next. The framework is running end-to-end on the industrial-enzymes Kaggle dataset — that's not aspirational, it's what the deployed app shows. Brewing is the next ship: zero framework changes needed, just a real brewing dataset and outcome labels. The other three (dairy, cell+gene therapy, wastewater) need a domain pack on top of the existing engine. The architecture's portability is the product moat — but the moat doesn't compound until the cross-customer memory layer (Brain ↔ Memory slide) is built.