# Cryogenics ## Microsim ### Live player <div class="microsim-player"> <iframe src="https://editor.p5js.org/sciencenibber/full/1unm-XNLx" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> </div> <div class="microsim-fallback"> <img src="Microsims/thumbs/Cryogenics.png" alt="Cryogenics 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/1unm-XNLx">open sketch in the p5.js editor</a></em></p> </div> **Editor URL:** https://editor.p5js.org/sciencenibber/sketches/1unm-XNLx **Description (100 words):** A four-phase Helium-4 phase diagram in (T, P) space, with temperature on a linear axis from 0.5–7 K and pressure on a log axis from 1 kPa to 3.16 MPa. The reader drags a yellow marker — or clicks anywhere inside the plot to jump it — and the bottom-left readout names the current phase: gas, liquid He I, liquid He II (superfluid), solid, or supercritical fluid. The saturation curve, magenta lambda line, and grey melting curve are drawn from NIST-fitted anchor points; the critical point at 5.195 K and the lower lambda point at 2.172 K are labelled landmarks. Arrow keys nudge the marker for fine control. ```js // ===================================================================== // Cryogenics.js -- Wikitube microsim // Article: Cryogenics en.wikitube.io/wiki/Cryogenics // Room: Helium Pattern: A (phase diagram, state-space) // --------------------------------------------------------------------- // Idea: an interactive Helium-4 phase diagram in (T, P) space, with // log-scale pressure axis. The reader drags a marker on the diagram // and watches it cross between the four named phases of helium-4: // // * gas (vapor) T > T_sat(P) or P < P_sat(T) // * liquid He I T_lambda < T < T_critical, P > P_sat // * liquid He II (superfluid) T < T_lambda, below the saturation curve // * solid P > P_melt(T) // * supercritical fluid T > 5.195 K and P > 0.227 MPa // // Helium is the only element with no solid phase at 0 K under any // pressure below ~2.5 MPa -- you must compress it. That single fact // is the defining oddity of cryogenic physics. // // The canonical equation behind every boundary on this diagram is the // Clausius-Clapeyron relation: // // dP/dT = L / (T * dV) // // Integrating with constant latent heat over a narrow temperature // range gives the familiar exp(-L/RT) saturation form. The saturation // curve here is implemented as a piecewise-linear interpolation // through 11 NIST-fitted anchor points -- more accurate than a single // Antoine fit across the full T range. // // Key He-4 landmarks shown on the diagram: // * normal boiling point (1 atm): T = 4.222 K, P = 0.1013 MPa // * critical point: T = 5.195 K, P = 0.227 MPa // * lower lambda point: T = 2.172 K, P = 0.00505 MPa // * upper lambda point: T = 1.763 K, P = 3.01 MPa // * minimum melting pressure: P ~ 2.53 MPa (T -> 0) // // Visual layout (720 x 520 canvas): // * top-left: HUD title + en.wikitube.io/wiki/Cryogenics subtitle // * top-right: control hints (drag, arrow keys, click-to-jump) // * center: phase diagram, T x-axis 0.5-7 K, P y-axis 1 kPa - 3.16 MPa (log) // * filled regions tinted by phase (gas warm, liquids cold blue, // He II deeper, solid grey, supercritical fade) // * boundaries drawn as curves with phase-color outlines // * critical point marked with X, lower lambda point with a circle // * reader's marker is a draggable yellow dot // * bottom: live (T, P, phase) readout + 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 (Greek lambda, dots, arrows) 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 // // No sliders -- the diagram is the controller. Mouse drag and arrow // keys move the marker; clicking inside the plot rect jumps to that // (T, P). The plot itself is the slider. // ===================================================================== const ARTICLE = 'Cryogenics'; 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]; // warm: gas / supercritical const COLD = [60, 130, 220]; // cool: liquid He I const COLDER = [40, 80, 180]; // deeper cool: liquid He II (superfluid) const STRUCT = [120, 130, 150]; // structural grey: solid const TRAJ = [240, 220, 80]; // reader marker (yellow accent) const SCRATCH = [120, 120, 120, 90]; // grid / scratch lines const ACCENT = [200, 100, 220]; // lambda line (magenta) // ----- He-4 phase-diagram landmarks ---------------------------------- const T_LAMBDA = 2.172; // K, lambda transition at saturation const T_CRIT = 5.195; // K, critical point const P_CRIT = 0.227; // MPa, critical pressure const T_NBP = 4.222; // K, normal boiling point (1 atm) const P_NBP = 0.1013; // MPa, atmospheric const P_MELT_MIN = 2.53; // MPa, minimum melting pressure at T -> 0 const T_LAMBDA_UPPER = 1.763; // K, upper lambda point const P_LAMBDA_UPPER = 3.010; // MPa, upper lambda pressure // ----- He-4 saturation-pressure anchor points (NIST-fitted) ---------- // Each row is [T (K), P_sat (MPa)]. Piecewise-linear interp between // adjacent anchors in (T, log P) space gives the smoothest visual. const SAT_ANCHORS = [ [1.50, 0.000471], [2.00, 0.003130], [2.172, 0.005050], // lower lambda point (intersects lambda line) [2.50, 0.010300], [3.00, 0.030900], [3.50, 0.057300], [4.00, 0.081600], [4.222, 0.101300], // normal boiling point [4.50, 0.128000], [5.00, 0.196000], [5.195, 0.227000] // critical point ]; // ----- Plot axes (data ranges; pixel ranges set in setup) ------------ const T_MIN = 0.5; // K const T_MAX = 7.0; // K const P_MIN_LOG = -3; // log10(P in MPa); P = 1 kPa const P_MAX_LOG = 0.5; // log10(P in MPa); P ~ 3.16 MPa // ----- Plot rectangle in canvas pixels (set in setup) ---------------- let plotX, plotY, plotW, plotH; // ----- Reader's draggable marker state ------------------------------ let mark = { T: T_NBP, P: P_NBP }; // start at the normal boiling point let dragging = false; 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 - 100; plotH = height - 160; } function draw() { background(BG); // Order: phase field (cheap raster) -> axes -> boundaries -> landmarks // -> reader's marker -> HUD. Later layers always paint on top. drawPhaseField(); drawAxes(); drawSaturationCurve(); drawLambdaLine(); drawMeltingCurve(); drawLandmarks(); drawMarker(); drawHUD(); } // ===================================================================== // Coordinate transforms: (T [K], P [MPa]) <-> (px, py) in canvas pixels // ===================================================================== function tToPx(T) { return map(T, T_MIN, T_MAX, plotX, plotX + plotW); } function pxToT(px) { return map(px, plotX, plotX + plotW, T_MIN, T_MAX); } function pToPy(P) { const logP = Math.log10(Math.max(P, 1e-6)); return map(logP, P_MIN_LOG, P_MAX_LOG, plotY + plotH, plotY); } function pyToP(py) { const logP = map(py, plotY + plotH, plotY, P_MIN_LOG, P_MAX_LOG); return Math.pow(10, logP); } // ===================================================================== // Phase-boundary functions // ===================================================================== // Saturation pressure -- piecewise linear in (T, log P) across the // anchor table. Outside the table's T range, returns the nearest end. function pSat(T) { if (T <= SAT_ANCHORS[0][0]) return SAT_ANCHORS[0][1]; if (T >= SAT_ANCHORS[SAT_ANCHORS.length - 1][0]) return SAT_ANCHORS[SAT_ANCHORS.length - 1][1]; for (let i = 0; i < SAT_ANCHORS.length - 1; i++) { const [T0, P0] = SAT_ANCHORS[i]; const [T1, P1] = SAT_ANCHORS[i + 1]; if (T >= T0 && T <= T1) { const frac = (T - T0) / (T1 - T0); const logP0 = Math.log10(P0); const logP1 = Math.log10(P1); return Math.pow(10, logP0 + frac * (logP1 - logP0)); } } return SAT_ANCHORS[SAT_ANCHORS.length - 1][1]; } // Melting pressure P_melt(T) -- quadratic-ish above the minimum. // Valid for T < ~5 K; extrapolates beyond. He has no solid phase // below P_MELT_MIN at any T (unique among the elements). function pMelt(T) { return P_MELT_MIN + 0.155 * T * T; } // Lambda line -- returns the T at which the lambda transition occurs // at a given P. Linear in (T, log P) between the lower and upper // lambda points captures the gentle leftward bend with pressure. function tLambda(P) { const P_lo = SAT_ANCHORS[2][1]; // 0.00505 MPa, lower lambda point const P_hi = P_LAMBDA_UPPER; // 3.01 MPa, upper lambda point if (P <= P_lo) return T_LAMBDA; if (P >= P_hi) return T_LAMBDA_UPPER; const frac = (Math.log10(P) - Math.log10(P_lo)) / (Math.log10(P_hi) - Math.log10(P_lo)); return T_LAMBDA + frac * (T_LAMBDA_UPPER - T_LAMBDA); } // Phase classifier: returns one of // 'gas', 'He I', 'He II', 'solid', 'supercritical'. // Order of checks matters (solid first wins over liquid, etc.). function classifyPhase(T, P) { if (P > pMelt(T)) return 'solid'; if (T >= T_CRIT && P >= P_CRIT) return 'supercritical'; if (T >= T_CRIT) return 'gas'; if (P < pSat(T)) return 'gas'; if (T < tLambda(P)) return 'He II'; return 'He I'; } // ===================================================================== // Drawing // ===================================================================== // Cheap raster: sample a coarse grid, paint each cell by phase color. // 90 x 60 cells = 5400 small rects, well within p5's frame budget. function drawPhaseField() { const NX = 90, NY = 60; const dx = plotW / NX, dy = plotH / NY; noStroke(); for (let i = 0; i < NX; i++) { for (let j = 0; j < NY; j++) { const px = plotX + (i + 0.5) * dx; const py = plotY + (j + 0.5) * dy; const T = pxToT(px); const P = pyToP(py); const phase = classifyPhase(T, P); let r, g, b, a; switch (phase) { case 'gas': r = HOT[0]; g = HOT[1]; b = HOT[2]; a = 35; break; case 'He I': r = COLD[0]; g = COLD[1]; b = COLD[2]; a = 80; break; case 'He II': r = COLDER[0]; g = COLDER[1]; b = COLDER[2]; a = 130; break; case 'solid': r = STRUCT[0]; g = STRUCT[1]; b = STRUCT[2]; a = 150; break; case 'supercritical': r = HOT[0]; g = HOT[1]; b = HOT[2]; a = 100; break; default: r = 200; g = 200; b = 200; a = 0; } fill(r, g, b, a); rect(px - dx / 2, py - dy / 2, dx + 1, dy + 1); } } } function drawAxes() { push(); noFill(); stroke(SCRATCH); strokeWeight(1); rect(plotX, plotY, plotW, plotH); // T-axis tick marks (every 1 K) + labels noStroke(); fill(...DIM); textSize(10); textAlign(CENTER, TOP); for (let T = 1; T <= 7; T++) { const x = tToPx(T); stroke(SCRATCH); line(x, plotY + plotH, x, plotY + plotH + 4); noStroke(); text(T, x, plotY + plotH + 6); } // P-axis tick marks (every decade, log scale) + labels textAlign(RIGHT, CENTER); for (let logP = P_MIN_LOG; logP <= Math.floor(P_MAX_LOG); logP++) { const P = Math.pow(10, logP); const y = pToPy(P); stroke(SCRATCH); line(plotX - 4, y, plotX, y); noStroke(); text(formatPressure(P), plotX - 6, y); } // Axis titles noStroke(); fill(...DIM); textSize(12); textAlign(CENTER, TOP); text('T [K]', plotX + plotW / 2, plotY + plotH + 24); push(); translate(plotX - 56, plotY + plotH / 2); rotate(-PI / 2); text('P [MPa, log scale]', 0, 0); pop(); pop(); } function formatPressure(P) { if (P >= 1) return P.toFixed(1); if (P >= 0.01) return P.toFixed(2); if (P >= 0.0001) return P.toFixed(4); return P.toExponential(0); } function drawSaturationCurve() { push(); noFill(); stroke(...COLD); strokeWeight(2); beginShape(); for (let T = SAT_ANCHORS[0][0]; T <= T_CRIT; T += 0.05) { vertex(tToPx(T), pToPy(pSat(T))); } endShape(); // Inline label near the boiling-point tick on the curve noStroke(); fill(...COLD); textSize(10); textAlign(LEFT, CENTER); text('saturation (boil)', tToPx(T_NBP) + 6, pToPy(P_NBP)); pop(); } function drawLambdaLine() { push(); noFill(); stroke(...ACCENT); strokeWeight(2); beginShape(); // Walk in log P from the lower lambda point up to the upper lambda point. const P_lo = SAT_ANCHORS[2][1]; const P_hi = P_LAMBDA_UPPER; const steps = 40; for (let i = 0; i <= steps; i++) { const f = i / steps; const logP = Math.log10(P_lo) + f * (Math.log10(P_hi) - Math.log10(P_lo)); const P = Math.pow(10, logP); const T = T_LAMBDA + f * (T_LAMBDA_UPPER - T_LAMBDA); vertex(tToPx(T), pToPy(P)); } endShape(); // Label noStroke(); fill(...ACCENT); textSize(10); textAlign(LEFT, BOTTOM); text('lambda line (He I -> He II)', tToPx(T_LAMBDA) + 4, pToPy(0.5)); pop(); } function drawMeltingCurve() { push(); noFill(); stroke(...STRUCT); strokeWeight(2); beginShape(); let started = false; for (let T = T_MIN; T <= T_MAX; T += 0.05) { const P = pMelt(T); if (P > Math.pow(10, P_MAX_LOG)) continue; // off the top of the chart vertex(tToPx(T), pToPy(P)); started = true; } endShape(); // Solid-region label if (started) { noStroke(); fill(...STRUCT); textSize(11); textAlign(CENTER, CENTER); text('solid', tToPx(0.85), pToPy(2.7)); } pop(); } function drawLandmarks() { push(); // Critical point -- yellow X stroke(...TRAJ); strokeWeight(2); const cpx = tToPx(T_CRIT), cpy = pToPy(P_CRIT); line(cpx - 6, cpy - 6, cpx + 6, cpy + 6); line(cpx - 6, cpy + 6, cpx + 6, cpy - 6); noStroke(); fill(...TRAJ); textSize(10); textAlign(LEFT, BOTTOM); text('critical (5.195 K, 0.227 MPa)', cpx + 8, cpy - 4); // Lower lambda point -- magenta open circle noFill(); stroke(...ACCENT); strokeWeight(2); circle(tToPx(T_LAMBDA), pToPy(0.00505), 8); noStroke(); fill(...ACCENT); textSize(10); textAlign(LEFT, TOP); text('lambda pt (2.172 K)', tToPx(T_LAMBDA) + 6, pToPy(0.00505) + 4); // Normal boiling point -- small cyan tick fill(...COLD); noStroke(); circle(tToPx(T_NBP), pToPy(P_NBP), 5); pop(); } function drawMarker() { // Update marker from mouse if dragging. if (dragging) { const px = constrain(mouseX, plotX, plotX + plotW); const py = constrain(mouseY, plotY, plotY + plotH); mark.T = pxToT(px); mark.P = pyToP(py); } const mx = tToPx(mark.T); const my = pToPy(mark.P); push(); // Outer halo noFill(); stroke(...TRAJ); strokeWeight(1); circle(mx, my, 18); // Filled center fill(...TRAJ); noStroke(); circle(mx, my, 8); pop(); } // ===================================================================== // Input handling // ===================================================================== function mousePressed() { // Inside the plot rect: click-to-jump and begin drag. if (mouseX >= plotX && mouseX <= plotX + plotW && mouseY >= plotY && mouseY <= plotY + plotH) { mark.T = pxToT(mouseX); mark.P = pyToP(mouseY); dragging = true; } } function mouseReleased() { dragging = false; } function keyPressed() { // Arrow keys nudge the marker for fine control. const dT_step = 0.05; const dlogP = 0.05; if (keyCode === LEFT_ARROW) mark.T = Math.max(T_MIN, mark.T - dT_step); if (keyCode === RIGHT_ARROW) mark.T = Math.min(T_MAX, mark.T + dT_step); if (keyCode === UP_ARROW) mark.P = Math.pow(10, Math.min(P_MAX_LOG, Math.log10(mark.P) + dlogP)); if (keyCode === DOWN_ARROW) mark.P = Math.pow(10, Math.max(P_MIN_LOG, Math.log10(mark.P) - dlogP)); } // ===================================================================== // 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/Cryogenics', 14, 36); // Top-right: control hints (Betterfire Standard rule 3) textAlign(RIGHT, TOP); textSize(10); text('drag the dot to move', width - 14, 12); text('arrow keys nudge', width - 14, 24); text('click anywhere in plot to jump', width - 14, 36); // Bottom-left: live readout const phase = classifyPhase(mark.T, mark.P); const phaseLabel = phase === 'He II' ? 'liquid He II (superfluid)' : phase === 'He I' ? 'liquid He I' : phase === 'gas' ? 'gas (He vapor)' : phase === 'solid' ? 'solid He' : phase === 'supercritical' ? 'supercritical fluid' : phase; fill(...DIM); textAlign(LEFT, BOTTOM); textSize(12); text('T = ' + nf(mark.T, 0, 2) + ' K P = ' + formatPressure(mark.P) + ' MPa', 14, height - 22); fill(FG); textSize(13); text('phase: ' + phaseLabel, 14, height - 6); // Bottom-right: canonical equation (Betterfire Standard rule 4) textAlign(RIGHT, BOTTOM); fill(FG); textSize(13); text('dP/dT = L / (T * dV) [Clausius-Clapeyron]', width - 14, height - 6); } // ===================================================================== // End of Cryogenics.js -- Wikitube microsim, Helium room, Pattern A. // ===================================================================== ``` ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Cryogenics.json (2026-07-30T02:09:12Z) --> `Absolute_zero` · `Biology` · [[Boiling_point]] · `Cell_(biology)` · `Celsius` · `Chemical_reactor` · `Cold_chain` · `Cryoablation` · `Cryobiology` · `Cryoconservation_of_animal_genetic_resources` · `Cryocooler` · `Cryoelectronics` · `Cryogen_(song)` · `Cryogenic_(band)` · `Cryogenic_fuel` · `Cryogenic_grinding` · `Cryogenic_hardening` · `Cryogenic_processor` · `Cryogenic_storage_dewar` · `Cryonics` · `Cryopreservation` · `Cryosurgery` · `Deposition_(phase_transition)` · `Detroit` · `Don_Rittner` · [[Electric_power_transmission]] · `Electron_microscope` · `Fahrenheit` · `Flash_freezing` · `Freon` · `Frozen_food` · `Gas` · `Greek_language` · `Heat_treating` · `Heike_Kamerlingh_Onnes` · [[Helium]] · `Humidity` · `Hydrocarbon` · [[Hydrogen]] · `International_Energy_Agency` · `International_Institute_of_Refrigeration` · `James_Dewar` · `James_Webb_Space_Telescope` · `Kelvin` · `LNG_carrier` · `LNG_storage_tank` · `Liquefied_gas` · `Liquefied_natural_gas` · [[Liquid_helium]] · `Liquid_hydrogen` · `Liquid_nitrogen` · `Liquid_oxygen` · `Low-temperature_technology_timeline` · `Low_Temperature_Physics_(journal)` · `Lowest_temperature_recorded_on_Earth` · [[Magnetic_resonance_imaging]] · `Manhattan` · `Mill_(grinding)` · `NASA` · [[Neon]] · `Nightclub` · [[Nitrogen]] · [[Nuclear_magnetic_resonance]] · `Orbit` · `Organism` · [[Oxygen]] · `Pfizer–BioNTech_COVID-19_vaccine` · [[Physics]] · `Popular_culture` · `Protein` · `Pulse_tube_refrigerator` · `RP-1` · `Rankine_scale` · `Resistance_thermometer` · `Sergei_Korolev` · `Silicon_bandgap_temperature_sensor` · `Soviet_space_program` · `Space_Shuttle` · `Spintronics` · `Statin` · `Stem-cell_therapy` · `Stem_cell` · `Stirling_engine` · `Structural_biology` · [[Superconductivity]] · `Temperature` · `Tupolev` · `Vaccine` · `Vacuum_flask` · `Variable-range_hopping` · `Very_Large_Telescope` · [[Wayback_Machine]] · `Ypsilanti,_Michigan` ## From the Real GENERATIVE library ![Cryogenics](https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Liquidnitrogen.jpg/220px-Liquidnitrogen.jpg) *Cryogenics — placed from the Real G.E.N.E.R.A.T.I.V.E. course library (Engineering room). Source: Wikimedia Commons (via Wikipedia article media). [Details & license](https://commons.wikimedia.org/wiki/File:Liquidnitrogen.jpg).* > In physics, cryogenics is the production and behaviour of materials at very low temperatures. ([Wikipedia](https://en.wikipedia.org/wiki/Cryogenics)) <!-- REAL-GENERATIVE-MEDIA:END --> <!-- LOCAL-MEDIA-PASS:START --> ## From the vault media library !Cryogenics thumb.png *Cryogenics — 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 **Cryogenics** is the branch of [[Physics|physics]] and [[Engineering|engineering]] concerned with the production and behaviour of materials at very low temperatures, conventionally below **120 K** (−153 °C), where the major atmospheric gases — oxygen, nitrogen, argon, and most importantly helium and hydrogen — liquefy at atmospheric pressure. Cryogenic engineering is distinguished from ordinary refrigeration by its working fluids and thermodynamic cycles: cooling below 77 K (the [[Boiling_point|boiling point]] of liquid nitrogen) requires multi-stage cascades, the Linde-Hampson Joule-Thomson cycle (effective only for gases below their inversion temperature), the Claude cycle (adding an expansion engine), Gifford-McMahon and pulse-tube regenerative refrigerators, or — for sub-Kelvin work — a He-3/He-4 [[Dilution_refrigerator|dilution refrigerator]]. Canonical temperature landmarks descend from liquid oxygen (90 K) through liquid nitrogen (77 K), liquid hydrogen (20 K), [[Liquid_helium|liquid helium]]-4 (4.222 K), liquid helium-3 (3.19 K), and into milli- and micro-kelvin regimes reached by adiabatic demagnetisation and laser cooling. Liquid **helium-4** is the workhorse coolant of the 1.5–5 K regime — uniquely so, since no other element remains liquid at atmospheric pressure below 20 K — and its superfluid lambda transition at **2.17 K** is the most important phase phenomenon in cryogenic physics, underwriting every helium-cooled superconducting [[System|system]]. Practical cryogenic systems are dominated by their insulation: vacuum-jacketed Dewar vessels (1892), multilayer insulation, and vapour-cooled radiation shields. Cryogenics underwrites superconducting magnets (MRI, NMR, the LHC at 1.9 K), infrared and submillimetre astronomy, semiconductor wafer processing, quantum-computing dilution fridges below 20 mK, cryosurgery and cryopreservation, and liquid-propellant aerospace — making it the bedrock infrastructure of nearly every laboratory or industrial process operating below 77 K. ## See also - Room hub: [[Helium]] - p5.js Editor conventions: P5 JS EDITOR - Wiki root: MAIN --- *Scaffolded by `generative-microsim` from row 23 of the Helium sheet on 2026-05-11T20:32:02Z.* <!-- REAL-GENERATIVE-MEDIA:START --> <!-- CRAFT-LINK:START g12 --> *Built to the [[WT!P5_js_Microsim_Master_Class|p5.js Master Class]].* <!-- CRAFT-LINK:END --> <!-- COMPENDIUMLINK:BEGIN g19 — generated from _registry/plans/THURY_COMPENDIUM_SECTIONS.md; do not hand-edit inside --> **Part of the [[WT!Thury_Hydrodynamics_Compendium|Thury Hydrodynamics Compendium]]** — main article for section 26, *Cryogenics*. Related sections: [[Hydrogen_economy]] · [[Superfluidity]] · [[Nuclear_fusion]]. <!-- COMPENDIUMLINK:END --> <!-- THURYSIM:BEGIN g21 — Thury Compendium microsim (framework build, specs/sims/Cryogenics.json); do not hand-edit inside --> **Microsim — three.js (Wikitube framework):** *Cryogenics* <div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/thury/Cryogenics.html" data-title="Cryogenics"></div> *Built from `MICROSIM_GUIDE/specs/sims/Cryogenics.json`; part of the [[WT!Thury_Hydrodynamics_Compendium|Thury Hydrodynamics Compendium]] set.* <!-- THURYSIM:END --> ## Wikipedia : Wikitube **Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Cryogenics) : [Wikitube](https://en.wikitube.io/wiki/Cryogenics) ## Previous hub tags Tree parents: [[Helium]] · [[Helium-3]] · [[Hydrogen]] · [[Oxygen]]. Legacy hubs: none. --- *Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*