Tool Comparison
CircuitJS alternative in 2026
Published September 3, 2026 · By Britt at CircuitSim · 8 min read
CircuitJS is the program most people know as the Falstad circuit simulator. It is free, GPL licensed, runs in any browser with no account, and its animated current dots are how a lot of people first saw what a capacitor does. If you searched for it by its software name instead of its author, you are probably a step past the intro stage, and the reasons to look elsewhere are technical. You need a frequency sweep, a parameter sweep, or a real part model, and the engine does not do those.
We have a separate page on the Falstad alternative question written for the beginner side of that audience. This one is for people who already know the tool well.
CircuitJS, CircuitJS1, and Falstad are one program
Paul Falstad wrote the original as a Java applet. When browsers dropped Java, Iain Sharp got it running in the browser by compiling the Java source with Google Web Toolkit, and that build is CircuitJS1, hosted at falstad.com and at Sharp's own site, lushprojects.com. The source is on GitHub under GPL version 2 or later, with roughly 2,000 commits behind it. Edward Calver added fifteen components, Rodrigo Hausen built the file import and export, and other contributors added the Zener diode, the spark gap, the DC motor, and the thermistor. A separate project by Mark McGarry combines the simulator with Wokwi's AVR8js so that Arduino code can run alongside a circuit. Falstad hosts a copy at falstad.com/circuit/avr8js, and the GitHub project it came from describes itself as no longer maintained.
Anything you read about the Falstad simulator applies to CircuitJS and the other way around, including this page. A self-hosted copy on a university server, an offline Electron build, a fork with a different color scheme, and the page at falstad.com all run the same engine.
What keeps people on it
The animation. Voltage shows as color, current as moving dots, and the scope redraws while you drag a slider. For showing a beginner what a capacitor is doing during a lecture, we have not found anything clearer.
Close to three hundred worked examples. The Circuits menu runs from series resistors through op-amp oscillators, MOSFET logic, 555 timers, transmission lines, memristors, and tunnel diodes, and some courses are built directly on that index.
Nothing to sign up for. The simulation runs entirely in the browser. It can be embedded in a course page through an iframe, with query parameters that hide the menus and sidebar. A documented JavaScript interface lets a host page read node voltages and set external ones. The Electron build runs with the network off.
Subcircuits and a wide parts menu. Custom subcircuits are supported, and the Draw menu covers passives, sources, op amps, transistors, logic gates, digital chips such as counters and shift registers, and analog and hybrid chips.
The questions it cannot answer
CircuitJS is a time-domain simulator. It steps forward in time, by default at a fixed step, solves the circuit at each step, and redraws.
No frequency sweep. To find the corner of a filter you connect a function generator, drag its frequency, and watch the scope amplitude change. That shows the roll-off but does not give you a Bode plot. There is no AC analysis, so you cannot get gain and phase versus frequency, bandwidth, or phase margin from it.
No DC sweep or parameter step. The File menu will find a DC operating point for you, but a transistor's transfer curve, a diode's I-V characteristic, or the effect of stepping a resistor through five values has to be done by hand, one value at a time, reading the scope each time.
Textbook component models. A diode can take one of a handful of named models, 1N4148 and 1N4004 among them, or hand-entered parameters. A bipolar transistor can be given SPICE-style model parameters one field at a time in the Create New Model dialog, and the op amp has LM741 and LM324 behavioral modes, but there is no paste-in for a manufacturer's model card and no library of named transistors, so in practice the defaults get used and the part is generic.
Time step. The step size lives under Other Options, and the documentation is direct about the trade: smaller steps are more accurate and slower. The simulator will stop and tell you when a step fails to converge. Nothing tells you when a step that did converge was too coarse, which is how fast edges, switching converters, and high-Q resonant circuits can look plausible on screen with numbers that are off.
Circuits are exported as a link, a text block, or a local file, and a file can be opened from a Dropbox link. There is no account, so nothing keeps a list of your circuits, and there is no way to share one privately or hand a class a saved workspace. Getting numbers out for a report means exporting a scope to CSV, which gives you minimum and maximum per trace against time, or placing a Data Export element on a single node.
The directions page describes a tool for watching circuits work, and it does that well. The problems start when a course or a project needs a plotted result.
Moving up to SPICE without leaving the browser
CircuitSim runs a SPICE engine in the browser tab. The schematic editor will look familiar if you have used CircuitJS. The differences are in what happens when you run a simulation.
Seven analysis types. Interactive, interactive operating point, transient, AC sweep, and DC operating point come with the free Basic plan. An AC sweep plots gain and phase against frequency directly. Standard, at $2.99 per month or $30 per year, adds DC sweep and parameter sweep, which covers the stepping-by-hand problem above.
5,000+ parts with manufacturer models. A TL072 in the catalog simulates with the manufacturer's model. When a part is missing, the custom component studio takes SPICE model text pasted from a datasheet or a symbol imported from KiCad, so the .model card you would have to retype field by field in CircuitJS gets pasted once.
Export and saving. Plots are oscilloscope-style charts, and the Table panel exports every trace as CSV or XLSX for a lab report. Circuits are saved in CircuitSim with sharing controls, and with a group license each student works in a private seat behind a link, with no sign-up and no email collected, which keeps the classroom FERPA and COPPA compliant. CircuitSim for schools covers how seats work.
What CircuitJS has that CircuitSim does not. CircuitSim does not run offline, cannot be embedded in another page, is not open source, and has no microcontroller parts. The free Basic plan also caps a circuit at five components, not counting probes and ground, where CircuitJS has no limit.
| CircuitJS | CircuitSim | |
|---|---|---|
| Engine | Time-domain solver, fixed step by default, textbook models | SPICE |
| AC frequency sweep | No, drag a generator and watch the scope | Yes, gain and phase plotted |
| DC sweep and parameter sweep | No | Yes, on Standard and above |
| Manufacturer part models | No library; a few named diodes, hand-entered transistor parameters | 5,000+ parts plus pasted SPICE model text |
| Animated current flow | Yes | No |
| Saving | Link, text, or local file; opens files from Dropbox | Saved circuits with sharing and group seats |
| Data export | Scope to CSV (min and max per trace), or a Data Export element per node | CSV and XLSX from the Table panel |
| Runs offline | Yes, Electron build | No |
| Embed in a course page | Yes, iframe with query parameters | No |
| Arduino | Yes, via the AVR8js version hosted at falstad.com | No |
| Opens Multisim Live files | No | Yes, .ms14, .msjs, .csim, and .zip batches |
| License and cost | Free, GPL v2 or later | Free Basic tier; Standard $2.99 per month or $30 per year |
If you self-host or embed CircuitJS
A lot of the people who search for the tool by this name are maintaining a copy of it, usually a department hosting CircuitJS1 on its own server or an instructor embedding it in a course page with the sidebar hidden. There is nothing wrong with keeping that running. CircuitSim has no embed today, so for an interactive figure inside a web page, CircuitJS is still the tool. CircuitSim sits alongside it for the assignments that ask for a frequency response, a component sweep, or a result from a real part number.
Rebuilding a CircuitJS circuit in CircuitSim
There is no converter. CircuitSim's importer reads Multisim Live files (.csim, .ms14, .msjs, and .zip batches) and nothing else, and the CircuitJS text export contains no netlist, so a circuit has to be rebuilt. For the size of circuit CircuitJS is usually used for, that takes a few minutes.
Rebuilding a circuit
- In CircuitJS, choose File, then Export As Text. Current builds write one tag per element with its position and values; the tag name is the element type, and the values are plain SI numbers, so it works as a parts list.
- Place the parts in CircuitSim from the search box. Pick a named part where the original was generic if the real behavior matters, or keep the ideal part if you are checking a textbook result.
- Wire it and set the values from the export. A capacitor written as 1.0E-6 is 1 µF.
- Run the analysis the original could not. An AC sweep on a filter, a DC sweep on a transistor stage, or a parameter sweep across the resistor you were stepping by hand.
- Check one point against CircuitJS. A DC operating point or a single transient trace should agree with what the animation showed, allowing for the model differences described above. If it does not, the wiring is the first place to look.
Common questions
Is CircuitJS the same thing as the Falstad simulator?
Yes. CircuitJS1 is Paul Falstad's original Java applet compiled to run in the browser, a build done by Iain Sharp. The versions at falstad.com and lushprojects.com, the offline Electron build, and the many self-hosted copies all run the same code.
Is CircuitJS a SPICE simulator?
No. It solves the circuit step by step in the time domain with simplified component models and redraws the result. It can find a DC operating point, but it has no AC sweep or DC sweep and does not read SPICE models or netlists. What is SPICE simulation explains the difference.
Can I import a CircuitJS circuit into CircuitSim?
Not directly. CircuitSim imports Multisim Live files only, so a CircuitJS circuit is rebuilt by hand. The Export As Text output in CircuitJS works as a parts list while you do it.
Does CircuitSim have the animated current dots?
No. CircuitSim shows results as oscilloscope-style plots and probe readouts rather than as animated current flow. For a first look at what a circuit does, the CircuitJS animation is still the clearer picture.
Can I keep using CircuitJS offline or embedded and use CircuitSim as well?
Yes. CircuitJS has no account, and CircuitSim's Basic plan is free for circuits of up to five components, so a course can run both without buying anything. The usual split is CircuitJS for in-page demonstrations and CircuitSim for assignments that need a plotted analysis or a real part model.
Elsewhere Labs is Britt and Sam. Both of us learned a fair amount from the Falstad applet years before we started building a simulator of our own, and it is still open in a tab when one of us wants to see a circuit instead of measuring it.
More from CircuitSim: Falstad alternative · Best free circuit simulators · EveryCircuit alternative · CircuitSim for educators · What is SPICE simulation
CircuitJS1 is free software by Paul Falstad and Iain Sharp, distributed under the GNU General Public License. AVR8js is an open-source project by Wokwi; the AVR8js version of CircuitJS1 is a separate project built on it. Multisim and Multisim Live are trademarks of National Instruments (Emerson). CircuitSim is not affiliated with any of them. Project details reflect public pages as of September 2026.