AI-directedA circuit simulator, running entirely on your own machine.
croquis
A desktop app for building and running Arduino circuits without an Arduino. You drag components onto a canvas, wire them up, write a sketch and press Run. The sketch is compiled locally with avr-gcc and executed on a simulated AVR chip.
Why I built it
I wanted a circuit simulator that was local, offline, free, and polished. That gap didn't exist, so I built one.
What it does
- 15 preset circuits to start from — Blink, Button, Potentiometer, Photoresistor, Thermometer, Slide potentiometer, RGB LED, Joystick, Digital sensors, Seven segment, Four digit, LED bar, Buzzer & relay, Button + serial and Fade.
- Parts include the Uno, LEDs including RGB, resistors, pushbuttons, rotary and slide potentiometers, photoresistor, NTC temperature sensor, analog joystick, tilt switch, PIR, flame and sound sensors, a buzzer, relay, 7-segment and 4-digit displays, an LED bar, and half or full breadboards.
- The canvas does drag, rotate and snap, orthogonal wiring, multi-select, undo/redo and copy/paste. Wokwi diagrams.json imports and exports, sketch included.
- The editor is CodeMirror with Arduino API completions, and the serial monitor docks beside the circuit.
- No server, no account, no telemetry, no network calls.
How it works
- Your sketch is compiled by avr-gcc into a real AVR program — it is not interpreted.
- simavr runs that program instruction by instruction, paced to real time.
- When a pin goes high, the netlist works out what is wired to it and how much current will actually flow, so the canvas draws the LED lit — or burnt, if you left the resistor out.
- Input travels the other way: holding a button or turning a knob feeds set_input and set_analog back into simavr, with analogue values held as a voltage so analogRead re-reads them every loop.
What it doesn't do yet
- No servo or LCD yet.
- A second Uno gets its own circuit but shares the single sketch.
- The electrical model is deliberately small, not a circuit solver: a resistor does something real and a missing one is reported, but there are no arbitrary parallel networks.
- Wokwi files open with one caveat — a wire using Wokwi's `*` route separator draws a different path here, though to the same pins.
At a glance
- Written in
- Tauri, Svelte 5, TypeScript and Rust
- Released
- v0.1 took about 3 days
- License
- AGPL v3.0
- Install
- AppImage, .deb, .rpm, or build from source
- Built with
- Tauri, Svelte 5, TypeScript, Rust, simavr / avr-gcc

