# Boson
<!-- MICROSIMGEN:BEGIN v1.7 — generated by g08_place_microsims.py; three.js first (§15); do not hand-edit inside -->
## Microsims — three.js
### Boson (three.js)
<div class="microsim-player">
<iframe src="https://wikitube-3d-microsims.netlify.app/Boson.html" width="100%" height="620" frameborder="0" loading="lazy" sandbox="allow-scripts allow-same-origin" title="Boson — three.js microsim"></iframe>
</div>
**Open it full-screen:** [Boson.html](https://wikitube-3d-microsims.netlify.app/Boson.html) · library `threejs` · route `microsim/threejs/`
### Related microsims
Live sims on neighbouring articles — 2 of them inside this article's own Wikipedia link tree:
- [[Superconductivity]] *(in tree)*
- [[Superfluid_helium-4]] *(in tree)*
- [[Dilution_refrigerator]]
- [[Zero-point_energy]]
*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/7nuN8HWjc" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe>
</div>
<div class="microsim-fallback">
<img src="Microsims/thumbs/Boson.png" alt="Boson 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/7nuN8HWjc">open sketch in the p5.js editor</a></em></p>
</div>
**Editor URL:** https://editor.p5js.org/sciencenibber/sketches/7nuN8HWjc
**Description (100 words):**
The microsim shows two side-by-side energy ladders, each holding ten discrete levels. The left column distributes particles under Bose-Einstein statistics; the right column under Fermi-Dirac. Two sliders let the reader set temperature T (in units of the level spacing) and total particle number N. Each frame the sketch bisects on the chemical potential to enforce the particle count, then draws as many dots per rung as the expected occupation. Cooling collapses the bosonic column into a glowing ground state — visible Bose-Einstein condensation — while the fermionic column fills levels from the bottom up to a dashed Fermi-energy marker.
```js
// =====================================================================
// Boson.js -- Wikitube microsim
// Article: Boson en.wikitube.io/wiki/Boson
// Room: Helium Pattern: E (particle field over
// a discrete energy ladder)
// ---------------------------------------------------------------------
// Idea: a side-by-side ladder diagram contrasting bosonic statistics
// (left column) with fermionic statistics (right column). Particles
// fall into a discrete set of energy levels under either:
//
// Bose-Einstein: n_BE(E) = 1 / (exp((E - mu) / kT) - 1)
// Fermi-Dirac: n_FD(E) = 1 / (exp((E - mu) / kT) + 1)
//
// Two sliders drive the experiment: temperature T (in units of the
// level spacing) and total particle number N. As T drops, the bosonic
// column collapses into the ground state -- this is the visual essence
// of Bose-Einstein condensation, the phenomenon that makes helium-4 a
// superfluid below 2.17 K. The fermionic column instead fills levels
// from the bottom up to the Fermi energy E_F, one particle per state
// per spin (the Pauli exclusion principle).
//
// Helium hook: He-4 (2 protons + 2 neutrons + 2 electrons = 6 fermions
// with paired spins) is a composite boson and condenses macroscopically
// below the lambda point. He-3 has odd nucleon count and is a fermion;
// it only "condenses" via Cooper pairing into bosonic dimers below
// 2.6 mK. The same ladder picture explains both behaviors.
//
// Mathematical model used in the sketch
// -------------------------------------
// The microsim uses dimensionless units: energies are integer multiples
// of a level spacing epsilon, temperature is T (in units of epsilon/k),
// and the chemical potential mu is iteratively solved from
//
// N = sum_{i=0}^{L-1} g_i / (exp((E_i - mu) / T) -/+ 1)
//
// for each statistics. L = number of levels shown (10), g_i = level
// degeneracy (set to 1 throughout for clarity), and the +/- sign
// switches between Fermi-Dirac and Bose-Einstein. A bisection over
// mu in the range (-inf, E_0) for bosons / (-inf, +inf) for fermions
// converges in <30 iterations to N within 1e-4. Once mu is known,
// each level's expected occupation determines the number of dots drawn
// on that rung.
//
// Visual layout (720 x 520 canvas)
// --------------------------------
// top-left: HUD title (22pt) + en.wikitube.io/wiki/Boson subtitle
// top-right: live readouts (T, N, mu_B, mu_F, n0_BE/N, E_F)
// center-left: BOSON column -- 10 horizontal rungs, particles
// stacked as filled circles; ground-state highlight
// grows as condensate fraction n0/N -> 1
// center-right:FERMION column -- same 10 rungs, dots fill bottom
// up; level above Fermi energy is rendered dim
// sliders: T (0.05 .. 4.0) and N (5 .. 200) docked bottom-left
// bottom-right:canonical equation n_BE(E) = 1 / (exp((E - mu) / kT) - 1)
//
// Conventions (Wikitube Betterfire Standard v0)
// ---------------------------------------------
// * single ARTICLE constant at the top, single quotes
// * p5.disableFriendlyErrors = true
// * pixelDensity(2) + textFont('system-ui') for editor-clean rendering
// * every createSlider has .position(x, y).size(w)
// * non-ASCII (epsilon, lambda, mu, dots) lives in COMMENTS only;
// every text() literal is plain ASCII
// * Energy-room palette (P5_JS_EDITOR section 4)
// =====================================================================
const ARTICLE = 'Boson';
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, 150];
const HOT = [220, 110, 60]; // warm: fermion side accent
const COLD = [60, 130, 220]; // cool: boson side accent
const STRUCT = [120, 130, 150]; // grey: rungs, axes, scratch
const TRAJ = [240, 220, 80]; // accent: highlight ground state
const ACCENT = [200, 100, 220]; // accent: Fermi level marker
// ----- Model parameters ----------------------------------------------
const L = 10; // number of discrete energy levels shown
const LEVEL_GAP = 30; // pixels between rungs on screen
const COL_W = 230; // width of each column (boson / fermion)
const LADDER_TOP = 110; // y of the highest level (E = 9 epsilon)
const DOT_R = 5; // particle marker radius (pixels)
// Level energies in units of epsilon: E_i = i for i = 0 .. L-1.
// Degeneracy g_i is 1 for every level (simplest case; the real He-4 gas
// in a 3D box has g_i ~ sqrt(E), but the lesson is the same).
let tSlider, nSlider;
// ===================================================================
// setup(): build the canvas, sliders, and one-time text settings.
// ===================================================================
function setup() {
createCanvas(720, 520);
pixelDensity(2);
textFont('system-ui');
textSize(13);
// Sliders docked at the bottom-left. Range matches the regime where
// the two statistics differ visibly: T < 1 epsilon shows condensation
// for bosons; T >> 1 epsilon makes both distributions agree
// (classical Maxwell-Boltzmann limit).
tSlider = createSlider(0.05, 4.0, 0.6, 0.01).position(20, 470).size(200);
nSlider = createSlider(5, 200, 60, 1 ).position(20, 500).size(200);
}
// ===================================================================
// draw(): every frame we read the sliders, solve mu for each
// statistics, then render both ladder columns plus HUD overlays.
// ===================================================================
function draw() {
background(BG);
const T = tSlider.value();
const N = nSlider.value();
// Solve chemical potential mu for each statistics. The bisection runs
// every frame; with L = 10 levels and 60 iterations it's <1k ops.
const muBE = solveMu(T, N, 'BE');
const muFD = solveMu(T, N, 'FD');
// Compute occupations and the condensate fraction (boson n_0 / N).
const occBE = levelOccupations(T, muBE, 'BE');
const occFD = levelOccupations(T, muFD, 'FD');
const n0BE = occBE[0];
// The Fermi energy is the level just below mu_FD at T -> 0; here we
// report the level with occupation closest to 0.5 as a finite-T proxy.
let eFermi = 0;
for (let i = 0; i < L; i++) if (Math.abs(occFD[i] - 0.5) < Math.abs(occFD[eFermi] - 0.5)) eFermi = i;
// ---- Column geometry --------------------------------------------
const xBosonCol = 80; // left edge of boson column
const xFermionCol = 80 + COL_W + 80; // gap of 80 between columns
drawColumn(xBosonCol, 'Bosons', occBE, COLD, true);
drawColumn(xFermionCol, 'Fermions', occFD, HOT, false);
// Fermi-level marker: a horizontal dashed band at the half-occupied
// level on the fermion side.
drawFermiMarker(xFermionCol, eFermi);
// ---- Live readouts (top-right) ----------------------------------
drawReadouts(T, N, muBE, muFD, n0BE, eFermi);
drawHUD();
drawEquationBox();
drawSliderLabels();
}
// ===================================================================
// solveMu(): bisection on the chemical potential to enforce the
// particle-number constraint sum_i n_i(mu, T) = N.
// - For Fermi-Dirac, mu can be anywhere on the real line.
// - For Bose-Einstein, mu < E_0 (= 0 here) strictly, otherwise the
// n_0 term diverges. We cap the upper bound just below 0.
// ===================================================================
function solveMu(T, N, kind) {
let lo = -50;
let hi = (kind === 'BE') ? -1e-6 : 50;
// Quick sanity: when even at mu = hi the total is still < N for
// fermions, the system is already classical -- bisection still
// converges, so we just clamp.
for (let iter = 0; iter < 80; iter++) {
const mid = 0.5 * (lo + hi);
const tot = totalNumber(T, mid, kind);
if (tot > N) hi = mid;
else lo = mid;
if (hi - lo < 1e-7) break;
}
return 0.5 * (lo + hi);
}
// Sum of occupations at chemical potential mu, temperature T.
function totalNumber(T, mu, kind) {
let sum = 0;
for (let i = 0; i < L; i++) {
sum += occupation(i, T, mu, kind);
}
return sum;
}
// Per-level occupation for either statistics. Guarded against
// overflow when (E - mu)/T is large.
function occupation(i, T, mu, kind) {
const x = (i - mu) / Math.max(T, 1e-6);
if (kind === 'BE') {
// Bose-Einstein: 1 / (exp(x) - 1). x must be > 0; mu < 0 enforces it.
if (x <= 1e-9) return 1e6; // near-divergence cap
if (x > 60) return 0;
return 1 / (Math.exp(x) - 1);
} else {
// Fermi-Dirac: 1 / (exp(x) + 1). Bounded in [0, 1].
if (x > 60) return 0;
if (x < -60) return 1;
return 1 / (Math.exp(x) + 1);
}
}
// Return a length-L array of expected occupations.
function levelOccupations(T, mu, kind) {
const out = new Array(L);
for (let i = 0; i < L; i++) out[i] = occupation(i, T, mu, kind);
return out;
}
// ===================================================================
// drawColumn(): render one ladder (rungs + occupation dots + label).
// occ[i] is the EXPECTED occupation of level i; we draw round(occ[i])
// dots wrapped horizontally so the ground state can grow without
// being clipped by the canvas height.
// ===================================================================
function drawColumn(x, label, occ, accentColor, isBoson) {
// Axis -- vertical line at the left of the column showing E direction.
stroke(STRUCT); strokeWeight(1);
line(x, LADDER_TOP - 20, x, LADDER_TOP + (L - 1) * LEVEL_GAP + 20);
// Rungs (horizontal lines, one per level). Energy goes UP visually,
// so level 0 is at the BOTTOM of the column.
for (let i = 0; i < L; i++) {
const y = LADDER_TOP + (L - 1 - i) * LEVEL_GAP;
stroke(STRUCT[0], STRUCT[1], STRUCT[2], 120);
line(x, y, x + COL_W, y);
// Energy tick label on the left, every 2 levels.
if (i % 2 === 0) {
noStroke();
fill(DIM);
textAlign(RIGHT, CENTER);
text(i, x - 6, y);
}
}
// Column title at the top.
noStroke();
fill(accentColor[0], accentColor[1], accentColor[2]);
textAlign(LEFT, BOTTOM);
textSize(16);
text(label, x + 6, LADDER_TOP - 28);
textSize(13);
// Dots: stack horizontally on each rung until they fill the column,
// then wrap to a second row just above the rung. This is the key
// visual difference -- the boson ground state grows wildly while
// fermion levels saturate at 1 (drawn with darker outline).
for (let i = 0; i < L; i++) {
const y = LADDER_TOP + (L - 1 - i) * LEVEL_GAP;
const n = Math.round(occ[i]); // visual integer occupation
// Highlight the ground state when the boson condensate is huge.
if (isBoson && i === 0 && n > 5) {
noStroke();
fill(TRAJ[0], TRAJ[1], TRAJ[2], 60);
const halo = constrain(n * 0.8, 8, 80);
ellipse(x + COL_W / 2, y, COL_W * 0.9, halo);
}
// Draw dots. Max dots per row before wrap.
const dotsPerRow = Math.floor((COL_W - 16) / (DOT_R * 2 + 2));
const cap = Math.min(n, dotsPerRow * 3); // up to 3 rows visually
for (let k = 0; k < cap; k++) {
const row = Math.floor(k / dotsPerRow);
const col = k % dotsPerRow;
const dx = 10 + col * (DOT_R * 2 + 2);
const dy = -row * (DOT_R * 2 + 2);
noStroke();
fill(accentColor[0], accentColor[1], accentColor[2]);
ellipse(x + dx, y + dy, DOT_R * 2, DOT_R * 2);
}
// If we hit the visual cap, render an ellipsis-style overflow
// marker so the reader knows the ground-state occupation is
// larger than what can be drawn (typical at deep BEC).
if (n > cap) {
noStroke();
fill(TRAJ);
textAlign(LEFT, CENTER);
textSize(11);
text('+ ' + (n - cap), x + COL_W - 70, y);
textSize(13);
}
}
}
// ===================================================================
// drawFermiMarker(): horizontal dashed band on the fermion column at
// the level whose occupation is closest to 1/2 -- a finite-T proxy
// for the Fermi energy.
// ===================================================================
function drawFermiMarker(x, eFermi) {
const y = LADDER_TOP + (L - 1 - eFermi) * LEVEL_GAP;
stroke(ACCENT); strokeWeight(1.4);
drawingContext.setLineDash([4, 4]);
line(x - 8, y, x + COL_W + 8, y);
drawingContext.setLineDash([]);
noStroke();
fill(ACCENT);
textAlign(LEFT, CENTER);
textSize(11);
text('E_F', x + COL_W + 14, y);
textSize(13);
}
// ===================================================================
// drawReadouts(): live numbers in the top-right corner -- T, N, mu
// for each statistics, condensate fraction, Fermi level.
// ===================================================================
function drawReadouts(T, N, muBE, muFD, n0BE, eFermi) {
const x = 510;
let y = 56;
const gap = 16;
noStroke();
fill(FG);
textAlign(LEFT, TOP);
textSize(12);
text('T = ' + T.toFixed(2) + ' (units of epsilon/k)', x, y); y += gap;
text('N = ' + N, x, y); y += gap;
text('mu_B = ' + muBE.toFixed(3), x, y); y += gap;
text('mu_F = ' + muFD.toFixed(3), x, y); y += gap;
text('n0/N (boson) = ' + (n0BE / N).toFixed(3), x, y); y += gap;
text('E_F approx = ' + eFermi, x, y); y += gap;
// Verbal regime indicator.
const frac = n0BE / N;
let regime = '';
if (frac > 0.5) regime = 'BEC regime';
else if (frac > 0.15) regime = 'crossover';
else if (T > 2.0) regime = 'classical limit';
else regime = 'thermal Bose gas';
fill(TRAJ);
text(regime, x, y);
textSize(13);
}
// ===================================================================
// drawHUD(): the standard top-left identity block -- article title,
// Wikitube URL, and a one-line subtitle that names the room.
// ===================================================================
function drawHUD() {
noStroke();
fill(FG);
textAlign(LEFT, TOP);
textSize(22);
text(TITLE, 14, 14);
textSize(12);
fill(DIM);
text('Wikitube microsim . en.wikitube.io/wiki/' + ARTICLE, 14, 44);
text('Room: Helium . Pattern E (particle field on a ladder)', 14, 62);
textSize(13);
}
// ===================================================================
// drawEquationBox(): canonical Bose-Einstein equation, bottom-right,
// rendered in plain ASCII so the editor preview pipeline doesn't
// mangle Greek letters.
// ===================================================================
function drawEquationBox() {
const x = width - 14;
const y = height - 14;
noStroke();
fill(DIM);
textAlign(RIGHT, BOTTOM);
textSize(12);
text('n_BE(E) = 1 / (exp((E - mu) / kT) - 1)', x, y - 16);
text('n_FD(E) = 1 / (exp((E - mu) / kT) + 1)', x, y);
textSize(13);
}
// ===================================================================
// drawSliderLabels(): name each slider with its current value so the
// reader doesn't have to guess which knob is which.
// ===================================================================
function drawSliderLabels() {
noStroke();
fill(FG);
textAlign(LEFT, CENTER);
textSize(12);
text('T = ' + tSlider.value().toFixed(2), 230, 478);
text('N = ' + nSlider.value(), 230, 508);
textSize(13);
}
```
## Links (Wikipedia order)
<!-- injected from _registry/childlinks/Boson.json (2026-07-30T02:09:12Z) -->
`Abdus_Salam` · `Abraham_Pais` · `Absolute_zero` · `Albert_Einstein` · [[Alpha_particle]] · `Antihydrogen` · `Antineutron` · `Antiparticle` · `Antiproton` · `Anyon` · `Associated_Press` · `Atom` · `Atomic_nucleus` · `Axino` · `Axion` · `B_meson` · `Bangladesh` · `Baryon` · `Bengal` · `Bose_gas` · `Bose–Einstein_condensate` · `Bose–Einstein_statistics` · [[Boson]] · `Boson_(disambiguation)` · `Bottom_eta_meson` · `Bottom_quark` · `Bound_state` · `C._F._Powell` · `C._R._Hagen` · `Cabibbo–Kobayashi–Maskawa_matrix` · `Carbon-12` · `Carl_David_Anderson` · `Carlo_Rubbia` · `Chargino` · `Charm_quark` · `Clyde_Cowan` · `Cooper_pair` · `Curvaton` · `César_Lattes` · `D_meson` · `Dark_photon` · `David_Gross` · `Davydov_soliton` · `Delta_baryon` · `Deuterium` · `Dilaton` · `Diquark` · `Double-charm_tetraquark` · `Down_quark` · `Dropleton` · `Dual_graviton` · `E._C._George_Sudarshan` · `Eightfold_way_(physics)` · `Electromagnetic_field` · [[Electron]] · `Electron_hole` · `Electron_neutrino` · `Electroweak_interaction` · `Elementary_particle` · `Enrico_Fermi` · `Ernest_Rutherford` · `Ettore_Majorana` · `Even_and_odd_atomic_nuclei` · `Exciton` · `Exotic_atom` · `Exotic_hadron` · `Exotic_matter` · `Faddeev–Popov_ghost` · [[Fermion]] · `Flavour_(particle_physics)` · `Force_carrier` · `Fracton_(subdimensional_particle)` · `Frank_Wilczek` · `François_Englert` · `Frederick_Reines` · `Gauge_boson` · `Gauge_theory` · `Gaugino` · `George_Zweig` · `Gerald_Guralnik` · `Gerard_'t_Hooft` · `Ghost_(physics)` · `Glueball` · `Gluino` · `Gluon` · `Graviphoton` · `Gravitino` · `Graviton` · `Hadron` · [[Helium-4]] · `Henry_Way_Kendall` · `Heptaquark` · `Hexaquark` · `Hideki_Yukawa` · `Hierarchy_problem` · `Higgs_boson` · `Higgs_mechanism` · `Higgsino` · `History_of_subatomic_physics` · `Hugh_David_Politzer` · `Indian_people` · `Inflaton` · `Integer` · `J._J._Thomson` · `J/psi_meson` · `James_Chadwick` · `James_Cronin` · `Jerome_Isaac_Friedman` · `John_Clive_Ward` · `John_Hasbrouck_Van_Vleck` · `John_Iliopoulos` · `Julian_Schwinger` · `Kaon` · `Kinetic_energy` · `Lambda_baryon` · `Leon_M._Lederman` · `Lepton` · `Leptoquark` · `Lexico` · `List_of_baryons` · `List_of_hypothetical_particles` · `List_of_mesons` · `List_of_particles` · `List_of_quasiparticles` · `Luciano_Maiani` · `Magnetic_monopole` · `Magnon` · `Majorana_fermion` · `Majoron` · `Martin_Lewis_Perl` · `Martinus_J._G._Veltman` · `Mass` · `Mass_number` · `Massless_particle` · `Mathematical_formulation_of_the_Standard_Model` · `Matter` · `Melvin_Schwartz` · `Meson` · `Mesonic_molecule` · `Molecule` · `Muon` · `Muon_neutrino` · `Muonium` · `Murray_Gell-Mann` · `Neutralino` · `Neutrino` · `Neutrino_oscillation` · [[Neutron]] · `Nicola_Cabibbo` · `Nuclear_physics` · `Nucleon` · `Omega_baryon` · `Omega_meson` · `Onium` · `Owen_Chamberlain` · `Oxford_University_Press` · `Parastatistics` · `Particle` · `Particle_chauvinism` · `Particle_physics` · `Paul_Dirac` · `Pentaquark` · `Peter_Higgs` · `Phi_meson` · `Phonon` · `Photino` · [[Photon]] · `Physics_beyond_the_Standard_Model` · `Pion` · `Pionium` · `Planck's_law` · `Plasmaron` · `Plasmon` · `Polariton` · `Polaron` · `Pomeron` · `Positron` · `Positronium` · `Preon` · `Professor` · [[Proton]] · `Protonium` · `Quantum_chromodynamics` · `Quantum_field_theory` · `Quantum_gravity` · [[Quantum_mechanics]] · `Quantum_state` · `Quark` · `Quark_model` · `Quarkonium` · `Quasiparticle` · `R-hadron` · `Raymond_Davis_Jr.` · `Reader_(academic_rank)` · `Relativistic_particle` · `Rho_meson` · `Richard_E._Taylor` · `Richard_Feynman` · `Robert_Brout` · `Robert_Mills_(physicist)` · `Roton` · `Santiago_Antúnez_de_Mayolo` · `Satyendra_Nath_Bose` · `Scalar_boson` · `Sfermion` · `Sheldon_Glashow` · `Sigma_baryon` · `Simon_van_der_Meer` · `Skyrmion` · [[Spin_(physics)]] · `Spin_quantum_number` · `Spin–statistics_theorem` · `Spontaneous_symmetry_breaking` · `Standard_Model` · `Sterile_neutrino` · `Steven_Weinberg` · `Stop_squark` · `Strange_quark` · `Strong_CP_problem` · `Strong_interaction` · `Subatomic_particle` · `Superatom` · [[Superconductivity]] · [[Superfluid_helium-4]] · `Superfluidity` · `Superpartner` · `T_meson` · `Tachyon` · `Tau_(particle)` · `Tau_neutrino` · `Tetraquark` · `The_New_York_Times` · `Theta_meson` · `Timeline_of_atomic_and_subatomic_physics` · `Timeline_of_particle_discoveries` · `Tom_Kibble` · `Top_quark` · `Toshihide_Maskawa` · `Trion_(physics)` · `Tsung-Dao_Lee` · `University_of_Dhaka` · `Up_quark` · `Upsilon_meson` · `Val_Logsdon_Fitch` · `Vector_boson` · `Virtual_particle` · `W_and_Z_bosons` · `Wave–particle_duality` · `Weak_interaction` · `Wolfgang_Pauli` · `W′_and_Z′_bosons` · `X_and_Y_bosons` · `Xi_baryon` · `Yang_Chen-Ning` · `Yoichiro_Nambu`
## From the vault media library
!Boson thumb.png
*Boson — 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
A boson is a particle that obeys Bose-Einstein statistics, characterized by integer spin (0, 1, 2, ...) and the freedom for any number of identical bosons to occupy the same quantum state. The class is named for Indian physicist Satyendra Nath Bose, whose 1924 derivation of [[Photon|photon]]-counting statistics Einstein extended to massive particles in 1925. Bosons divide into elementary [[Force|force]]-carriers — photons (spin 1, electromagnetism), gluons (spin 1, strong force), W and Z (spin 1, weak force), and the Higgs (spin 0, mass generation) — and composite bosons whose constituent fermions sum to integer spin. Helium-4 is the canonical composite boson: its nucleus contains two protons and two neutrons, and with two electrons the atom totals six fermions for net zero spin. Bosonic statistics produce the Bose-Einstein distribution n(E) = 1 / (exp((E - mu) / kT) - 1), which diverges as the chemical potential mu approaches the ground-state [[Energy|energy]] — the threshold for Bose-Einstein condensation. Below the lambda point (2.17 K), liquid He-4 transitions to a macroscopically occupied ground state and exhibits superfluidity: zero [[Viscosity|viscosity]], the fountain effect, quantized vortices, and second sound. Helium-3, lacking one [[Neutron|neutron]] to be a composite boson, only condenses via Cooper pairing into bosonic dimers below 2.6 mK. Stimulated emission of photons in lasers, phonon condensation in solids, and the 2012 Higgs discovery at the LHC all rest on the same statistical [[Structure|structure]].
## See also
- Room hub: [[Helium]]
- p5.js Editor conventions: P5 JS EDITOR
- Wiki root: MAIN
---
*Scaffolded by `generative-microsim` from row 140 of the Helium sheet on 2026-05-14T16:50:58Z.*
<!-- LOCAL-MEDIA-PASS: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/Boson) : [Wikitube](https://en.wikitube.io/wiki/Boson)
## Previous hub tags
Tree parents: [[Helium]] · [[Helium-3]].
Legacy hubs: none.
---
*Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*