# Atomic mass <!-- MICROSIMGEN:BEGIN v1.7 — generated by g08_place_microsims.py; three.js first (§15); do not hand-edit inside --> ## Microsims — p5.js ### Atomic mass (p5.js) <div class="microsim-player"> <iframe src="https://editor.p5js.org/sciencenibber/full/vVFjRW_A0" width="100%" height="480" frameborder="0" loading="lazy" sandbox="allow-scripts allow-same-origin" title="Atomic mass — p5.js microsim"></iframe> </div> *Two sliders set proton and neutron count; the sketch computes atomic mass, revealing the binding-energy mass defect that peaks near iron-56.* **Open in the editor:** [&#9654; fork this sketch](https://editor.p5js.org/sciencenibber/sketches/vVFjRW_A0) · library `p5js` ### Related microsims Live sims on neighbouring articles: - [[Beta_decay]] - [[Decay_chain]] - [[Half-life]] - [[Plutonium]] - [[Thorium]] *Sim hosted off-article; the article owns the reference, not the runtime (WIKI_RULES §10.4). Placed by `g08_place_microsims.py`.* <!-- g09-shelf-note --> > **Also on this page:** 1 further p5.js sketch already published for this article live further down. Per WIKI_RULES §5 a collision promotes rather than forks — they are one shelf, not rivals; this block is the §10.4 *current best* reference. <!-- MICROSIMGEN:END --> ## Microsim ### Live player <div class="microsim-player"> <iframe src="https://editor.p5js.org/sciencenibber/full/ifeHSMgMn" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> </div> <div class="microsim-fallback"> <img src="Microsims/thumbs/Atomic_mass.png" alt="Atomic_mass 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/ifeHSMgMn">open sketch in the p5.js editor</a></em></p> </div> **Editor URL:** https://editor.p5js.org/sciencenibber/sketches/ifeHSMgMn **Description (100 words):** An interactive chart of nuclides — [[Neutron|neutron]] number N on the x-axis (0–40), [[Proton|proton]] number Z on the y-axis (0–30) — where every (N, Z) cell is one isotope coloured by its binding energy per nucleon B/A, computed live from the Weizsacker semi-empirical mass formula. The cold-to-hot ramp makes the valley of stability pop as an orange diagonal ridge, bending rightward above Z ≈ 20 toward Fe-56 at the peak. Three landmarks are flagged: He-4 (yellow X), C-12 (magenta circle, defines the u), Fe-56 (cyan ring). Drag, click, or use arrow keys; the readout shows element symbol, Z, N, A, atomic mass in u, B/A, and mass defect. ```js // ===================================================================== // Atomic_mass.js -- Wikitube microsim // Article: Atomic mass en.wikitube.io/wiki/Atomic_mass // Room: Helium Pattern: 8 (Geometry crossover -- // topological / spatial) // --------------------------------------------------------------------- // Idea: an interactive *chart of nuclides* -- the canonical // topological visualisation in nuclear physics. The neutron number N // is on the x-axis, the proton number Z on the y-axis. Each (N, Z) // cell is one nuclide; its colour is the binding energy per nucleon // B/A, computed from the semi-empirical (Weizsacker) mass formula: // // B(MeV) = a_V*A // - a_S*A^(2/3) // - a_C*Z*(Z-1)/A^(1/3) // - a_A*(N-Z)^2/A // + delta(A,Z) // // with Weizsacker constants a_V = 15.8, a_S = 18.3, a_C = 0.714, // a_A = 23.2 (MeV) and pairing term delta = +12/sqrt(A), -12/sqrt(A), // or 0 for even-even, odd-odd, and odd-A nuclei respectively. // // Atomic mass m(A, Z) is then assembled from the hydrogen-atom mass // m_H (which absorbs the Z bound electrons) and the free-neutron mass // m_n, with the binding energy subtracted via E = mc^2: // // m(A, Z) = Z * m_H + N * m_n - B(MeV) / 931.494 MeV/u // // using m_H = 1.0078250 u and m_n = 1.0086649 u. // // The visual identity of this chart is the *valley of stability* -- // the diagonal trough where B/A is maximal. Light nuclei sit on Z = N // (the protons and neutrons balance); above A ~ 40 the trough bends // rightward as extra neutrons dilute Coulomb repulsion. Iron-56 and // nickel-62 sit at the peak (B/A ~ 8.79 MeV); helium-4 -- doubly magic // -- punches well above its semi-empirical prediction at B/A ~ 7.07 // MeV, which is why alpha emission is the universal heavy-nucleus // decay channel. // // Three landmark nuclides are marked on the chart: // * Helium-4 (Z=2, N=2, m = 4.002602 u, B/A ~ 7.07 MeV) // * Carbon-12 (Z=6, N=6, m = 12.000000 u exactly -- defines u) // * Iron-56 (Z=26, N=30, m = 55.934937 u, B/A ~ 8.79 MeV, peak) // // Visual layout (720 x 520 canvas): // * top-left: HUD title + en.wikitube.io/wiki/Atomic_mass subtitle // * top-right: control hints (drag, arrows, click-to-jump) // * centre: chart of nuclides, N x-axis 0..40, Z y-axis 0..30 // (Z grows upward); cells coloured by B/A on a cold->hot ramp // * landmarks: yellow X on He-4, magenta circle on C-12, cyan tick on Fe-56 // * bottom: live readout (element symbol, Z, N, A, atomic mass u, // B/A MeV, mass defect u) + canonical equation // // Conventions (Wikitube Betterfire Standard v0): // * single ARTICLE constant at the top, single quotes // * p5.disableFriendlyErrors = true to keep the editor console clean // * non-ASCII (alpha, lambda, primes, arrows) lives in COMMENTS ONLY; // every text() string literal is ASCII // * Energy-room palette (P5_JS_EDITOR section 4): dark BG, HOT/COLD // tones, STRUCT grey, TRAJ accent // * No sliders -- the chart itself is the input device. Mouse drag, // arrow keys, and click-to-jump move the cell selector. // ===================================================================== const ARTICLE = 'Atomic_mass'; 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]; // warm: high B/A (tightly bound) const COLD = [60, 130, 220]; // cool: low B/A (loosely bound) const STRUCT = [120, 130, 150]; // structural grey: outside drip lines const TRAJ = [240, 220, 80]; // reader marker (yellow accent) const SCRATCH = [120, 120, 120, 90]; // grid / scratch lines const ACCENT = [200, 100, 220]; // C-12 landmark (magenta) // ----- Physical constants for the SEMF ------------------------------- const M_H = 1.0078250; // u, hydrogen-1 atomic mass (absorbs e-) const M_N = 1.0086649; // u, free-neutron mass const U_PER_MEV = 1 / 931.494; // u per MeV/c^2 // Weizsacker coefficients (MeV) -- standard textbook values const A_V = 15.8; // volume term const A_S = 18.3; // surface term const A_C = 0.714; // Coulomb term const A_A = 23.2; // asymmetry term const A_P = 12.0; // pairing prefactor // ----- Chart range --------------------------------------------------- const N_MIN = 0; const N_MAX = 40; const Z_MIN = 0; const Z_MAX = 30; // ----- Plot rectangle in canvas pixels (set in setup) ---------------- let plotX, plotY, plotW, plotH; let cellW, cellH; // ----- Reader's grid marker (integer Z, N) -------------------------- let mark = { Z: 2, N: 2 }; // start on Helium-4 (the room mascot) let dragging = false; // Element symbols (Z = 0..30). Z=0 used only for the free neutron. const SYMBOLS = [ 'n', 'H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar', 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn' ]; // Element full names (used in the readout for variety). const NAMES = [ 'neutron', 'hydrogen', 'helium', 'lithium', 'beryllium', 'boron', 'carbon', 'nitrogen', 'oxygen', 'fluorine', 'neon', 'sodium', 'magnesium', 'aluminium', 'silicon', 'phosphorus','sulfur', 'chlorine', 'argon', 'potassium', 'calcium', 'scandium', 'titanium', 'vanadium', 'chromium', 'manganese', 'iron', 'cobalt', 'nickel', 'copper', 'zinc' ]; function setup() { createCanvas(720, 520); pixelDensity(2); textFont('system-ui'); // Plot area: leaves room for HUD top + readout bottom + axis labels. plotX = 80; plotY = 70; plotW = width - 110; plotH = height - 170; // Integer cell dimensions in pixels. cellW = plotW / (N_MAX - N_MIN + 1); cellH = plotH / (Z_MAX - Z_MIN + 1); } function draw() { background(BG); // Order: chart field -> axes -> drip-line accents -> landmarks // -> reader's marker -> HUD. Later layers paint on top. drawChartField(); drawAxes(); drawValleyAccent(); drawLandmarks(); drawMarker(); drawHUD(); } // ===================================================================== // Coordinate transforms: (N, Z) integers <-> (px, py) in canvas pixels // Z grows *upward*, so cell row 0 is at the bottom of the plot. // ===================================================================== function nToPx(N) { return plotX + (N - N_MIN) * cellW; } function zToPy(Z) { return plotY + plotH - (Z - Z_MIN + 1) * cellH; } function pxToN(px) { return Math.floor((px - plotX) / cellW) + N_MIN; } function pyToZ(py) { return Z_MAX - Math.floor((py - plotY) / cellH); } // ===================================================================== // Physics: SEMF binding energy, atomic mass, drip-line existence // ===================================================================== // Pairing term delta(A, Z) for the SEMF, in MeV. function pairingTerm(A, Z) { const N = A - Z; if (A <= 0) return 0; const zEven = (Z % 2 === 0); const nEven = (N % 2 === 0); if (zEven && nEven) return A_P / Math.sqrt(A); // even-even if (!zEven && !nEven) return -A_P / Math.sqrt(A); // odd-odd return 0; // odd-A } // Total binding energy B (MeV) from the SEMF. Falls apart for very // light nuclei but is fine for the colour ramp; we override the most // important landmarks (H-1, He-4, C-12, Fe-56) for the readout. function bindingEnergy(Z, N) { const A = Z + N; if (A <= 0) return 0; if (Z <= 0 && N === 1) return 0; // free neutron, unbound if (Z === 1 && N === 0) return 0; // hydrogen-1, no binding const vol = A_V * A; const surf = -A_S * Math.pow(A, 2 / 3); const coul = -A_C * Z * (Z - 1) / Math.pow(A, 1 / 3); const asym = -A_A * Math.pow(N - Z, 2) / A; const pair = pairingTerm(A, Z); return vol + surf + coul + asym + pair; } // Atomic mass m(A, Z) in u, using m = Z*m_H + N*m_n - B/c^2. function atomicMass(Z, N) { const A = Z + N; if (A <= 0) return 0; return Z * M_H + N * M_N - bindingEnergy(Z, N) * U_PER_MEV; } // AME-tabulated overrides for the famous landmarks. The SEMF gives B/A // within ~1 MeV for these, but the *exact* atomic mass values are // classroom-canonical and the readout must show them. function exactMass(Z, N) { if (Z === 2 && N === 2) return 4.002602; // He-4 if (Z === 6 && N === 6) return 12.000000; // C-12, defines u if (Z === 26 && N === 30) return 55.934937; // Fe-56 if (Z === 1 && N === 0) return 1.007825; // H-1 if (Z === 1 && N === 1) return 2.014102; // D if (Z === 0 && N === 1) return 1.008665; // free neutron return atomicMass(Z, N); } // Crude "does this nuclide exist" test: only nuclei whose SEMF B/A is // positive (and within rough drip-line bounds) get painted. This is a // schematic chart, not an AME-accurate one. function existsRoughly(Z, N) { const A = Z + N; if (A < 1) return false; if (Z === 0 && N > 1) return false; // no di-neutron etc. if (N === 0 && Z > 1) return false; // no di-proton etc. const B = bindingEnergy(Z, N); if (B <= 0) return false; // Approximate proton drip on the proton-rich side if (Z > 0 && N < 0.55 * Z - 0.5) return false; // Approximate neutron drip on the neutron-rich side (loose) if (Z > 4 && N > 2.4 * Z + 6) return false; return true; } // ===================================================================== // Colour ramp: B/A in MeV -> RGB on the COLD -> HOT scale // ===================================================================== function ramp(t) { // t in [0, 1]. Below 0.35 -> COLD (blue). Above 0.7 -> HOT (orange). // Middle uses a greenish bridge so the valley reads as a ridge. const tc = constrain(t, 0, 1); // Three control points: (0, COLD), (0.5, green-bridge), (1, HOT) const bridge = [120, 170, 90]; let r, g, b; if (tc < 0.5) { const u = tc / 0.5; r = lerp(COLD[0], bridge[0], u); g = lerp(COLD[1], bridge[1], u); b = lerp(COLD[2], bridge[2], u); } else { const u = (tc - 0.5) / 0.5; r = lerp(bridge[0], HOT[0], u); g = lerp(bridge[1], HOT[1], u); b = lerp(bridge[2], HOT[2], u); } return [r, g, b]; } // ===================================================================== // Drawing // ===================================================================== // Paint the (N, Z) chart of nuclides as a grid of small rectangles, // each tinted by B/A. ~1270 cells total -- well within frame budget. function drawChartField() { noStroke(); for (let Z = Z_MIN; Z <= Z_MAX; Z++) { for (let N = N_MIN; N <= N_MAX; N++) { const px = nToPx(N); const py = zToPy(Z); if (!existsRoughly(Z, N)) { // Faint grey tile for "no nuclide here" cells so the chart // outline still reads as a coherent rectangle. fill(STRUCT[0], STRUCT[1], STRUCT[2], 18); rect(px, py, cellW + 0.5, cellH + 0.5); continue; } const A = Z + N; const BA = bindingEnergy(Z, N) / A; // MeV per nucleon // Map B/A in [0, 9] MeV -> [0, 1] for the ramp. const t = constrain(BA / 9.0, 0, 1); const [r, g, b] = ramp(t); // Slight alpha boost for high-BA cells so the ridge pops. const a = 130 + 80 * t; fill(r, g, b, a); rect(px, py, cellW + 0.5, cellH + 0.5); } } } function drawAxes() { push(); noFill(); stroke(SCRATCH); strokeWeight(1); rect(plotX, plotY, plotW, plotH); noStroke(); fill(...DIM); textSize(10); // N-axis (x) tick marks every 5 + labels along the bottom edge. textAlign(CENTER, TOP); for (let N = 0; N <= N_MAX; N += 5) { const x = nToPx(N) + cellW / 2; stroke(SCRATCH); line(x, plotY + plotH, x, plotY + plotH + 4); noStroke(); text(N, x, plotY + plotH + 6); } // Z-axis (y) tick marks every 5 + labels along the left edge. textAlign(RIGHT, CENTER); for (let Z = 0; Z <= Z_MAX; Z += 5) { const y = zToPy(Z) + cellH / 2; stroke(SCRATCH); line(plotX - 4, y, plotX, y); noStroke(); text(Z, plotX - 6, y); } // Axis titles noStroke(); fill(...DIM); textSize(12); textAlign(CENTER, TOP); text('N (neutron number)', plotX + plotW / 2, plotY + plotH + 22); push(); translate(plotX - 50, plotY + plotH / 2); rotate(-PI / 2); text('Z (proton number)', 0, 0); pop(); // Z = N diagonal (light-nuclide guide) -- faint dashed line. stroke(SCRATCH); strokeWeight(1); drawingContext.setLineDash([4, 4]); const dN = Math.min(N_MAX, Z_MAX); line(nToPx(0) + cellW / 2, zToPy(0) + cellH / 2, nToPx(dN) + cellW / 2, zToPy(dN) + cellH / 2); drawingContext.setLineDash([]); noStroke(); fill(...DIM); textSize(9); textAlign(LEFT, BOTTOM); text('Z = N', nToPx(dN) + cellW / 2 + 4, zToPy(dN) + cellH / 2); pop(); } // Faint highlight along the schematic valley of stability: // for light nuclei Z = N; for heavier ones N grows ~1.5*Z. function drawValleyAccent() { push(); noFill(); stroke(TRAJ[0], TRAJ[1], TRAJ[2], 80); strokeWeight(1); beginShape(); for (let Z = 1; Z <= Z_MAX; Z++) { // Approximate N along the valley: Z below ~20 stays on Z=N, // then bends toward N ~ 1.5*Z for the heavy region. let N; if (Z <= 20) N = Z; else N = Z + 0.6 * (Z - 20); if (N > N_MAX) continue; vertex(nToPx(N) + cellW / 2, zToPy(Z) + cellH / 2); } endShape(); pop(); } function drawLandmarks() { push(); // Helium-4 (Z=2, N=2) -- yellow X (the room mascot, doubly magic) const heX = nToPx(2) + cellW / 2; const heY = zToPy(2) + cellH / 2; stroke(...TRAJ); strokeWeight(2); line(heX - 5, heY - 5, heX + 5, heY + 5); line(heX - 5, heY + 5, heX + 5, heY - 5); noStroke(); fill(...TRAJ); textSize(10); textAlign(LEFT, BOTTOM); text('He-4', heX + 7, heY - 3); // Carbon-12 (Z=6, N=6) -- magenta open circle (defines the u) noFill(); stroke(...ACCENT); strokeWeight(2); const cX = nToPx(6) + cellW / 2; const cY = zToPy(6) + cellH / 2; circle(cX, cY, 9); noStroke(); fill(...ACCENT); textSize(10); textAlign(LEFT, BOTTOM); text('C-12 (defines u)', cX + 7, cY - 3); // Iron-56 (Z=26, N=30) -- cyan ring at the binding-energy peak noFill(); stroke(...COLD); strokeWeight(2); const fX = nToPx(30) + cellW / 2; const fY = zToPy(26) + cellH / 2; circle(fX, fY, 9); noStroke(); fill(...COLD); textSize(10); textAlign(RIGHT, BOTTOM); text('Fe-56 (B/A peak)', fX - 7, fY - 3); pop(); } function drawMarker() { // Drag-to-update marker (integer cell snapping). if (dragging) { const px = constrain(mouseX, plotX, plotX + plotW - 1); const py = constrain(mouseY, plotY, plotY + plotH - 1); mark.N = constrain(pxToN(px), N_MIN, N_MAX); mark.Z = constrain(pyToZ(py), Z_MIN, Z_MAX); } const mx = nToPx(mark.N) + cellW / 2; const my = zToPy(mark.Z) + cellH / 2; push(); // Outer ring noFill(); stroke(...TRAJ); strokeWeight(2); rect(nToPx(mark.N), zToPy(mark.Z), cellW, cellH); // Inner crosshair stroke(...TRAJ); strokeWeight(1); line(mx - 4, my, mx + 4, my); line(mx, my - 4, mx, my + 4); pop(); } // ===================================================================== // Input handling // ===================================================================== function mousePressed() { // Inside the plot rect: snap marker to that cell and begin drag. if (mouseX >= plotX && mouseX < plotX + plotW && mouseY >= plotY && mouseY < plotY + plotH) { mark.N = constrain(pxToN(mouseX), N_MIN, N_MAX); mark.Z = constrain(pyToZ(mouseY), Z_MIN, Z_MAX); dragging = true; } } function mouseReleased() { dragging = false; } function keyPressed() { if (keyCode === LEFT_ARROW) mark.N = Math.max(N_MIN, mark.N - 1); if (keyCode === RIGHT_ARROW) mark.N = Math.min(N_MAX, mark.N + 1); if (keyCode === UP_ARROW) mark.Z = Math.min(Z_MAX, mark.Z + 1); if (keyCode === DOWN_ARROW) mark.Z = Math.max(Z_MIN, mark.Z - 1); } // ===================================================================== // HUD // ===================================================================== function drawHUD() { // Top-left: title + Wikitube URL (Betterfire Standard rule 2) noStroke(); fill(FG); textAlign(LEFT, TOP); textSize(20); text(TITLE, 14, 12); fill(...DIM); textSize(12); text('Wikitube microsim . en.wikitube.io/wiki/Atomic_mass', 14, 36); // Top-right: control hints (Betterfire Standard rule 3) textAlign(RIGHT, TOP); textSize(10); text('drag the chart to move', width - 14, 12); text('arrow keys nudge cell-by-cell', width - 14, 24); text('click anywhere in chart to jump',width - 14, 36); // Bottom-left readout: identify the selected nuclide. const Z = mark.Z; const N = mark.N; const A = Z + N; const sym = (Z >= 0 && Z < SYMBOLS.length) ? SYMBOLS[Z] : '?'; const name = (Z >= 0 && Z < NAMES.length) ? NAMES[Z] : '?'; const exists = existsRoughly(Z, N); fill(...DIM); textAlign(LEFT, BOTTOM); textSize(12); const tag = (Z === 0 && N === 1) ? 'n (free neutron)' : sym + '-' + A + ' (' + name + ')'; text('nuclide: ' + tag + ' Z = ' + Z + ' N = ' + N + ' A = ' + A, 14, height - 38); if (exists) { const m = exactMass(Z, N); const B = bindingEnergy(Z, N); const BA = A > 0 ? B / A : 0; // Mass defect vs. Z*m_H + N*m_n, expressed in u. const def = Z * M_H + N * M_N - m; fill(FG); textSize(13); text('m = ' + nf(m, 0, 4) + ' u B/A = ' + nf(BA, 0, 2) + ' MeV mass defect = ' + nf(def, 0, 4) + ' u', 14, height - 18); } else { fill(STRUCT[0], STRUCT[1], STRUCT[2], 220); textSize(13); text('(no bound nuclide at this Z, N -- beyond the drip lines)', 14, height - 18); } // Bottom-right: canonical equation (Betterfire Standard rule 4) textAlign(RIGHT, BOTTOM); fill(FG); textSize(12); text('m(A, Z) = Z*m_H + N*m_n - B/c^2', width - 14, height - 18); fill(...DIM); textSize(10); text('B from semi-empirical Weizsacker formula', width - 14, height - 4); } // ===================================================================== // End of Atomic_mass.js -- Wikitube microsim, Helium room, Pattern 8. // ===================================================================== ``` ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Atomic_mass.json (2026-07-30T02:09:12Z) --> `Amount_of_substance` · `Atom` · `Atomic_nucleus` · `Atomic_number` · `Average` · `Avogadro's_law` · `Avogadro_constant` · `Beryllium-8` · `Big_Bang_nucleosynthesis` · [[Binding_energy]] · `Boltzmann_constant` · `Boyle's_law` · [[Calcium]] · `Carbon-12` · `Charles's_law` · [[Chlorine]] · `Dalton_(unit)` · [[Density]] · [[Electron]] · `Faraday_constant` · `Gas_constant` · `Gay-Lussac's_law` · `History_of_chemistry` · [[Hydrogen]] · `Ideal_gas_law` · `Intensive_and_extensive_properties` · [[Ion]] · `Iron-56` · `Isotope` · `Isotope_geochemistry` · `Jean_Stas` · `John_Dalton` · `Journal_of_Chemical_Education` · `Karlsruhe_Congress` · `Kilogram` · [[Lithium]] · `Mass` · `Mass_concentration_(chemistry)` · `Mass_fraction_(chemistry)` · `Mass_number` · `Mass_spectrometry` · `Mass–energy_equivalence` · `Molality` · `Molar_concentration` · `Molar_mass` · `Molar_mass_constant` · `Molar_volume` · `Mole_(unit)` · `Mole_fraction` · `Molecular_mass` · `Molecule` · `Mononuclidic_element` · `National_Nuclear_Data_Center` · [[Neutron]] · `Neutron_number` · `Nickel-62` · [[Niobium]] · `Nuclear_binding_energy` · `Nuclear_fission` · [[Nuclear_fusion]] · `Nuclide` · [[Oxygen]] · `Particle_number` · `Pressure` · [[Proton]] · `Prout's_hypothesis` · `Relative_atomic_mass` · [[Scandium]] · `Specific_volume` · `Standard_atomic_weight` · `Stanislao_Cannizzaro` · `Thermodynamic_temperature` · `Thomas_Thomson_(chemist)` · `Triple-alpha_process` · `Tritium` · `Volume_(thermodynamics)` · [[Wayback_Machine]] · `Weighted_arithmetic_mean` · [[Zirconium]] ## From the Real GENERATIVE library (beauty pass) ![Atomic mass image](https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Stylised_atom_with_three_Bohr_model_orbits_and_stylised_nucleus.svg/220px-Stylised_atom_with_three_Bohr_model_orbits_and_stylised_nucleus.svg.png) *Atomic mass — image hotlinked from Wikimedia Commons (via the Real G.E.N.E.R.A.T.I.V.E. course library, Nuclear room). [Details & license](https://commons.wikimedia.org/wiki/File:Stylised_atom_with_three_Bohr_model_orbits_and_stylised_nucleus.svg).* > The atomic mass (ma or m) is the mass of an atom. Although the SI unit of mass is the kilogram (symbol: kg), atomic mass is often expressed in the non-SI unit dalton (symbol: Da) – equivalently, unified atomic mass unit (u). 1&#160;Da is defined as 1&#8260;12 of the mass of a free carbon-12 atom at rest in its ground state.&#91;1&#93; The protons and neutrons of the nucleus account for nearly all of the total mass of atoms, with the electrons and nuclear binding energy making minor contributions ([Wikipedia](https://en.wikipedia.org/wiki/Atomic_mass)) <!-- BEAUTY-PASS-MEDIA:END --> > **Room:** [[Helium]] · **Status:** ✅ shipped ## Overview The **atomic mass** of an isotope is the mass of one neutral atom of that nuclide, conventionally expressed in **unified atomic mass units (u)** or **daltons (Da)**, where 1 u is defined as exactly 1/12 the mass of a neutral, ground-state atom of carbon-12 (1 u is approximately 1.66053906660e-27 kg). For any nuclide of mass number A and atomic number Z, with N = A - Z neutrons, the atomic mass m(A,Z) is *not* simply Z*m(p) + N*m(n) + Z*m(e): it is systematically smaller by an amount E_B/c^2, where E_B is the total nuclear binding energy. This **mass defect** is captured to within a few hundred keV across the chart of nuclides by the semi-empirical (Weizsacker) mass formula E_B = a_V*A - a_S*A^(2/3) - a_C*Z(Z-1)/A^(1/3) - a_A*(N-Z)^2/A + delta, whose terms encode volume, surface, Coulomb, asymmetry, and pairing contributions. The [[Binding_energy|binding energy]] per nucleon E_B/A peaks near A approximately 56 (the iron-nickel region), explaining why both fusion of light nuclei and fission of heavy nuclei release [[Energy|energy]]. Distinct from atomic mass are the **mass number** A (an integer count of nucleons), the **standard atomic weight** (a CIAAW-published, isotope-weighted average for natural samples), and the **relative atomic mass** A_r (a dimensionless ratio to 1/12 m(C-12)). Helium-4, with m approximately 4.002602 u and an exceptionally large binding energy per nucleon (about 7.07 MeV), is the prototypical doubly-magic nucleus and the standard reference for alpha-decay energetics. Modern atomic-mass values are tabulated in the AME evaluations and measured by Penning-trap mass spectrometry to precisions approaching one part in 10^11. ## See also - Room hub: [[Helium]] - p5.js Editor conventions: P5 JS EDITOR - Wiki root: MAIN --- *Scaffolded by `generative-microsim` from row 130 of the Helium sheet on 2026-05-14T12:30:31Z.* <!-- BEAUTY-PASS-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/Atomic_mass) : [Wikitube](https://en.wikitube.io/wiki/Atomic_mass) ## Previous hub tags Tree parents: [[Helium-3]] · [[Oxygen]]. Legacy hubs: `GENERATIVE`. --- *Sources: 2 legacy notes. Minted wave 1, 2026-07-30 (v1.6 order).*