# Fermion
## Microsim
### Live player
<div class="microsim-player">
<iframe src="https://editor.p5js.org/sciencenibber/full/r1ohjBwxL" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe>
</div>
<div class="microsim-fallback">
<img src="Microsims/thumbs/Fermion.png" alt="Fermion 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/r1ohjBwxL">open sketch in the p5.js editor</a></em></p>
</div>
**Editor URL:** https://editor.p5js.org/sciencenibber/sketches/r1ohjBwxL
**Description (100 words):**
A side-by-side comparison of the two quantum occupation statistics. The left panel renders a 14-rung energy ladder; each level shows two empty rings (spin-up, spin-down) that fill with cyan as occupation rises. A yellow horizontal line marks the chemical potential mu. The right panel draws the smooth analytic curve f(E) versus E with hot-orange dots at each discrete level and a vertical mu marker. Two sliders set kT and mu; a toggle button flips between Fermi-Dirac and Bose-Einstein. Drop kT and the Pauli step sharpens; switch to BE and bosons pile into the ground state.
```js
// =====================================================================
// Fermion.js -- Wikitube microsim
// Article: Fermion en.wikitube.io/wiki/Fermion
// Room: Helium Pattern: E (particle field)
// ---------------------------------------------------------------------
// Idea: a side-by-side comparison of the Fermi-Dirac and Bose-Einstein
// occupations of a discrete energy ladder. The user sets temperature
// (kT) and chemical potential (mu) with two sliders, and a toggle
// flips the simulation between fermionic spin-1/2 particles (Pauli
// exclusion, two slots per energy level) and bosonic particles (no
// upper bound per level). The point of the sketch is to make the
// Pauli-exclusion step function and the Bose-Einstein ground-state
// pile-up visible as literal occupied dots stacked on energy levels
// rather than as abstract curves on a plot.
//
// The 14-level ladder spans energies E_n = (n + 0.5) * dE for
// n = 0 .. 13, with dE = 1 in dimensionless units. For each level
// the analytic occupation is:
//
// fermions: f_n = 1 / ( exp((E_n - mu) / kT) + 1 )
// bosons: n_n = 1 / ( exp((E_n - mu) / kT) - 1 ) (mu < E_0)
//
// The fermion curve is bounded above by 1 per spin-state, so the
// picture always shows at most two filled dots per level (spin-up to
// the left, spin-down to the right, with up/down arrow ticks). The
// boson curve is unbounded; the picture caps the visual stack at 12
// dots so the ground-state pile-up reads as 'effectively infinite'.
//
// Canonical relations (also rendered as ASCII in the bottom-right
// corner so the HUD reminds the reader which statistic is active):
//
// f(E) = 1 / (exp((E - mu) / kT) + 1) Fermi-Dirac
// n(E) = 1 / (exp((E - mu) / kT) - 1) Bose-Einstein
//
// Visual layout (720 x 520 canvas):
// * top-left: HUD title + en.wikitube.io/wiki/Fermion subtitle
// * left half: 14-level energy ladder, occupation drawn per level
// * right half: smooth analytic f(E) curve vs energy, with the
// discrete level occupations overlaid as hot dots
// * bottom row: kT slider, mu slider, FD/BE toggle button, reset
// * bottom-right: canonical equation in ASCII
//
// Conventions (Wikitube Betterfire Standard v0):
// * single ARTICLE constant at top, single quotes
// * p5.disableFriendlyErrors = true to keep the editor console clean
// * non-ASCII characters live in COMMENTS ONLY -- every text()
// string literal is ASCII (Greek mu becomes 'mu' in strings)
// * Energy-room palette (P5_JS_EDITOR section 4)
// * createCanvas inside setup(), pixelDensity 2, system-ui font
// =====================================================================
const ARTICLE = 'Fermion';
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: discrete level dots on f(E)
const COLD = [60, 130, 220]; // cool: spin-up slot fill (FD)
const COLDER = [40, 80, 180]; // deeper cool: spin-down slot fill
const STRUCT = [120, 130, 150]; // structural grey: empty slot rings
const TRAJ = [240, 220, 80]; // yellow accent: chemical-potential mu
const SCRATCH = [120, 120, 120, 90]; // grid / scratch lines
const ACCENT = [200, 100, 220]; // magenta: boson stack / BE curve
// ----- Energy-ladder parameters --------------------------------------
const N_LEVELS = 14;
const DE = 1.0; // spacing in arbitrary energy units
// Energy of level n. Half-step offset so the ground state isn't at 0.
function levelEnergy(n) { return (n + 0.5) * DE; }
// ----- Statistics toggle state ---------------------------------------
// 0 = Fermi-Dirac (default), 1 = Bose-Einstein
let stat = 0;
// ----- UI control handles (created in setup) -------------------------
let kTSlider, muSlider, statButton, resetBtn;
// ----- Layout rectangles (set in setup) ------------------------------
let ladderX, ladderY, ladderW, ladderH;
let plotX, plotY, plotW, plotH;
function setup() {
// Canvas + rendering quality
createCanvas(720, 520);
pixelDensity(2);
textFont('system-ui');
// -- Bottom-row sliders, fixed pixel positions --
// kT controls thermal smearing; range chosen so the FD step-function
// collapses cleanly at the low end and washes out at the high end.
kTSlider = createSlider(0.05, 5.0, 0.5, 0.05);
kTSlider.position(20, 470);
kTSlider.size(180);
// mu spans the full ladder energy range so the reader can park the
// Fermi level anywhere from below the ground state to above the top.
muSlider = createSlider(0.0, 14.0, 6.0, 0.1);
muSlider.position(220, 470);
muSlider.size(180);
// FD / BE toggle: a single button, label flips on click.
statButton = createButton('statistics: FD');
statButton.position(420, 470);
statButton.size(120, 22);
statButton.mousePressed(() => {
stat = 1 - stat;
statButton.html(stat === 0 ? 'statistics: FD' : 'statistics: BE');
});
// Reset returns to default kT, mu, and FD.
resetBtn = createButton('reset');
resetBtn.position(550, 470);
resetBtn.size(60, 22);
resetBtn.mousePressed(() => {
kTSlider.value(0.5);
muSlider.value(6.0);
stat = 0;
statButton.html('statistics: FD');
});
// -- Layout regions (left ladder, right f(E) plot) --
ladderX = 60;
ladderY = 70;
ladderW = 280;
ladderH = 360;
plotX = 400;
plotY = 70;
plotW = 280;
plotH = 360;
}
function draw() {
background(BG);
// Read parameters once at the top so every helper below sees the
// same per-frame snapshot (per Energy-room recommended layout).
const kT = kTSlider.value();
let mu = muSlider.value();
// Bose-Einstein occupation diverges as mu -> E_0 from below and is
// undefined for mu >= E_0. Clamp for safety so the ground-state
// formula doesn't return -inf / NaN.
const E0 = levelEnergy(0);
if (stat === 1 && mu >= E0) mu = E0 - 0.01;
drawLadder(kT, mu);
drawPlot(kT, mu);
drawControlsLabels(kT, mu);
drawEquation();
drawHUD();
}
// ----- Analytic occupation formula -----------------------------------
// Returns f_n for fermions in [0, 1] and n_n for bosons (unbounded
// above; sentinel 999 if we'd divide by something <= 0).
function occupation(E, mu, kT, s) {
const x = (E - mu) / kT;
if (s === 0) {
// Fermi-Dirac: bounded in [0, 1].
return 1 / (Math.exp(x) + 1);
} else {
// Bose-Einstein: requires x > 0 to be physical.
if (x <= 0) return 999;
return 1 / (Math.exp(x) - 1);
}
}
// ----- HUD: article title and Wikitube subtitle ----------------------
function drawHUD() {
noStroke();
fill(FG);
textSize(22);
textAlign(LEFT, TOP);
text(TITLE, 14, 14);
fill(DIM);
textSize(12);
text('Wikitube microsim . en.wikitube.io/wiki/' + ARTICLE, 14, 42);
}
// ----- Energy-ladder visualization (left panel) ----------------------
// Renders N_LEVELS horizontal lines, then either Pauli-exclusion two-
// slot occupancy (FD) or a magenta dot stack (BE) per level.
function drawLadder(kT, mu) {
// Panel frame + section title
noFill();
stroke(STRUCT);
strokeWeight(1);
rect(ladderX, ladderY, ladderW, ladderH);
noStroke();
fill(FG);
textSize(13);
textAlign(LEFT, TOP);
text('energy ladder (occupation)', ladderX, ladderY - 18);
const dy = ladderH / N_LEVELS;
// Chemical-potential reference line: yellow horizontal line at y(mu).
// Drawn first so per-level marks render on top of it.
const muN = mu / DE - 0.5;
if (muN >= -0.5 && muN <= N_LEVELS + 0.5) {
const muY = ladderY + ladderH - (muN + 0.5) * dy;
stroke(TRAJ);
strokeWeight(1);
line(ladderX, muY, ladderX + ladderW, muY);
noStroke();
fill(TRAJ);
textSize(10);
textAlign(LEFT, CENTER);
text('mu', ladderX + ladderW + 4, muY);
}
// Iterate top-down so higher-energy levels render first.
for (let n = N_LEVELS - 1; n >= 0; n--) {
const E = levelEnergy(n);
const yLine = ladderY + ladderH - (n + 0.5) * dy;
const f = occupation(E, mu, kT, stat);
// Faint energy-level line
stroke(SCRATCH);
strokeWeight(1);
line(ladderX + 8, yLine, ladderX + ladderW - 8, yLine);
// Level-energy label (left margin)
noStroke();
fill(DIM);
textSize(10);
textAlign(RIGHT, CENTER);
text('E=' + nf(E, 1, 1), ladderX - 4, yLine);
if (stat === 0) {
// -- Fermi-Dirac: two slots per level (spin-up, spin-down). --
// Slot fill opacity == f (occupation per single-spin state).
const slotX1 = ladderX + ladderW * 0.35;
const slotX2 = ladderX + ladderW * 0.55;
const r = 9;
// Empty rings (structural)
stroke(STRUCT);
strokeWeight(1);
noFill();
circle(slotX1, yLine, r * 2);
circle(slotX2, yLine, r * 2);
// Filled circles whose alpha follows the occupation probability
noStroke();
fill(COLD[0], COLD[1], COLD[2], 255 * f);
circle(slotX1, yLine, r * 2 - 2);
fill(COLDER[0], COLDER[1], COLDER[2], 255 * f);
circle(slotX2, yLine, r * 2 - 2);
// Spin arrows: up in left slot, down in right slot, alpha == f
stroke(FG, 200 * f);
strokeWeight(1.2);
// Up arrow
line(slotX1, yLine - 4, slotX1, yLine + 4);
line(slotX1, yLine - 4, slotX1 - 2, yLine - 1);
line(slotX1, yLine - 4, slotX1 + 2, yLine - 1);
// Down arrow
line(slotX2, yLine - 4, slotX2, yLine + 4);
line(slotX2, yLine + 4, slotX2 - 2, yLine + 1);
line(slotX2, yLine + 4, slotX2 + 2, yLine + 1);
} else {
// -- Bose-Einstein: stack of magenta dots whose count tracks n_n.
// Cap at 12 dots; if n_n >> 1 print 'n>>1' to convey divergence.
const N_MAX_VIS = 12;
let count = Math.min(N_MAX_VIS, Math.round(f));
if (f >= N_MAX_VIS) count = N_MAX_VIS;
noStroke();
for (let i = 0; i < count; i++) {
const cx = ladderX + ladderW * 0.35 + i * 9;
fill(ACCENT);
circle(cx, yLine, 7);
}
// Numeric occupation label on the right edge
noStroke();
fill(DIM);
textSize(10);
textAlign(LEFT, CENTER);
let lbl;
if (f >= 99) lbl = 'n>>1';
else if (f >= 10) lbl = 'n=' + nf(f, 1, 1);
else lbl = 'n=' + nf(f, 1, 2);
text(lbl, ladderX + ladderW * 0.35 + N_MAX_VIS * 9 + 4, yLine);
}
}
}
// ----- f(E) vs energy curve plot (right panel) -----------------------
// Smooth analytic curve in cyan (FD) or magenta (BE), with discrete
// level occupations overlaid as hot-orange dots, and a yellow vertical
// line at mu so the reader can see exactly where the curve crosses 1/2.
function drawPlot(kT, mu) {
// Frame + title
noFill();
stroke(STRUCT);
strokeWeight(1);
rect(plotX, plotY, plotW, plotH);
noStroke();
fill(FG);
textSize(13);
textAlign(LEFT, TOP);
text('occupation f(E) vs energy', plotX, plotY - 18);
// Axis ranges depend on which statistic is active.
const Emin = 0;
const Emax = N_LEVELS * DE;
const fMin = 0;
const fMax = (stat === 0) ? 1.05 : 10.0;
// X-axis ticks + labels
for (let i = 0; i <= 4; i++) {
const x = plotX + (i / 4) * plotW;
const Eval = Emin + (i / 4) * (Emax - Emin);
stroke(SCRATCH);
strokeWeight(1);
line(x, plotY + plotH - 4, x, plotY + plotH);
noStroke();
fill(DIM);
textSize(9);
textAlign(CENTER, TOP);
text(nf(Eval, 1, 0), x, plotY + plotH + 4);
}
// Y-axis ticks + labels
for (let i = 0; i <= 4; i++) {
const y = plotY + plotH - (i / 4) * plotH;
const fval = fMin + (i / 4) * (fMax - fMin);
stroke(SCRATCH);
strokeWeight(1);
line(plotX, y, plotX + 4, y);
noStroke();
fill(DIM);
textSize(9);
textAlign(RIGHT, CENTER);
text(nf(fval, 1, (stat === 0) ? 2 : 1), plotX - 4, y);
}
// Axis labels (E along x, f(E) or n(E) along y)
noStroke();
fill(DIM);
textSize(10);
textAlign(CENTER, TOP);
text('E', plotX + plotW / 2, plotY + plotH + 18);
push();
translate(plotX - 32, plotY + plotH / 2);
rotate(-PI / 2);
textAlign(CENTER, BOTTOM);
text(stat === 0 ? 'f(E)' : 'n(E)', 0, 0);
pop();
// Smooth analytic curve sampled at N_POINTS
noFill();
stroke((stat === 0) ? COLD : ACCENT);
strokeWeight(2);
beginShape();
const N_POINTS = 240;
for (let i = 0; i <= N_POINTS; i++) {
const E = Emin + (i / N_POINTS) * (Emax - Emin);
let y = occupation(E, mu, kT, stat);
y = Math.max(fMin, Math.min(fMax, y));
const px = plotX + ((E - Emin) / (Emax - Emin)) * plotW;
const py = plotY + plotH - ((y - fMin) / (fMax - fMin)) * plotH;
vertex(px, py);
}
endShape();
// mu vertical line
if (mu >= Emin && mu <= Emax) {
stroke(TRAJ);
strokeWeight(1);
const muX = plotX + ((mu - Emin) / (Emax - Emin)) * plotW;
line(muX, plotY, muX, plotY + plotH);
noStroke();
fill(TRAJ);
textSize(10);
textAlign(CENTER, BOTTOM);
text('mu', muX, plotY - 2);
}
// Overlay: discrete level occupation as hot-orange dots
for (let n = 0; n < N_LEVELS; n++) {
const E = levelEnergy(n);
let f = occupation(E, mu, kT, stat);
f = Math.max(fMin, Math.min(fMax, f));
const px = plotX + ((E - Emin) / (Emax - Emin)) * plotW;
const py = plotY + plotH - ((f - fMin) / (fMax - fMin)) * plotH;
noStroke();
fill(HOT);
circle(px, py, 6);
}
}
// ----- Live readouts above the slider row ----------------------------
function drawControlsLabels(kT, mu) {
noStroke();
fill(FG);
textSize(11);
textAlign(LEFT, BOTTOM);
text('kT = ' + nf(kT, 1, 2), 20, 466);
text('mu = ' + nf(mu, 1, 2), 220, 466);
// Active statistics indicator (color matches the curve)
fill((stat === 0) ? COLD : ACCENT);
textSize(11);
text((stat === 0) ? 'Fermi-Dirac' : 'Bose-Einstein', 420, 466);
}
// ----- Canonical equation in the bottom-right corner -----------------
function drawEquation() {
noStroke();
fill(DIM);
textSize(11);
textAlign(RIGHT, BOTTOM);
if (stat === 0) {
text('f(E) = 1 / (exp((E - mu) / kT) + 1)', width - 12, height - 8);
} else {
text('n(E) = 1 / (exp((E - mu) / kT) - 1)', width - 12, height - 8);
}
}
```
## Links (Wikipedia order)
<!-- injected from _registry/childlinks/Fermion.json (2026-07-30T02:09:12Z) -->
`Abdus_Salam` · `Abraham_Pais` · `Antihydrogen` · `Antineutron` · `Antiparticle` · `Antiproton` · `Anyon` · `Atom` · `Atomic_nucleus` · `Axino` · `Axion` · `B_meson` · `Baryon` · `Bose–Einstein_statistics` · [[Boson]] · `Bottom_eta_meson` · `Bottom_quark` · `Bound_state` · `C._F._Powell` · `C._R._Hagen` · `CP_violation` · `Cabibbo–Kobayashi–Maskawa_matrix` · `Canonical_quantum_gravity` · `Carbon-13` · `Carl_David_Anderson` · `Carlo_Rubbia` · `Causal_dynamical_triangulation` · `Chargino` · `Charm_quark` · `Chirality_(physics)` · `Clyde_Cowan` · `Color_charge` · `Cooper_pair` · `Cosmological_constant` · `Cosmological_constant_problem` · `Curvaton` · `César_Lattes` · `D_meson` · `Dark_matter` · `Dark_photon` · `David_Gross` · `Davydov_soliton` · `Delta_baryon` · `Deuterium` · `Dilaton` · `Diquark` · `Dirac_fermion` · `Double-charm_tetraquark` · `Down_quark` · `Dropleton` · `Dual_graviton` · `E._C._George_Sudarshan` · `Eightfold_way_(physics)` · [[Electron]] · `Electron_hole` · `Electron_neutrino` · `Electroweak_interaction` · `Elementary_particle` · `Enrico_Fermi` · `Ernest_Rutherford` · `Ettore_Majorana` · `Exciton` · `Exotic_atom` · `Exotic_hadron` · `Exotic_matter` · `Faddeev–Popov_ghost` · `Fermi's_interaction` · [[Fermion]] · `Fermionic_condensate` · `Fermionic_field` · [[Fermium]] · `Fermi–Dirac_statistics` · `Force_carrier` · `Fractional_quantum_Hall_effect` · `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` · `Grand_Unified_Theory` · `Graviphoton` · `Gravitino` · `Graviton` · `Hadron` · `Half-integer` · [[Helium-3]] · `Henry_Way_Kendall` · `Heptaquark` · `Hexaquark` · `Hideki_Yukawa` · `Hierarchy_problem` · `Higgs_boson` · `Higgs_mechanism` · `Higgsino` · `History_of_subatomic_physics` · `Hugh_David_Politzer` · `India-based_Neutrino_Observatory` · `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` · `Kaluza–Klein_theory` · `Kaon` · `Laboratori_Nazionali_del_Gran_Sasso` · `Lambda_baryon` · `Large_Hadron_Collider` · `Leon_M._Lederman` · `Lepton` · `Leptoquark` · `List_of_baryons` · `List_of_hypothetical_particles` · `List_of_mesons` · `List_of_particles` · `List_of_quasiparticles` · `Loop_quantum_gravity` · `Luciano_Maiani` · `Magnetic_monopole` · `Magnon` · `Majorana_fermion` · `Majoron` · `Martin_Lewis_Perl` · `Martinus_J._G._Veltman` · `Massless_particle` · `Mathematical_formulation_of_the_Standard_Model` · `Matter` · `Melvin_Schwartz` · `Meson` · `Mesonic_molecule` · `Minimal_Supersymmetric_Standard_Model` · `Molecule` · `Muon` · `Muon_neutrino` · `Muonium` · `Murray_Gell-Mann` · `Neutralino` · `Neutrino` · `Neutrino_oscillation` · [[Neutron]] · `Next-to-Minimal_Supersymmetric_Standard_Model` · `Nicola_Cabibbo` · `Nuclear_physics` · `Nucleon` · `Omega_baryon` · `Omega_meson` · `Onium` · `Owen_Chamberlain` · `Parastatistics` · `Particle` · `Particle_chauvinism` · `Particle_physics` · `Paul_Dirac` · `Pauli_exclusion_principle` · `Pentaquark` · `Peter_Higgs` · `Phi_meson` · `Phonon` · `Photino` · [[Photon]] · `Physics_beyond_the_Standard_Model` · `Pion` · `Pionium` · `Plasmaron` · `Plasmon` · `Polariton` · `Polaron` · `Pomeron` · `Positron` · `Positronium` · `Preon` · `Probability_distribution` · [[Proton]] · `Protonium` · `Quantum_chromodynamics` · `Quantum_electrodynamics` · `Quantum_field_theory` · `Quantum_gravity` · `Quantum_number` · `Quantum_state` · `Quark` · `Quark_model` · `Quarkonium` · `Quasiparticle` · `R-hadron` · `Raymond_Davis_Jr.` · `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_1/2` · `Spin–statistics_theorem` · `Split_supersymmetry` · `Spontaneous_symmetry_breaking` · `Standard_Model` · `Sterile_neutrino` · `Steven_Weinberg` · `Stop_squark` · `Strange_quark` · `String_theory` · `Strong_CP_problem` · `Strong_interaction` · `Subatomic_particle` · `Sudbury_Neutrino_Observatory` · `Super-Kamiokande` · `Superatom` · [[Superconductivity]] · `Superfluid_vacuum_theory` · `Superfluidity` · `Supergravity` · `Superpartner` · `Superstring_theory` · `Supersymmetry` · `T_meson` · `Tachyon` · `Tau_(particle)` · `Tau_neutrino` · `Technicolor_(physics)` · `Tetraquark` · `Tevatron` · `Theory_of_everything` · `Theory_of_relativity` · `Theta_meson` · `Timeline_of_atomic_and_subatomic_physics` · `Timeline_of_particle_discoveries` · `Tom_Kibble` · `Top_quark` · `Toshihide_Maskawa` · `Trion_(physics)` · `Tsung-Dao_Lee` · `Twistor_theory` · `Up_quark` · `Upsilon_meson` · `Val_Logsdon_Fitch` · `Vector_boson` · `Virtual_particle` · `W_and_Z_bosons` · `Wave–particle_duality` · `Weak_hypercharge` · `Weak_interaction` · `Weak_isospin` · `Weyl_semimetal` · `Wolfgang_Pauli` · `World_Scientific` · `W′_and_Z′_bosons` · `X_and_Y_bosons` · `Xi_baryon` · `Yang_Chen-Ning` · `Yoichiro_Nambu`
## From the Real GENERATIVE library

*Fermion — 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:Bosons-Hadrons-Fermions-RGB-png2.png).*
> In particle physics, a fermion is a particle that follows Fermi–Dirac statistics. Fermions have a half-odd-integer spin (spin _x007f_'"`UNIQ--templatestyles-00000004-QINU`"'_x007f_1/2, spin 3/2, etc.) and obey the Pauli exclusion principle. ([Wikipedia](https://en.wikipedia.org/wiki/Fermion))
<!-- REAL-GENERATIVE-MEDIA:END -->
<!-- LOCAL-MEDIA-PASS:START -->
## From the vault media library
!Fermion thumb.png
*Fermion — 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
In particle [[Physics|physics]], a fermion is a subatomic particle that obeys Fermi-Dirac statistics and possesses half-integer intrinsic angular momentum (spin), measured in units of the reduced Planck constant. The category includes both elementary fermions — the six quarks, six leptons, and their antiparticles — and composite fermions such as protons, neutrons, and helium-3 nuclei, which carry an odd total of constituent half-spin particles. The defining behavioral signature of any fermion is the Pauli exclusion principle, articulated by Wolfgang Pauli in 1925: no two identical fermions can occupy the same quantum state simultaneously. This single rule is responsible for the chemical [[Structure|structure]] of the periodic table, the stability of white-dwarf and [[Neutron|neutron]] stars, and the existence of distinct [[Electron|electron]] shells in atoms.
At thermal equilibrium, the occupation probability of any single-particle [[Energy|energy]] state with energy E follows the Fermi-Dirac distribution, f(E) = 1 / (exp((E - mu) / kT) + 1), where mu is the chemical potential and T is the absolute temperature. As T approaches zero, this distribution sharpens into a step function at the Fermi energy E_F, and every available state below E_F is filled exactly once. The integral of f(E) weighted by the [[Density|density]] of states determines the electronic heat capacity of metals, the bulk modulus of degenerate matter, and the Chandrasekhar mass limit.
Fermions stand opposite bosons, which carry integer spin and may pile arbitrarily many particles into a single state. The distinction underwrites [[Superconductivity|superconductivity]], superfluidity, lasers, [[Transistor|transistor]] physics, the structure of atomic nuclei, and the very fact that ordinary matter occupies space.
## See also
- Room hub: [[Helium]]
- p5.js Editor conventions: P5 JS EDITOR
- Wiki root: MAIN
---
*Scaffolded by `generative-microsim` from row 141 of the Helium sheet on 2026-05-14T16:50:59Z.*
<!-- 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/Fermion) : [Wikitube](https://en.wikitube.io/wiki/Fermion)
## Previous hub tags
Tree parents: [[Helium]] · [[Helium-3]].
Legacy hubs: none.
---
*Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*