# Alpha particle <!-- MICROSIMGEN:BEGIN v1.7 — generated by g08_place_microsims.py; three.js first (§15); do not hand-edit inside --> ## Microsims — three.js ### Alpha particle (three.js) <div class="microsim-player"> <iframe src="https://wikitube-3d-microsims.netlify.app/Alpha_particle.html" width="100%" height="620" frameborder="0" loading="lazy" sandbox="allow-scripts allow-same-origin" title="Alpha particle — three.js microsim"></iframe> </div> **Open it full-screen:** [Alpha_particle.html](https://wikitube-3d-microsims.netlify.app/Alpha_particle.html) · library `threejs` · route `microsim/threejs/` ### Related microsims Live sims on neighbouring articles — 1 of them inside this article's own Wikipedia link tree: - [[Half-life]] *(in tree)* - [[Lifting_gas]] - [[Noble_gas]] - [[Nuclear_magnetic_resonance]] *Sim hosted off-article; the article owns the reference, not the runtime (WIKI_RULES §10.4). Placed by `g08_place_microsims.py`.* <!-- MICROSIMGEN:END --> ## Microsim ### Live player <div class="microsim-player"> <iframe src="https://editor.p5js.org/sciencenibber/full/hrAAf829T" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> </div> <div class="microsim-fallback"> <img src="Microsims/thumbs/Alpha_particle.png" alt="Alpha_particle 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/hrAAf829T">open sketch in the p5.js editor</a></em></p> </div> **Editor URL:** https://editor.p5js.org/sciencenibber/sketches/hrAAf829T **Description (100 words):** A continuous stream of alpha particles enters from the left of the canvas with a uniform distribution of impact parameters and curves under the central Coulomb potential of a heavy target nucleus drawn as a yellow disc at right of centre. Three sliders set the alpha energy in MeV, the target charge Z (defaults to gold, Z = 79, the Geiger-Marsden choice), and the spawn rate. Each track is hue-coded by deflection angle: grazing passes stay cool blue, large-angle scatters glow red. A rolling readout reports the mean absolute deflection of the last fifty tracks, and the canonical Rutherford differential cross-section is printed beneath. ```js // ===================================================================== // Alpha_particle.js -- Wikitube microsim // Article: Alpha_particle en.wikitube.io/wiki/Alpha_particle // Room: Helium Pattern: E (particles / trajectories) // --------------------------------------------------------------------- // Idea: Rutherford alpha-scattering. A continuous stream of alpha // particles enters from the left with adjustable kinetic energy and a // uniform distribution of impact parameters; each particle's // trajectory is integrated under the central Coulomb potential of a // heavy target nucleus (Z up to 92) and rendered as a curving track. // Tracks are coloured by deflection angle: cool blue for grazing // passes, hot red for large-angle scatters. The reader watches the // Geiger-Marsden 1909-1911 experiment that revealed the nucleus. // // Physics // ------- // The alpha particle is a doubly-ionised He-4 nucleus (charge +2e). // Against a target nucleus of charge +Ze the Coulomb force is // // F(r) = k z Z e^2 / r^2, with z = 2 for an alpha, // // and the trajectory is the open branch of a hyperbola. The classical // Rutherford differential cross-section is // // d-sigma/d-Omega = (z Z e^2 / 4 E)^2 / sin^4(theta/2) // // where E is the alpha kinetic energy and theta is the scattering // angle. The 1/sin^4(theta/2) singularity at small angles is the // reason most alphas pass nearly straight through and only a few are // back-scattered: "as if you fired a 15-inch shell at a piece of // tissue paper and it came back and hit you" (Rutherford, 1911). // // Closest-approach distance and impact parameter b are related by // // a0 = k z Z e^2 / (2 E) (head-on collision distance) // cot(theta/2) = b / a0 (deflection vs. impact parameter) // // We work in dimensionless units where a0 sets the length scale; this // makes the visual independent of the actual MeV/fm choices and keeps // trajectories well-shaped across all energies and Z values. // // Visual layout (720 x 520 canvas) // -------------------------------- // * top-left: HUD title + en.wikitube.io/wiki/Alpha_particle // * top-right: live readouts (current E, Z, particles/sec, // mean deflection of last 50 tracks) // * left edge: particles spawn here, y uniformly random // * center: target nucleus rendered as a bright disc with // faint Coulomb potential rings // * canvas: particle tracks drawn as fading polylines, hue // coded by final deflection angle // * bottom row: three sliders -- E (MeV), Z, particles/sec // * bottom-right: ASCII Rutherford cross-section formula // // Conventions (Wikitube Betterfire Standard v0) // --------------------------------------------- // * single ARTICLE constant at the top, single quotes // * p5.disableFriendlyErrors = true to keep the editor console clean // * non-ASCII (Greek theta, sigma, dots) lives in COMMENTS only; // every text() string literal is plain ASCII // * Energy-room palette (P5_JS_EDITOR section 4) // * controls have explicit .position(x,y).size(w) -- no floating defaults // * HUD drawn by drawHUD() called once per draw() // ===================================================================== const ARTICLE = 'Alpha_particle'; 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]; // large-angle deflection (red) const COLD = [60, 130, 220]; // small-angle deflection (blue) const STRUCT = [120, 130, 150]; // axes, target nucleus rings const TRAJ = [240, 220, 80]; // target nucleus disc (yellow) const SCRATCH = [120, 120, 120, 80]; // scratch / grid lines // ----- Physical / display constants ---------------------------------- // We work in pixel-scaled dimensionless units: a0 maps to a constant // number of pixels so the geometry is the same regardless of the // reader's choice of E and Z. The slider values are shown in MeV / Z // for educational labels but enter the simulator through the single // dimensionless "interaction strength" k_int. const A0_PIXELS = 16; // pixels per closest-approach distance const PARTICLE_V = 4.0; // initial speed in pixels per integration step const DT = 1.0; // integration step (units of frames) const MAX_STEPS = 1200; // safety cap on per-track integration // ----- Plot rectangle and target placement --------------------------- let plotX, plotY, plotW, plotH; let nucleusX, nucleusY; // ----- Particle state ----------------------------------------------- // Each particle has: position, velocity, a polyline of past positions // for drawing the track, an "alive" flag, and the deflection angle // recorded at exit (used to colour the track and to feed the rolling // mean-deflection readout). let particles = []; let recentDeflections = []; // last 50 final angles, in radians // ----- Controls ------------------------------------------------------ let eSlider, zSlider, rateSlider; let eLabel, zLabel, rateLabel; // ----- Spawn cadence ------------------------------------------------ let frameAccumulator = 0; // ===================================================================== // Setup // ===================================================================== function setup() { createCanvas(720, 520); pixelDensity(2); textFont('system-ui'); // Plot rectangle leaves room for the slider row at the bottom. plotX = 0; plotY = 50; plotW = width; plotH = 380; // Target nucleus sits a little right of centre so grazing tracks on // the right have room to curve before exiting. nucleusX = width * 0.62; nucleusY = plotY + plotH * 0.50; // ----- Sliders, laid out left-to-right along y = 450 --------------- // Each slider is preceded by a small label drawn in draw(). eSlider = createSlider(1, 10, 5.0, 0.5).position(80, 450).size(140); zSlider = createSlider(1, 92, 79, 1).position(290, 450).size(140); rateSlider = createSlider(1, 30, 12, 1).position(500, 450).size(140); // textFont, textSize, etc. are set inside drawHUD() and the label // rendering pass so calling setup more than once stays deterministic. } // ===================================================================== // Per-frame integration loop and rendering // ===================================================================== function draw() { background(BG); // Read controls once per frame into named locals (Energy convention). const E_MeV = eSlider.value(); // alpha kinetic energy, MeV (label only) const Zt = zSlider.value(); // target charge number const rate = rateSlider.value(); // particles spawned per second // Dimensionless interaction strength. a0 = k z Z e^2 / (2 E), so the // strength of the Coulomb deflection per integration step scales as // Z / E. We map that to the per-pixel acceleration used below. const kInt = (Zt / E_MeV) * 0.45; // Spawn new particles based on the rate slider. frameAccumulator += rate / 60.0; // 60 fps target while (frameAccumulator >= 1.0) { spawnParticle(); frameAccumulator -= 1.0; } // Integrate live particles and draw tracks. updateAndDrawParticles(kInt); // Draw target nucleus and Coulomb potential rings on top of tracks // so the nucleus reads as the source of all the deflection. drawNucleus(Zt); // HUD: title, subtitle, readouts, slider labels, formula. drawHUD(E_MeV, Zt, rate); } // ===================================================================== // Particle spawn // ===================================================================== function spawnParticle() { // Spawn just inside the left edge with a random impact parameter // (y offset) sampled uniformly across the plot height. v points // along +x. The trail array records positions for drawing. const y0 = random(plotY + 20, plotY + plotH - 20); particles.push({ x: 4, y: y0, vx: PARTICLE_V, vy: 0.0, trail: 4, y0, alive: true, finalAngle: 0.0, // signed scattering angle in radians fadeFrames: 0, // counts down after the particle exits }); // Cap the live particle list. Old tracks fade naturally as their // fadeFrames counter expires. if (particles.length > 240) particles.shift(); } // ===================================================================== // Integrate + render particles // ===================================================================== function updateAndDrawParticles(kInt) { // We iterate in two passes: first integrate alive particles by one // forward-Euler step (good enough at this scale; symplectic is // overkill for a visual), then draw every particle's trail. noFill(); strokeWeight(1.2); for (let i = 0; i < particles.length; i++) { const p = particles[i]; if (p.alive) { // Coulomb force from nucleus at (nucleusX, nucleusY). // F = k_int / r^2 along (p - nucleus). Repulsive. const dx = p.x - nucleusX; const dy = p.y - nucleusY; const r2 = dx * dx + dy * dy; const r = sqrt(r2); // Guard a tiny floor so r -> 0 trajectories don't NaN out. // Visually we never get below ~3 pixels at any plausible slider. const rSafe = max(r, 2.0); const aMag = (kInt * A0_PIXELS * A0_PIXELS) / (rSafe * rSafe); const ax = aMag * (dx / rSafe); const ay = aMag * (dy / rSafe); p.vx += ax * DT; p.vy += ay * DT; p.x += p.vx * DT; p.y += p.vy * DT; p.trail.push([p.x, p.y]); // Particle exits when it leaves the plot rectangle. if (p.x < -5 || p.x > width + 5 || p.y < plotY - 5 || p.y > plotY + plotH + 5 || p.trail.length > MAX_STEPS) { p.alive = false; // Final scattering angle: angle of exit velocity w.r.t. +x. p.finalAngle = atan2(p.vy, p.vx); p.fadeFrames = 60; // hold the track briefly, then fade // Roll the deflection into the running mean. recentDeflections.push(abs(p.finalAngle)); if (recentDeflections.length > 50) recentDeflections.shift(); } } else { p.fadeFrames -= 1; } // ----- Draw this particle's track -------------------------------- // Hue: blend COLD -> HOT by |finalAngle| / PI. Live particles get a // hue based on current deflection-so-far (atan2 of velocity). const angle = p.alive ? abs(atan2(p.vy, p.vx)) : abs(p.finalAngle); const tBlend = constrain(angle / (PI * 0.7), 0, 1); const r = lerp(COLD[0], HOT[0], tBlend); const g = lerp(COLD[1], HOT[1], tBlend); const b = lerp(COLD[2], HOT[2], tBlend); // Faded alpha for already-exited tracks so the canvas doesn't blur. const a = p.alive ? 220 : max(0, p.fadeFrames * 3); stroke(r, g, b, a); beginShape(); for (let k = 0; k < p.trail.length; k++) { vertex(p.trail[k][0], p.trail[k][1]); } endShape(); // A small dot at the live head so the reader can see the front // edge of motion. Skipped on faded tracks. if (p.alive) { noStroke(); fill(r, g, b, 240); circle(p.x, p.y, 4); noFill(); } } // Garbage-collect particles whose fade has finished. particles = particles.filter(p => p.alive || p.fadeFrames > 0); } // ===================================================================== // Target nucleus and its Coulomb-potential rings // ===================================================================== function drawNucleus(Zt) { // Faint rings represent equipotentials of the Coulomb field. Their // density scales with Z so a high-Z target visually "feels" stronger. noFill(); for (let n = 1; n <= 5; n++) { const r = n * 18; const a = map(n, 1, 5, 90, 25) * (Zt / 92); stroke(STRUCT[0], STRUCT[1], STRUCT[2], a); strokeWeight(1); circle(nucleusX, nucleusY, r * 2); } // Target nucleus disc itself: a bright TRAJ-yellow dot whose size // scales gently with Z so the reader sees the nucleus get heavier. const dotR = 6 + (Zt / 92) * 6; noStroke(); fill(TRAJ[0], TRAJ[1], TRAJ[2], 230); circle(nucleusX, nucleusY, dotR * 2); // Z label next to the nucleus, so the reader knows what they're // looking at. (Au is Z = 79, the classic Geiger-Marsden target.) fill(FG); noStroke(); textSize(11); textAlign(LEFT, CENTER); text('Z = ' + Zt, nucleusX + dotR + 6, nucleusY); } // ===================================================================== // HUD: title, subtitle, slider labels, live readouts, formula // ===================================================================== function drawHUD(E_MeV, Zt, rate) { // Title bar background panel (top strip). noStroke(); fill(0, 140); rect(0, 0, width, 44); // Title (top-left, 22pt bright). fill(FG); textAlign(LEFT, TOP); textSize(22); text(TITLE, 14, 10); // Subtitle (12pt dim) -- ASCII dot, not a bullet character. fill(DIM[0], DIM[1], DIM[2], DIM[3]); textSize(12); text('Wikitube microsim . en.wikitube.io/wiki/' + ARTICLE, 14, 34 - 4); // ----- Top-right live readouts ----- textAlign(RIGHT, TOP); fill(FG); textSize(12); const meanDef = recentDeflections.length === 0 ? 0 : recentDeflections.reduce((a, b) => a + b, 0) / recentDeflections.length; const meanDefDeg = (meanDef * 180.0 / PI).toFixed(1); text('E = ' + E_MeV.toFixed(1) + ' MeV', width - 14, 6); text('mean |deflection| = ' + meanDefDeg + ' deg', width - 14, 22); // ----- Slider labels (just above each slider) ----- textAlign(LEFT, BOTTOM); textSize(11); fill(DIM[0], DIM[1], DIM[2], 220); text('alpha energy (MeV)', 80, 448); text('target Z', 290, 448); text('particles / sec', 500, 448); // ----- Slider value labels (right of each slider) ----- textAlign(LEFT, CENTER); fill(FG); textSize(12); text(E_MeV.toFixed(1), 230, 459); text(nf(Zt, 0), 440, 459); text(nf(rate, 0), 650, 459); // ----- Bottom-right canonical equation (ASCII Rutherford) ----- textAlign(RIGHT, BOTTOM); textSize(12); fill(DIM[0], DIM[1], DIM[2], 220); text('d-sigma/d-Omega = (zZe^2 / 4E)^2 / sin^4(theta/2)', width - 12, height - 10); // Reset text alignment so callers downstream aren't surprised. textAlign(LEFT, BASELINE); } ``` ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Alpha_particle.json (2026-07-30T02:09:12Z) --> `1984_Moroccan_radiation_accident` · `1996_San_Juan_de_Dios_radiotherapy_accident` · `Acoustic_radiation_force` · `Actinide` · [[Actinium]] · `Acute_radiation_syndrome` · `Alexander_Litvinenko` · `Alpha` · `Alpha-particle_spectroscopy` · [[Alpha_decay]] · `Alpha_nuclide` · `Alpha_process` · `Americium-241` · `Antimatter` · `Antonius_van_den_Broek` · `Askaryan_radiation` · `Atom` · `Atomic_nucleus` · `Atomic_number` · `Background_radiation` · `Beryllium-8` · [[Beta_decay]] · `Beta_particle` · `Black-body_radiation` · `Bladder_cancer` · [[Boson]] · `Bremsstrahlung` · `Brookhaven_National_Laboratory` · [[Calcium]] · `Cell_(biology)` · `Charge_radius` · `Cherenkov_radiation` · `Chromosome` · `Chronic_radiation_syndrome` · `Cloud_chamber` · `Cluster_decay` · `Cosmic_background_radiation` · `Cosmic_ray` · [[Coulomb's_law]] · `Cyclotron` · `Dark_radiation` · `David_Christian_(historian)` · `Delta_ray` · `Diffusing_alpha_emitters_radiation_therapy` · `Dosimetry` · `Earth's_energy_budget` · `Electric_charge` · [[Electric_current]] · `Electric_spark` · `Electromagnetic_radiation` · `Electromagnetic_radiation_and_health` · [[Electron]] · `Electronvolt` · `Elementary_charge` · [[Energy]] · `Ernest_Rutherford` · `Fundamental_interaction` · `Gamma_ray` · `Geiger–Nuttall_law` · `Goiânia_accident` · `Greek_alphabet` · [[Half-life]] · `Hans_Geiger` · `Health_physics` · [[Heat_transfer]] · `Helion_(chemistry)` · [[Helium-3]] · [[Helium-4]] · `Henri_Becquerel` · `IEEE_Transactions_on_Electron_Devices` · `Infrared` · `Intel` · `Invariant_mass` · [[Ion]] · `Ionization` · `Ionizing_radiation` · `Kinetic_energy` · `Laser_safety` · `Lasers_and_aviation_safety` · [[Lead]] · `Light` · `Linear_energy_transfer` · `List_of_alpha-emitting_nuclides` · `List_of_civilian_radiation_accidents` · `Lung_cancer` · `Marie_Curie` · `Mass_number` · `Micrometre` · `Microwave` · `National_Institute_of_Standards_and_Technology` · `Nature_(journal)` · [[Neutron]] · `Neutron_radiation` · `New_York_City` · `Non-ionizing_radiation` · `Nuclear_fission` · `Nuclear_force` · [[Nuclear_fusion]] · `Nuclear_physics` · `Nuclear_reaction` · `Nuclear_reactor` · `Nuclear_transmutation` · `Nuclear_weapon` · `Nucleon` · `Particle` · `Particle_accelerator` · `Particle_physics` · `Particle_radiation` · `Particle_statistics` · `Penetration_depth` · `Peter_Chrisp` · `Phosphorescence` · `Plutonium-238` · `Polonium-210` · `Potential_well` · `Prostate_cancer` · [[Proton]] · `Radiation` · `Radiation_damage` · `Radiation_exposure` · `Radiation_hardening` · `Radiation_protection` · `Radiation_therapy` · `Radio_wave` · `Radioactive_contamination` · [[Radioactive_decay]] · `Radioactive_source` · `Radioactivity_in_the_life_sciences` · `Radiobiology` · `Radioisotope_thermoelectric_generator` · `Radionuclide` · [[Radium]] · `Radium-223` · `Radium-226` · [[Radon]] · `Rebecca_Wragg_Sykes` · `Relative_biological_effectiveness` · `Relativistic_Heavy_Ion_Collider` · `Rutherford_scattering_experiments` · [[Science_(journal)]] · `Sievert` · `Skin` · `Smoke_detector` · `Soft_error` · `Space_probe` · `Speed_of_light` · [[Spin_(physics)]] · [[Spontaneous_fission]] · `Starlight` · `Static_cling` · `Sunlight` · `Synchrotron` · `Synchrotron_radiation` · `Ternary_fission` · `Thermal_radiation` · `Thomas_Royds` · [[Thorium]] · `Thorotrast` · `Triple-alpha_process` · `Ultraviolet` · [[Uranium]] · [[Velocity]] · `Wireless_device_radiation_and_health` · `X-ray` ## From the Real GENERATIVE library ![Alpha particle](https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/Alpha_Decay.svg/250px-Alpha_Decay.svg.png) *Alpha particle — placed from the Real G.E.N.E.R.A.T.I.V.E. course library (Nuclear room). Source: Wikimedia Commons (via Wikipedia article media). [Details & license](https://commons.wikimedia.org/wiki/File:Alpha_Decay.svg).* > Alpha particles, also called alpha rays or alpha radiation, consist of two protons and two neutrons bound together into a particle identical to a helium-4 nucleus.[5] They are generally produced in the process of alpha decay but may also be produced in other ways. Alpha particles are named after the first letter in the Greek alphabet, α. ([Wikipedia](https://en.wikipedia.org/wiki/Alpha_particle)) <!-- REAL-GENERATIVE-MEDIA:END --> <!-- LOCAL-MEDIA-PASS:START --> ## From the vault media library !Alpha particle thumb.png *Alpha Particle — from the vault's own media holdings, placed 2026-07-09. MTN / Wikitube.io original · CC BY-SA 4.0.* <!-- LOCAL-MEDIA-PASS:END --> > **Room:** [[Helium]] · **Status:** ✅ shipped ## Overview The **alpha particle** is a doubly ionised helium-4 nucleus — two protons bound to two neutrons — and is one of the three classical species of ionising radiation alongside beta and gamma rays. Identified and named by Ernest Rutherford in 1898, and shown to be ionised helium by Rutherford and Royds in 1908, it has a rest mass of about 3.727 GeV/c² (6.645 x 10^-27 kg) and a charge of +2e. Alpha particles are emitted in the [[Radioactive_decay|radioactive decay]] of heavy nuclei such as uranium-238, [[Plutonium|plutonium]]-239, radium-226, polonium-210, and americium-241, typically with discrete kinetic energies between 4 and 9 MeV. Their large charge-to-mass ratio produces very high linear [[Energy|energy]] transfer: in air, an alpha of typical energy travels only 3-7 cm and is stopped by a sheet of paper or the dead outer layer of skin, but if inhaled or ingested it deposits all of that energy across a few cell layers, making alpha-emitting radionuclides among the most biologically damaging forms of radiation per unit dose. The quantum-mechanical tunnelling theory of [[Alpha_decay|alpha decay]], developed by George Gamow and independently by Gurney and Condon in 1928, was one of the first applications of [[Wave|wave]] mechanics to the nucleus; it explains the empirical Geiger-Nuttall law log10 t_1/2 ~ a Z / sqrt(E_alpha) - b, which spans more than twenty orders of magnitude in [[Half-life|half-life]]. Rutherford's 1909-1911 alpha-scattering experiment, counted by the cross-section d-sigma/d-Omega = (zZe^2 / 4E)^2 / sin^4(theta/2), revealed the atomic nucleus. Modern applications include smoke detectors, radioisotope thermoelectric generators, and targeted alpha therapy. ## See also - Room hub: [[Helium]] - p5.js Editor conventions: P5 JS EDITOR - Wiki root: MAIN --- *Scaffolded by `generative-microsim` from row 151 of the Helium sheet on 2026-05-14T19:48:07Z.* <!-- REAL-GENERATIVE-MEDIA:START --> <!-- 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/Alpha_particle) : [Wikitube](https://en.wikitube.io/wiki/Alpha_particle) ## Previous hub tags Tree parents: [[Helium]] · [[Helium-3]]. Legacy hubs: none. --- *Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*