# Hydrogen production ## Microsim ### Live player <div class="microsim-player"> <iframe src="https://editor.p5js.org/sciencenibber/full/igQKlUTcC" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> </div> <div class="microsim-fallback"> <img src="Microsims/thumbs/Hydrogen_production.png" alt="Hydrogen_production 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/igQKlUTcC">open sketch in the p5.js editor</a></em></p> </div> **Editor URL:** https://editor.p5js.org/sciencenibber/sketches/igQKlUTcC **Description (100 words):** A stock-and-flow diagram of the world hydrogen economy. Four production pathways on the left (Grey SMR, Blue SMR+CCS, Green electrolysis, and an Other residual) push tokens along arrows into a central H2 inventory; four demand pathways on the right (Ammonia, Refining, Methanol, [[Steel]]) drain it. Three sliders set the production mix and a fourth scales demand. Live gauges show production, demand, CO2 emissions weighted by per-pathway carbon intensity, electrolysis grid demand, and net flow. The central reservoir bar rises when production beats demand and falls when it lags. A reset button snaps the inventory back to 50 Mt for a fresh run. ```js // ===================================================================== // Hydrogen_production.js -- Wikitube microsim // Article: Hydrogen_production // en.wikitube.io/wiki/Hydrogen_production // Room: Helium Pattern: K (stock-and-flow, system dynamics) // --------------------------------------------------------------------- // Idea: the world hydrogen economy modeled as a single inventory stock // fed by four production pathways and drained by four demand pathways. // The reader drives the production mix with three sliders (grey SMR, // blue SMR+CCS, green electrolysis) and a demand-growth multiplier, // then watches: // // * the central H2 inventory rise and fall (Mt H2) // * the CO2 emission gauge (Mt CO2 / yr) which weights each pathway // by its carbon intensity // * the green-grid electricity demand gauge (TWh / yr) which scales // with green electrolysis output // * animated tokens flowing along each arrow whose density encodes // the volumetric flow rate // // Production pathway carbon intensities (kg CO2 / kg H2): // * Grey steam methane reforming (SMR) ~9.5 // * Blue SMR with carbon capture (CCS) ~1.5 // * Green renewable electrolysis ~0.0 // * Other gasification + pink + turquoise (mix) ~8.0 // // Demand pathway baseline shares (Mt H2 / yr, 2022 totals): // * Ammonia (Haber-Bosch) ~33 // * Refining (hydrocracking, HDS) ~41 // * Methanol ~15 // * Direct-reduced-iron steel + other ~6 // // Stock-and-flow dynamics (Pattern K, forward Euler): // // dS/dt = production - demand // S(t+dt) = S(t) + (sum_i p_i - sum_j d_j) * dt // // where S is the H2 inventory (Mt), p_i are the four production rates, // and d_j are the four demand rates. Numerical integration runs at the // frame rate with dt = min(deltaTime / 1000, 0.05) so a paused tab // cannot blow up the integrator on resume. // // Canonical equation shown bottom-right is the green-hydrogen route -- // water electrolysis -- because that is the route the slider directly // drives and the one that couples the H2 economy to the renewable // grid (and indirectly to the helium cryogenic infrastructure that // liquefies LH2 at 20.3 K): // // 2 H2O -> 2 H2 + O2 (Delta_G = 237 kJ/mol, E_cell = 1.23 V) // // Visual layout (720 x 520 canvas): // * top-left: HUD title + en.wikitube.io/wiki/Hydrogen_production // * top-right: reader hints (drag sliders, click reset) // * left column: 4 source stocks (Grey, Blue, Green, Other) // * center: large H2 inventory stock with fill bar // * right col: 4 demand stocks (Ammonia, Refining, Methanol, Steel) // * arrows: animated token flows between stocks // * bottom: CO2 / electricity / production / demand gauges, // four sliders, 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 (Delta, 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 // * All createSlider calls carry .position(x, y).size(w) -- no floats // ===================================================================== const ARTICLE = 'Hydrogen_production'; 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: high-carbon (grey SMR) const WARM = [200, 150, 80]; // mid-carbon (other, blue) const COLD = [60, 130, 220]; // cool: low-carbon (blue) const COLDER = [80, 200, 140]; // greener: electrolysis (green) const STRUCT = [120, 130, 150]; // structural grey: stock outlines const TRAJ = [240, 220, 80]; // accent: live readouts const GAUGE = [120, 220, 140]; // gauge fill const SCRATCH = [120, 120, 120, 90]; // grid / scratch lines // ----- Production-pathway carbon intensity (kg CO2 / kg H2) ----------- const CI_GREY = 9.5; const CI_BLUE = 1.5; const CI_GREEN = 0.0; const CI_OTHER = 8.0; // ----- Other pathway (gasification + pink + turquoise) fixed rate ----- // Not exposed as a slider -- it is the "everything else" residual. const R_OTHER = 8.0; // Mt H2 / yr // ----- Electrolysis grid intensity (MWh / t H2 -> TWh / Mt H2) -------- // 50 MWh per tonne H2 is a representative alkaline / PEM figure. const GRID_PER_GREEN = 50.0; // TWh / yr per Mt H2 / yr of green output // ----- Baseline demand shares (Mt H2 / yr) ---------------------------- const D_AMMONIA = 33.0; const D_REFINING = 41.0; const D_METHANOL = 15.0; const D_STEEL = 6.0; const D_BASELINE = D_AMMONIA + D_REFINING + D_METHANOL + D_STEEL; // 95 Mt // ----- Stock dynamics state ------------------------------------------ let stockH2 = 50.0; // Mt H2 currently in inventory let tokens = []; // active flow tokens for animation // ----- Sliders (all created in setup; values read once per frame) ----- let rGreySlider, rBlueSlider, rGreenSlider, dGrowthSlider, resetBtn; function setup() { createCanvas(720, 520); pixelDensity(2); textFont('system-ui'); // Slider column at the bottom of the canvas. Each slider has // .position(x, y) and .size(w) per Betterfire Standard rule 6. const sliderY0 = height - 95; rGreySlider = createSlider(0, 80, 60, 1) .position(14, sliderY0) .size(150); rBlueSlider = createSlider(0, 80, 10, 1) .position(184, sliderY0) .size(150); rGreenSlider = createSlider(0, 80, 12, 1) .position(354, sliderY0) .size(150); dGrowthSlider = createSlider(0.5, 2.0, 1.0, 0.05) .position(524, sliderY0) .size(150); resetBtn = createButton('reset inventory') .position(14, sliderY0 + 40); resetBtn.mousePressed(() => { stockH2 = 50.0; tokens.length = 0; }); } function draw() { background(BG); // ----- read controls once per frame into named locals ----- const rGrey = rGreySlider.value(); const rBlue = rBlueSlider.value(); const rGreen = rGreenSlider.value(); const growth = dGrowthSlider.value(); const dt = Math.min(deltaTime / 1000, 0.05); const production = rGrey + rBlue + rGreen + R_OTHER; const demand = D_BASELINE * growth; const co2Rate = CI_GREY * rGrey + CI_BLUE * rBlue + CI_GREEN * rGreen + CI_OTHER * R_OTHER; // Mt CO2 / yr const gridRate = GRID_PER_GREEN * rGreen; // TWh / yr // ----- integrate the H2 inventory ODE ----- // dS/dt = production - demand (Mt / yr units; dt scaled below) // We let dt encode a "fictional accelerated year" so the bar moves // visibly: 1 real second corresponds to ~5 simulated years. const SIM_YEARS_PER_SEC = 5.0; stockH2 += (production - demand) * dt * SIM_YEARS_PER_SEC; stockH2 = constrain(stockH2, 0, 200); // ----- spawn flow tokens proportional to each flow rate ----- spawnFlowTokens(rGrey, rBlue, rGreen, R_OTHER, D_AMMONIA * growth, D_REFINING * growth, D_METHANOL * growth, D_STEEL * growth, dt); updateTokens(dt); // ----- draw the world ----- drawSourceStocks(rGrey, rBlue, rGreen, R_OTHER); drawInventoryStock(); drawDemandStocks(growth); drawTokens(); drawGauges(production, demand, co2Rate, gridRate); drawSliderLabels(rGrey, rBlue, rGreen, growth); drawHUD(); } // ===================================================================== // Stock layout geometry // ===================================================================== // Source stocks (left column): x = 14, 4 boxes vertically // Inventory stock (center): large rounded rect, the H2 reservoir // Demand stocks (right column): x = right edge, 4 boxes vertically // ===================================================================== const SRC_X = 14; const SRC_Y0 = 70; const SRC_W = 110; const SRC_H = 56; const SRC_GAP = 12; const DST_X = 596; const DST_Y0 = 70; const DST_W = 110; const DST_H = 56; const DST_GAP = 12; const INV_X = 280; const INV_Y = 130; const INV_W = 160; const INV_H = 200; // Returns the y-center of source/destination row i (0..3). function srcCY(i) { return SRC_Y0 + i * (SRC_H + SRC_GAP) + SRC_H / 2; } function dstCY(i) { return DST_Y0 + i * (DST_H + DST_GAP) + DST_H / 2; } // ===================================================================== // Source stocks (production pathways) // ===================================================================== function drawSourceStocks(rGrey, rBlue, rGreen, rOther) { const rates = [rGrey, rBlue, rGreen, rOther]; const labels = ['Grey SMR', 'Blue SMR+CCS', 'Green electrolysis', 'Other (gasif. + pink)']; const cols = [HOT, COLD, COLDER, WARM]; const ciStr = ['9.5 kg CO2/kg H2', '1.5 kg CO2/kg H2', '0.0 kg CO2/kg H2', '8.0 kg CO2/kg H2']; for (let i = 0; i < 4; i++) { const y = SRC_Y0 + i * (SRC_H + SRC_GAP); drawStockBox(SRC_X, y, SRC_W, SRC_H, cols[i], rates[i] / 80, labels[i], rates[i].toFixed(0) + ' Mt/yr', ciStr[i]); } } // ===================================================================== // Inventory stock (the central H2 reservoir) // ===================================================================== function drawInventoryStock() { push(); // outer box noFill(); stroke(...STRUCT); strokeWeight(2); rect(INV_X, INV_Y, INV_W, INV_H, 8); // fill bar (bottom-up) const fillFrac = constrain(stockH2 / 200, 0, 1); const fillH = fillFrac * (INV_H - 8); noStroke(); fill(GAUGE[0], GAUGE[1], GAUGE[2], 160); rect(INV_X + 4, INV_Y + INV_H - 4 - fillH, INV_W - 8, fillH, 6); // 100 Mt reference line stroke(SCRATCH); strokeWeight(1); const yRef = INV_Y + INV_H - 4 - (100 / 200) * (INV_H - 8); line(INV_X, yRef, INV_X + INV_W, yRef); noStroke(); fill(...DIM); textSize(9); textAlign(RIGHT, CENTER); text('100 Mt', INV_X - 4, yRef); // Labels noStroke(); fill(FG); textAlign(CENTER, TOP); textSize(13); text('Global H2 inventory', INV_X + INV_W / 2, INV_Y - 22); textAlign(CENTER, BOTTOM); fill(...TRAJ); textSize(15); text(nf(stockH2, 0, 1) + ' Mt H2', INV_X + INV_W / 2, INV_Y + INV_H + 18); pop(); } // ===================================================================== // Demand stocks (consumption pathways) // ===================================================================== function drawDemandStocks(growth) { const rates = [D_AMMONIA * growth, D_REFINING * growth, D_METHANOL * growth, D_STEEL * growth]; const labels = ['Ammonia (Haber-Bosch)', 'Refining (HDS)', 'Methanol', 'Steel (DRI) + other']; const cols = [WARM, HOT, COLD, COLDER]; for (let i = 0; i < 4; i++) { const y = DST_Y0 + i * (DST_H + DST_GAP); drawStockBox(DST_X, y, DST_W, DST_H, cols[i], rates[i] / 80, labels[i], rates[i].toFixed(0) + ' Mt/yr', 'consumer'); } } // ===================================================================== // Shared stock-box renderer // ===================================================================== function drawStockBox(x, y, w, h, col, fillFrac, title, valStr, subStr) { push(); // frame noFill(); stroke(...STRUCT); strokeWeight(1.5); rect(x, y, w, h, 5); // fill bar (left-to-right) const f = constrain(fillFrac, 0, 1); noStroke(); fill(col[0], col[1], col[2], 140); rect(x + 3, y + 3, (w - 6) * f, h - 6, 3); // title noStroke(); fill(FG); textAlign(LEFT, TOP); textSize(10); text(title, x + 5, y + 4); // value fill(...TRAJ); textSize(12); text(valStr, x + 5, y + 18); // subtitle fill(...DIM); textSize(9); text(subStr, x + 5, y + h - 13); pop(); } // ===================================================================== // Flow tokens -- one per parcel of H2 moving along an arrow. // Each token has: pathway index, side ('src' or 'dst'), age (0..1 // along the arrow), and a small jitter so they do not stack visually. // ===================================================================== function spawnFlowTokens(rGrey, rBlue, rGreen, rOther, dAm, dRe, dMe, dSt, dt) { // Spawn rate is proportional to flow rate. Cap total tokens to keep // the per-frame budget bounded. if (tokens.length > 220) return; // Sources -> inventory const srcRates = [rGrey, rBlue, rGreen, rOther]; for (let i = 0; i < 4; i++) { if (random() < srcRates[i] * dt * 0.6) { tokens.push(makeToken('src', i)); } } // Inventory -> demand const dstRates = [dAm, dRe, dMe, dSt]; for (let i = 0; i < 4; i++) { if (random() < dstRates[i] * dt * 0.6) { tokens.push(makeToken('dst', i)); } } } function makeToken(side, idx) { return { side: side, idx: idx, age: 0.0, jit: random(-3, 3) }; } function updateTokens(dt) { // 0.4 means a token traverses an arrow in ~2.5 seconds. const SPEED = 0.4; for (const t of tokens) t.age += SPEED * dt + 0.01 * dt; for (let i = tokens.length - 1; i >= 0; i--) { if (tokens[i].age >= 1.0) tokens.splice(i, 1); } } function drawTokens() { noStroke(); for (const t of tokens) { const xy = tokenXY(t); const col = tokenColor(t); // halo fill(col[0], col[1], col[2], 70); circle(xy.x, xy.y, 7); // core fill(col[0], col[1], col[2], 230); circle(xy.x, xy.y, 3.5); } } // Returns the (x, y) of token t at its current age along the arrow. function tokenXY(t) { if (t.side === 'src') { const x0 = SRC_X + SRC_W; const y0 = srcCY(t.idx); const x1 = INV_X; const y1 = INV_Y + INV_H / 2; return lerpPoint(x0, y0, x1, y1, t.age, t.jit); } else { const x0 = INV_X + INV_W; const y0 = INV_Y + INV_H / 2; const x1 = DST_X; const y1 = dstCY(t.idx); return lerpPoint(x0, y0, x1, y1, t.age, t.jit); } } // Lerp from (x0, y0) -> (x1, y1) with a perpendicular jitter offset. function lerpPoint(x0, y0, x1, y1, age, jit) { const x = lerp(x0, x1, age); const y = lerp(y0, y1, age); // perpendicular unit vector (-dy, dx)/||...|| const dx = x1 - x0, dy = y1 - y0; const m = Math.sqrt(dx * dx + dy * dy) || 1; return { x: x + (-dy / m) * jit, y: y + (dx / m) * jit }; } function tokenColor(t) { if (t.side === 'src') { return [HOT, COLD, COLDER, WARM][t.idx]; } else { return [WARM, HOT, COLD, COLDER][t.idx]; } } // ===================================================================== // Gauges: production, demand, CO2, electricity // ===================================================================== function drawGauges(production, demand, co2Rate, gridRate) { // Gauges along the top of the canvas, centered between source and // demand columns, above the inventory stock. push(); textAlign(LEFT, TOP); textSize(11); fill(...DIM); text('Production: ', INV_X - 60, 14); text('Demand: ', INV_X - 60, 30); text('CO2 emissions: ', INV_X - 60, 46); text('Grid demand (green): ', INV_X - 60, 62); fill(FG); textSize(11); text(nf(production, 0, 1) + ' Mt H2 / yr', INV_X + 60, 14); text(nf(demand, 0, 1) + ' Mt H2 / yr', INV_X + 60, 30); text(nf(co2Rate, 0, 1) + ' Mt CO2 / yr', INV_X + 60, 46); text(nf(gridRate, 0, 1) + ' TWh / yr', INV_X + 60, 62); // Net flow color cue: green if surplus, orange if deficit. const net = production - demand; fill(net >= 0 ? GAUGE : HOT); textAlign(LEFT, TOP); textSize(11); text((net >= 0 ? '+' : '') + nf(net, 0, 1) + ' Mt / yr', INV_X + 60, 78); fill(...DIM); text('Net: ', INV_X - 60, 78); pop(); } // ===================================================================== // Slider labels (drawn on canvas below the slider strip) // ===================================================================== function drawSliderLabels(rGrey, rBlue, rGreen, growth) { push(); noStroke(); fill(...DIM); textAlign(LEFT, BOTTOM); textSize(10); const y = height - 100; text('Grey SMR (' + rGrey.toFixed(0) + ' Mt/yr)', 14, y); text('Blue SMR+CCS (' + rBlue.toFixed(0) + ' Mt/yr)', 184, y); text('Green electro (' + rGreen.toFixed(0) + ' Mt/yr)', 354, y); text('Demand growth (' + growth.toFixed(2) + 'x)', 524, y); pop(); } // ===================================================================== // HUD // ===================================================================== function drawHUD() { // Top-left: title + Wikitube URL (Betterfire Standard rule 2) noStroke(); fill(FG); textAlign(LEFT, TOP); textSize(22); text(TITLE, 14, 12); fill(...DIM); textSize(12); text('Wikitube microsim . en.wikitube.io/wiki/Hydrogen_production', 14, 40); // Top-right: control hints (Betterfire Standard rule 3) textAlign(RIGHT, TOP); textSize(10); fill(...DIM); text('drag sliders to set production mix', width - 14, 14); text('reset clears inventory to 50 Mt', width - 14, 26); text('tokens flow at the rate of each arc', width - 14, 38); // Bottom-right: canonical equation (Betterfire Standard rule 4) textAlign(RIGHT, BOTTOM); fill(FG); textSize(12); text('2 H2O -> 2 H2 + O2 (Delta_G = 237 kJ/mol, E_cell = 1.23 V)', width - 14, height - 6); } // ===================================================================== // End of Hydrogen_production.js -- Wikitube microsim, Helium room, // Pattern K (stock-and-flow / system dynamics). // ===================================================================== ``` ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Hydrogen_production.json (2026-07-30T02:09:12Z) --> `AES_Corporation` · `Activated_carbon` · `Air_Products` · `Algae` · `Aluminium_alloy` · `American_Chemical_Society` · `American_Institute_of_Chemical_Engineers` · `Ammonia` · `Ammonia_production` · `Anaerobic_digestion` · `Anthracite` · `Aromatization` · `Artificial_photosynthesis` · `Bacteria` · `Bar_(unit)` · `Biogas` · `Biohydrogen` · `Biomass` · `Biomass_(energy)` · `Bioreactor` · `Blast_furnace` · `By-product` · `CNBC` · `Carbon_Brief` · `Carbon_black` · `Carbon_capture_and_storage` · `Carbon_monoxide` · `Chemical_decomposition` · [[Chlorine]] · `Chlorine_production` · `Coal` · `Coal_gasification` · `Coke_(fuel)` · `Combustion` · `Compressed_hydrogen` · `Copper–chlorine_cycle` · `Decomposition` · `Electrolysis` · `Electrolysis_of_water` · `Electrolytic_cell` · `Elements_(journal)` · `Energy_Reports` · `Energy_transition` · `Enzyme` · `Ethanol` · `Exothermic_reaction` · `Formic_acid` · `Gasification` · `Glycerol` · `Green_hydrogen` · `Greenhouse_gas_emissions` · `Haber_process` · `Hannah_Ritchie` · `Heating_oil` · `Heliostat` · `High-pressure_electrolysis` · `High-temperature_electrolysis` · `Hofmann_voltameter` · `Hybrid_sulfur_cycle` · `Hydrodesulfurization` · [[Hydrogen]] · `Hydrogen_analyzer` · `Hydrogen_economy` · `Hydrogen_embrittlement` · `Hydrogen_safety` · `Hydrogen_storage` · `Hydrogen_sulfide` · `Hydrogen_technologies` · `Industrial_gas` · `International_Energy_Agency` · `Iron_oxide` · `Iron_oxide_cycle` · `Kola_Superdeep_Borehole` · `Kværner_process` · `Landfill_gas` · `Light` · `Lignite` · `Liquid_hydrogen` · `Lithosphere` · `Mark_Z._Jacobson` · `Methane` · `Methanol` · `Microbial_fuel_cell` · `Midcontinent_Rift_System` · `Naphtha` · `Natural_hydrogen` · `Next_Generation_Nuclear_Plant` · [[Nickel]] · `Niobium_nitride` · `Norway` · `Nuclear_power` · `Overpotential` · `Oxide` · [[Oxygen]] · `Petroleum_coke` · `Photoelectrochemical_cell` · `Photosynthesis` · [[Plasma_(physics)]] · `Platinum_group` · `Polyphosphate` · `Potassium_carbonate` · `Pressure_swing_adsorption` · `Pressure_vessel` · `Primary_energy` · `Pyrolysis` · `Radiolysis` · `Renewable_energy` · `Sodium_hydroxide` · `Sodium_silicate` · `Solar_cell` · `Solar_power` · `Solar_thermal_collector` · `Solid_oxide_electrolyzer_cell` · `South_Africa` · `Spain` · `Specific_energy` · `Standard_temperature_and_pressure` · `Steam_reforming` · `Stoichiometry` · [[Sulfur]] · `Sulfuric_acid` · `Sulfur–iodine_cycle` · `Superheated_steam` · `Syngas` · `Teknisk_Ukeblad` · `Thermal_efficiency` · `Thermochemical_cycle` · `Timeline_of_hydrogen_technologies` · `United_States_Army_Research_Laboratory` · [[Voltage]] · `Water` · `Water_splitting` · [[Wayback_Machine]] · `World_War_I` · `Xylose` · `Yield_(chemistry)` ## From the vault media library !Hydrogen production thumb.png *Hydrogen Production — 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 Hydrogen production is the family of industrial processes that manufacture molecular hydrogen (H2) from feedstocks such as [[Natural_gas|natural gas]], coal, biomass, or water. Global output reached roughly 95 million tonnes in 2022, almost all of it consumed by ammonia synthesis (Haber-Bosch), oil-refinery hydrocracking, methanol manufacture, and direct-reduced-iron steelmaking. About 95% of current supply comes from fossil sources via steam methane reforming, in which methane and steam react over a nickel catalyst at 700-1100 C, CH4 + H2O to CO + 3 H2, followed by the water-gas shift CO + H2O to CO2 + H2. Coal gasification and partial-oxidation routes contribute most of the remainder. Water electrolysis splits H2O into H2 and O2 with theoretical Gibbs free [[Energy|energy]] of 237 kJ/mol and reversible cell [[Voltage|voltage]] of 1.23 V at 25 C; practical alkaline, PEM, and solid-oxide electrolyzers operate at 1.6-2.0 V, with efficiencies of 60-80% on a higher-heating-value basis. A color taxonomy classifies output by carbon intensity: grey (fossil, about 9-12 kg CO2 per kg H2), blue (fossil with carbon capture), green (renewable electrolysis, near-zero), pink (nuclear electrolysis), turquoise (methane pyrolysis), and white (geologic). Emerging methods include thermochemical sulfur-iodine cycles, photoelectrochemical splitting, and dark fermentation. Liquefaction to LH2 ([[Boiling_point|boiling point]] 20.3 K) shares cryogenic infrastructure with helium and is a major helium pre-cooling load; the hydrogen and helium economies are technologically coupled at storage, transport, and refrigeration layers. ## See also - Room hub: [[Helium]] - p5.js Editor conventions: P5 JS EDITOR - Wiki root: MAIN --- *Scaffolded by `generative-microsim` from row 112 of the Helium sheet on 2026-05-14T12:24: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 --> <!-- COMPENDIUMLINK:BEGIN g19 — generated from _registry/plans/THURY_COMPENDIUM_SECTIONS.md; do not hand-edit inside --> *Linked from the [[WT!Thury_Hydrodynamics_Compendium|Thury Hydrodynamics Compendium]], section 12, The hydrogen economy.* <!-- COMPENDIUMLINK:END --> ## Wikipedia : Wikitube **Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Hydrogen_production) : [Wikitube](https://en.wikitube.io/wiki/Hydrogen_production) ## Previous hub tags Tree parent: [[Hydrogen]]. Legacy hubs: none. --- *Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*