Plate One

Created by team RDPT on September 11, 2026

Most nutrition apps ask you to log, weigh and count. Plate One asks one question — what's on your plate? — and answers with one thing to add. You say it out loud; you never type. The conversation is an AssemblyAI Voice Agent running over a single WebSocket: Universal-3 Pro speech-to-text, the LLM, the spoken reply, and turn detection including barge-in. Measured end to end, the median from the moment you stop speaking to the first sound of the answer is 762 ms; turns that call the recommendation engine add its round trip on top, and the app shows that number live. The part we care most about is what the model is not allowed to do. The recommendation comes from a pure deterministic function running on the device — the same rules whether you are online or not — registered as the agent's tools through AssemblyAI's client-side tool calling. The model decides when to ask, what to ask, and how to phrase the answer. It never chooses the food. get_recommendation returns the engine's options, and choose_patch refuses any addition the engine did not just offer, so a hallucinated suggestion cannot reach the screen and cannot get past your dietary preferences. Your plate is then drawn: Gemini writes a sentence, Cloudflare Workers AI draws the picture, and both are built from catalogue ids alone — no words you said ever reach the image model. Pick a different suggestion and the plate redraws with it. There are no accounts and nothing to sign into. The AssemblyAI key never reaches the browser; a Cloudflare Worker mints a short-lived token instead. Nothing you eat is stored on any server — your meals, your history and your preferences stay on your device. If the network is gone or the conversation fails, building a meal by hand still works, offline and free, forever.

Category tags: