# Nucleosynthesis <!-- MICROSIMGEN:BEGIN v1.7 — generated by g08_place_microsims.py; three.js first (§15); do not hand-edit inside --> ## Microsims — three.js ### Nucleosynthesis (three.js) <div class="microsim-player"> <iframe src="https://wikitube-3d-microsims.netlify.app/Nucleosynthesis.html" width="100%" height="620" frameborder="0" loading="lazy" sandbox="allow-scripts allow-same-origin" title="Nucleosynthesis — three.js microsim"></iframe> </div> **Open it full-screen:** [Nucleosynthesis.html](https://wikitube-3d-microsims.netlify.app/Nucleosynthesis.html) · library `threejs` · route `microsim/threejs/` *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/Tpchmb17V" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> </div> <div class="microsim-fallback"> <img src="Microsims/thumbs/Nucleosynthesis.png" alt="Nucleosynthesis 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/Tpchmb17V">open sketch in the p5.js editor</a></em></p> </div> **Editor URL:** https://editor.p5js.org/sciencenibber/sketches/Tpchmb17V **Description (100 words):** A box of color-coded nucleons (red protons, blue neutrons) bounces at thermal speeds set by the temperature slider. Pairs that touch may fuse along a simplified BBN/pp-chain reaction network — first to deuterons (green), then helium-3 (cyan), helium-4 (yellow), and, above the triple-alpha threshold, carbon-12 (magenta). The mass-fraction bars on the right track each species live, with a tick marking the canonical BBN value Y_p = 0.25. Click BBN preset to watch temperature decay exponentially and the helium-4 yield freeze near a quarter; click Stellar core to hold T fixed; drag the [[Density|density]] slider, then reset, to vary the baryon count. ```js // ===================================================================== // Nucleosynthesis.js -- Wikitube microsim // Article: Nucleosynthesis en.wikitube.io/wiki/Nucleosynthesis // Room: Helium Pattern: E (particle systems, // kinetic phenomena) // --------------------------------------------------------------------- // Idea: a 2D box of nucleons fusing in real time. Protons (warm-red) // and neutrons (cool-blue) drift with thermal velocities at temperature // T; pairs that approach within a capture radius fuse stochastically // according to a simplified Big Bang / pp-chain reaction network. The // reader chooses temperature and density and watches the mass-fraction // bars evolve: hydrogen falling from 1.0 toward 0.75, helium-4 rising // toward the canonical 0.25, deuterium and helium-3 spiking and // decaying as the intermediates burn through. // // Two presets: // // * BBN T starts at ~3.5 GK (scaled) and cools exponentially // toward freeze-out over ~30 seconds. The light-element // yield converges on the canonical helium-4 mass // fraction Y_p ~ 0.25 (precise CMB value 0.245). // // * Stellar core T fixed by slider. Above the triple-alpha threshold // (~10^8 K) three helium-4 nuclei occasionally fuse to // carbon-12, which is how every carbon atom in your // body was made. // // Reaction network (simplified, Wagoner-style; energies / gammas // suppressed for clarity): // // p + n -> D (deuterium production) // p + D -> He-3 (pp-chain step 2) // D + D -> He-4 (BBN main channel) // D + D -> He-3 + n (BBN branching) // n + He-3 -> He-4 (BBN burn-up) // D + He-3 -> He-4 + p (pp-II / BBN side branch) // He-3 + He-3 -> He-4 + 2 p (pp-I termination) // 3 He-4 -> C-12 (triple-alpha, T > 10^8 K) // // Each reaction's probability is gated by a sigmoid Coulomb-barrier // penetration factor pen(T - T_th) — a cartoon of the Gamow factor // exp(-(E_G/E)^{1/2}) that governs real cross sections. // // Canonical equation (bottom-right of HUD), the textbook expression // for the BBN helium-4 mass fraction once the weak interactions have // frozen out the neutron-to-proton ratio: // // Y_p = 2 (n/p) / [1 + (n/p)] ~ 0.25 // // Visual layout (720 x 520 canvas): // // top-left HUD title + en.wikitube.io/wiki/Nucleosynthesis // subtitle (Betterfire Standard rules 1 + 2) // top-right era label, sim time, current T, particle count // left center particle box (~520 x 340), nucleons as colored // circles bouncing off the walls // right mass-fraction bars X(H), X(D), X(He-3), X(He-4), // X(C-12), with the 0.25 reference tick on He-4 // bottom controls (T slider, density slider, BBN button, // stellar button, reset button) // bottom-right canonical equation (Betterfire Standard rule 4) // // Color key (Energy-room palette + astrophysical accents): // // proton p warm red HOT // neutron n cool blue COLD // deuteron D green // helium-3 cyan // helium-4 yellow TRAJ // carbon-12 magenta ACCENT // // 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, arrows, dots) lives in COMMENTS ONLY; every // text() string literal is ASCII (the editor preview pipeline // mangles non-ASCII in strings) // * Energy-room palette (P5_JS_EDITOR section 4): dark BG, HOT/COLD // tones, STRUCT grey, TRAJ accent // * drawHUD() factored and called once from draw() // ===================================================================== const ARTICLE = 'Nucleosynthesis'; const TITLE = ARTICLE.replace(/_/g, ' '); p5.disableFriendlyErrors = true; // ----- Energy room palette (P5_JS_EDITOR section 4, line 165) -------- const BG = 18; const FG = 240; const DIM = [240, 240, 240, 140]; const HOT = [220, 110, 60]; // proton (warm red) const COLD = [60, 130, 220]; // neutron (cool blue) const STRUCT = [120, 130, 150]; // gridlines, structural grey const TRAJ = [240, 220, 80]; // helium-4 (yellow accent) const ACCENT = [200, 100, 220]; // carbon-12 (magenta) const DGREEN = [120, 200, 110]; // deuteron (green) const HE3 = [120, 200, 220]; // helium-3 (lighter cyan) // ----- Particle species, masses, radii, colors ----------------------- const MASS = { p: 1, n: 1, D: 2, He3: 3, He4: 4, C12: 12 }; const RAD = { p: 4, n: 4, D: 5, He3: 6, He4: 7, C12: 10 }; const COLR = { p: HOT, n: COLD, D: DGREEN, He3: HE3, He4: TRAJ, C12: ACCENT }; // ----- Particle box geometry (set in setup) -------------------------- let boxX, boxY, boxW, boxH; // ----- Mass-fraction bars geometry ----------------------------------- const BAR_X = 555; const BAR_Y = 90; const BAR_W = 150; const BAR_ROW_H = 48; // ----- Sim state ----------------------------------------------------- let parts = []; let T = 200; // temperature in scaled units (1 unit ~ 10^7 K) let baryons = 220; // initial nucleon count let era = 'stellar'; // 'bbn' or 'stellar' let simTime = 0; // seconds since last reset let bbnElapsed = 0; // BBN cooling clock // ----- UI handles ---------------------------------------------------- let tSlider, nSlider, bbnBtn, stellarBtn, resetBtn; function setup() { createCanvas(720, 520); pixelDensity(2); textFont('system-ui'); // Particle box layout (left ~530 px of canvas) ----------------------- boxX = 14; boxY = 70; boxW = 520; boxH = 340; // Bottom controls (Betterfire Standard rule: sliders positioned) ----- tSlider = createSlider(2, 400, 200, 1).position(14, 440).size(220); nSlider = createSlider(50, 400, 220, 10).position(14, 472).size(220); bbnBtn = createButton('BBN preset') .position(254, 440); stellarBtn = createButton('Stellar core') .position(348, 440); resetBtn = createButton('reset') .position(254, 472); bbnBtn.mousePressed(startBBN); stellarBtn.mousePressed(startStellar); resetBtn.mousePressed(initParticles); initParticles(); } // ===================================================================== // Initialization and presets // ===================================================================== function initParticles() { parts = []; baryons = nSlider.value(); // Initial mix: 50/50 p/n. (Real BBN starts post weak-freeze-out at // n/p ~ 1/7, but a 1:1 start lets the reader see the canonical Y_p // result emerge from a clean symmetric initial condition.) for (let i = 0; i < baryons; i++) { const type = (random() < 0.5) ? 'p' : 'n'; const x = boxX + 8 + random() * (boxW - 16); const y = boxY + 8 + random() * (boxH - 16); const speed = sqrt(T) * 0.06; const ang = random(TWO_PI); parts.push({ type: type, x: x, y: y, vx: cos(ang) * speed, vy: sin(ang) * speed, r: RAD[type] }); } simTime = 0; bbnElapsed = 0; } function startBBN() { // Big Bang preset: hot start, then exponential cooling. era = 'bbn'; tSlider.value(350); T = 350; initParticles(); } function startStellar() { // Stellar-core preset: temperature held at the slider value. era = 'stellar'; T = tSlider.value(); initParticles(); } // ===================================================================== // Per-frame loop // ===================================================================== function draw() { background(BG); // 1. Drive temperature. Stellar = slider-controlled. BBN = decay. if (era === 'bbn') { bbnElapsed += deltaTime / 1000; T = 350 * Math.exp(-bbnElapsed / 8) + 5; tSlider.value(Math.round(T)); } else { T = tSlider.value(); } simTime += deltaTime / 1000; // 2. Advance particles (thermalize then translate, then wall bounce). advanceParticles(); // 3. Pairwise reactions (Coulomb-barrier-gated stochastic fusion). doReactions(); // 4. Triple-alpha (only matters at high T; cheap probabilistic check). if (T > 230) doTripleAlpha(); // 5. Draw the box frame and the particles. drawBox(); drawParticles(); // 6. Right-column mass-fraction bars. drawMassFractions(); // 7. HUD (title, era, equation). drawHUD(); } // ===================================================================== // Particle dynamics // ===================================================================== function advanceParticles() { // Target thermal speed v_rms ~ sqrt(T / m). We lerp each particle's // current speed toward its target so collisions and reactions damp // back toward a Maxwell-Boltzmann-like distribution. for (const p of parts) { const vTarget = sqrt(T / MASS[p.type]) * 0.07; const cur = sqrt(p.vx * p.vx + p.vy * p.vy); if (cur > 1e-6) { const sc = lerp(1, vTarget / cur, 0.04); p.vx *= sc; p.vy *= sc; } else { const ang = random(TWO_PI); p.vx = cos(ang) * vTarget; p.vy = sin(ang) * vTarget; } p.x += p.vx; p.y += p.vy; // Wall bounce with clamp to keep particles inside the box. if (p.x < boxX + p.r) { p.x = boxX + p.r; p.vx *= -1; } if (p.x > boxX + boxW - p.r) { p.x = boxX + boxW - p.r; p.vx *= -1; } if (p.y < boxY + p.r) { p.y = boxY + p.r; p.vy *= -1; } if (p.y > boxY + boxH - p.r) { p.y = boxY + boxH - p.r; p.vy *= -1; } } } // ===================================================================== // Reaction network // ===================================================================== function pen(threshold) { // Sigmoid Coulomb-barrier penetration factor. Stand-in for the real // Gamow factor; what matters is that the rate vanishes below T_th and // saturates above it. return 1 / (1 + Math.exp(-(T - threshold) / 6)); } function tryReact(a, b) { // Returns the array of product types for a fusion of (a, b), or null. // Order-independent on the input pair. const ta = a.type, tb = b.type; const isPair = (x, y) => (ta === x && tb === y) || (ta === y && tb === x); if (isPair('p', 'n') && random() < 0.50 * pen(2)) return ['D']; if (isPair('p', 'D') && random() < 0.35 * pen(10)) return ['He3']; if (isPair('D', 'D') && random() < 0.25 * pen(15)) { return (random() < 0.5) ? ['He4'] : ['He3', 'n']; } if (isPair('n', 'He3') && random() < 0.40 * pen(8)) return ['He4']; if (isPair('D', 'He3') && random() < 0.20 * pen(20)) return ['He4', 'p']; if (isPair('He3', 'He3') && random() < 0.30 * pen(35)) return ['He4', 'p', 'p']; return null; } function doReactions() { // O(N^2) pair iteration. With N <= 400 this is ~80k checks per frame, // well within budget on modern hardware. const N = parts.length; for (let i = 0; i < N; i++) { const a = parts[i]; if (a === null) continue; for (let j = i + 1; j < N; j++) { const b = parts[j]; if (b === null) continue; const dx = b.x - a.x; const dy = b.y - a.y; const rsum = a.r + b.r + 2; if (dx * dx + dy * dy > rsum * rsum) continue; const products = tryReact(a, b); if (!products) continue; // Replace the pair with the fusion products at the centroid. const cx = (a.x + b.x) / 2; const cy = (a.y + b.y) / 2; const cvx = (a.vx + b.vx) / 2; const cvy = (a.vy + b.vy) / 2; parts[i] = null; parts[j] = null; for (const t of products) { parts.push({ type: t, x: cx + random(-3, 3), y: cy + random(-3, 3), vx: cvx + random(-0.4, 0.4), vy: cvy + random(-0.4, 0.4), r: RAD[t] }); } break; } } parts = parts.filter(p => p !== null); } function doTripleAlpha() { // Triple-alpha: 3 He-4 -> C-12. In stars this proceeds through the // Hoyle resonance at 7.65 MeV; here we just probe random triples // mutually close enough, gated by a high-T sigmoid. const he4 = []; for (let i = 0; i < parts.length; i++) { if (parts[i] && parts[i].type === 'He4') he4.push(i); } if (he4.length < 3) return; const pHigh = 1 / (1 + Math.exp(-(T - 250) / 8)); // A small number of trials per frame is plenty — triple-alpha is rare. const trials = 6; for (let k = 0; k < trials; k++) { if (he4.length < 3) break; const i = floor(random(he4.length)); let j = floor(random(he4.length)); let m = floor(random(he4.length)); if (i === j || j === m || i === m) continue; const a = parts[he4[i]]; const b = parts[he4[j]]; const c = parts[he4[m]]; if (!a || !b || !c) continue; const close = (x, y) => { const dx = x.x - y.x, dy = x.y - y.y; return (dx * dx + dy * dy) < 900; // within 30 px }; if (!(close(a, b) && close(b, c) && close(a, c))) continue; if (random() < 0.15 * pHigh) { const cx = (a.x + b.x + c.x) / 3; const cy = (a.y + b.y + c.y) / 3; parts[he4[i]] = null; parts[he4[j]] = null; parts[he4[m]] = null; parts.push({ type: 'C12', x: cx, y: cy, vx: 0, vy: 0, r: RAD['C12'] }); // Remove the three indices from the local helper list (descending). const drop = [i, j, m].sort((x, y) => y - x); for (const idx of drop) he4.splice(idx, 1); } } parts = parts.filter(p => p !== null); } // ===================================================================== // Drawing helpers // ===================================================================== function drawBox() { push(); noFill(); stroke(...STRUCT, 120); strokeWeight(1); rect(boxX, boxY, boxW, boxH); pop(); } function drawParticles() { noStroke(); for (const p of parts) { fill(...COLR[p.type]); circle(p.x, p.y, p.r * 2); } } function massFractions() { // Mass-weighted fractions over the current particle population. let total = 0; const X = { p: 0, n: 0, D: 0, He3: 0, He4: 0, C12: 0 }; for (const p of parts) { X[p.type] += MASS[p.type]; total += MASS[p.type]; } if (total > 0) { for (const k of Object.keys(X)) X[k] /= total; } return X; } function drawMassFractions() { const X = massFractions(); const rows = [ { label: 'X(H = p + n)', val: X.p + X.n, col: HOT }, { label: 'X(D)', val: X.D, col: DGREEN }, { label: 'X(He-3)', val: X.He3, col: HE3 }, { label: 'X(He-4)', val: X.He4, col: TRAJ }, { label: 'X(C-12)', val: X.C12, col: ACCENT } ]; push(); // Section heading. noStroke(); fill(...DIM); textSize(11); textAlign(LEFT, BOTTOM); text('mass fractions', BAR_X, BAR_Y - 6); for (let i = 0; i < rows.length; i++) { const r = rows[i]; const y = BAR_Y + i * BAR_ROW_H; // Row label. fill(...DIM); textSize(11); textAlign(LEFT, BOTTOM); text(r.label, BAR_X, y); // Bar background. noStroke(); fill(...STRUCT, 60); rect(BAR_X, y + 4, BAR_W, 12); // Filled bar. fill(...r.col); rect(BAR_X, y + 4, constrain(r.val, 0, 1) * BAR_W, 12); // Numeric readout. fill(...DIM); textSize(10); textAlign(RIGHT, TOP); text(nf(r.val, 1, 3), BAR_X + BAR_W, y + 20); } // BBN reference tick on the He-4 row at Y_p = 0.25. const heRowY = BAR_Y + 3 * BAR_ROW_H + 4; stroke(255); strokeWeight(1); const tickX = BAR_X + 0.25 * BAR_W; line(tickX, heRowY - 3, tickX, heRowY + 15); noStroke(); fill(255); textSize(9); textAlign(LEFT, TOP); text('BBN Y_p = 0.25', tickX + 4, heRowY + 16); pop(); } // ===================================================================== // HUD (Betterfire Standard) // ===================================================================== function drawHUD() { // Top-left: title + Wikitube URL subtitle (rules 1 + 2). noStroke(); fill(FG); textAlign(LEFT, TOP); textSize(22); text(TITLE, 14, 12); fill(...DIM); textSize(12); text('Wikitube microsim . en.wikitube.io/wiki/Nucleosynthesis', 14, 40); // Top-right: era + time + temperature + particle count. textAlign(RIGHT, TOP); textSize(11); fill(...DIM); const eraLabel = (era === 'bbn') ? 'BBN cooling' : 'stellar core'; text(eraLabel, width - 14, 12); text('t = ' + nf(simTime, 0, 1) + ' s', width - 14, 26); text('T = ' + nf(T, 0, 1) + ' (units 10^7 K)',width - 14, 40); text('N = ' + parts.length + ' nuclei', width - 14, 54); // Slider / button labels along the bottom of the canvas. textAlign(LEFT, BOTTOM); textSize(11); fill(...DIM); text('Temperature (10^7 K)', 14, 437); text('Initial baryons (count)', 14, 469); // Bottom-right: canonical equation (rule 4). textAlign(RIGHT, BOTTOM); fill(FG); textSize(13); text('Y_p = 2 (n/p) / [1 + (n/p)] = 0.25', width - 14, height - 6); // Bottom-left readout: current He-4 mass fraction vs. the BBN target. const X = massFractions(); textAlign(LEFT, BOTTOM); fill(FG); textSize(12); text('current X(He-4) = ' + nf(X.He4, 1, 3), 14, height - 6); } // ===================================================================== // End of Nucleosynthesis.js -- Wikitube microsim, Helium room, Pattern E. // ===================================================================== ``` ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Nucleosynthesis.json (2026-07-30T02:09:12Z) --> `(n-p)_reaction` · `Abundance_of_the_chemical_elements` · `Accretion_disk` · [[Alpha_decay]] · `Alpha_nuclide` · [[Alpha_particle]] · `Alpha_process` · [[Aluminium]] · `Annals_of_Physics` · `Annual_Review_of_Astronomy_and_Astrophysics` · [[Argon]] · `Asymptotic_giant_branch` · `B2FH_paper` · [[Barium]] · [[Beryllium]] · `Beryllium-8` · [[Beta_decay]] · `Big_Bang` · `Big_Bang_nucleosynthesis` · `Binary_star` · [[Binding_energy]] · `Black_hole` · [[Boron]] · `Brian_D._Metzger` · `CNO_cycle` · `Cambridge_University_Press` · [[Carbon]] · `Carbon-14` · `Carbon-burning_process` · `Cluster_decay` · `Compton_Gamma_Ray_Observatory` · `Cosmic_dust` · `Cosmic_microwave_background` · `Cosmic_ray` · `Cosmic_ray_spallation` · `Cosmogenic_nuclide` · `Decoupling_(cosmology)` · `Degenerate_matter` · `Deuterium` · `Deuterium_fusion` · `Donald_D._Clayton` · `Double_beta_decay` · `Double_electron_capture` · `Electron_capture` · `Electronvolt` · [[Europium]] · `Fermi_Gamma-ray_Space_Telescope` · `Fred_Hoyle` · `French_Alternative_Energies_and_Atomic_Energy_Commission` · `GW170817` · `Gamma-ray_astronomy` · `Gamma_ray` · `Geoffrey_Burbidge` · `Georges_Lemaître` · `Gravitational_wave` · [[Half-life]] · `Hans_Bethe` · `Hans_Suess` · `Harold_Urey` · [[Helium]] · [[Helium-3]] · [[Helium-4]] · [[Hydrogen]] · `Internal_conversion` · `Interstellar_medium` · `Iodine-129` · [[Iron]] · `Iron_group` · `Iron_peak` · `Isobar_(nuclide)` · `Isotope` · `Isotopes_of_lead` · `Kelvin` · `LIGO` · [[Lithium]] · `Lithium_burning` · `Logarithmic_scale` · `Lund_University` · [[Magnesium]] · `Magnetar` · `Manhattan_Project` · `Margaret_Burbidge` · `Metallicity` · `Meteorite` · `Meteoroid` · `Monthly_Notices_of_the_Royal_Astronomical_Society` · `Nature_(journal)` · `Neon-burning_process` · [[Neutron]] · `Neutron_capture` · `Neutron_emission` · `Neutron_star_merger` · [[Nickel]] · [[Nitrogen]] · `Nova` · `Nuclear_reaction` · `Nucleogenic` · `Nucleon` · [[Oxygen]] · `Oxygen-burning_process` · `P-process` · `Pejorative` · `Photodisintegration` · `Photofission` · `Planetary_nebula` · [[Plasma_(physics)]] · [[Plutonium]] · [[Polonium]] · [[Positron_emission]] · `Potassium-40` · `Presolar_grains` · `Primordial_nuclide` · [[Promethium]] · [[Proton]] · `Proton_capture` · `Proton_emission` · `Proton–proton_chain` · `Quark–gluon_plasma` · `R-process` · [[Radioactive_decay]] · [[Radon]] · `Red_giant` · `Reviews_of_Modern_Physics` · `Rp-process` · [[Rubidium]] · `S-process` · [[Science_(journal)]] · [[Silicon]] · `Silicon-burning_process` · `Smithsonian_(magazine)` · `Solar_System` · `Spallation` · `Spectroscopy` · [[Spontaneous_fission]] · `Star` · `Stellar_atmosphere` · `Stellar_core` · `Stellar_evolution` · `Stellar_nucleosynthesis` · `Stellar_wind` · [[Sulfur]] · `Supernova` · `Supernova_nucleosynthesis` · [[Technetium]] · `The_Astrophysical_Journal` · `The_Observatory_(journal)` · `Thorium-232` · `Triple-alpha_process` · `Type_Ia_supernova` · `Universe` · `University_of_Chicago_Press` · `Uranium-235` · `Uranium-238` · `Virgo_interferometer` · `White_dwarf` · `Wiley-VCH` · `World_Scientific` · `World_War_II` ## From the Real GENERATIVE library ![Nucleosynthesis](https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Kernfusionen1_en.png/220px-Kernfusionen1_en.png) *Nucleosynthesis — 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:Kernfusionen1_en.png).* > Nucleosynthesis is the process that creates new atomic nuclei from pre-existing nucleons (protons and neutrons) and nuclei. According to current theories, the first nuclei were formed a few minutes after the Big Bang, through nuclear reactions in a process called Big Bang nucleosynthesis.[1] After about 20 minutes, the universe had expanded and cooled to a p ([Wikipedia](https://en.wikipedia.org/wiki/Nucleosynthesis)) <!-- REAL-GENERATIVE-MEDIA:END --> <!-- LOCAL-MEDIA-PASS:START --> ## From the vault media library !Nucleosynthesis thumb.png *Nucleosynthesis — 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 Nucleosynthesis is the formation of atomic nuclei through nuclear reactions, encompassing two principal eras: Big Bang nucleosynthesis (BBN) in the first minutes of cosmic time, and stellar nucleosynthesis operating since the first generation of stars. BBN occurred when the universe cooled below roughly 1 GK, allowing protons and neutrons to fuse once the deuterium bottleneck cleared; freeze-out yielded approximately 75% hydrogen and 25% helium-4 by mass, with trace deuterium (~2×10⁻⁵), helium-3, and lithium-7. The baryon-to-[[Photon|photon]] ratio η ≈ 6×10⁻¹⁰, measured independently by Planck CMB observations, is the only free parameter and matches observed primordial abundances within a few percent — a central empirical pillar of hot Big Bang cosmology. Stellar nucleosynthesis builds heavier elements. Hydrogen burns via the pp chain in solar-mass stars and the CNO cycle in more massive stars. Helium burning proceeds through the triple-alpha process — 3 He-4 → C-12 — at T ~ 10⁸ K, exploiting the Hoyle resonance to bridge the absence of stable mass-5 and mass-8 nuclei. Successive shell burning produces oxygen, neon, magnesium, and silicon up to the iron peak, beyond which [[Nuclear_fusion|nuclear fusion]] is no longer exothermic. Elements heavier than iron require [[Neutron|neutron]] capture: the slow s-process in AGB stars and the rapid r-process in neutron-star mergers and core-collapse supernovae. The Burbidge, Burbidge, Fowler, and Hoyle (B²FH) synthesis of 1957 formalized these channels and remains the framework underpinning modern astrophysics, cosmology, and fusion-[[Energy|energy]] [[Science|science]]. ## See also - Room hub: [[Helium]] - p5.js Editor conventions: P5 JS EDITOR - Wiki root: MAIN --- *Scaffolded by `generative-microsim` from row 68 of the Helium sheet on 2026-05-12T05:13:24Z.* <!-- 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/Nucleosynthesis) : [Wikitube](https://en.wikitube.io/wiki/Nucleosynthesis) ## Previous hub tags Tree parents: [[Helium]] · [[Hydrogen]] · [[Oxygen]]. Legacy hubs: none. --- *Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*