The same ceiling, a different machine. Carnot joins its two isotherms with curved adiabats; the Stirling engine joins them with two isochores — straight constant-volume legs — and a regenerator that catches the heat dumped on the way down and hands it back on the way up. Turn the regenerator's effectiveness ε up to 1 and a wholly different loop reaches the very same wall: η = 1 − Tc/Th.
Watch the machine, not a chart. The displacer (the loose slug with side gaps) shoves the gas back and forth past the regenerator mesh — a brass sponge wedged between the hot cap and the cold fins. On the cooling stroke the gas pours its |Qv| into that sponge and the mesh glows brighter; on the warming stroke it draws that very heat back and the mesh dims. The power piston takes the work; the flywheel carries it through the dead corners. When ε = 1 the reservoirs never see those isochoric heats at all — the engine takes in only the isothermal heat, and η climbs to the ceiling Carnot draws. Let ε fall and the sponge leaks heat across the finite gap: a red shimmer opens at the cold fins, the gold bar sinks below the dashed ceiling, and the gap you see is the heat the reservoir now has to make up.
Every number you watch on the metal — η, the work, the Q-ledger, ΔSuniverse, the Carnot
ceiling — comes from one preserved core, never from the animation; the metal only decides where to draw.
Four claims are re-run live in the self-test badge above:
W = ∮P dV (from-scratch Simpson; the isochores do literal zero work) equals the heat ledger
Q_in − Q_out and an independent oracle nR(T_h−T_c)·ln r;
η(ε=1) == 1 − T_c/T_h over a config sweep, against the carnotEfficiency() this page
imports from the Carnot bench — never redefines; the regenerator teeth (η rises monotonically to exactly
Carnot, ΔSuniverse falls to zero, over-unity ε is rejected); and the two isochores are byte-exact
constant volume. The crank's 90° displacer/piston phase carries no physics claim — it only places the
moving metal. · The page's core is the byte-twin of core.mjs, re-extracted and
checked by the Node test.