Easy Atoms - Geometry Nodes Bohr Model Generator
The electron orbital sizes are changed based on their index, using the Shell_Configuration subgroup. The formula for electron configurations says that there can be 2*n^2 electrons in the n-th shell (at least according to Wikipedia). Inverting this formula gives us the shell for each electron. But because we're using the electron index to drive the shell size, we'd have to create the integral of this inverted formula, which isn't possible with Blender math nodes. That is why I manually created a logical tree to select the shell size, which stops at shell 7. The largest currently known element has an atomic number of 118, so I didn't bother creating this logical tree for more than 300 electrons.
By using the "Electron Position" parameter. If you enter "#frame" into the field, it will set the electron position based on the current frame. That also means it will move faster if your frame rate is higher. To counteract this, you can change the driver using a factor, like "#frame/2".
To generate the nucleus, I had to rely on a random point distribution in a spherical shape. Especially for smaller nuclei, this can lead to irregular shapes. That's why I added the "Fill Factor" parameter. Increasing the fill factor pushes the nucleons outwards to create a more spherical shape.
Playing around with the seed can also give you better results.
No, the Bohr model is a simplification, and I do not claim that this generator is an accurate representation of the Bohr model; I tried to get close though.
In reality, electrons are way smaller and their orbits are actually a density distribution, no deterministic orbit.
I'm afraid not. Since the models are generated procedurally using Geometry Nodes, they will almost certainly have intersecting geometry.