Work done — LLM harness architecture, deterministic safety routing, on-device inference
(Python, cross-compiled C/C++, React/TypeScript)
Role — Sole Architect, Engineer, and Product Owner End to End
Status — working plugin on physical hardware, fully offline, zero cloud dependency

Baumwald x OA

A research project in on-device AI, running on hardware never meant for it.

Modern language models assume scale — GPUs, data centers, gigabytes of memory. Baumwald x OA asks the opposite question: what's left of an LLM when you take almost all of that away? This is a 360M-parameter model running entirely on a satellite TV receiver — 822MB of RAM, no GPU, no cloud, and a CPU designed to decode broadcast streams, not run inference.

The challenging part isn't whether a small model can be made to fit. It's what happens once it's running. Baumwald x OA routes every query through a deterministic classifier before the language model is ever invoked — the model has no control authority over the system. EPG data, channel state, and media search results come from verified device state, never from model output. The LLM only speaks when there's nothing grounded left to answer with.

This is an independent, non-commercial research project — architecture and documentation only, no code or binaries distributed. It exists to test one idea: that intelligence doesn't have to mean scale. Just constraint, discipline, and a system that never lets the model become its own source of truth.

 



 

By the Numbers (hardware, model, and everything between)

 

 

 

 


Baumwald video frame
0:00 / 0:00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Key Features (Architecture for Trustworthy On-Device AI)

 

 

 

 

 

 

  • A deterministic gate decides what reaches the model — the LLM is never the last word on anything that could be wrong
  • Channel names, EPG facts, and search results come from verified device state, never a placeholder
  • A response gate checks every title named in a reply against the actual result rows — an unsupported claim is rejected before it's shown

Every gate — routing veto, display-name resolution, response verification — is plain compiled Python with no LLM calls in the loop, so no model output can talk its way around it.

Reliability & Evaluation

(what "grounded" actually means here)

"Grounded" is a claim that needs a falsifiable test, not just an assertion — a 56-case regression harness, drawn from real logged queries on the device, replays the exact routing and grounding code path a live query hits, not a mock or a simulation.

52/54, Honestly

Current baseline, with the same two pre-existing gaps named and tracked rather than hidden.

Real Failures, Not Synthetic

Every case in the corpus was captured from an actual query on the box, hand-annotated — never auto-labeled from what the system happened to output.

Routing, Verified

Each query reaches its intended path — deterministic short-circuit or model fallback — never the wrong one.

The holdout split is never tuned against. A regression fixed once and never silently reintroduced is worth more than a passing number.

The Guardrail, In Code (real, shipped Python — not illustrative)

A raw model asked "tell me about Harborline" will confidently invent an answer — confirmed in a real on-device failure log: the bare model called it "a music festival in Austin," total invention, zero hedging. This is the deterministic veto that closes that gap: before a query is ever allowed to reach open generation, a rule-based parse is checked for grounded evidence — a real EPG slot, a resolved title, an explicit genre — and only a narrow, intent-scoped condition is trusted to widen what counts.

grounding.py