About CircuitMath
Our Mission
CircuitMath was created with a single goal: to make circuit analysis accessible, free, and intuitive for every electrical and computer engineering student. Whether you are working through your first circuits course or reviewing for a graduate qualifying exam, CircuitMath gives you the ability to draw a circuit schematic and instantly receive the exact symbolic equations that describe its behavior.
We believe that understanding circuit theory should never be gated behind expensive software licenses or cumbersome desktop installations. CircuitMath runs entirely in your browser. There is nothing to download, no account to create, and no paywall. You draw your circuit, click Analyze, and get your equations in clean LaTeX notation, ready to study, verify, or paste into your homework.
Who Builds CircuitMath
CircuitMath is built and maintained by Zhen (Shin) Zhang, an Electrical & Computer Engineering graduate (M.S.) from Virginia Tech. The project began as a teaching aid in the Virginia Tech ECE department, where students consistently lost time to the mechanical algebra of circuit analysis — setting up nodal and mesh systems, tracking sign conventions, and deriving small-signal gains by hand — rather than to the concepts those exercises were meant to teach.
Every tutorial in the learning library is written and reviewed by the author against standard undergraduate references (Sedra & Smith, Razavi, Hambley, and Nilsson & Riedel) and verified directly in the CircuitMath engine. The symbolic analysis is performed by Lcapy and SymPy, established open-source libraries for exact circuit analysis, so the equations match what those textbooks would produce by hand.
Editorial Standards
The tutorials are not auto-generated. Each article is hand-written, includes at least one fully worked numerical example, and is checked for correctness before publication. When a derivation can be reproduced in the editor, we do so and confirm the symbolic result. We revise articles when we find errors or when a clearer explanation is possible; the “Updated” date on each tutorial reflects the most recent substantive revision.
If you find a mistake in any derivation or explanation, please tell us through the contact page. Corrections are taken seriously and applied promptly — accuracy is the entire point of a tool like this.
How It Works
CircuitMath follows a straightforward pipeline from schematic to equations. Here is what happens behind the scenes when you click the Analyze button:
- Draw your circuit. Use the drag-and-drop schematic editor to place resistors, capacitors, inductors, voltage sources, current sources, and transistors onto the canvas. Connect them with wires and assign a ground node.
- Serialize the topology. The frontend converts your visual schematic into a structured JSON representation that captures every component, its value, and its connections.
- Transistor preprocessing. If your circuit includes BJTs or MOSFETs, the backend automatically substitutes each transistor with its small-signal equivalent model (hybrid-pi for BJTs, standard small-signal for MOSFETs) and kills DC bias sources. This transforms the circuit into a purely linear network suitable for symbolic analysis.
- Netlist generation. The linearized circuit is converted into a SPICE-style netlist string compatible with Lcapy, a Python library for symbolic circuit analysis built on top of SymPy.
- Symbolic analysis. Lcapy performs Modified Nodal Analysis (MNA) on the netlist. It constructs the MNA matrix equation, extracts node voltages, and derives Kirchhoff's Voltage Law (KVL) and Kirchhoff's Current Law (KCL) equations for every loop and node in the circuit.
- LaTeX formatting. All equations are formatted as publication-quality LaTeX and returned to the frontend, where they are rendered using KaTeX directly in your browser.
The entire process takes less than a second for typical educational circuits with up to ten components. There is no server-side storage of your circuits. Every analysis is stateless: your schematic data is sent, processed, and returned immediately.
Features
- KVL and KCL equations for every loop and node, symbolically derived and rendered in LaTeX.
- MNA matrix showing the full Modified Nodal Analysis system of equations, so you can see exactly how the circuit maps to a linear algebra problem.
- Transfer function extraction for determining voltage gain, current gain, and impedance relationships in the s-domain.
- BJT and MOSFET small-signal analysis. Drop an NPN, PNP, NMOS, or PMOS transistor onto the canvas and CircuitMath will automatically apply the correct small-signal model, including r_pi, g_m, and r_o parameters.
- Step-by-step derivations that walk you through how each equation was obtained, making it easier to learn the process rather than just copy the answer.
- Template circuits for common topologies like voltage dividers, RC filters, common-emitter amplifiers, and more, so you can start analyzing immediately.
- Passive component support including resistors, capacitors, inductors, independent voltage and current sources, and all four types of dependent sources (VCVS, VCCS, CCVS, CCCS).
Who Is CircuitMath For?
CircuitMath is designed primarily for undergraduate and graduate students in electrical engineering, computer engineering, and related fields. It is especially useful for students enrolled in circuit theory courses, electronics courses, and analog design courses where hand-analysis of circuits is a core skill.
Educators can use CircuitMath as a teaching aid to demonstrate how different circuit topologies produce different sets of equations, or to verify solutions to exam and homework problems. The step-by-step derivation feature makes it particularly well-suited for classroom demonstrations.
Hobbyists and self-learners who are studying circuit theory independently will also find CircuitMath valuable as a way to check their hand calculations and build confidence in their analytical skills.
Open and Free
CircuitMath is and will remain free to use. The service is supported by unobtrusive advertisements. We do not collect personal data, we do not require user accounts, and we do not store your circuits on our servers. Your work stays in your browser.
If you find CircuitMath useful, the best way to support the project is to share it with your classmates and professors. We are always looking for feedback to improve the tool, so please do not hesitate to reach out through our contact page.