# Fusion rocket
## Microsim
### Live player
<div class="microsim-player">
<iframe src="https://editor.p5js.org/sciencenibber/full/810vYsbef" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe>
</div>
<div class="microsim-fallback">
<img src="Microsims/thumbs/Fusion_rocket.png" alt="Fusion_rocket 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/810vYsbef">open sketch in the p5.js editor</a></em></p>
</div>
**Editor URL:** https://editor.p5js.org/sciencenibber/sketches/810vYsbef
**Description (100 words):**
A side-view topological schematic of a Direct Fusion Drive. The reader sees the two qualitatively different magnetic-field regions that the same set of mirror coils produces: on the left, nested closed flux surfaces forming a Field-Reversed Configuration plasmoid (blue rings), bounded by the yellow separatrix that meets itself at two X-points; on the right, a magenta fan of open field lines diverging through a magnetic nozzle that becomes the exhaust. Plasma particles orbit the closed surfaces, occasionally [[Leak|leak]] through the X-points, and accelerate outward along the open lines. Three sliders pick fuel cycle (D-T, D-He3, D-D, p-B11), set the mirror ratio, and gate the mass flow; the HUD computes exhaust velocity and specific impulse.
```js
// =====================================================================
// Fusion_rocket.js -- Wikitube microsim
// Article: Fusion_rocket en.wikitube.io/wiki/Fusion_rocket
// Room: Helium Pattern: 8 (Crossover with Geometry --
// topological + spatial)
// ---------------------------------------------------------------------
// Idea: a side-view, topology-first schematic of a Direct Fusion Drive
// (DFD) -- the Princeton Field-Reversed Configuration (FRC) thruster
// whose closed magnetic flux surfaces confine a D-He3 (or D-T / D-D /
// p-B11) plasma, and whose open field lines downstream form a magnetic
// nozzle that accelerates plasma to an exhaust velocity v_e of order
// 10^5 - 10^7 m/s.
//
// Why Pattern 8 (Crossover with Geometry): the entire physics here is
// topological. The same magnetic field has two regions of qualitatively
// different topology -- closed flux surfaces (containing the plasma)
// and open field lines (extracting thrust) -- separated by a curve
// called the separatrix. The X-point where the separatrix self-
// intersects is a topological singularity. Spatially, the visualization
// is a stack of nested loops on the left half of the canvas and a fan
// of diverging hyperbolae on the right half; the reader sees the
// topology change directly.
//
// Visual layout (720 x 520 canvas):
// * top-left: HUD title 'Fusion rocket' + en.wikitube.io URL
// * top-right: control hints
// * center: rocket cross-section (axially symmetric about y_axis)
// - left chamber: closed FRC flux surfaces (nested loops)
// - middle: separatrix + two X-points (top & bottom)
// - right nozzle: open field lines diverging outward
// - magnetic coils shown as solid disks above/below
// * particles: plasma ions, color-coded by region (confined / escaping
// / exhaust), animated along the field-line geometry
// * bottom-left: live readout -- fuel cycle, E_reaction, v_e, Isp
// * bottom-right: canonical equation v_e = sqrt(2 E / m_i)
//
// Canonical equations:
//
// Tsiolkovsky rocket equation: dv = v_e * ln(m0 / mf)
// Exhaust velocity (fully thermalized, charged products):
// v_e = sqrt(2 E_fusion / m_i)
// Specific impulse: Isp = v_e / g0 [g0 = 9.81 m/s^2]
// Mirror ratio (nozzle): R = B_max / B_min
//
// Fuel cycles modeled (charged-product yield is what becomes thrust):
//
// D-T: D + T -> He4 (3.5 MeV) + n (14.1 MeV) 17.6 MeV
// ~80% energy to neutron -> shielding mass penalty
// D-He3: D + He3 -> He4 (3.6 MeV) + p (14.7 MeV) 18.3 MeV
// aneutronic (~5% side D-D neutrons), helium-room canon fuel
// D-D: average of two branches 3.65 MeV
// 50/50 neutron and charged
// p-B11: p + B11 -> 3 He4 8.7 MeV
// fully aneutronic, hardest to ignite (T ~ 10^9 K)
//
// 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) 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, line 165):
// BG=18, FG=240, HOT=[220,110,60], COLD=[60,130,220],
// STRUCT=[120,130,150], TRAJ=[240,220,80]
// * Three sliders, all positioned: fuel cycle, mirror ratio, mass flow
//
// Interaction:
// * Fuel slider snaps to integer 0..3 selecting D-T / D-He3 / D-D / p-B11
// * Mirror-ratio slider widens the nozzle and increases v_e via
// conservation of magnetic moment (mu = m v_perp^2 / 2B)
// * Mass-flow slider sets the number of plasma particles in flight
// =====================================================================
const ARTICLE = 'Fusion_rocket';
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]; // exhaust plasma (hot ions exiting)
const COLD = [60, 130, 220]; // confined plasma (cool tone -> stable)
const STRUCT = [120, 130, 150]; // coils, structural elements
const TRAJ = [240, 220, 80]; // separatrix, X-points (the topology)
const ACCENT = [200, 100, 220]; // field-line accent (magenta)
const COIL_FILL = [70, 80, 100]; // coil fill (darker structural tone)
// ----- Fuel cycle table (charged-product energy / avg charged-ion amu) ----
// E in MeV, m_i in atomic mass units (amu). v_e derives from
// v_e = sqrt(2 * E_MeV * 1.602e-13 / (m_i * 1.66054e-27))
const FUELS = [
{ name: 'D-T', E: 17.6, m: 2.5, charged: 0.20, aneutronic: false }, // 20% energy charged (alpha only)
{ name: 'D-He3', E: 18.3, m: 2.5, charged: 1.00, aneutronic: true }, // ~aneutronic, all charged
{ name: 'D-D', E: 3.65, m: 2.0, charged: 0.50, aneutronic: false }, // half-charged on average
{ name: 'p-B11', E: 8.7, m: 4.0, charged: 1.00, aneutronic: true } // 3 alpha, aneutronic
];
// ----- Geometry constants (canvas-pixel coordinates) -----------------
const AXIS_Y = 280; // rocket center-line y
const CHAMBER_X0 = 110; // left wall of FRC chamber
const CHAMBER_X1 = 360; // separatrix waist (X-points are here)
const NOZZLE_X1 = 660; // exhaust mouth x
const CHAMBER_R = 110; // half-height of FRC plasmoid (max radius)
// ----- Particle pool (one allocation, reused every frame) ------------
const MAX_PARTICLES = 240;
const particles = [];
// ----- UI control handles -------------------------------------------
let fuelSlider, mirrorSlider, flowSlider;
// ----- Live computed values (read once per frame in draw()) ----------
let fuelIdx = 1; // default to D-He3 (the helium-room canonical fuel)
let mirrorR = 5.0; // dimensionless B_max / B_min
let flowFrac = 0.6; // 0..1 fraction of MAX_PARTICLES alive
let v_e_mps = 0; // m/s, recomputed every frame
let isp_s = 0; // s
function setup() {
createCanvas(720, 520);
pixelDensity(2);
textFont('system-ui');
// Sliders: laid out in a row below the rocket diagram, left-aligned.
// Every createSlider call has .position(...) and .size(...) per the
// Betterfire FES2 lint rule.
fuelSlider = createSlider(0, 3, 1, 1).position(20, 430).size(120);
mirrorSlider = createSlider(1.5, 10, 5.0, 0.1).position(180, 430).size(160);
flowSlider = createSlider(0, 1, 0.6, 0.02).position(380, 430).size(160);
// Pre-seed the particle pool so the first frame already has plasma.
for (let i = 0; i < MAX_PARTICLES; i++) particles.push(spawnParticle());
}
function draw() {
background(BG);
// ----- Pull control values into named locals (Energy-room §4 rule) ---
fuelIdx = constrain(int(fuelSlider.value()), 0, FUELS.length - 1);
mirrorR = mirrorSlider.value();
flowFrac = flowSlider.value();
const fuel = FUELS[fuelIdx];
v_e_mps = computeExhaustVelocity(fuel, mirrorR);
isp_s = v_e_mps / 9.81;
// ----- Draw stack (later layers paint on top) -----------------------
drawAxis(); // dashed center line
drawCoils(); // mirror coils above and below
drawClosedFluxSurfaces(); // nested ellipses on the left
drawOpenFieldLines(); // diverging hyperbolae on the right
drawSeparatrix(); // the topology boundary + X-points
drawNozzleWall(); // schematic outer wall of the magnetic nozzle
updateAndDrawParticles(); // animated plasma along field-lines
drawSliderLabels(); // labels under each slider
drawHUD(); // title, URL, readouts, equation
}
// =====================================================================
// Physics
// =====================================================================
// v_e from fusion product energy, scaled by a thermalization efficiency
// (charged-product fraction) and a mirror-ratio nozzle gain. The form
// v_e = sqrt(2 E / m_i) is the directly-exhausted-product limit; the
// nozzle gain factor sqrt(1 - 1/R) is the magnetic-mirror loss-cone
// efficiency (plasma with v_par/v_perp ratio below the loss-cone leaves
// the mirror -- which IS the thrust direction).
function computeExhaustVelocity(fuel, R) {
const MeV_to_J = 1.602e-13;
const amu_kg = 1.66054e-27;
const E_J = fuel.E * MeV_to_J * fuel.charged;
const m_kg = fuel.m * amu_kg;
const v_th = Math.sqrt(2 * E_J / m_kg); // theoretical max
const eta = Math.sqrt(1 - 1 / R); // mirror efficiency
return v_th * eta;
}
// =====================================================================
// Closed flux surfaces -- nested almond-shaped loops left of the
// separatrix waist. Parametric form: an ellipse whose minor axis
// scales with a confinement parameter s in (0, 1).
// =====================================================================
function drawClosedFluxSurfaces() {
push();
noFill();
strokeWeight(1.2);
const cx = (CHAMBER_X0 + CHAMBER_X1) / 2; // FRC plasmoid center
const a = (CHAMBER_X1 - CHAMBER_X0) / 2; // semi-major along axis
const N = 7; // number of nested surfaces
for (let i = 1; i <= N; i++) {
const s = i / (N + 0.5); // 0..~1 -- inner to outer
const semiA = a * s;
const semiB = CHAMBER_R * s;
// Color fades from deep blue (core) to lighter as we approach separatrix
const alpha = 80 + 100 * (1 - s);
stroke(COLD[0], COLD[1], COLD[2], alpha);
beginShape();
const steps = 60;
for (let k = 0; k <= steps; k++) {
const th = (k / steps) * TWO_PI;
vertex(cx + semiA * Math.cos(th),
AXIS_Y + semiB * Math.sin(th));
}
endShape();
}
pop();
}
// =====================================================================
// Open field lines -- a fan of hyperbola-like curves diverging from
// the X-point region, sweeping rightward into the nozzle. Mirror ratio
// R widens the fan: higher R -> tighter exhaust beam (the loss cone is
// narrower), lower R -> wider plume.
// =====================================================================
function drawOpenFieldLines() {
push();
noFill();
strokeWeight(1);
// The opening angle of the fan scales with 1/sqrt(R)
const halfAngle = Math.atan(1 / Math.sqrt(mirrorR)) * 1.6; // radians
const N = 11;
for (let i = 0; i < N; i++) {
const t = (i / (N - 1)) - 0.5; // -0.5..+0.5
const theta = t * 2 * halfAngle; // radians, +/- about axis
// Top half + bottom half by symmetry
for (const sign of [+1, -1]) {
const yOff = sign * Math.abs(t) * CHAMBER_R * 0.85;
const alpha = 60 + 80 * (1 - Math.abs(t) * 2);
stroke(ACCENT[0], ACCENT[1], ACCENT[2], alpha);
beginShape();
const steps = 30;
for (let k = 0; k <= steps; k++) {
const f = k / steps;
const x = lerp(CHAMBER_X1, NOZZLE_X1, f);
// Slight curve outward; tangent angle is theta plus a divergence
const dy = yOff + sign * (NOZZLE_X1 - CHAMBER_X1) *
Math.tan(Math.abs(theta)) * f * f;
vertex(x, AXIS_Y + dy);
}
endShape();
}
}
pop();
}
// =====================================================================
// Separatrix + two X-points. The separatrix is the closed curve that
// bounds the FRC plasmoid; outside it the field lines are open. The
// two X-points (where the separatrix self-intersects) are the
// topological singularities of the magnetic field.
// =====================================================================
function drawSeparatrix() {
push();
noFill();
stroke(TRAJ[0], TRAJ[1], TRAJ[2], 220);
strokeWeight(2);
const cx = (CHAMBER_X0 + CHAMBER_X1) / 2;
const a = (CHAMBER_X1 - CHAMBER_X0) / 2;
beginShape();
const steps = 80;
for (let k = 0; k <= steps; k++) {
const th = (k / steps) * TWO_PI;
vertex(cx + a * Math.cos(th),
AXIS_Y + CHAMBER_R * Math.sin(th));
}
endShape();
// X-points: top and bottom of the waist on the right edge of the
// separatrix (where the closed-loop tangent goes vertical and the
// open field lines depart).
fill(TRAJ);
stroke(TRAJ);
strokeWeight(2);
const xpx = CHAMBER_X1;
drawXMark(xpx, AXIS_Y - 6); // upper X-point
drawXMark(xpx, AXIS_Y + 6); // lower X-point
// Labels
noStroke();
fill(TRAJ);
textSize(10);
textAlign(LEFT, BOTTOM);
text('separatrix', cx - 30, AXIS_Y - CHAMBER_R - 4);
textAlign(LEFT, CENTER);
text('X-points', xpx + 10, AXIS_Y);
pop();
}
function drawXMark(x, y) {
push();
stroke(TRAJ);
strokeWeight(2);
line(x - 5, y - 5, x + 5, y + 5);
line(x - 5, y + 5, x + 5, y - 5);
pop();
}
// =====================================================================
// Mirror coils -- six toroidal magnet coils shown as small filled
// disks above and below the chamber. The two innermost coils (at the
// X-point waist) are the highest-field, in keeping with the loss-cone
// geometry.
// =====================================================================
function drawCoils() {
push();
noStroke();
const xs = [CHAMBER_X0, (CHAMBER_X0 + CHAMBER_X1) / 2, CHAMBER_X1, 480, 580];
for (const x of xs) {
// Top coil
fill(...COIL_FILL);
ellipse(x, AXIS_Y - CHAMBER_R - 16, 16, 16);
// Bottom coil
ellipse(x, AXIS_Y + CHAMBER_R + 16, 16, 16);
}
// Tiny copper-tone center to read as a magnet
fill(180, 120, 70);
for (const x of xs) {
ellipse(x, AXIS_Y - CHAMBER_R - 16, 4, 4);
ellipse(x, AXIS_Y + CHAMBER_R + 16, 4, 4);
}
pop();
}
// =====================================================================
// Nozzle wall + axial centerline.
// =====================================================================
function drawNozzleWall() {
push();
noFill();
stroke(STRUCT[0], STRUCT[1], STRUCT[2], 180);
strokeWeight(1);
// Outer chamber wall arcs (left and right of separatrix), drawn as
// shallow brackets to suggest the vessel without obscuring the field.
const leftCap = 8;
// Left endplate
line(CHAMBER_X0 - leftCap, AXIS_Y - CHAMBER_R - 4,
CHAMBER_X0 - leftCap, AXIS_Y + CHAMBER_R + 4);
// Tiny tee marks for the wall
line(CHAMBER_X0 - leftCap, AXIS_Y - CHAMBER_R - 4,
CHAMBER_X0, AXIS_Y - CHAMBER_R - 4);
line(CHAMBER_X0 - leftCap, AXIS_Y + CHAMBER_R + 4,
CHAMBER_X0, AXIS_Y + CHAMBER_R + 4);
// Diverging nozzle wall (right side)
const halfAngle = Math.atan(1 / Math.sqrt(mirrorR)) * 1.6;
const yLip = CHAMBER_R + 4;
const yExit = yLip + (NOZZLE_X1 - CHAMBER_X1) * Math.tan(halfAngle);
line(CHAMBER_X1, AXIS_Y - yLip, NOZZLE_X1, AXIS_Y - yExit);
line(CHAMBER_X1, AXIS_Y + yLip, NOZZLE_X1, AXIS_Y + yExit);
// Centerline (dashed)
drawingContext.setLineDash([4, 4]);
stroke(STRUCT[0], STRUCT[1], STRUCT[2], 120);
line(CHAMBER_X0 - leftCap, AXIS_Y, NOZZLE_X1 + 10, AXIS_Y);
drawingContext.setLineDash([]);
pop();
}
function drawAxis() {
// (Drawn inside drawNozzleWall as a dashed line; this stub remains so
// the draw() call list reads cleanly. Intentionally empty.)
}
// =====================================================================
// Particle dynamics: each particle either orbits a closed flux
// surface (confined) or is on an open field line (escaping/exhaust).
// A small probability per frame moves a confined particle into the
// exhaust stream -- this is the schematic of fusion-product extraction
// through the separatrix.
// =====================================================================
function spawnParticle() {
// Initial bias: ~70% confined, ~30% already in the exhaust to seed
// the steady-state look. Confined particles get a phase angle on a
// randomly-chosen flux surface; exhaust particles start mid-nozzle.
if (Math.random() < 0.7) {
return {
kind: 'closed',
s: 0.2 + 0.7 * Math.random(), // flux-surface index
phi: Math.random() * TWO_PI, // angle around the surface
omega: 0.04 + 0.08 * Math.random(), // angular speed
};
} else {
return {
kind: 'open',
x: CHAMBER_X1 + Math.random() * (NOZZLE_X1 - CHAMBER_X1),
y0: (Math.random() - 0.5) * CHAMBER_R * 0.6, // initial offset from axis
vRel: 0.4 + 0.6 * Math.random(), // 0.4..1.0 fraction of v_e
};
}
}
function updateAndDrawParticles() {
push();
noStroke();
// Active count tracks the mass-flow slider
const active = Math.floor(flowFrac * MAX_PARTICLES);
// Visual speed of exhaust scales with the *square root* of (v_e in
// units of 1e7 m/s). Keeps the animation legible across fuel changes
// without making the canvas look unstable.
const speedScale = 1.4 + 0.6 * Math.sqrt(v_e_mps / 1.0e7);
const cx = (CHAMBER_X0 + CHAMBER_X1) / 2;
const a = (CHAMBER_X1 - CHAMBER_X0) / 2;
const halfAngle = Math.atan(1 / Math.sqrt(mirrorR)) * 1.6;
for (let i = 0; i < active; i++) {
const p = particles[i];
if (p.kind === 'closed') {
// Advance angle, draw at the flux-surface position
p.phi += p.omega;
const px = cx + (a * p.s) * Math.cos(p.phi);
const py = AXIS_Y + (CHAMBER_R * p.s) * Math.sin(p.phi);
fill(COLD[0], COLD[1], COLD[2], 220);
circle(px, py, 3);
// Small chance of leaking through the separatrix (X-point)
if (Math.random() < 0.0025) {
particles[i] = {
kind: 'open',
x: CHAMBER_X1,
y0: py - AXIS_Y,
vRel: 0.5 + 0.5 * Math.random()
};
}
} else {
// Open: stream rightward, drifting outward along the diverging
// field lines. Speed scales with v_e via vRel.
p.x += speedScale * p.vRel;
const f = (p.x - CHAMBER_X1) / (NOZZLE_X1 - CHAMBER_X1);
const yDiv = p.y0 + Math.sign(p.y0 || 1) *
(NOZZLE_X1 - CHAMBER_X1) *
Math.tan(Math.abs(halfAngle * (p.y0 / CHAMBER_R))) *
f * f * 0.6;
const py = AXIS_Y + yDiv;
const alpha = 220 * (1 - f * 0.6);
fill(HOT[0], HOT[1], HOT[2], alpha);
circle(p.x, py, 3.2);
// Recycle when off the right edge: respawn as a confined ion
if (p.x > NOZZLE_X1 + 6) {
particles[i] = spawnParticle();
}
}
}
pop();
}
// =====================================================================
// Slider labels (drawn directly above the slider widgets so the
// controls self-document instead of relying on DOM tooltips).
// =====================================================================
function drawSliderLabels() {
push();
noStroke();
fill(...DIM);
textSize(11);
textAlign(LEFT, BOTTOM);
const fuel = FUELS[fuelIdx];
text('fuel: ' + fuel.name +
(fuel.aneutronic ? ' [aneutronic]' : ' [neutron-bearing]'),
20, 425);
text('mirror ratio R = ' + nf(mirrorR, 1, 1), 180, 425);
text('mass flow m = ' + nf(flowFrac, 1, 2), 380, 425);
// Tick legend below the sliders
textAlign(LEFT, TOP);
textSize(9);
fill(160);
text('0=D-T 1=D-He3 2=D-D 3=p-B11', 20, 458);
text('1.5 .. 10 (B_max / B_min)', 180, 458);
text('0 .. 1 fraction of particles', 380, 458);
pop();
}
// =====================================================================
// HUD: title, URL, readouts, equation. Order matches the Cryogenics
// exemplar so the room reads as a consistent set.
// =====================================================================
function drawHUD() {
// Top-left: title + Wikitube URL
noStroke();
fill(FG);
textAlign(LEFT, TOP);
textSize(20);
text(TITLE, 14, 12);
fill(...DIM);
textSize(12);
text('Wikitube microsim . en.wikitube.io/wiki/Fusion_rocket', 14, 36);
// Top-right: control hints
textAlign(RIGHT, TOP);
textSize(10);
fill(...DIM);
text('left : closed flux surfaces (confinement)', width - 14, 12);
text('right : open field lines (magnetic nozzle)', width - 14, 24);
text('X : separatrix singularities', width - 14, 36);
// Bottom-left: live readout
const fuel = FUELS[fuelIdx];
fill(...DIM);
textAlign(LEFT, BOTTOM);
textSize(12);
text('fuel: ' + fuel.name +
' E = ' + nf(fuel.E, 1, 2) + ' MeV' +
' charged frac = ' + nf(fuel.charged, 1, 2),
14, height - 22);
fill(FG);
textSize(13);
text('v_e = ' + formatVe(v_e_mps) +
' Isp = ' + Math.round(isp_s).toLocaleString() + ' s',
14, height - 6);
// Bottom-right: canonical equation
textAlign(RIGHT, BOTTOM);
fill(FG);
textSize(12);
text('v_e = sqrt(2 E / m_i) . dv = v_e * ln(m0 / mf)',
width - 14, height - 6);
}
function formatVe(v) {
// m/s -> "1.2e7 m/s"
if (v <= 0) return '0 m/s';
const exp = Math.floor(Math.log10(v));
const mant = v / Math.pow(10, exp);
return nf(mant, 1, 2) + 'e' + exp + ' m/s';
}
// =====================================================================
// End of Fusion_rocket.js -- Wikitube microsim, Helium room, Pattern 8.
// =====================================================================
```
## Links (Wikipedia order)
<!-- injected from _registry/childlinks/Fusion_rocket.json (2026-07-30T02:09:12Z) -->
`9M730_Burevestnik` · `AIMStar` · `Accelerating_change` · `Acta_Astronautica` · `Aerobraking` · `Aerocapture` · `Aerogravity_assist` · `Aircraft_Nuclear_Propulsion` · `Alcubierre_drive` · `Analog_Science_Fiction_and_Fact` · `Aneutronic_fusion` · `Antimatter` · `Antimatter-catalyzed_nuclear_pulse_propulsion` · `Arcjet_rocket` · [[Argon]] · `Atmosphere-breathing_electric_propulsion` · `Atmospheric_entry` · `Automation` · `Beam-powered_propulsion` · [[Beta_decay]] · `Bioethics` · `Boeing` · `Bussard_ramjet` · `Callisto_(moon)` · `Chrysler_TV-8` · `Cold_gas_thruster` · `Collingridge_dilemma` · `Colloid_thruster` · `Combustion_tap-off_cycle` · `Convair_NB-36H` · `Convair_X-6` · `Cryogenic_rocket_engine` · `Cyberethics` · `Delta-v` · `Deuterium` · `Differential_technological_development` · `Diffractive_solar_sail` · `Direct_Fusion_Drive` · `Disruptive_innovation` · `Electric-pump-fed_engine` · `Electric_sail` · `Electrodeless_plasma_thruster` · [[Emerging_technologies]] · `Ephemeralization` · `Ethics_of_artificial_intelligence` · `Ethics_of_technology` · `Expander_cycle` · `Exploratory_engineering` · `Field-emission_electric_propulsion` · `Fission-fragment_rocket` · `Fission_sail` · `Ford_FX-Atmos` · `Ford_Nucleon` · `Ford_Seattle-ite_XXI` · `Future-oriented_technology_analysis` · `Gas-generator_cycle` · `Gas_core_reactor_rocket` · `Glenn_Research_Center` · `Gravity_assist` · `Gridded_ion_thruster` · `Hall-effect_thruster` · `Helicon_double-layer_thruster` · [[Helium-3]] · `High_Power_Electric_Propulsion` · `Horizon_scanning` · `Hybrid-propellant_rocket` · [[Hydrogen]] · `Hypergolic_propellant` · `Inertial_confinement_fusion` · `Inertial_electrostatic_confinement` · `Interstellar_travel` · `Ion_thruster` · `Isotope` · [[Jupiter]] · `Jupiter_Icy_Moons_Orbiter` · `Laser` · `Laser_communication_in_space` · `Laser_propulsion` · `Lawrence_Livermore_National_Laboratory` · `Liquid-propellant_rocket` · `Liquid_rocket_propellant` · `List_of_emerging_technologies` · `MagBeam` · `Magnetic_confinement_fusion` · `Magnetic_field` · `Magnetic_mirror` · `Magnetic_sail` · `Magnetized_target_fusion` · `Magnetoplasmadynamic_thruster` · [[Mars]] · `Marshall_Space_Flight_Center` · `Mass_driver` · `Microwave_electrothermal_thruster` · `Monopropellant_rocket` · `Moore's_law` · `Multistage_rocket` · `Myasishchev_M-60` · `NASA` · `NERVA` · `Neuroethics` · [[Neutron]] · `Neutron_radiation` · `New_Scientist` · `Non-rocket_spacelaunch` · `Nuclear-powered_aircraft` · `Nuclear_electric_rocket` · `Nuclear_fission` · [[Nuclear_fusion]] · `Nuclear_lightbulb` · `Nuclear_marine_propulsion` · `Nuclear_navy` · `Nuclear_photonic_rocket` · `Nuclear_propulsion` · `Nuclear_pulse_propulsion` · `Nuclear_salt-water_rocket` · `Nuclear_thermal_rocket` · `Oberth_effect` · `Orbital_maneuver` · `Orbital_mechanics` · `Orbital_propellant_depot` · `Orbital_ring` · `Outline_of_space_science` · `Partial_Nuclear_Test_Ban_Treaty` · `Pennsylvania_State_University` · `Photon_rocket` · [[Plasma_(physics)]] · `Plasma_magnet` · `Plasma_propulsion_engine` · `Polywell` · `Poseidon_(unmanned_underwater_vehicle)` · `Pressure-fed_engine` · `Proactionary_principle` · `Project_Daedalus` · `Project_Longshot` · `Project_Orion_(nuclear_propulsion)` · `Project_Pluto` · `Project_Prometheus` · `Project_Rover` · [[Proton]] · `Pulsed_inductive_thruster` · `Pulsed_nuclear_thermal_rocket` · `Pulsed_plasma_thruster` · `RD-0410` · `Radioisotope_rocket` · `Reaction_engine` · `Reactionless_drive` · `Resistojet_rocket` · `Reusable_launch_vehicle` · `Robot_ethics` · `Rocket` · `Rocket_engine` · `Saturn` · `Skyhook_(structure)` · `Solar_sail` · `Solar_thermal_rocket` · `Solid-propellant_rocket` · `Space_Reactor‑1_Freedom` · `Space_elevator` · `Space_fountain` · `Space_launch` · `Space_tether` · `Spacecraft_electric_propulsion` · `Spacecraft_propulsion` · `Specific_impulse` · `Staged_combustion_cycle` · `Steam_rocket` · `TEM_(nuclear_propulsion)` · `TMK` · `TOPAZ_nuclear_reactor` · `Technological_change` · `Technological_convergence` · `Technological_evolution` · `Technological_paradigm` · `Technological_singularity` · `Technological_unemployment` · `Technology_forecasting` · `Technology_in_science_fiction` · `Technology_readiness_level` · `Technology_roadmap` · `Technology_scouting` · `Thermal_rocket` · `Thrust` · `Tokamak` · `Transhumanism` · `Tripropellant_rocket` · `Tritium` · `Tupolev_Tu-95LAL` · `United_States_Department_of_Energy` · `University_of_Alabama` · `Vacuum_arc_thruster` · `Variable_Specific_Impulse_Magnetoplasma_Rocket` · `WS-125` · `Warp_drive` · `Water_rocket` · `World_Is_Not_Enough_(spacecraft_propulsion)`
## From the Real GENERATIVE library

*Fusion rocket — 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:Schematic_of_the_Fusion_Driven_Rocket_including_major_subsystems.png).*
> A fusion rocket is a theoretical design for a rocket driven by fusion propulsion that could provide efficient and sustained acceleration in space without the need to carry a large fuel supply. The design requires fusion power technology beyond current capabilities, and much larger and more complex rockets. ([Wikipedia](https://en.wikipedia.org/wiki/Fusion_rocket))
<!-- REAL-GENERATIVE-MEDIA:END -->
<!-- LOCAL-MEDIA-PASS:START -->
## From the vault media library
!Fusion rocket thumb.png
*Fusion Rocket — 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 **fusion rocket** is a proposed spacecraft propulsion [[System|system]] that derives thrust from controlled [[Nuclear_fusion|nuclear fusion]], either by directing charged reaction products as exhaust or by heating a working fluid to extreme temperatures. Compared with chemical rockets, fusion drives promise specific impulse (Isp) of 10^4 to 10^6 seconds — two to four orders of magnitude higher — by exploiting fusion [[Energy|energy]] yields of 3–18 MeV per reaction. The governing relationship is the **Tsiolkovsky rocket equation**, Δv = v_e ln(m_0 / m_f), where exhaust [[Velocity|velocity]] scales as v_e = √(2E/m); a D-T reaction (17.6 MeV) yields a theoretical v_e ≈ 1.3 × 10^7 m/s when the alpha and [[Neutron|neutron]] are directly exhausted. Conceptual architectures fall into three families: magnetic-confinement drives (tokamak, stellarator, magnetic mirror, field-reversed configuration), inertial-confinement drives (laser- or pulse-driven implosion of D-T or D-³He pellets), and direct fusion drives (DFD) that use the Princeton Field-Reversed Configuration to confine plasma and add propellant to the open-field exhaust. **D-³He** and **p-¹¹B** fuel cycles are pursued for aneutronic operation, which dramatically reduces shielding mass — a critical constraint for crewed deep-space missions. Notable studies include the British Interplanetary [[Society]]'s Project Daedalus (1973–78), NASA's VISTA (1986), Project Icarus, and the PPPL / Princeton Satellite Systems Direct Fusion Drive. Practical fusion propulsion remains pre-prototype, gated by plasma stability, scientific energy gain Q > 1, and reactor mass-to-power ratio (α < 1 kg/kW) milestones.
## See also
- Room hub: [[Helium]]
- p5.js Editor conventions: P5 JS EDITOR
- Wiki root: MAIN
---
*Scaffolded by `generative-microsim` from row 128 of the Helium sheet on 2026-05-14T12:30:39Z.*
<!-- 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/Fusion_rocket) : [Wikitube](https://en.wikitube.io/wiki/Fusion_rocket)
## Previous hub tags
Tree parents: [[Helium]] · [[Helium-3]].
Legacy hubs: none.
---
*Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*