jev-canvas
Voice and finger-pointing control of a tldraw canvas: Jev picks the action, target shape and place from each partial transcript plus the fingertip position; deterministic code…
# jev-canvas Say "make a yellow circle here" while pointing your finger at the screen, and the circle appears under your fingertip on a [tldraw](https://tldraw.dev) canvas. Speech comes from the browser's Web Speech API, the fingertip from MediaPipe hand tracking on the webcam, and every decision (is this a command, which action, which shape, which colour, which existing shape, where) from [Jev](https://typesafe.ai), TypeSafe's decision-only model, reached through OpenRouter's Decisions API. ## What you can say Commands work in English and in Ukrainian. The language button switches the recogniser between `en-US` and `uk-UA`; it understands one language at a time. | Action | English | Ukrainian | | --- | --- | --- | | create | "make a yellow circle here", "draw a big red star", "add a sticky note that says buy milk in the top right" | "намалюй синій трикутник тут", "додай зелений квадрат" | | move | "move this over there", "put it in the corner" | "пересунь це сюди" | | delete | "delete that", "remove the star", "get rid of it" | "видали це" | | recolor | "make it red", "turn this blue" | "зроби його червоним" | | resize | "make it bigger", "make the star much smaller", "shrink that" | "збільш синій квадрат" | | duplicate | "duplicate this", "copy it", "another one like that" | "скопіюй це" | | clear | "clear the canvas", "start over", "delete everything" | "очисти все" | | undo / redo | "undo", "go back", "redo", "bring it back" | "скасуй", "поверни" | Anything that is not addressed to the canvas is ignored. "So anyway, what do you want for lunch" scores `is_command` around 2% and nothing happens. - **Shapes**: rectangle, ellipse, triangle, diamond, hexagon, star, heart, cloud, arrow, plain text, sticky note. - **Colours**: the 13 tldraw colours (black, grey,