radioactive.js by Peter Reinhardt

Peter Reinhardt

Co-founder @


One of the biggest problems I’ve encountered in writing about nuclear reactors is that people don’t understand radioactive decay. This is a huge problem because it means that 99% of the population is totally unqualified to decide anything about nuclear energy.

It’s conceivable that some form of nuclear energy could solve both global warming and energy demand simultaneously. That’s a really big deal, so rather than just panicking to the latest alarmist trend, we need to make a really informed decision. Since we’re a democracy, we need everybody to understand how nuclear works. To help teachers, developers and journalists spread that understanding, I’m open sourcing radioactive.js on Github.

As a start, check your own understanding with this Darwinist test:

Suppose I have 1 kg of Cesium-134, with a half-life of 30 years. And 1 kg of Uranium-238, with a half-life of 4.5 billion years. I’m going to give you one of the blocks, and you have to sleep with it tonight like a teddy bear.

Which one do you want?

If you guessed Cesium-134, you’re dead. If you chose the block of Uranium-238, you’ll be just fine. You want the Uranium-238 because its long half-life means that it decays slowly. Short half-life isotopes like Cesium-134 decay so quickly that you get a lethal dose of radiation super fast.

In this plot produced by radioactive.js, you can see that the cesium block is over a million times more radioactive than the uranium block (the scale is logarithmic):

The importance of radioactive.js is that it lets us visualize the problem, which significantly expands the audience that can understand what’s going on.

What else can we learn by visualizing radioactive decay?

First, you’ll quickly discover that radioactive waste comes in three flavors based on the half-life of the material:

1. Short half-life, extremely radioactive materials like Cesium-134 are super dangerous to handle, but decay quickly to background levels. We know how to build structures to hold this waste until it’s safe. 2. Medium half-life, highly radioactive materials like Americium and Plutonium are also dangerous to handle, but still take thousands of years to decay to background levels. We literally don’t know how to build structures capable of storing high-level radioactive waste like this for soooooo long. The ancient Egyptian pyramids haven’t even lasted this long. This type of waste is mostly composed of “actinides”. 3. Long half-life, barely radioactive materials like Uranium-238 and Thorium-231 are actually quite safe to handle, and take billions of years to decay to background levels. Obviously we have no idea how to build structures to store this stuff, but these isotopes are common in standard soil all around the world.

On a logarithmic plot these three types of radioactive waste have distinctly different profiles:

Different decay profiles, different disposal.

Each type of waste needs to be disposed of differently, with wildly different disposal costs. Looking at the plot, it’s easy to see why! Some of the waste is gone in 100 years, some if it won’t be gone for hundreds of thousands of years, and some won’t be gone for billions of years! Each type will need drastically different methods for disposal.

But waste is never discussed that way… instead, it’s all bundled into one Big Scary Monster. The result is that the public has an unending political discourse about the dangers of nuclear waste that never gets anywhere. It usually goes something like this:

Person 1: “Our brand new nuclear plant design produces three times less waste.”

Person 2: “But the waste it produces lasts for thousands and thousands of years!”

This chatter is terribly confused and useless, but it’s the reality of the discussion. Nuclear waste is not all produced equal. It makes no sense to talk about “three times less waste” unless you talk about the exact profile of the waste.

The debate should go like this:

Better Person 1: “Our New Nuclear Plant design produces three times less waste. Let me show you how the radiation from its waste is lower than waste radiation from Current Reactors.”

Better Person 2: “That’s not a very impressive difference. The actinide waste (second bump) produced by your design lasts for thousands of years, and it’s difficult to dispose of. Let me show you our Alternative Nuclear Plant design that produces dramatically less actinide waste.”

Now that we’ve compactly visualized the options it’s possible for a non-nuclear-engineer to discuss the situation quite intelligently.

That’s why I built radioactive.js

It’s an open source javascript library that models radioactive decay.

“But that’s easy!” you say, “It’s just an exponential function.”

radioactive decay

Not so fast. Radioactive decay of real nuclear waste is significantly more interesting.

As radioactive atoms decay, they transform into other atoms that are also radioactive, which in turn decay again! It’s a chain. For example, Plutonium-239 decays into Uranium-235, then Thorium-231 and then through 9 other isotopes before finally becoming Lead-207. Each decay in the chain releases radiation, and when we model real nuclear waste we have to branch out and model the entire decay chain.

Secondly, real waste from nuclear reactors is composed of lots of different isotopes. A simple waste model for your standard Pressurized Water Reactor could easily start with 14+ radioactive isotopes. How radioactive is that after 1,000 years??

So radioactive.js models the complete decay chain, and it will model an arbitrary spread of “input” isotopes. For example, it can model the radioactivity produced by waste from a standard Pressurized Water Reactor:

The library is open-source. Here are some good starting points:

  1. The isotope data used to do the modeling is in isotope-data
  2. The decay chain extraction is done on radioactive-decay:68
  3. The underlying math is reflected in the code at radioactive-decay:114-174

I’d love to have your help in building radioactive.js into a tool for better teaching and communicating about nuclear energy.

I hope that radioactive.js will help cast new light on the otherwise un-ending nuclear debate, and help create a discussion about the aspects that really matter. An honest, informed discourse about nuclear tech is critical for our future.

If you build something with radioactive.js, let me know @reinpk!

Fork me on GitHub