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.
Local-first AI · Gemma 4 · open source
When the network is absent — and the human is far — local criteria still irrigate.
Sprout is a safety-bounded Gemma 4 decision network for irrigation under absence: Rhizome decides beside the water, Pollen turns each visit into expiring criteria, Meristem refines policy at home, and an ESP32 safety coprocessor owns the physical veto.
llama.cppTEST_ONLY pathThe browser demo below is deterministic by design. It lets reviewers inspect contracts, TTLs, receipts and refusal paths instantly; it does not pretend to run Gemma 4 in the browser. Real Gemma 4 execution lives in the Android, Jetson and laptop paths documented in the repo.
Click any node to inspect its contract live. Mock code is public in js/api.js.
Rhizome · minutes
The plot node reads local state, proposes a bounded action and signs a DecisionReceipt. The ESP32 can still veto.
Pollen · visit TTL
Human intent becomes an expiring MissionPatch. If it cannot be grounded, Pollen refuses.
Meristem · days
The home laptop ingests bundles and refines durable PolicyPacket after the urgency is gone.
Click a node to inspect a contract.
llama.cpp on Jetson Orin Nano Super.com.google.ai.edge.litertlm:litertlm-android:0.10.0). Voice → validated MissionPatch with no STT pipeline.llama.cpp.Each node has a different model profile. Configuration is a property of jurisdiction, not a global choice.
Gemma proposes language, structure and rationale. The physical layer still owns water.
JETSON_HEARTBEAT_LOST, TANK_LOW, EVENT_DURATION_OUT_OF_RANGE, NO_FLOW_DETECTED, ALERT_LATCHED). No LLM can weaken them.MissionPatch, WeatherDigest and PolicyPacket carry TTL or validity windows. Late objects are rejected, not silently obeyed.ShadowSkeptic records objections inside Rhizome with affects_decision=false. Even skepticism has jurisdiction.Beyond the browser simulator, Sprout is real software you can install and real hardware you can build.
Pollen · demo flavor
~39 MB APK. Uses a deterministic mock evaluator. Runs on any Android emulator or device without downloading a 3 GB model. Walk through the UI, the voice path and refusal/retry flow.
Pollen · device flavor
Real LiteRT-LM pipeline. Side-load the model and grant microphone permission.
# Build the device flavor ./gradlew assembleDeviceRelease # Side-load the model adb push gemma-4-E4B-it.litertlm \ /data/local/tmp/gemma-4-E4B-it.litertlm
Requires Android 12+ (API 31+), 12 GB RAM recommended, NPU/GPU capable device. CPU runtime is stable but slow.
Hardware proof
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 €.
ShadowSkeptic to a Gemma 4 auditor that can question without overriding.