Fluxa is a browser-based workspace for drawing, arranging and exploring simple electronic circuits.
- Version: 1.5
- Repository: github.com/Arvanta/Fluxa
- A component library with passive components, sources, ground, diodes, bridge rectifiers, LEDs, BJTs, MOSFETs, transformers, 555 timers and 741 op-amps.
- A small selectable catalog of example market models such as
2N2222,1N4007,1N4148,IRFZ44N,NE555PandLM741CN. - SVG circuit editor with drag/drop, move, snap, pan, zoom, Undo/Redo, component rotation, duplication, deletion and nearby-terminal auto-connect.
- Wiring by clicking two terminals or dragging between terminals. Existing wires can be selected, reconnected or removed.
- Schematic and Breadboard views. Breadboard view can use either a simple light background or a perforated-board background.
- Dark and light application themes.
- Seven guided Learn Mode builds: LED + resistor, voltage divider, RC filter, push-button LED, NPN switch, 555 timer and basic op-amp concepts.
- Beginner hints that highlight the next relevant library part or circuit component without locking the editor.
- A real circuit solver (
solver.js): modified nodal analysis for the DC operating point (parallel branches, loaded dividers, switches, diodes, LEDs, Zeners, bridges, BJTs, MOSFETs, op-amps) and a time-domain transient engine for capacitors, inductors and AC sources. - Measurement panels backed by that solver: a virtual meter whose probes read the nodes you choose, Quick Measure, an oscilloscope and spectrum computed from the simulated waveforms, a thermal view and the Smart Circuit Inspector.
- Simulation-only visual feedback for active wires (branch currents and directions from the solver), node voltage labels, LED brightness, optional thermal heatmap and amber open-path previews.
- Short glossary cards in Properties for common component terms and units.
- PNG and SVG output based on the active canvas view.
- Fluxa JSON export and confirmation-based JSON import.
- Local project storage, share-link generation, and a standalone
Fluxa.htmlbuild.
For normal use, no server, backend or package installation is required. Open this file directly in a modern browser:
Fluxa.html
index.html references separate local CSS, JavaScript and asset files. A small static server is recommended while developing or modifying the modular source:
cd fluxa
python3 -m http.server 4173 --bind 0.0.0.0Then open http://localhost:4173.
- Drag a part from Library onto the canvas, or click its
+button. - Use the combined Select & Wire tool (shortcut
VorW). - Click two terminals, or drag from one terminal to another.
- Select a part or wire to reveal its small contextual action bar.
- Keep Quick Measure enabled to show the lower-right readout; click a wire or component to inspect it. Turn Wiring off to click terminal nodes instead of starting wires.
- Open Learn to start a guided build; Beginner hints remain optional and do not restrict the editor.
- Use Export to create PNG, SVG or JSON output, or choose Import Fluxa JSON to reopen a saved circuit.
- Use the Light / Dark button in the top bar to switch the application theme.
- Use Schematic / Breadboard in the editor toolbar to switch the circuit view.
- In Breadboard view, turn on Real board to get a solderless breadboard: parts plugged into the same 5-hole column strip or power rail are connected. Arrange on board places two-leg parts automatically (series neighbours share a column strip); switching views restores each view's own layout.
- ERC tab: floating pins, missing ground, parallel/shorted sources, single-use net labels; click an item to jump to it.
- Export → Bill of materials (CSV), SPICE netlist (.cir); Import netlist reads SPICE (.cir) and KiCad (.net).
fluxa/
├── index.html # Main modular entry point
├── styles.css # Application styles
├── app.js # Editor state, rendering and interactions
├── solver.js # DOM-free MNA circuit solver (DC + transient)
├── Fluxa.html # Generated standalone single-file build
├── assets/
│ ├── fluxa-logo.png # Application logo
│ ├── social-preview.png # GitHub social preview image
│ ├── screenshots/
│ │ ├── fluxa-schematic.png # Dark-theme README screenshot
│ │ └── fluxa-light.png # Light-theme Breadboard README screenshot
│ └── fritzing/ # Selected reference SVG assets and attribution
├── vendor/
│ └── konva.min.js # Local Konva bundle for the mini-map
├── tests/
│ └── solver.test.js # Solver unit tests (node tests/solver.test.js)
└── scripts/
├── build_standalone.py # Rebuilds Fluxa.html
├── test_regression.py # Browser regression tests (Playwright)
└── test_verify.py # Measurements-tab / About smoke test
Fluxa.html is a portable version with the application CSS, JavaScript, Konva bundle and logo embedded in one file.
After changing index.html, styles.css, app.js, solver.js, the logo or Konva bundle, regenerate it with:
python3 scripts/build_standalone.pyFluxa solves circuits with its own compact nodal-analysis engine and simplified, piece-wise-linear part models (constant-threshold diodes, an LED lookup curve, switch-style MOSFETs, a three-state BJT, a finite-gain op-amp with rail clipping). With AC sources the readouts are steady-state RMS values from the transient engine and the oscilloscope shows the real waveform. 555 timers are not simulated yet and transformers only couple AC. It is a learning tool and not a replacement for SPICE. There is no backend, authentication or real-time collaboration layer.
Selected local reference assets under assets/fritzing/ originate from the Fritzing Parts Library. See assets/fritzing/ATTRIBUTION.md for the included attribution note.
node tests/solver.test.js # solver unit tests, no dependencies
python3 -m http.server 4173 & # then, with Playwright installed:
python3 scripts/test_regression.py http://127.0.0.1:4173/index.html
python3 scripts/test_regression.py http://127.0.0.1:4173/Fluxa.html- Learn: seven guided lessons that check your circuit's result, plus nine "broken circuit" challenges.
- Examples: 15 ready-made circuits.
- Projects: several circuits saved in your browser (IndexedDB).
- Offline / install: serve the folder over http(s) (or run
node server/server.js) and install Fluxa from your browser; it then works offline. - Short links: run
node server/server.js; the Share dialog then offers short links stored on that server. See HANDOFF.md for limits.

