em3rgent0rdr a day ago

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.

  • amelius 14 hours ago

    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.

    • Steuard 7 hours ago

      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.)

      • stunningllama 5 hours ago

        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

      • amelius 6 hours ago

        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.

        • ajb 6 hours ago

          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.

paulgerhardt 19 hours ago

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...

petermcneeley 20 hours ago

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.

  • 1d22a 19 hours ago

    The similarity is likely not a coincidence!

    > (c) Brandon Li, 2025. Ported to Javascript with the help of Paul Falstad.

    • stunningllama 15 hours ago

      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.

      • kragen 12 hours ago

        It looks awesome, and I want to express my special appreciation that you used red and blue instead of red and green.

gfody 21 hours ago

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

  • gblargg 20 hours ago

    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.

kragen 12 hours ago

This looks exciting, but the images make it look like maybe it's two-dimensional?

spicybright 19 hours ago

The UI is rough but this is very impressive!

showmexyz 12 hours ago

So how accurate are the results?

gitroom 13 hours ago

im super into stuff like this, takes me back to messing with circuit sims for hours

bdbenton5255 18 hours ago

Very clean, educational and informative. Well done, from one Brandon to another!

mhh__ 19 hours ago

Really sexy