- Rust 99.4%
- JavaScript 0.4%
- HTML 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .cargo | ||
| apps | ||
| crates | ||
| docs | ||
| xtask | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| AGENTS.md | ||
| ATTRIBUTION.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| clippy.toml | ||
| README.md | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||
ColijnSPICE
ColijnSPICE is a schematic editor and circuit simulator in the Colijn++ family, written in Rust: draw a circuit, set up the simulation in a window (no directive text), press F5, and read the results in a fast, clear waveform viewer. Simulation is done by ngspice, run as its own process so a simulator crash never takes the editor down.
Status (v0.1, M0): draw circuits from the built-in parts (R, C, L, V, I, D, ground, net labels), run transient, AC and operating-point analyses, probe voltages and currents, zoom and read the plots with cursors. See docs/roadmap.md.
Run it
cargo xtask ngspice # once: downloads ngspice 47 into tools/ (Windows; checksum checked)
cargo run --release -p colijnspice
Or cargo xtask dist for a folder to hand out: dist/exe/colijnspice.exe with ngspice next to
it, and the browser build in dist/web (the editor and plots work in the browser; simulation
there is the next milestone).
Using it
| Do | How |
|---|---|
| Place parts | Library on the left, or R C L V I D, G (ground), N (net label); Ctrl+R / Ctrl+E rotate and mirror while placing |
| Wire | W, click to start, click to bend, end on a pin; Space flips the corner |
| Edit a value | Select the part: the card top right (values like 4k7, 100n, 1M = 1 MΩ, 10m = 10 mΩ) |
| Simulation settings | The chip top left, the sliders button in the header, or Simulate › Simulation settings |
| Run | F5 (Shift+F5 stops) |
| Plot | P, then click a wire (voltage) or a part (current); or click a net in the sidebar |
| Read the plot | Hover for live values in the legend; ruler button for cursors A/B with Δ; drag a box to zoom, wheel to zoom, right-drag to pan, double-click to fit |
| LTspice | File › Open reads .asc (or drop it on the window); Settings (gear) sets your LTspice library folder and vendor libraries; search the library in the sidebar |
| Select | Drag left to right: what is inside the box · right to left: what it touches |
| Symbols | Settings › Symbols: American or European |
| Updates | Help › Check for updates; a new version shows in the footer (Install, then Restart now). Settings › Updates: daily check, channel |
| Everything else | Ctrl+K |
Layout
| Part | What it is |
|---|---|
crates/ltspice |
Standalone LTspice readers: .asc, .asy, model libraries, encodings, orientations |
crates/library |
Library folders (LTspice and vendor), model lookup, .asc import, vendor zips |
crates/schematic |
Parts, wires, connectivity, built-in symbols, the netlist with plain-English diagnostics, engineering units |
crates/sim |
Analysis setup, ngspice jobs (one process per analysis), raw-file reader, results named after the schematic |
crates/engine |
The document, every edit as a command, undo and redo |
crates/ui-egui |
The user interface |
apps/colijnspice, apps/colijnspice-web |
Desktop and browser shells |
xtask |
ngspice, wasm, web, ci, dist |
Documentation
| Read | For |
|---|---|
| AGENTS.md | Rules for contributors and AI agents |
| docs/roadmap.md | Milestones, the LTspice verification plan |
| docs/engine.md | Why ngspice, how it is embedded, WebAssembly |
| docs/model-formats.md | Vendor symbol and model formats (LTspice, PSpice, …) |
| docs/decisions.md | Architecture decision records |
Licence
MIT OR Apache-2.0 (to be confirmed). ngspice is distributed under its own BSD-style licence; Geist is SIL OFL 1.1 and Lucide icons ISC; see ATTRIBUTION.md.