Pollen

Mobile node · Gemma 4 E4B (multimodal audio) · LiteRT-LM · jurisdiction: visit TTL

BETA — voice → policy. The real Pollen app on Android feeds raw .wav audio directly to Gemma 4 E4B via LiteRT-LM, with no separate STT pipeline. In this browser demo we accept text instead of audio (browsers can't ship an Android model). The compilation logic and schema validation are the same as on the device. If the system can't translate with enough confidence, it won't apply — it will tell you to rephrase.

The responses below are deterministic mocks (code in js/api.js, read it). The real app runs Gemma 4 E4B fully local on Pixel — to see that, install the APK below.

The farmer speaks. Pollen compiles.

Imagine you're in the plot. Type what you would say to the farmer's phone — short, colloquial, not a structured command. Pollen compiles your voice into a MissionPatch the Rhizome can apply immediately. No round-trip to the cloud, no waiting until the farmer is back home.

Try a few. Try something nonsense too — Pollen should refuse with confidence.

Pollen says

idle

MissionPatch

Awaiting input...

Rationale

Or try the real APK on your Android

The browser demo above proves the architecture. The real proof is Gemma 4 E4B running on a pocket device with no network. Pollen ships in two flavors:

Demo flavor — runs anywhere

Lightweight build (~30 MB) with mock LiteRT inference. No model bundled, no OOM. Runs on any Android emulator or low-RAM phone. Use this to walk through the UI.

Download Pollen demo APK (~39 MB, mock inference — runs without a model)

Device flavor — runs Gemma 4 E4B (Bring Your Own Model)

Full build with the LiteRT-LM engine. The model file (gemma-4-E4B-it.litertlm, 3.6 GB) is side-loaded separately. Requires Android 12 / API 31+, 12 GB RAM recommended (16 GB ideal), at least 6 GB free. CPU runtime is the stable path; GPU/NPU varies by device.

Three steps to install Pollen device flavor with real Gemma 4 E4B on your phone:

# 1. Build and install the APK (with LiteRT-LM engine)
cd code/pollen
./gradlew installDeviceDebug

# 2. Download gemma-4-E4B-it.litertlm (3.6 GB) from project storage
#    to your computer.

# 3. Side-load the model into the phone
adb push gemma-4-E4B-it.litertlm /data/local/tmp/

# Open Pollen on your phone — voice + chat run 100% offline.

How does Pollen know it understood?

Four checks, in order. If any fails, Pollen refuses and asks the farmer to rephrase — it never applies a low-confidence translation.

  1. Schema validation — the JSON the LLM emits must match the MissionPatch schema.
  2. No conflict with hard limits — the proposed policy must not violate the firmware's safety envelope.
  3. Syntactic-semantic match — at least one keyword or number from the transcript must appear in the LLM's rationale or in the patch fields.
  4. Explicit model confidence — if LiteRT-LM exposes logprobs, the threshold is 0.7.

The full spec lives in spec-mini-evaluator-pollen (624 lines, 12 test cases, Meristem authored, day 20).