Contributions to circuitjs1

Pulled 2026-06-01 from https://github.com/pfalstad/circuitjs1 and the local clone at /Users/esaruoho/work/circuitjs1.

Summary

Merged pull requests

#DateTitle
#3372026-04-15Voltage-limited current source with smooth saturation
#3362026-04-15Optocoupler: add CTR Scale parameter
#3352026-04-15SRAM: restore loaded file on reset; show filename in edit dialog (#184)
#3082026-03-08Add saturable core model for inductors and transformers
#3062026-03-08Fix CrystalElm XML serialization bug and enhance info display
#2932026-03-03Fix scope vertical position range at high zoom levels
#2922026-03-03Fix DC motor energy conservation: link K and Kb
#2852026-03-03Add keyboard shortcut support to switches
#2842026-03-03Add configurable rise/fall time for square and pulse waveforms
#2832026-03-03Add logarithmic scale option to sliders
#2822026-03-03Fix parseUnits() to accept scientific notation input
#2802026-03-03Add dB units to FFT vertical axis in oscilloscope
#2792026-03-03Fix RMS voltage display for non-sine waveforms
#2782026-03-03Rotate labeled node text for vertical placement
#2772026-03-03add peak-to-peak voltage display to oscilloscope
#2762026-03-03add configurable step increment to sliders
#2752026-03-03fix LED array brightness fade speed
#2742026-03-03fix square wave initial value with negative phase shift
#2722026-03-02add BAT85 Schottky diode to built-in diode models
#2712026-03-02Add test.sh for quick local build and serve
#2702026-03-02Fix compileGwt: move ElementFactoryGenerator to rebind package
#2672026-03-02add selectable sparse matrix solver
#2632026-03-02add GitHub Actions CI workflow for build verification
#2612026-03-02add 555 timer adjustable duty cycle example circuit
#2602026-03-02fix LED array example: move current limiting resistors
#2592026-03-02add Gradle wrapper (8.7) for reproducible builds
#2582026-03-02add CSV export to oscilloscope context menu
#2572026-03-02add .editorconfig for consistent coding style
#2562026-03-02use lightGrayColor for OutputElm to distinguish from LabeledNodeElm
#2492026-03-02Add optional set and reset pins to latch
#2482026-03-02Add oscilloscope charge plotting for capacitors
#2472026-03-02Oscilloscope trigger mode for stable waveform display (#194)
#2462026-03-02Relay optional pulldown resistors (#101, #70)
#2452026-03-02Add 3-phase wye-wye example circuit (#31)
#2442026-03-02Net highlighting on Shift+hover, scroll wheel type cycling (#200, #98)
#2422026-03-02Image export clipping fix, Mac Ctrl+click, OpAmpReal connectivity
#2402026-03-02Speed-independent scope trail persistence (XY plots)
#2392026-03-02Add logo and tagline to README (#116)
#2382026-03-02Add gyrator element with Wikipedia-style symbol
#2372026-03-02Scope zoom fix, charge plotting, analog multiplexer (#84, #66, #76)
#2362026-03-02Hex display mode, wattmeter averaging, switch flip sync, iframe CSS
#2352026-03-02Zoom stutter fix, DC voltage display, arrow keys, relay labels, SRAM hex, subcircuit dialog
#2342026-03-02XNOR gate, Russian translation, filename display, battery +/-, GWT URL
#2332026-03-02Show circuit filename in title bar, auto-centre on resize (#171, #181)
#2312026-03-02Add color picker and reset colors to Other Options (#91)

Open pull requests

#DateTitle
#3442026-04-20Add Jiles-Atherton B-H hysteresis to inductor
#3382026-04-15Add lossy RLGC ladder model to transmission line element
#3132026-03-08Add MosfetModel class with lambda (channel-length modulation)
#3102026-03-08Add junction capacitance and transit time to diode
#3002026-03-05Add Import from Schematic Image feature
#2972026-03-03Fix SCR convergence failure with series resistor
#2952026-03-03Fix unrealistic stability for positive-feedback opamp buffer
#2902026-03-03Color MOSFET and op-amp by operating region
#2892026-03-03Add relay contact switching delay with hard step resistance
#2812026-03-03Add example circuits from community contributions
#2692026-03-02add SPICE subcircuit import dialog
#2552026-03-02Add gmin stepping to VCCS/CCCS for convergence aid
#2542026-03-02Improve op amp convergence for differentiator circuits
#2522026-03-02Add loss-free resistor example circuit
#2512026-03-02Fix analog-switch-induced spikes on comparator outputs
#2502026-03-02Require sustained coil current before relay switches
#2432026-03-02Configurable simulation temperature for diodes and transistors (#147)
#2322026-03-02Toolbar enhancements: file ops, separators, centre, mode display

Closed pull requests (proposed, not merged)

#DateTitle
#3342026-04-15macOS Electron: fix Cmd+C/V/X/A in text fields (#138)
#3322026-04-15Allow Show Voltage/Current/Power on scope simultaneously (#196)
#3122026-03-08Add forward/reverse transit time (TF/TR) to BJT
#3112026-03-08Add gate capacitance (Cgs/Cgd) to MOSFET
#3092026-03-08Add RLGC lumped-element lossy transmission line model
#3072026-03-08Add junction capacitance (CJE/CJC) to BJT model
#3032026-03-06fix scope charge checkbox toggling
#3022026-03-06remove +/- signs from battery circle symbol
#2982026-03-03Fix variable capacitor energy conservation violation
#2962026-03-03Fix 3-phase motor right-side pin label order
#2912026-03-03Add IEC diamond symbol option for dependent sources
#2882026-03-03Color logic gate pins by logical state (high/low)
#2872026-03-03Add configurable propagation delay to logic gates
#2862026-03-03Draw body diode symbol on MOSFET when enabled
#2682026-03-02filter by extension in open file dialog
#2662026-03-02add parasitic junction capacitance to BJT and MOSFET models
#2652026-03-02add configurable high logic voltage for subcircuits
#2642026-03-02fix labeled node truncation in subcircuit creation
#2622026-03-02use smooth abs() approximation for Newton-Raphson convergence
#2532026-03-02Use per-transistor convergence tracking for gmin ramping
#2412026-03-02Optocoupler CTR, SRAM reset restore, voltage-limited current source, macOS paste
#2302026-03-02Add oscilloscope trigger mode for stable waveform display
#2292026-03-02Add optional pulldown resistors to relay contacts
#2272026-03-02Add 3-phase wye-wye example circuit (from issue #31)
#2262026-03-01Net highlighting on wire hover + scroll wheel type cycling
#2252026-03-01Add configurable simulation temperature for diodes and transistors
#2242026-03-01Fix image export clipping, subcircuit creation, Mac Ctrl+click, OpAmpReal connectivity
#2232026-03-01Add optocoupler CTR, SRAM reset restore, voltage-limited current source, macOS paste fix
#2212026-03-01Add MOSFET channel-length modulation and scope trail persistence
#2202026-03-01add logo and tagline to README
#2182026-03-01Scope horizontal scale, auto DC on reset, gyrator element
#2172026-03-01Fix scope zoom, add charge plotting, add analog multiplexer
#2162026-03-01Fix 4 issues: hex display, wattmeter avg, switch flip sync, iframe CSS
#2152026-03-01Fix 6 open issues: zoom, voltage display, arrow keys, relay labels, SRAM hex, subcircuit dialog
#2142026-03-01Fix 5 open issues: XNOR gate, Russian translation, filename display, battery +/-, GWT URL
#2132026-03-01Show circuit filename in title bar for Electron, add auto-centre on resize option
#2122026-03-01Toolbar enhancements: file ops, separators, centre circuit, show mode toggle
#2112026-03-01Add color picker and reset colors button

Local commits

Authored on /Users/esaruoho/work/circuitjs1. Some commits are squashed into the PRs above when they land upstream.

DateSHAMessage
2026-05-2108bfc85cPreserve stash@{11}: v3-scope-trigger-mode WIP cross-file refactor
2026-04-275e979029Move CTR Scale serialization to XML only
2026-04-2024fecc4fWiden voltage-limit knee, raise gmin for convergence
2026-04-20fd3d352eDialog checkboxes reflect actual plot state, not showV/showI flags
2026-04-20020daba8Add Jiles-Atherton hysteresis to inductor
2026-04-152959b9c3Add lossy RLGC ladder model to transmission line element
2026-04-15d6e80f8aAddress PR feedback: matrix solver always visible, persisted per-circuit
2026-04-156462b945Add configurable simulation temperature for diodes and transistors
2026-04-158fb6f2a6Address PR feedback: separator margin, mode display below subcircuit bar
2026-04-15f7156f2fAdd voltage compliance to current source (#241 redesign)
2026-04-151462c502Optocoupler: add CTR scale parameter, rename label to "CTR Scale"
2026-04-15f96c6e0fAllow Show Voltage/Current/Power on scope simultaneously (#196)
2026-04-158382a641Address PR feedback: speed-independent trail persistence with time-constant model
2026-04-15413763e2Add gyrator element with Wikipedia-style symbol
2026-04-159ae6b184SRAM: restore loaded file on circuit reset; show filename in edit dialog
2026-04-15ff5a76e5Add gyrator element with Wikipedia-style symbol
2026-04-15cd643596macOS Electron: replace empty menu with proper Edit menu so Cmd+C/V/X/A work
2026-03-125dc19928Apply lambda in linear (triode) region, matching SPICE Level 1
2026-03-125700d103Hide junction capacitance parameters from simple diode model dialog
2026-03-12e9b7c75bFix SCR oscillation: use latching trigger/hold logic like TriacElm
2026-03-1234b7a3deFix trigger mode lost on circuit export/reimport
2026-03-1233a0e7d8Add test circuits for saturable core inductor and transformer
2026-03-09404154afFix getCurrentIntoNode() to include gate capacitance currents
2026-03-092f809969Fix NPE for existing circuits + add Cgs/Cgd companion model
2026-03-099bbaff92Fix diode current display to include junction capacitance current
2026-03-097b88e505Replace simple loss model with RLGC lumped-element ladder
2026-03-096d785501Replace simple loss model with RLGC lumped-element ladder
2026-03-096b656f66Fix BJT current display to include junction capacitance current
2026-03-08d2530c56Add MosfetModel class with lambda (channel-length modulation)
2026-03-08cec3a084Add junction capacitance and transit time to diode model
2026-03-0828e74387Add loss resistance to transmission line model
2026-03-08b3cd8877Add forward/reverse transit time (TF/TR) to BJT model
2026-03-08c0a64d96Add gate-source and gate-drain capacitance to MOSFET
2026-03-0838040674Add loss resistance to transmission line model
2026-03-081f2bf901Add saturable core model to inductors and transformers
2026-03-082b6af2feAdd junction capacitance (CJE/CJC) support to BJT transistor model
2026-03-082e9485fdFix CrystalElm XML serialization bug and enhance info display
2026-03-07d1408106restore circuit file to match Paul's original, fix scopes
2026-03-07bd7acbffadd nested subcircuit test circuit for high voltage propagation
2026-03-07405a48eashow body diode symbol on hover with leads, using DiodeElm.drawDiodeSymbol
2026-03-075026d94cfix trigger mode: don't draw stale data from circular buffer
2026-03-0722d2c462normalize phase shift to positive value in setEditValue()
2026-03-071a498f40make vertical text rotation an opt-in option for labeled nodes
2026-03-0701e42469fix .editorconfig Java indent: 4-space indent with tab stops every 8
2026-03-0615d9b816fix scope charge checkbox: add/remove charge plot without affecting voltage/current
2026-03-06fcb020a3fix slider step: snap relative to min value, apply step size live
2026-03-0699fc3ab4remove +/- signs from battery circle symbol
2026-03-06f6de7b9dset filename for Save As when loading from circuits menu or URL
2026-03-06cebc832dauto-set Kb = K, remove link checkbox
2026-03-06091f0826make slider scrollbar buttons step by increment and snap thumb position
2026-03-0587d0998afix JSNI .catch() syntax for GWT compatibility
2026-03-05663523ceadd Import from Schematic Image feature using Gemini Vision API
2026-03-05cafdfecbfix LED array fade to be independent of time step
2026-03-032ff3ce0aClean up circuit file and move menu entry to bottom of Misc Devices
2026-03-03280e4e16color MOSFET and op-amp by operating region
2026-03-03907576a4Add separate release time for asymmetric relay switching
2026-03-03477368d6Use hard step for relay contact resistance instead of smooth interpolation
2026-03-038b2177aesmooth relay contact resistance during switching transition
2026-03-03330faa14Color logic gate pins by logical state (high/low)
2026-03-031b0ea539Fix SCR convergence failure with series resistor (#851)
2026-03-0364ec688eFix unrealistic stability for positive-feedback opamp configurations
2026-03-030f58c050Add example circuits from community contributions
2026-03-0353ad9fadfix RMS voltage display for non-sine waveforms
2026-03-034a310daaadd logarithmic scale option to sliders
2026-03-036a599a7cFix variable capacitor energy conservation violation
2026-03-0386b141b6Fix 3-phase motor right-side pin labels to match IEC standard pairing
2026-03-031b7277bfUse hard step for relay contact resistance instead of smooth interpolation
2026-03-0355f6bb87Increase scope vertical position slider range for high zoom levels
2026-03-03369866c7Link torque constant K and back-EMF constant Kb to fix energy conservation
2026-03-03b6c0ad5ealways centre circuit on resize, remove startCircuitFileName
2026-03-03ba9b6336Address PR #235 feedback: remove relay labels, fix SRAM hex toggle, revert dialog size
2026-03-03ce3a4eedAdd IEC diamond symbol option for dependent sources
2026-03-0373fa1c39smooth relay contact resistance during switching transition
2026-03-036e953c0eAdd configurable propagation delay to logic gates
2026-03-03c5989e1cAdd keyboard shortcut support to switches
2026-03-033a6bda65add configurable rise/fall time to square and pulse waveforms
2026-03-0393685686Fix parseUnits() to accept scientific notation (e.g. 4.416e-8)
2026-03-0379a4feceadd dB units to FFT vertical axis in oscilloscope
2026-03-0343a43b51rotate labeled node text for vertical placement
2026-03-03d1771dcaadd peak-to-peak voltage display to oscilloscope
2026-03-037a65d03fadd configurable step increment to sliders
2026-03-0320a5a62ffix LED array: reduce brightness persistence for faster fade
2026-03-03767e2239fix square wave initial value with negative phase shift
2026-03-0350230f17Fix test.sh: serve from war/ with symlink instead of makeSite
2026-03-038480e2aaFix charge plotting to coexist independently with voltage and current
2026-03-0330089ad6Remove charge plotting from PR (moved to #248), add calculateCurrent() to AnalogMuxElm
2026-03-0371df1132Use setColors() for reset defaults instead of duplicating color list
2026-03-0388a0f79fAddress PR review: rename chip by display mode, remove binary, revert iframe CSS
2026-03-031fa17478Revert OpAmpReal connectivity change per maintainer feedback
2026-03-02dde6bc87Fix circuit load error and remove unnecessary submenu
2026-03-028e6b4577add loss-free resistor example circuit (#132)
2026-03-022ee4310dadd selectable sparse matrix solver (#228)
2026-03-025eb72298Add toolbar enhancements for v3-dev (rebase of PR #162/#212)
2026-03-02ae20adf7add SPICE subcircuit import dialog
2026-03-027e27b4e2add 555 timer adjustable duty cycle example circuit (#161)
2026-03-024af394c5add gmin stepping to VCCS and CCCS for convergence aid (#172)
2026-03-02cde49b6bimprove op amp convergence for differentiator circuits (#82)
2026-03-021b0313c4fix comparator output spike by forcing re-convergence on switch state change (#90)
2026-03-02a31cb621Require sustained coil current before relay switches (#67)
2026-03-0200f32d4dadd configurable high logic voltage for subcircuits (#81)
2026-03-027c2a1f6dAdd oscilloscope trigger mode for stable waveform display
2026-03-02c4d25b88Show loaded filename in SRAM edit dialog
2026-03-0246b593b9add parasitic junction capacitance to BJT and MOSFET models (#107)
2026-03-020e6addbfAdd test.sh for quick local build-and-serve
2026-03-021befadaeadd BAT85 Schottky diode to built-in diode models
2026-03-0241dfd35dRemove battery +/- polarity labels
2026-03-024bbcbc9dRework relay pulldown to match analog switch approach
2026-03-02063afe94Remove Ctrl+click context menu suppression on Mac
2026-03-026476c58aMove ElementFactoryGenerator out of client package to fix compileGwt
2026-03-02083e90b4Fix Shift key handling and add type toggle popup for scroll wheel
2026-03-021fcc9df4filter by extension in open file dialog (#355)
2026-03-022fa7e5c8fix labeled node truncation in subcircuit creation (#134)
2026-03-0286a6bbfeadd GitHub Actions CI workflow for build verification (#115)
2026-03-023683bcdause smooth abs() approximation for Newton-Raphson convergence (#43)
2026-03-02b34e5040fix LED array example: move current limiting resistors to generator outputs (#153)
2026-03-029548cc65add Gradle wrapper (8.7) for reproducible builds (#167)
2026-03-028053d779add CSV export to oscilloscope context menu (#173)
2026-03-02a726da68add .editorconfig for consistent coding style (#35)
2026-03-02d5ddf0efuse lightGrayColor for OutputElm text to distinguish from LabeledNodeElm (#87)
2026-03-029cef78feuse per-transistor convergence tracking for gmin ramping (#77)
2026-03-022b4d6e4eAdd optional set and reset pins to latch element (#78)
2026-03-0266e8c213Add oscilloscope charge plotting for capacitors (#202)
2026-03-022b7e9928Add net highlighting on wire hover and scroll wheel type cycling for MOSFETs/transistors
2026-03-029d6b00b1Remap CirSim.java changes to v3-dev file structure
2026-03-02792f3777Add optional pulldown resistors to relay NC/NO contacts
2026-03-02e24fe3c3Add 3-phase wye-wye balanced resistive load example circuit
2026-03-0207eda6a6Add oscilloscope trigger mode for stable waveform display
2026-03-0262953b46Add optional pulldown resistors to relay NC/NO contacts
2026-03-0276f7c178Require Shift key for net highlighting (address review feedback)
2026-03-0262c28768Add 3-phase wye-wye balanced resistive load example circuit
2026-03-0216e5294aAdd net highlighting on wire hover and scroll wheel type cycling for MOSFETs/transistors
2026-03-0291d54b0eAdd configurable simulation temperature for diodes and transistors
2026-03-01d5cc5283Add optocoupler CTR, SRAM reload on reset, voltage-limited current source, macOS paste fix
2026-03-017fa20b49show circuit filename in title bar when loaded via Electron (#171), auto-centre on resize option (#181)
2026-03-0162365c5cFix 6 open issues: zoom stutter, DC voltage display, arrow keys, relay labels, SRAM hex, subcircuit dialog
2026-03-01d79564a6Fix image export clipping, subcircuit creation, Mac Ctrl+click, OpAmpReal connectivity
2026-03-01955decc6Add analog multiplexer element, fixes #76
2026-03-01cda078fcFix scope zoom bug and add charge plotting for capacitors
2026-03-0137f11adefix 5 open issues: XNOR gate, Russian translation, filename display, battery +/-, GWT URL
2026-03-0136c32fc1Add color picker and reset colors button to Other Options dialog
2026-03-019e618af8Fix 4 issues: hex display mode, wattmeter avg, switch flip sync, iframe CSS
2026-03-010d307145add logo and tagline to README (#116)
2026-03-01353b4abaFix image export clipping, subcircuit creation, Mac Ctrl+click, OpAmpReal connectivity
2026-03-0187ec3bd7Add optocoupler CTR, SRAM reload on reset, voltage-limited current source, macOS paste fix
2026-03-01777d47c7Add MOSFET channel-length modulation and scope trail persistence
2026-03-01a8469ee4add logo and tagline to README (#116)
2026-03-018a1cb882Fix scope horizontal scale, add auto DC on reset, add gyrator element
2026-03-0180dd9b69Add analog multiplexer element, fixes #76
2026-03-01ef872deaFix scope zoom bug and add charge plotting for capacitors
2026-03-01bca5a6f8Fix 4 issues: hex display mode, wattmeter avg, switch flip sync, iframe CSS
2026-03-0167a44470Fix 6 open issues: zoom stutter, DC voltage display, arrow keys, relay labels, SRAM hex, subcircuit dialog
2026-03-019d34b4c5fix 5 open issues: XNOR gate, Russian translation, filename display, battery +/-, GWT URL
2026-03-011b7ffd20show circuit filename in title bar when loaded via Electron (#171), auto-centre on resize option (#181)
2026-03-01b7d6f6d1Add color picker and reset colors button to Other Options dialog
2026-03-010b83a5ffRebase PR #162: toolbar enhancements with file ops, separators, centre circuit, and show mode toggle