When spice simulation isn't deep enough... Very educational to show how circuit elements work "under the hood"...for example the LC example doesn't use an L element and a C element as building blocks, but rather it is the two metal plates in close contact which form the bulk of the circuit's capacitance and it is the loop of metal itself which form the inductance.
I don't pretend to know what this simulation is doing, but for the record, electromagnetism works just fine in 2D. You might be thinking "but magnetic fields are intimately tied to cross products, which only work in three dimensions." But you can set up the equations of electromagnetism just fine either using differential forms or bivector magnetism (https://arxiv.org/abs/2309.02548), and it works in any dimension you'd like. (The cross product version is really a narrow and sometimes misleading special case.)
Possibly related: there are options to "View B" and "View H" in the scalar dropdown, not in the vector one. That may be closely related to the fact that in two dimensions, the magnetic field has just a single component. Whether you describe is as a 2-form or a bivector, the magnetic field is an antisymmetric rank-2 tensor: an antisymmetric matrix. In 3D, that means 3 independent components, and there's a one-to-one mapping to vectors (more or less). But in 2D, an antisymmetric matrix has just one independent component. (And in 4D, it's got six: this is precisely the relativistic electromagnetic field tensor, that in 3D splits into an electric part and a magnetic part. My paper has more details.)
That's exactly right! In my simulation quantities like E and J are vectors with x and y components. In contrast B can be thought of as a vector (or bivector, technically) pointing in the z direction, but since it it only has one component it's simpler to just lump it in with the other scalars. (Aside: Having the simulation be in 2D brings in some interesting toplogical restrictions on circuits).
Thanks but I was thinking more about how fields drop off in 2D space versus 3D space. Simple electrostatic example: consider a 1D string of identical resistors. Voltage drops linearly as you go along this string. Now consider a 2D grid of resistors: voltage does not change linearly anymore if you move between two points (current will move in a more complicated spread-out pattern). So the dimensionality changes how fields behave.
That's true, but it's actually a property of the circuit. Any circuit that fits into a 2d space will work the same if simulated in 3d: voltage will still drop off linearly along a 1d resistor.
This is because it's actually an emergent property already in 2d space.
Consider a resistor shaped like a capital letter Z in 2d space, with ground at one end and 1V the other. (Assume also that the Z has a square aspect ratio). The potential along the bar in the middle will initially be equal, because all points on the bar are equidistant from our voltage sources (AKA charges) . But the potential will drop along the arms of the Z. So charge will move along the arms and accumulate at the corners, until there is also a voltage drop along the bar, and ohms law holds.
When spice simulation isn't deep enough... Very educational to show how circuit elements work "under the hood"...for example the LC example doesn't use an L element and a C element as building blocks, but rather it is the two metal plates in close contact which form the bulk of the circuit's capacitance and it is the loop of metal itself which form the inductance.
I wonder how they simulate EM in only 2 dimensions.
I also wonder why the simulator only allows to show E and D fields, and not H and B.
I don't pretend to know what this simulation is doing, but for the record, electromagnetism works just fine in 2D. You might be thinking "but magnetic fields are intimately tied to cross products, which only work in three dimensions." But you can set up the equations of electromagnetism just fine either using differential forms or bivector magnetism (https://arxiv.org/abs/2309.02548), and it works in any dimension you'd like. (The cross product version is really a narrow and sometimes misleading special case.)
Possibly related: there are options to "View B" and "View H" in the scalar dropdown, not in the vector one. That may be closely related to the fact that in two dimensions, the magnetic field has just a single component. Whether you describe is as a 2-form or a bivector, the magnetic field is an antisymmetric rank-2 tensor: an antisymmetric matrix. In 3D, that means 3 independent components, and there's a one-to-one mapping to vectors (more or less). But in 2D, an antisymmetric matrix has just one independent component. (And in 4D, it's got six: this is precisely the relativistic electromagnetic field tensor, that in 3D splits into an electric part and a magnetic part. My paper has more details.)
That's exactly right! In my simulation quantities like E and J are vectors with x and y components. In contrast B can be thought of as a vector (or bivector, technically) pointing in the z direction, but since it it only has one component it's simpler to just lump it in with the other scalars. (Aside: Having the simulation be in 2D brings in some interesting toplogical restrictions on circuits).
- Brandon
Thanks but I was thinking more about how fields drop off in 2D space versus 3D space. Simple electrostatic example: consider a 1D string of identical resistors. Voltage drops linearly as you go along this string. Now consider a 2D grid of resistors: voltage does not change linearly anymore if you move between two points (current will move in a more complicated spread-out pattern). So the dimensionality changes how fields behave.
That's true, but it's actually a property of the circuit. Any circuit that fits into a 2d space will work the same if simulated in 3d: voltage will still drop off linearly along a 1d resistor.
This is because it's actually an emergent property already in 2d space.
Consider a resistor shaped like a capital letter Z in 2d space, with ground at one end and 1V the other. (Assume also that the Z has a square aspect ratio). The potential along the bar in the middle will initially be equal, because all points on the bar are equidistant from our voltage sources (AKA charges) . But the potential will drop along the arms of the Z. So charge will move along the arms and accumulate at the corners, until there is also a voltage drop along the bar, and ohms law holds.
Fun. I am reminded of the long forgotten Zachtronics semiconductor game “KOHCTPYKTOP: Engineer of the People” [1]
[1] https://www.zachtronics.com/kohctpyktop-engineer-of-the-peop...
Did you know that archive supports old Flash games like this via the Ruffle Flash emulator?
https://web.archive.org/web/20160305205215/http://www.zachtr...
cefFlashbrowser can do it better
This is also available (with an included Flash emulator, so playable on modern machines) in Zach's free retrospective "Zach-like" [1]
[1] https://store.steampowered.com/app/1098840/ZACHLIKE/
ChipWizard is the updated version and it's in Last Call BBS (from Zachtronics).
Amazing work feels very similar to Paul Falstad page https://www.falstad.com/emstatic/index.html.
This really needs a WebGPU port. Multigrid on a GPU is moderately easy.
The similarity is likely not a coincidence!
> (c) Brandon Li, 2025. Ported to Javascript with the help of Paul Falstad.
Brandon here. I was very much inspired by Falstad's applets. I had him take a look at my simulation and he generously offered to make a JS port.
It looks awesome, and I want to express my special appreciation that you used red and blue instead of red and green.
Sebastian Lague has been making one of these and youtubing it, the videos are great here's the latest one https://www.youtube.com/watch?v=HGkuRp5HfH8
Note that these are at very different levels of detail. Lague's is at the digital logic level, while Brandon's is some level around atoms/electrons.
This looks exciting, but the images make it look like maybe it's two-dimensional?
The UI is rough but this is very impressive!
Which other simulators show electron charge density and heat dissipation?
Can this simulate this?:
"Synaptic and neural behaviours in a standard silicon transistor" (2025) https://www.nature.com/articles/s41586-025-08742-4 .. https://news.ycombinator.com/item?id=43506198
What about (graphene) superconductors though?
So how accurate are the results?
im super into stuff like this, takes me back to messing with circuit sims for hours
Very clean, educational and informative. Well done, from one Brandon to another!
[dead]
Really sexy