[HN Gopher] Circuit.js - Electronic circuit simulator on the web
___________________________________________________________________
Circuit.js - Electronic circuit simulator on the web
Author : ggeorgovassilis
Score : 268 points
Date : 2023-04-04 09:21 UTC (13 hours ago)
(HTM) web link (lushprojects.com)
(TXT) w3m dump (lushprojects.com)
| cxie wrote:
| cool stuff, reminds me the EDA software used during college
| toomim wrote:
| This reminds me of https://logik.land/ which was written by
| glittle.org. Very cool stuff!
| mittermayr wrote:
| Absolutely amazing! I feel like this could be nicely packaged
| into a proper product, along with a teacher's guide and then sold
| to schools. I feel like a lot of people have given up on
| fundamental electronics as there's just so much other stuff to
| spend time on, stuff like this could make it a tiny bit more
| approachable again.
| compumike wrote:
| We do something like this at CircuitLab
| https://www.circuitlab.com/ -- lots of universities are
| customers. :)
| ricksunny wrote:
| Yeah - ChatGPT4 & Alpha's circuit design remains atrocious on all
| levels that it is possible to be atrocious on like substance,
| lack of this circuitjs-like interactivity, UX (ascii diagrams?
| Really?). I'd like to see sources like circuitjs, CircuitHub, or
| Octopart produce a plugin for it (and find some way to monetize /
| justify it)
| arthurcolle wrote:
| What does this have to do with ChatGPT?
| jovial_cavalier wrote:
| Everyone has GPT Derangement Syndrome. Everything everywhere
| has to be related back to ChatGPT, specifically.
| [deleted]
| Tade0 wrote:
| I used this app in college back when it was a Java Applet - it
| helped me greatly in overcoming gaps in my intuition about analog
| circuits, even though the models used are relatively simple.
| villgax wrote:
| Can anyone point me to a browser physics workbench. Like I was to
| b stack things, give measurements to cuboids etc for quick
| visualization with realistic physics sim in 3D
| madmax108 wrote:
| A similar project in the circuit-sim space which is also part of
| GSoC every year: https://circuitverse.org/
| azubinski wrote:
| This is a wonderful interactive engineer's notebook, many thanks
| to the author. (Sometimes LTspice is redundant, and this is
| sometimes often the case)
| genmud wrote:
| I'm super stoked that hardware / EE is getting so much more focus
| and interest from software engineers. It really feels like there
| is so much room for improvement / optimization in that space and
| for so many years, it was like this black box that nobody wanted
| to look inside.
| hollandays wrote:
| In my opinion, the next step is to figure out a good way to
| combine something like gnu octave with nice modern GUIs.
|
| Old tools were inaccessible to use because there's nothing to
| look at with a text-based tool, and inaccessible for engineers
| to develop because programming was so arcane. Look at Berkeley
| spice written in C. It's a lot of old-school parsing and
| implementing matrix methods.
|
| The new stuff that's more accessible to use is more accessible
| for a software engineer to develop, but it's arguably even less
| accessible to other engineers and scientists to add their
| contributions. This creates an issue where the tools remain as
| good-looking toys that never get any serious technical chops.
|
| Splitting the implementation is the way to go, but neither side
| would be happy about the interface. There's also the issue of
| platform because good engineering tools only run locally.
|
| I don't know what the answer is, but it's not Python. We
| already have python, and yet, there isn't an explosion of
| collaboration to make great tools for the physical sciences and
| engineering. It's too much of a compromise for both sides.
| genmud wrote:
| > I don't know what the answer is, but it's not Python. We
| already have python, and yet, there isn't an explosion of
| collaboration to make great tools for the physical sciences
| and engineering. It's too much of a compromise for both
| sides.
|
| I would argue that python is actually ideally suited as a
| solution for many if not most things, just because there
| isn't large adoption in a subgenre of engineering, doesn't
| mean it isn't the right solution.
|
| The primitives are there, its easy to comprehend, and there
| is a large amount of adoption in the scientific community
| outside EE.
|
| I see lots of stuff that used to be done in things like
| matlab or mathmatica being done in python directly these
| days. At least at one of the places that I worked at, where
| we were a huge matlab shop for doing model design / algorithm
| simulation, has migrated most of their stuff to python.
|
| Things like antenna design, RF simulation and a number of
| other things have a lot of of folks writing python code.
| imjonse wrote:
| I sometimes wanted an OCR-like tool to transform an image of a
| schematic into one importable to Spice or other tools. That would
| save a lot of time entering it. Although I wonder if there is
| still a time for such a specialized tool since soon GPT-4.X may
| be able to explain and simulate circuit schematics.
| mastax wrote:
| I think I remember one of the expensive SPICE or CAD tools
| having a feature like that.
| laveur wrote:
| I've used the one on falstad.com many many times to design op-amp
| circuits quickly so I could see exactly changing each component
| would do.
| mastax wrote:
| Yeah it turns out that convenience and observability is more
| important than accuracy most of the time. Someone should tell
| the SPICE software vendors.
| SN74H74N wrote:
| The site of the creator of the simulator has a newer version:
| http://www.falstad.com/circuit/
|
| I love this tool because you can export links or export circuits
| as text files.
|
| Clock circuit I made that uses faster and slower buttons to
| adjust the speed: https://tinyurl.com/2nvlulfl
|
| 8-bit binary multiplier (LSB on top):
| https://burlette.net/multiplier.txt
| alphabetter wrote:
| Yes, Paul did the original as a Java Applet. I did the port to
| run in the x-compile to allow it to run in the browser. After
| that we cooperated on it for a while. I stepped back a few
| years ago to focus on other things, but he's kept up with
| improvements. Kudos.
| alphabetter wrote:
| I posted that rather quickly, so a bit more information for
| those who are interested (inspired by some of the comments on
| the thread).
|
| I found Paul's sim by chance and really liked it because it
| was the first electronics sim that I had seen that was
| properly interactive and visual in its approach. I thought it
| was a great tool for building intuition about circuits.
| However, at a certain point it became clear that Java in the
| browser was on its way out, and this really needed to become
| a plug-in free experience if it was going to continue to be
| useful.
|
| This was about the time that V8 was coming along and
| revoluationizing the performance of JS. Originally there was
| no license attached to the project, so I asked Paul if he was
| OK in me trying to port it to run on JS using the GWT
| framework. He was fine, but said he'd done old experiments
| with some of his other sims and found that JS wasn't
| performant enough, but with the strides in JS performance I
| was more optimistic.
|
| I took the Jave code and commented just about everything out
| to get a minimal implementation of the standard LRC circuit
| just to see the performance. Once I was comfortable with that
| working I started adding every feature and every component
| back. Most of the work was replacing the Java graphics
| primitives with the equivalents from GWT.
|
| Once the initial version JS version was out I did quite a lot
| of work mostly on UI features, especially the 'scopes. They
| were rather weak in the original and still not as good as I
| would really like, but much improved.
|
| I have thought about monetizing and extending with EDA
| features, socials, etc. but its never been enough of a
| priority to do it. I kind of like its simplicity as it is.
|
| It has been used a lot in education and a couple of teachers
| have contributed to the code to support their uses in
| classrooms.
|
| It's kind-of amazing that it still has a very distinctive
| niche that nobody else has really gone after in quite the
| same way. I think a lot of that is because Paul's original
| vision and work on the Java version was so good.
|
| There is a bit more context and some tutorials here:
| http://lushprojects.com/circuitjs/
| BMc2020 wrote:
| That's what you say now, how do we know you won't flip flop?
| ggeorgovassilis wrote:
| Downvoters must read first:
| https://en.wikipedia.org/wiki/Flip-flop_(electronics)
| umvi wrote:
| Yeah, I got the joke. I was (and still am) tempted to
| downvote though because puns and pun chains are low effort
| and reddit-esque. "What you posted didn't register at
| first", "I'll have to think about that for a bit", "Why
| can't we post flip flop puns? This community is too _gated_
| ", etc.
| kid64 wrote:
| By that rationale, the effort you put into getting the
| joke should have precluded you from responding.
| numlock86 wrote:
| Personally I don't mind some "reddit esque" (or whatever
| you want to call them) comments here and there. The level
| of those present on HN is low anyway. They could/should
| be less in some cases, but they don't bother much as the
| majority is still mostly insightful comments or
| interesting discussions. Imagine a completely sterile
| online community without any communication side-tracked,
| even if it's just a tiny bit, from the informational
| topic. That just wouldn't feel right to me. The
| equivalent of a "everyone got a stick up their lower
| half" workplace. Yuck.
| runnerup wrote:
| Same. These bother me a great deal, though the downvotes
| are usually well outnumbered by upvotes. Thank you for
| sharing your thoughts.
| SN74H74N wrote:
| So you are saying they should have ended the post with JK?
| BMc2020 wrote:
| I wonder if any of them picked up on the 'SN74H74N' part?
|
| https://www.ebay.com/itm/D274D-SN74H74N-Flip-Flops-Dual-
| D-Ty...
| namibj wrote:
| I just used it about 43 hours ago to get an understanding of a
| circuit idea I had ([1] being the secondary of [0], so that the
| abstracted switch (some bidirectional transistor approach of
| still-unclear nature; suffering so much ripple (+- half input
| voltage) requires this rippling to be low-loss) in the center can
| turn on with no voltage across it), which was to use loose
| coupling between the inductors of the phases of a modified 3L-FC
| buck [3] (running in divide-by-two mode as a switched capacitor
| converter; plans are 5 phases at 6.7 MHz for the half-bridges and
| 27 MHz for the resonant inductors), that has been modified by
| splitting the flying capacitor into two series capacitors and
| placing an auxiliary switch in series with an inductor between
| the center of the flying capacitor and the output of the 3L-FC
| (in a buck, that would go through an inductor and then to an
| output smoothing capacitor; I only aim for a 2:1 DC/DC
| transformer so output voltage will be a little below half the
| input voltage (difference is due to resistive losses in the half
| bridges that mostly cover up the ripple losses of the flying
| capacitor)).
|
| This auxiliary switch was initially meant to block only half the
| output voltage and use the inductor as an LC resonance with the
| output capacitances of the half bridges to flip them around after
| they just calmly turned off.
|
| The calm turn off is fading over input/output currents of the
| converter to other phase(s) of the converter; this is to
| virtually eliminate any (inherent) need for filter capacitors at
| the input and output of the converter by ensuring the phase
| currents, when added up, result in a time-invariant current for
| the converter as a whole (like how 3-phase grid supply
| theoretically (i.e., with active power factor correction) doesn't
| need the (mains-side) smoothing capacitors in a computer power
| supply, because a the (virtual) resistor the grid operator
| prefers to see has constant power draw from the grid).
|
| The issue was that the auxiliary switch still suffered from hard-
| turn-on (i.e., no ZVS-on for it) which turns out to be somewhat
| of a problem when the goal is to take in e.g. up-to 60kV (+20%
| peaks/surges on top of 50kV nominal) from an MVDC line, and
| convert it down to something a "just" 1.6 MW induction motor with
| it's inverter can comfortably handle (e.g. situation in a Siemens
| Vectron MS, except that those only go up to 25kV AC): the first
| stage would take in 60kV, output 30kV, and that switch would have
| to block +- 15kV.
|
| At the expense of the auxiliary switch seeing up-to full output
| voltage, sightly coupling the inductors across phases should
| allow the coupled fraction of the full current of the phase who's
| auxiliary switch is currently on to fully charge/discharge the
| much smaller output capacitance of the auxiliary switches in the
| other phases while the entire current in itself
| charges/discharges it's own [phase's] half bridges.
|
| I'm sorry the switches in the falstad links aren't automated; the
| modified 3L-FC switches between which of the two controls is on,
| and briefly activates the center switch while both control inputs
| are off. The weakly-coupled transformer has one activate the
| switch when the red graph gets closest to the 0V center line, and
| deactivate it when the yellow current in the same scope has
| completed the sine-half-wave/crosses the 0A center line the first
| time (again) after the switch was activated. The result should be
| that the green voltage across the simulated output capacitance of
| the half bridges on the right scope transitions quickly to the
| other polarity while the switch is active, and then stays there
| with only mild ripple until the switch is activated again. I
| believe in the 5-phase converter it would be activated not the
| first time afterwards the red goes back to (almost) zero, but the
| one second time, so the (with-switch-active) current half-waves
| are distributed round-robin.
|
| [0]:
| https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB...
|
| [1]:
| https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgDOB0Y...
|
| [3]: https://www.ti.com/lit/pdf/slyt807
| etimberg wrote:
| Many years ago I helped write https://www.multisim.com
|
| It's a full SPICE based simulator done entirely clientside
| ubavic wrote:
| Cool, thank you for sharing.
|
| I am interested in simulators, especially in simulators of
| analogue circuits. Do you have any recommendations on where to
| start reading about algorithms that lie at the core of
| simulators?
|
| Also, how was the experience developing such product with JS?
| mox111 wrote:
| The source code has the following comment:
|
| For information about the theory behind this, see Electronic
| Circuit & System Simulation Methods by Pillage
| etimberg wrote:
| As /u/compumike mentioned the core spice algorithm is an LU
| decomposition and solve of a large matrix. Not sure what a
| good resource these days would be; it's been many years since
| I worked on this.
|
| The JS experience wasn't great. We used emscripten and the
| tooling barely worked for the simulator core. The rest of the
| app wasn't bad, but we used polymer / webcomponents which was
| a big mistake IMO
| compumike wrote:
| Author of the CircuitLab https://www.circuitlab.com/ (YC W13)
| mixed-mode (analog and digital) simulation engine here. The
| "core algorithm" is probably LU decomposition on a sparse
| matrix: https://ultimateelectronicsbook.com/systems-of-
| equations/#lu... .
|
| I answered a similar question on Electronics StackExchange
| where someone asked about how to build a circuit simulator:
| https://electronics.stackexchange.com/a/394069
|
| From a software developer perspective: lots and lots and lots
| of automated tests, each of which builds a circuit, runs a
| simulation, and makes sure we don't see any behavior
| regression. More lines of code in tests than in the core
| simulation engine or device models!
| rhodin wrote:
| Continuous System Simulation by Cellier/Kofman [0]. The focus
| is mainly on Modelica, but analog circuits are a "special
| case" of this.
|
| [0] https://www.amazon.com/Continuous-System-Simulation-
| Francois...
| farkanoid wrote:
| https://www.ni.com/en-au/shop/electronic-test-instrumentatio...
|
| It looks nice but Jesus... $1550AUD a year for the designer
| edition?
| TrackerFF wrote:
| Falstad helped me (and many others) through electrical
| engineering undergrad, those are the hall of fame websites/apps
| (applets?)
| ktzar wrote:
| This website is just amazing... Had I had this in the early 00s
| when I was studying electronics... Transistor circuits just make
| sense. And the number of already-setup examples is great.
| rado wrote:
| Brilliant!
| freeone3000 wrote:
| I remember using this as an applet in college! Nice to see it
| updated for the modern age.
| amelius wrote:
| Circuit simulators are awesome, but they never go the next step
| such that they work with actual purchasable components. The user
| always has to read datasheets and translate everything into spice
| parameters.
|
| Also, they typically don't allow the user to specify maximum
| power for every component and check that the voltages and
| currents are within safe limits.
| namibj wrote:
| If you buy modern power electronic semiconductors, you can
| usually find so m spice models from the manufacturer (though
| they do indeed typically not model thermals).
| amelius wrote:
| Spice models are not easy to find, in my experience. Given
| some random transistor on Digikey, I'd say the odds are less
| than 20% that I can find the corresponding spice model.
| namibj wrote:
| Fair, but that should generally not be so restrictive that
| it causes a problem with "having SPICE models for actually
| purchasable components".
| picture wrote:
| This "next step" is really on the vendor/manufacturer instead
| of simulator developers. It won't be addressed, either, because
| it's extra development and cost for the vendor to bare when a
| lot of low cost/generic applications won't benefit from having
| simulation files. Additionally, it's a lot more work for the
| vendor to characterize and also guarantee that their products
| are close in value after years of production. Some datasheets
| are very sparse not by mistake - they promise you exactly as
| much as the datasheet, no more no less (for reputable vendors
| anyway).
|
| The Micro-Cap simulator has the smoke test feature, for
| example. It's now abandoned and free for download.
| amelius wrote:
| > This "next step" is really on the vendor/manufacturer
| instead of simulator developers. It won't be addressed
|
| Which is exactly why the simulator/community should address
| it.
| squarefoot wrote:
| > The Micro-Cap simulator has the smoke test feature, for
| example. It's now abandoned and free for download.
|
| The website however is now dead, but thanks to the Internet
| Archive we can still access it to download the software.
|
| https://web.archive.org/web/20220117133700/http://www.spectr.
| ..
|
| That software would be a great candidate for a crowdfunding
| campaign to purchase the source rights from the author and
| release it as Open Source.
|
| Edit: and it works great with WINE under Linux.
| dang wrote:
| Related:
|
| _JavaScript Circuit Simulator_ -
| https://news.ycombinator.com/item?id=9896436 - July 2015 (22
| comments)
___________________________________________________________________
(page generated 2023-04-04 23:01 UTC)