# Radioactive decay
## Microsim
### Live player
<div class="microsim-player">
<iframe src="https://editor.p5js.org/sciencenibber/full/ndeZ3IkXH" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe>
</div>
<div class="microsim-fallback">
<img src="Microsims/thumbs/Radioactive_decay.png" alt="Radioactive_decay microsim poster" style="width:100%;border:1px solid #4445;border-radius:6px;">
<p><em>Live microsim (desktop) · <a href="https://editor.p5js.org/sciencenibber/sketches/ndeZ3IkXH">open sketch in the p5.js editor</a></em></p>
</div>
**Editor URL:** https://editor.p5js.org/sciencenibber/sketches/ndeZ3IkXH
**Description (100 words):**
A population of grey parent nuclei sits in the left pane; each frame, every survivor draws a Bernoulli trial against the per-step decay probability p = 1 - exp(-lambda*dt). When one fires, a warm [[Alpha_particle|alpha particle]] (a helium-4 nucleus) shoots off in a random direction and a faint cool-blue daughter ghost is left behind. The right pane plots N(t) live: the smooth blue curve is the theoretical N0 * exp(-lambda*t), the yellow staircase is this run's empirical count, and dashed verticals mark each half-life. Sliders retune the half-life and initial population; reset and pause/play sit beside them.
```js
// =====================================================================
// Radioactive_decay.js -- Wikitube microsim
// Article: Radioactive_decay en.wikitube.io/wiki/Radioactive_decay
// Room: Helium Pattern: E (particle systems)
// ---------------------------------------------------------------------
// Idea: a kinetic, particle-level visualization of first-order
// radioactive decay flavored as alpha emission so the link to the
// Helium room is literal -- every emitted alpha particle IS a
// helium-4 nucleus. The reader watches a population of N0 unstable
// parent nuclei convert one at a time into daughter nuclei plus
// flying alpha particles, while a live N(t) curve overlays the
// theoretical exponential N0 * exp(-lambda*t).
//
// Canonical equation (the one law behind every panel here):
//
// dN/dt = -lambda * N => N(t) = N0 * exp(-lambda*t)
// half-life t_(1/2) = ln(2) / lambda
//
// Per frame, each surviving parent decays with independent probability
// p = 1 - exp(-lambda * dt). For small lambda*dt this collapses to
// p ~ lambda*dt, the textbook "first-order rate" form. This is the
// same Bernoulli-trial-per-frame discretization a Geiger counter is
// effectively integrating.
//
// Sliders (read live each frame, change the future without reset):
// * half-life [0.5 .. 12 s] -- changes the decay rate immediately
// * N0 [50 .. 600] -- initial parent count (used on reset)
//
// Buttons:
// * reset -- repopulate parents, clear alphas, t = 0
// * pause/play -- freeze the integrator without clearing state
//
// Visual layout (720 x 520 canvas):
// * top-left: HUD title + en.wikitube.io/wiki/... subtitle
// * top-right: control hints
// * left box: particle reservoir
// - parents: small grey dots (intact nuclei)
// - alphas: bright warm dots flying off (helium-4)
// - daughters: dim cool dots in the parent's old spot
// * right box: N(t) plot
// - theoretical exponential (cool blue curve)
// - empirical staircase (yellow, this run)
// - dashed half-life markers at t = k * t_(1/2)
// * bottom: sliders + reset/pause + live readout + canonical eqn
//
// Conventions (Wikitube Betterfire Standard v0):
// * single ARTICLE constant at the top, single quotes
// * p5.disableFriendlyErrors = true
// * non-ASCII (Greek lambda, dots, arrows) lives in COMMENTS ONLY;
// every text() string literal is ASCII (the editor preview
// pipeline mangles non-ASCII inside string literals)
// * Energy-room palette (P5_JS_EDITOR section 4)
// =====================================================================
const ARTICLE = 'Radioactive_decay';
const TITLE = ARTICLE.replace(/_/g, ' ');
p5.disableFriendlyErrors = true;
// ----- Energy room palette (P5_JS_EDITOR section 4) ------------------
const BG = 18;
const FG = 240;
const DIM = [240, 240, 240, 140];
const HOT = [220, 110, 60]; // alpha particles (warm, kinetic)
const COLD = [60, 130, 220]; // theoretical curve, daughters
const STRUCT = [120, 130, 150]; // intact parents, grid, axes
const TRAJ = [240, 220, 80]; // empirical N(t) trace
const SCRATCH = [120, 120, 120, 90]; // pane frames
// ----- Defaults ------------------------------------------------------
const T_HALF_DEFAULT = 4.0; // s
const N0_DEFAULT = 240; // initial parent count
// ----- Layout rectangles (set in setup) ------------------------------
let resvX, resvY, resvW, resvH; // particle reservoir
let plotX, plotY, plotW, plotH; // N(t) curve
// ----- Simulation state ---------------------------------------------
let parents = []; // {x, y, alive}
let alphas = []; // {x, y, vx, vy, life}
let daughters = []; // {x, y, age} -- visual ghost only
let history = []; // {t, N} -- ring buffer for the curve
let simT = 0; // simulated seconds elapsed
let initialN0 = N0_DEFAULT;
let paused = false;
// ----- Controls ------------------------------------------------------
let halfSlider, n0Slider, resetBtn, pauseBtn;
function setup() {
createCanvas(720, 520);
pixelDensity(2);
textFont('system-ui');
// Two side-by-side panes top, controls + readout below.
resvX = 20; resvY = 70; resvW = 290; resvH = 290;
plotX = 360; plotY = 70; plotW = 340; plotH = 290;
// Slider row: labels at x=20, sliders at x=110, buttons at x=320.
halfSlider = createSlider(0.5, 12, T_HALF_DEFAULT, 0.1)
.position(110, 385).size(180);
n0Slider = createSlider(50, 600, N0_DEFAULT, 10)
.position(110, 415).size(180);
resetBtn = createButton('reset').position(320, 385);
resetBtn.mousePressed(resetSim);
pauseBtn = createButton('pause / play').position(320, 415);
pauseBtn.mousePressed(() => { paused = !paused; });
resetSim();
}
// ---------------------------------------------------------------------
// Reset: rebuild the parent population from the current N0 slider value.
// Called once at startup and on every press of the reset button.
// ---------------------------------------------------------------------
function resetSim() {
initialN0 = int(n0Slider.value());
parents = [];
for (let i = 0; i < initialN0; i++) {
parents.push({
x: resvX + 8 + random(resvW - 16),
y: resvY + 8 + random(resvH - 16),
alive: true
});
}
alphas = [];
daughters = [];
history = [{ t: 0, N: initialN0 }];
simT = 0;
paused = false;
}
function draw() {
background(BG);
// Read sliders once per frame; the integrator below uses these locals.
const tHalf = halfSlider.value();
const lambda = Math.log(2) / tHalf;
if (!paused) {
const dt = Math.min(deltaTime / 1000, 0.05);
simT += dt;
update(dt, lambda);
}
// Draw order: frame -> parents (stationary) -> daughters (in place) ->
// alphas (flying, on top) -> right pane -> labels -> HUD.
drawReservoirFrame();
drawParents();
drawDaughters();
drawAlphas();
drawCurvePane(tHalf, lambda);
drawSliderLabels();
drawReadout(tHalf, lambda);
drawHUD();
}
// =====================================================================
// Integration: stochastic per-particle Bernoulli decay
// =====================================================================
function update(dt, lambda) {
// Per-frame decay probability for a single parent.
// p = 1 - exp(-lambda*dt) is exact; for small lambda*dt it collapses
// to p ~ lambda*dt (the standard first-order rate).
const p = 1 - Math.exp(-lambda * dt);
let aliveCount = 0;
for (const par of parents) {
if (!par.alive) continue;
if (random() < p) {
par.alive = false;
// Emit one alpha (helium-4 nucleus) in a random direction.
const ang = random(TWO_PI);
const spd = random(70, 130); // px/s
alphas.push({
x: par.x, y: par.y,
vx: Math.cos(ang) * spd,
vy: Math.sin(ang) * spd,
life: 1.0
});
// Leave a faint daughter ghost where the parent used to be.
daughters.push({ x: par.x, y: par.y, age: 0 });
} else {
aliveCount++;
}
}
// Advance alphas; bounce off the reservoir walls (visual confinement
// -- physically the alpha would escape, but bouncing keeps the eye
// candy on-screen for the duration of its 1.0 s "lifetime").
for (const a of alphas) {
a.x += a.vx * dt;
a.y += a.vy * dt;
if (a.x < resvX || a.x > resvX + resvW) a.vx *= -1;
if (a.y < resvY || a.y > resvY + resvH) a.vy *= -1;
a.x = constrain(a.x, resvX, resvX + resvW);
a.y = constrain(a.y, resvY, resvY + resvH);
a.life -= dt * 0.8; // ~1.25 s before fade-out
}
// Cull spent alphas in one pass.
alphas = alphas.filter(a => a.life > 0);
// Age daughters; cap the array so a long sim cannot grow it forever.
for (const d of daughters) d.age += dt;
while (daughters.length > 600) daughters.shift();
// Sample N(t) into the history buffer at ~20 Hz, capped at 4000.
if (history.length === 0 ||
simT - history[history.length - 1].t > 0.05) {
history.push({ t: simT, N: aliveCount });
if (history.length > 4000) history.shift();
}
}
// =====================================================================
// Reservoir pane (left)
// =====================================================================
function drawReservoirFrame() {
push();
noFill();
stroke(SCRATCH);
strokeWeight(1);
rect(resvX, resvY, resvW, resvH);
// Pane label sits above the frame.
noStroke();
fill(...DIM);
textSize(11);
textAlign(LEFT, BOTTOM);
text('parents (grey) -- alphas (warm) -- daughters (cool)',
resvX, resvY - 4);
pop();
}
function drawParents() {
push();
noStroke();
fill(STRUCT[0], STRUCT[1], STRUCT[2], 220);
for (const par of parents) {
if (par.alive) circle(par.x, par.y, 4);
}
pop();
}
function drawDaughters() {
push();
noStroke();
for (const d of daughters) {
// Fade from opaque-ish to faint over ~5 s of sim time.
const fade = constrain(170 - d.age * 25, 35, 170);
fill(COLD[0], COLD[1], COLD[2], fade);
circle(d.x, d.y, 3);
}
pop();
}
function drawAlphas() {
push();
noStroke();
for (const a of alphas) {
const alpha = constrain(255 * a.life, 0, 255);
fill(HOT[0], HOT[1], HOT[2], alpha);
circle(a.x, a.y, 5);
// Tiny trail tick to suggest velocity direction.
stroke(HOT[0], HOT[1], HOT[2], alpha * 0.4);
strokeWeight(1);
line(a.x, a.y, a.x - a.vx * 0.04, a.y - a.vy * 0.04);
noStroke();
}
pop();
}
// =====================================================================
// N(t) curve pane (right) -- theoretical vs empirical
// =====================================================================
function drawCurvePane(tHalf, lambda) {
push();
// Pane label above the frame.
noStroke();
fill(...DIM);
textSize(11);
textAlign(LEFT, BOTTOM);
text('N(t): theoretical vs empirical', plotX, plotY - 4);
// Frame.
noFill();
stroke(SCRATCH);
strokeWeight(1);
rect(plotX, plotY, plotW, plotH);
// Time window: show three half-lives (or a 4 s floor) on the x-axis.
const tWindow = Math.max(3 * tHalf, 4);
// Y-axis ticks at 0, N0/4, N0/2, 3N0/4, N0.
noStroke();
fill(...DIM);
textSize(10);
textAlign(RIGHT, CENTER);
for (let f = 0; f <= 1.0001; f += 0.25) {
const y = plotY + plotH - f * plotH;
stroke(SCRATCH); line(plotX - 4, y, plotX, y);
noStroke();
text(int(initialN0 * f), plotX - 6, y);
}
// X-axis ticks: five evenly spaced labels in seconds.
textAlign(CENTER, TOP);
for (let i = 0; i <= 4; i++) {
const f = i / 4;
const x = plotX + f * plotW;
stroke(SCRATCH); line(x, plotY + plotH, x, plotY + plotH + 4);
noStroke();
text(nf(f * tWindow, 0, 1), x, plotY + plotH + 6);
}
// Axis titles.
fill(...DIM);
textSize(11);
textAlign(CENTER, TOP);
text('t [s]', plotX + plotW / 2, plotY + plotH + 22);
push();
translate(plotX - 38, plotY + plotH / 2);
rotate(-PI / 2);
text('N(t) (count)', 0, 0);
pop();
// Half-life markers: dashed verticals at k * t_(1/2).
for (let k = 1; k * tHalf <= tWindow; k++) {
const x = plotX + (k * tHalf / tWindow) * plotW;
stroke(STRUCT[0], STRUCT[1], STRUCT[2], 110);
strokeWeight(1);
drawingContext.setLineDash([3, 3]);
line(x, plotY, x, plotY + plotH);
drawingContext.setLineDash([]);
noStroke();
fill(STRUCT[0], STRUCT[1], STRUCT[2], 170);
textSize(9);
textAlign(CENTER, BOTTOM);
text(k + ' t1/2', x, plotY - 1);
}
// Theoretical curve N0 * exp(-lambda*t) sampled across the window.
noFill();
stroke(...COLD);
strokeWeight(2);
beginShape();
const STEPS = 80;
for (let i = 0; i <= STEPS; i++) {
const t = (i / STEPS) * tWindow;
const N = initialN0 * Math.exp(-lambda * t);
const x = plotX + (t / tWindow) * plotW;
const y = plotY + plotH - (N / initialN0) * plotH;
vertex(x, y);
}
endShape();
// Empirical N(t) trace from the history buffer (this run, stochastic).
noFill();
stroke(...TRAJ);
strokeWeight(2);
beginShape();
for (const h of history) {
if (h.t > tWindow) break;
const x = plotX + (h.t / tWindow) * plotW;
const y = plotY + plotH - (h.N / initialN0) * plotH;
vertex(x, y);
}
endShape();
// Inline legend in the upper-right of the plot pane.
noStroke();
textSize(10);
textAlign(RIGHT, TOP);
fill(...COLD);
text('theoretical N0 * exp(-lambda*t)', plotX + plotW - 6, plotY + 6);
fill(...TRAJ);
text('empirical (this run)', plotX + plotW - 6, plotY + 20);
pop();
}
// =====================================================================
// Slider labels + live readout + canonical equation
// =====================================================================
function drawSliderLabels() {
push();
noStroke();
fill(...DIM);
textSize(11);
textAlign(LEFT, CENTER);
text('half-life t1/2 [s]', 20, 392);
text('N0 (parents)', 20, 422);
// Live slider value readouts to the right of each slider.
textAlign(LEFT, CENTER);
fill(FG);
textSize(11);
text(nf(halfSlider.value(), 0, 2), 296, 392);
text(int(n0Slider.value()), 296, 422);
pop();
}
function drawReadout(tHalf, lambda) {
// Live activity (decays / s) computed from the live alive count.
const aliveCount = countAlive();
const activity = lambda * aliveCount; // Bq
push();
noStroke();
fill(...DIM);
textAlign(LEFT, BOTTOM);
textSize(11);
text('t = ' + nf(simT, 0, 2) + ' s N(t) = ' + aliveCount +
' / ' + initialN0,
20, height - 22);
text('lambda = ' + nf(lambda, 0, 3) + ' /s t1/2 = ' +
nf(tHalf, 0, 2) + ' s activity ~ ' +
nf(activity, 0, 1) + ' Bq',
20, height - 6);
pop();
}
function countAlive() {
let n = 0;
for (const par of parents) if (par.alive) n++;
return n;
}
// =====================================================================
// HUD (Betterfire Standard v0 -- title top-left, hints top-right,
// canonical equation bottom-right)
// =====================================================================
function drawHUD() {
// Top-left: title + Wikitube URL.
noStroke();
fill(FG);
textAlign(LEFT, TOP);
textSize(20);
text(TITLE, 14, 12);
fill(...DIM);
textSize(12);
text('Wikitube microsim . en.wikitube.io/wiki/Radioactive_decay',
14, 36);
// Top-right: short control hints.
textAlign(RIGHT, TOP);
textSize(10);
text('drag sliders to retune live', width - 14, 12);
text('reset reseeds the population', width - 14, 24);
text('pause/play freezes the sim', width - 14, 36);
// Bottom-right: canonical equation in plain ASCII.
textAlign(RIGHT, BOTTOM);
fill(FG);
textSize(12);
text('N(t) = N0 * exp(-lambda*t) t1/2 = ln 2 / lambda',
width - 14, height - 6);
}
// =====================================================================
// End of Radioactive_decay.js -- Wikitube microsim, Helium room,
// Pattern E (particle systems). The alpha particles ARE helium-4.
// =====================================================================
```
## Links (Wikipedia order)
<!-- injected from _registry/childlinks/Radioactive_decay.json (2026-07-30T02:09:12Z) -->
`1984_Moroccan_radiation_accident` · `1996_San_Juan_de_Dios_radiotherapy_accident` · `20-złoty_note` · `Aage_Bohr` · `Ab_initio_methods_(nuclear_physics)` · `Accretion_(astrophysics)` · `Acoustic_radiation_force` · `Actinides_in_the_environment` · `Acute_radiation_syndrome` · `Age_of_the_universe` · `Alexandru_Proca` · [[Alpha_decay]] · [[Alpha_particle]] · `Amount_of_substance` · `Arithmetic_mean` · `Askaryan_radiation` · `Atmosphere` · `Atomic_nucleus` · `Atomic_number` · `Atomic_orbital` · `Avogadro_constant` · `Background_radiation` · [[Barium]] · `Becquerel` · `Beryllium-8` · [[Beta_decay]] · `Beta_particle` · `Big_Bang_nucleosynthesis` · [[Bismuth]] · `Bismuth-209` · `Black-body_radiation` · `Borromean_nucleus` · `Bremsstrahlung` · `Bronisława_Dłuska` · `Carbon-14` · `Cathode_ray` · [[Chaos_theory]] · `Characteristic_X-ray` · [[Chemical_element]] · `Chemische_Berichte` · `Cherenkov_radiation` · `Chernobyl_disaster` · `Chronic_radiation_syndrome` · `Clinton_Davisson` · `Cluster_decay` · `Conservation_of_energy` · `Conservation_of_mass` · `Copper-64` · `Cosmic_background_radiation` · `Cosmic_ray` · `Cosmic_ray_spallation` · `Cosmogenic_nuclide` · `Crimes_involving_radioactive_substances` · `Crookes_tube` · [[Crust_(geology)]] · `Cuprosklodowskite` · `Curie's_law` · `Curie's_principle` · `Curie_(lunar_crater)` · `Curie_(rocket_engine)` · `Curie_(unit)` · `Curie_Institute_(Paris)` · `Curie_Island` · `Curie_family` · `Curie_temperature` · `Curie–Weiss_law` · [[Curium]] · `Dark_radiation` · `Darmstadt` · [[Decay_chain]] · `Decay_energy` · [[Decay_product]] · `Delayed_neutron` · `Deuterium` · `Differential_calculus` · [[Differential_equation]] · `Dosimetry` · `Double_beta_decay` · `Double_electron_capture` · `Drama` · `E_(mathematical_constant)` · [[Earth]] · `Earth's_energy_budget` · `Earth's_internal_heat_budget` · `Edward_Mills_Purcell` · `Edward_Teller` · `Electric_field` · `Electromagnetic_radiation` · `Electromagnetic_radiation_and_health` · `Electromagnetism` · [[Electron]] · `Electron_capture` · `Electron_neutrino` · `Elihu_Thomson` · `Emission_spectrum` · `Enema` · `Enrico_Fermi` · `Ernest_Lawrence` · `Ernest_Rutherford` · `Ernest_Walton` · `Eugene_Wigner` · `European_Union` · `European_units_of_measurement_directives` · `Even_and_odd_atomic_nuclei` · `Excited_state` · `Exponential_decay` · `Extinct_radionuclide` · `Frederick_Soddy` · `Fritz_Strassmann` · `Frédéric_Joliot-Curie` · `Fundamental_interaction` · `GSI_Helmholtz_Centre_for_Heavy_Ion_Research` · `Gamma_ray` · `Geiger_counter` · `Germany` · `Glenn_T._Seaborg` · `Goiânia_accident` · `Gray_(unit)` · [[Half-life]] · `Halo_nucleus` · `Hans_Bethe` · `Hazard_symbol` · `Health_physics` · [[Heat_transfer]] · `Helena_Skłodowska-Szalay` · [[Helium]] · `Henri_Becquerel` · `Henri_Poincaré` · `Hermann_Joseph_Muller` · `High-energy_nuclear_physics` · `Historical_coins_and_banknotes_of_Poland` · [[Hydrogen]] · `Hélène_Langevin-Joliot` · `IEEE_Marie_Sklodowska-Curie_Award` · `Induced_radioactivity` · `Infrared` · `Integrating_factor` · `Interacting_boson_model` · `Internal_conversion` · `International_Commission_on_Radiological_Protection` · `International_System_of_Units` · `Invariant_mass` · `Iodine-129` · [[Ion]] · `Ionizing_radiation` · `Irène_Joliot-Curie` · `Island_of_stability` · `Isobar_(nuclide)` · `Isospin` · `Isotone` · `Isotope` · `Isotopes_of_hydrogen` · `Isotopes_of_tellurium` · `J._Hans_D._Jensen` · `J._J._Thomson` · `J._Robert_Oppenheimer` · `Jacques_Curie` · `James_Chadwick` · `John_Cockcroft` · `Józef_Skłodowski` · `Lambda` · `Large_Hadron_Collider` · `Laser_safety` · `Lasers_and_aviation_safety` · [[Lead]] · `Les_Palmes_de_M._Schutz` · `Light` · `Linear_energy_transfer` · `Lise_Meitner` · `List_of_civilian_radiation_accidents` · `List_of_nuclides` · `List_of_radioactive_nuclides_by_half-life` · `Lists_of_nuclear_disasters_and_radioactive_incidents` · [[Lithium]] · `Luis_Walter_Alvarez` · `Madame_Curie_(film)` · `Magic_number_(physics)` · `Magnetic_field` · `Mantle_(geology)` · `Maria_Curie-Skłodowska_University` · `Maria_Skłodowska-Curie_Bridge,_Warsaw` · `Maria_Skłodowska-Curie_Medal` · `Maria_Skłodowska-Curie_Medallion` · `Maria_Skłodowska-Curie_Museum` · `Maria_Skłodowska-Curie_National_Research_Institute_of_Oncology` · `Maria_Skłodowska-Curie_Park` · `Maria_reactor` · `Marie_Curie` · `Marie_Curie,_une_femme_sur_le_front` · `Marie_Curie:_The_Courage_of_Knowledge` · `Marie_Curie_Gargoyle` · `Marie_Skłodowska-Curie_Actions` · `Mark_Oliphant` · `Mass` · `Mass_in_special_relativity` · `Mass_number` · `Mean-field_theory` · `Memorial` · `Microwave` · `Mirror_nuclei` · `Molar_mass` · `Mole_(unit)` · `Museum` · `Musée_Curie` · `National_Institute_of_Standards_and_Technology` · `National_Physical_Laboratory_(United_Kingdom)` · `Natural_nuclear_fission_reactor` · `Natural_number` · `Nebula` · `Neon_lamp` · [[Neptunium]] · `Neutrino` · `Neutrinoless_double_beta_decay` · [[Neutron]] · `Neutron_capture` · `Neutron_emission` · `Neutron_number` · `Neutron_radiation` · [[Newton's_laws_of_motion]] · `Niels_Bohr` · `Nikola_Tesla` · `Nobel_Prize_in_Physiology_or_Medicine` · `Non-ionizing_radiation` · `Nuclear_astrophysics` · `Nuclear_binding_energy` · `Nuclear_chain_reaction` · `Nuclear_drip_line` · [[Nuclear_engineering]] · `Nuclear_fission` · `Nuclear_fission_product` · `Nuclear_force` · [[Nuclear_fusion]] · `Nuclear_isomer` · `Nuclear_matter` · `Nuclear_medicine` · `Nuclear_pharmacy` · `Nuclear_physics` · `Nuclear_power` · `Nuclear_reaction` · `Nuclear_reactor` · `Nuclear_shell_model` · `Nuclear_structure` · `Nuclear_transmutation` · `Nuclear_weapon` · `Nucleon` · `Nucleon_pair_breaking_in_fission` · [[Nucleosynthesis]] · `Nuclide` · `Organism` · [[Oscillation]] · `Otto_Hahn` · `P-process` · `Particle_accelerator` · `Particle_decay` · `Particle_radiation` · `Patent_medicine` · `Patrick_Blackett` · `Phosphorescence` · `Photodisintegration` · `Photofission` · `Photographic_plate` · `Physical_Review_Letters` · `Pierre_Curie` · `Pierre_Joliot` · `Piezoelectricity` · `Poisson_distribution` · [[Polonium]] · `Positron` · [[Positron_emission]] · `Potassium-40` · `Primordial_nuclide` · [[Proton]] · `Proton_capture` · `Proton_emission` · [[Quantum_mechanics]] · `Quark–gluon_plasma` · `R-process` · `Radiation` · `Radiation_damage` · `Radiation_exposure` · `Radiation_hardening` · `Radiation_protection` · `Radiation_therapy` · `Radio_wave` · `Radioactive_(film)` · `Radioactive_contamination` · `Radioactive_displacement_law_of_Fajans_and_Soddy` · `Radioactive_quackery` · `Radioactive_source` · `Radioactivity_in_the_life_sciences` · `Radiobiology` · `Radiogenic_nuclide` · `Radiometric_dating` · `Radionuclide` · [[Radium]] · `Radium-226` · `Radon-222` · `Randomness` · `Rate_equation` · `Relativistic_Heavy_Ion_Collider` · `Research_institute` · [[Rhenium]] · `Rock_(geology)` · `Roentgen_(unit)` · `Rolf_Maximilian_Sievert` · `Rp-process` · `S-process` · `Salt_(chemistry)` · `Secular_equilibrium` · `Semi-empirical_mass_formula` · `Sievert` · `Sklodowskite` · `Skłodowski_family` · `Solar_System` · `Solar_flare` · `Spallation` · `Specific_activity` · [[Spontaneous_fission]] · `Springer_Publishing` · `Stable_nuclide` · `Star` · `Starlight` · `Statistical_mechanics` · `Stellar_nucleosynthesis` · `Storage_ring` · `Strong_interaction` · `Sunlight` · `Supernova` · `Supernova_nucleosynthesis` · `Synchrotron_radiation` · `Synthetic_element` · `Tau` · [[Tellurium]] · `Thermal_equilibrium` · `Thermal_radiation` · [[Thorium]] · `Time_constant` · `Treatise_on_Radioactivity` · `Tritium` · `Ultraviolet` · [[Uranium]] · `Valley_of_stability` · `Vanderbilt_University` · [[Wayback_Machine]] · `Weak_interaction` · `Wikisource` · `Wilhelm_Röntgen` · `Wireless_device_radiation_and_health` · `World_War_II` · `Władysław_Skłodowski` · `Władysław_Świątecki_(physicist)` · `X-ray` · `Young_Einstein` · `Ève_Curie`
## Media (PD/CC)
<!-- MEDIA-DEPLOY:Radioactive_decay/Halflife-sim.gif -->
!Gif Library/Radioactive decay/Halflife-sim.gif
*Halflife-sim.gif · Public domain*
<!-- /MEDIA-DEPLOY -->
<!-- SIGN-SYSTEMS:START -->
**Semiotic universals** (the notations and alphabet letters this article speaks — each opens its canonical card): kanji radicals · exponential · probability · energy · stability. Index: the glyph gallery · SEMIOTICS PORTAL.
<!-- SIGN-SYSTEMS:END -->
> **Room:** [[Helium]] · **Status:** ✅ shipped
## Overview
Radioactive decay is the spontaneous transformation of an unstable atomic nucleus into a more stable configuration through emission of ionising particles or electromagnetic radiation. Discovered by Henri Becquerel in 1896 and characterised by Marie and Pierre Curie, Ernest Rutherford, and Frederick Soddy over the following decade, it underpins nuclear [[Physics|physics]], geochronology, and a substantial fraction of modern [[Medicine|medicine]].
Three classical decay modes account for almost all natural transmutations. [[Alpha_decay|Alpha decay]] ejects a helium-4 nucleus (two protons, two neutrons), reducing both atomic and mass numbers; the helium found in natural-gas reservoirs is overwhelmingly the accumulated alpha output of uranium and [[Thorium|thorium]] series isotopes. Beta-minus decay converts a [[Neutron|neutron]] into a [[Proton|proton]] with emission of an [[Electron|electron]] and antineutrino; beta-plus and electron capture run the reaction in reverse. Gamma emission de-excites a nucleus left in a high-[[Energy|energy]] state without changing its identity. Additional channels include [[Spontaneous_fission|spontaneous fission]], internal conversion, and rare proton or cluster emission.
Decay is governed by a single first-order rate law,
dN/dt = -lambda * N => N(t) = N0 * exp(-lambda*t),
where lambda is the decay constant and the [[Half-life|half-life]] equals ln(2)/lambda. Activity is measured in becquerels (one disintegration per second) or curies. Applications include radiocarbon and uranium-lead dating, positron emission tomography, radiotherapy, smoke detectors, radioisotope thermoelectric generators on deep-space probes, and the steady geothermal heat budget of the [[Earth]]'s interior.
## See also
- Room hub: [[Helium]]
- p5.js Editor conventions: P5 JS EDITOR
- Wiki root: MAIN
---
*Scaffolded by `generative-microsim` from row 67 of the Helium sheet on 2026-05-12T04:56:55Z.*
<!-- CRAFT-LINK:START g12 -->
*Built to the [[WT!P5_js_Microsim_Master_Class|p5.js Master Class]].*
<!-- CRAFT-LINK:END -->
## Wikipedia : Wikitube
**Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Radioactive_decay) : [Wikitube](https://en.wikitube.io/wiki/Radioactive_decay)
## Previous hub tags
Tree parents: [[Helium]] · [[Helium-3]] · [[Hydrogen]] · [[Oxygen]].
Legacy hubs: `GENERATIVE`.
---
*Sources: 2 legacy notes. Minted wave 1, 2026-07-30 (v1.6 order).*