Interactive demo · contract simulator

Try Sprout in your browser.

A deterministic demo of the three-node decision network. Inspect contracts, TTLs, receipts and refusal paths — no model download, no cloud API, no login.

This page is the public browser demo. The full project — architecture, code, writeup and the 3-minute video — lives in the repo and in Kaggle. Use the links below to step into the project; scroll down to play with the demo.

The demo

Three nodes. Three contracts. Try each.

Click a node to inspect its real contract in the terminal below. The simulator is deterministic — it shows the exact JSON shapes, TTLs and refusal paths the real system produces. Contract simulator source.

Rhizome · minutes

Should I irrigate now?

The plot node reads local state, proposes a bounded action and signs a DecisionReceipt. The ESP32 can still veto.

Deep dive →

Pollen · visit TTL

The farmer speaks. Pollen compiles.

Human intent becomes an expiring MissionPatch. If it cannot be grounded, Pollen refuses.

Deep dive →

Meristem · days

What policy for the next window?

The home laptop ingests bundles and refines durable PolicyPacket after the urgency is gone.

Deep dive →

SPROUT · contract simulator
Click a node above to inspect a real contract.

Honesty floor

What is real vs what is in your browser

This browser demo does not run Gemma 4 locally. It is a deterministic contract simulator. The real Gemma 4 execution lives in the Android, Jetson and laptop paths documented in the repo. Below is what the system does for real:

RhizomeJetson + Gemma 4 E2B via llama.cpp
PollenAndroid device path + Gemma 4 E4B via LiteRT-LM, native audio
ESP32Physical board, pump/soil supervised TEST_ONLY path
MeristemHome laptop evaluator + Gemma 4 E4B tool-calling
Sprout architecture overview: ESP32 + Rhizome (Field) + Pollen (Mobile) + Meristem (Home), with MissionPatch and DecisionReceipt flowing between them
Three jurisdictions, one water decision. Full architecture is explained in the writeup.
Sprout authority stack: Gemma on Rhizome proposes a candidate action; the ESP32 validates the physical envelope (tank, duty cycle, flow) and produces a final action with a DecisionReceipt. The model never touches the valve directly.
The farther a node is from the water, the less physical authority it has. The ESP32 can always say no. Every intelligence has jurisdiction. And expiry.

Beyond the browser

Get the apps. Or build the hardware.

Sprout is real software you can install and real hardware you can build.

Pollen · demo flavor

Walk through the app, no model needed

Deterministic contract evaluator, no 3 GB model on disk. Runs on any Android emulator or low-RAM device. The launcher icon carries a "D" watermark and the app shows a permanent "DEMO APP — NO LLM" banner so the variant is always unambiguous.

Pollen · device flavor · advanced

Run real Gemma 4 E4B on your phone

Real LiteRT-LM pipeline. Side-load gemma-4-E4B-it.litertlm (3.6 GB) once and grant microphone permission. Then the app runs Gemma 4 E4B fully offline on your phone.

Requires Android 12+ (API 31+), 12 GB RAM recommended. CPU runtime is the stable path; GPU/NPU performance varies by device.

Hardware proof

Reproduce the Rhizome + ESP32 path

Jetson Orin Nano Super (or Raspberry Pi 5 with adapted build), ESP32-S3 N16R8, 12V pump, relay, capacitive soil sensor, 5L tank. Total bench ~370 €.

The full project lives here.

This page is just the demo. The architecture, the code, the writeup and the 3-minute video are where the project actually lives: