Draw a Circuit by Hand and Simulate It in the Browser

📅
✍️ By CircuPilot Team
← Back to Blog Hub

There is a gap between having a circuit in your head and having it in a simulator. Every tool makes you cross it the same way: open a palette, find a resistor, place it, find a source, place it, drag a wire, drag another wire, type a value, type another value. For a circuit you already understand, that is several minutes of clerical work before you learn anything.

You can skip it. Sketch the circuit, press a button, and the schematic appears — then simulate it.

What it actually does

The pencil button next to the chat box opens a drawing pad. Draw the circuit the way you would on paper: a battery, a resistor as a zig-zag, a diode as a triangle with a bar, wires as lines. Write the values next to the parts — 9V, 330, LED.

Press Use this drawing and it attaches like a photograph. Send it, and a few seconds later the circuit is on the canvas as an editable schematic — real components you can move, rewire and change values on — with a SPICE netlist underneath it and a Run button.

This is the same reader that handles photographed schematics, which is why it works on a sketch at all: it was built for textbook pages and whiteboards, and a drawing is just a cleaner version of a whiteboard.

Why this works, when "AI draws a circuit" often does not

The reader does not hand its output to the simulator. It produces a typed intermediate representation first, and that representation is checked before anything runs:

  • every node is reachable, so no component has a floating pin
  • a ground reference exists, or one is inferred
  • no source is shorted
  • component identifiers are unique, and pin order matches each component type
  • every model the netlist references is actually defined

Only then is the netlist generated and handed to real ngspice.

That last check is the one that matters most and the one that is easiest to skip. A netlist that names a model nobody defined looks completely correct and fails on the first line. Asking a language model for SPICE directly gives you exactly that: text that reads right and does not run.

What it handles well

  • Clean sketches of small circuits — a source, a few passives, a diode or a transistor.
  • Printed schematics, which is what the reader was tuned on. A photo of a textbook page is the easiest case.
  • Written values. 1k, 10uF, 9V, 2N2222 are all read as text and attached to the right part.
  • Rough lines. Wobble does not matter much. A deliberately shaky mouse drawing — a 9 V battery, a 330 Ω zig-zag and an LED — came back with the right components, the right values and the right series topology.

Where it struggles, honestly

A page that claims this always works is not worth reading. It is less reliable on:

  • Dense circuits with many crossing wires. Working out what connects to what is the hardest part of reading a schematic, and crossings are exactly where it is hardest. A junction dot helps; leaving it out is ambiguous even to a person.
  • Unconventional symbols. If your resistor is a plain rectangle and your source is a circle with no markings, expect it to guess.
  • Very small or very crowded drawings. Draw larger than feels necessary and leave space around each part.
  • Unusual components, which may be read as the nearest familiar symbol.

So read the schematic it gives you back before you trust the simulation. It is editable for exactly that reason — fixing one misread component on the canvas takes a few seconds, against redrawing the entire circuit by hand.

Practical tips

  • Black on white. No colours; the reader is tuned for pen on paper.
  • Label everything. An unlabelled resistor becomes a default value, and a default value is a different circuit.
  • Leave gaps. Space between parts helps far more than neat lines do.
  • Put a dot at junctions where three or more wires meet. That is the schematic convention and it removes the ambiguity.
  • One circuit per drawing. Two circuits on one page will be read as one.

Three inputs, one pipeline

Drawing joins the inputs that were already there — typing a description, speaking it, or photographing a schematic. All four end up in the same checked representation and the same ngspice run, so whichever way you start, the netlist you copy out is standard SPICE you can open in LTspice or ngspice.

Which one to use is just whichever is fastest for the circuit in front of you. A circuit in a book: photograph it. A circuit you can describe in a sentence: type it. A circuit you have in your head and would naturally sketch: draw it.

Open the drawing pad →

Related: simulating from a photo of a schematic, and what it takes to turn a schematic image into a netlist.