Skip to content

circuitmuggle/EEcircuit

 
 

Repository files navigation

Npm Build DOI

(formerly EEsim.dev)

EEcircuit

EEcircuit is a circuit simulator based on ngspice that operates directly in your browser using WebAssembly technology. It takes a spice-based netlist as input and produces analysis results from your simulations as output. You can visualize and plot the results in the browser using the high-performance WebGL plotting library, webgl-plot, or download the data in CSV format for further analysis. Importantly, your netlist and results are processed locally, meaning they always remain within your browser and are never uploaded to a server. This project focuses on facilitating rapid analysis and sharing of circuit ideas and results within the VLSI and chip-design communities. Additionally, since EEcircuit uses a text-based netlist as input, you can utilize Git for version control to track your changes effectively.

What's new

The plot viewer has been significantly enhanced with an advanced interactive experience: three independent measurement cursors (A, B, M) can be placed on any curve via keyboard shortcuts, with delta readouts in the legend. Each curve now has a per-curve color picker accessible directly from the legend. Zoom and pan have been reworked — scroll to zoom the X axis, Shift+Scroll for the Y axis, right-click drag for rectangle zoom, and middle-click drag to pan. A full keyboard shortcut system covers cursor placement, view fit, zoom steps, and item deletion. The platform also demonstrates AI-assisted circuit design and debugging through integration with Anthropic Claude, Google Gemini, and OpenAI GPT.

Getting started

Copy and paste this circuit into editor and click Run. Input is also compatible with ngspice netlist.

Basic RCL circuit

Basic RLC circuit
.include modelcard.CMOS90

r vdd 2 100.0
l vdd 2 1
c vdd 2 0.01
m1 2 1 0 0 N90 W=100.0u L=0.09u
vdd vdd 0 1.8

vin 1 0 0 pulse (0 1.8 0 0.1 0.1 15 30)
.tran 0.1 50

.end

Examples

💥 See here for more examples.

Usage

Plot controls

Action Result
Scroll Zoom X axis
Shift + Scroll Zoom Y axis
Right-click drag Zoom in on X axis (rectangle select)
Middle-click drag Pan X + Y
Left-click Select curve or cursor marker

Keyboard shortcuts

Key Action
a / b / m Place cursor A / B / M on nearest curve
c Clear all cursors
f Fit view (reset zoom)
[ / ] Zoom out / zoom in (X axis)
Delete Remove selected curve or cursor
Esc Deselect

Documentation

📺 A brief presentation on the origins of EEcircuit (formerly EEsim.dev) and how it was developed. (slides)

To learn more about SPICE netlits refer to ngspice manual

Transistor Models

See Transistor Models for more information.

Acknowledgments

Thanks to Xuanhao Bao, Chang Liu, and Konstantinos Bantounos for testing.

Contributions

Ngspice, SPICE3f5, Emscripten, Docker, Chakra-UI, Vercel

About

A browser-based SPICE circuit simulator

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 97.0%
  • HTML 2.4%
  • Other 0.6%