Inspiration
We wanted to make it easier for people to start building hardware projects. Every existing piece of software for designing them assumes you already understand the components, the wiring rules, and the code. That's the gap. Volteux is for people who have the idea but not the prerequisites.
What it does
You type a project description in plain English: "a robot that waves when something gets close," "a light that brightens when the room gets dark." Volteux:
- Picks the right archetype (board + sensor + actuator pattern) across Uno, ESP32-WROOM, ESP32-C3, and Pi Pico.
- Generates a working C++ firmware sketch.
- Lays out the breadboard, hole by hole.
- Renders an interactive 3D component view where every part is clickable and explains what it does.
- Pre-fills an Adafruit cart you click to buy.
- When the parts arrive, you click Flash, and the browser pushes the firmware to your board over USB. No IDE, no command line, no
.hexdownload.
The wedge is the closed loop from "I had an idea" to "the thing is on my desk doing the thing," with the 3D learning surface filling the "what is this and why" gap.
How we built it
Two-person team, parallel tracks, one strict JSON contract between them.
- Frontend: React + Vite + TypeScript, React-Three-Fiber for the 3D scene, SVG breadboard, Monaco for the sketch viewer. Browser-direct flashing uses Web Serial for AVR,
esptool.jsfor ESP32, and the File System Access API for the Pico's UF2 flow. - Pipeline: Bun + Hono + Anthropic SDK. Every prompt runs through five gates: a Haiku 4.5 intent classifier, Sonnet structured-output generation, a Zod schema gate, an
arduino-clicompile gate on a small VPS, a rules engine, and a cross-consistency check. Any failure surfaces as an Honest Gap message, never silent fudging. - Eval harness runs every generated sketch in Wokwi headless simulation and asserts behavior, not just compile success. CI fails any prompt, rule, or schema PR that drops a 4-axis score below baseline.
- Meta-harness: an agentic proposer reads the prompt source, eval scores, and execution traces, then proposes prompt edits as PRs.
Challenges
- Browser-direct flashing across four different boards meant three different Web APIs, three different protocols, and no clean fallback.
- Holding scope to 4 boards and 5 project archetypes is the reason the LLM stays reliable. Resisting expansion was harder than adding it.
- One source of truth for component metadata lives in
components/registry.ts. Anywhere else that names a component is consuming, never authoritative.
What's next
- Prompt-driven schematic and PCB layout generation. Once a beginner has a working breadboard prototype, the same plain-English description should produce a manufacturable circuit board. Type the project, get a routed schematic and a Gerber file ready to send to a fab house.
- Generated 3D-printable enclosures and mounts. STL files for cases, brackets, and mounts that fit the exact components in your project. Download, print, assemble.
Built With
- anthropic-claude
- arduino-cli
- avrgirl-arduino
- bun
- bun-test
- claude-haiku
- claude-sonnet
- docker
- drei
- hetzner
- hono
- monaco-editor
- react
- react-three-fiber
- three.js
- typescript
- vercel
- vite
- vitest
- vultr
- web-serial-api
- wokwi
- zod

Log in or sign up for Devpost to join the conversation.