Nuclear Reactor Explainer
Inspired by the great Ciechanow blog of animated WebGL visualizations, I tried to take the same approach for explaining nuclear reactors. He uses WebGL and JavaScript to create beautiful animations and without a library like three.js. His code is easily available directly at the site, so there was a lot of material to learn from.
My feeling working in industry and academia is that most nuclear engineers and scientists have a poor understanding of nuclear reactions and nuclear reactors. Executives have little to no understanding. There are few people with even a basic understanding of the details of how a reactor works.
The explainer begins with the primary motivation for nuclear power — energy density — and continues with binding energy, radiation, enrichment, criticality, reactor dynamics and control, and decay heat. The overall narrative mirrors basic nuclear engineering courses—but highlights some of the really curious and important details that are often forgotten or ignored.
Many of the visuals are interactive and pretty simple. Cubes of different volumes help visualize the energy density of different materials. A clump of spheres represents a nucleus and its stability. A banana emits beta radiation that is detected by a Geiger counter.
The more complex visuals are the ones containing Monte Carlo simulations, reactor dynamics models, or heat transfer models. The Monte Carlo simulation in particular uses neutron transport and fission reactions for 30,000 particles, all in JavaScript and real time with the ability to show the particles in 3D traveling between moderator and fuel. It's not particularly accurate, but it does a good job of showing the basic principles of how a reactor works and gets criticality pretty close.
The reactor dynamics model is a simple model of the reactor core that shows how the reactor can change power and temperature using coolant and control rods. The heat transfer model is a finite difference model of the decay heat rejection.
Took a little longer than expected.