hab-home-01 · appliance ledgers · round 1

The Home

Until this round the city had not one appliance. People lived in the undercity quarter and the berm village, the galley was a drawing, and no fridge, washer, toilet, hob or water heater had ever been calculated for a 70 kPa cabin of 26.5% oxygen and a 58/42 nitrogen-argon buffer. This page is two things: nine ledgers that work out the physics of each appliance under those conditions - every number traced to a script, every expectation written down before the script ran - and a walk-in show home built from what the ledgers said, not the other way round.

Water boils at
89.99°C · pressure cooker mandatory
Laundry + dishes
1.45×the recycle plant's whole intake
Toilet flush
86mL · back-calculated, not chosen
Pre-registered gates
40 / 42green · 2 kept red on purpose
01

What it is

A 12 × 9 m room off the foyer's right wall with a kitchen, a bathroom, a laundry corner, a bed and one small screen. Thirteen appliances, each built to the size and power its ledger gave it, each wired to the voltage its ledger allowed, each draining or venting to the line the recycle and life-support cards actually have.

The cabin conditions are not this dossier's to set. They are cited: 70 kPa, 26.5% O₂, N₂ 58 / Ar 42 from the life-support tank farm card; 400 V DC utilisation, 48 V DC instrument from the grid card; the 98.2% water-loop closure and the urine pre-treatment constraint from the recycle plant; the 1.63× flame-spread figure from the fire station's ledger. The dossier's own rule, written into its first commit before any script ran, is that every expectation is pre-registered with a band, every gate must be able to go red, and a number that cannot be closed is written as not closable, missing X rather than filled in.

Two things the ledgers found were not about appliances at all. The recycle plant's intake table has no line for laundry or dishwashing - the grey-water line is 1.23 litres per person-day, enough to wash hands. And the tank-farm card's sentence that the argon-rich mix carries sound about 20% faster is wrong in sign: argon is a heavy gas, and sound in this cabin is 4.3% slower. Both went back to their owners as replies, not edits.

9 ledgers42 gates63 pre-registered expectations 41 hit · 16 miss · 6 undecidable13 reusable parts12 knowledge cards
The show home's kitchen: cast-stone counter with induction hob, oven, dishwasher, microwave shelf, range hood, fridge, and the scorecard screen and return-air fan on the back wall
Kitchen wall: hob and pressure cooker on cast stone, oven and dishwasher in open bays, fridge with its oversized condenser to the wall, return-air unit and scorecard screen behind.
Overview from the bed corner: kitchen to the left, bathroom cubicle in the middle, washer and dryer against the far wall, entry door group at right
From the bed corner. The cabin corner holds nothing with a motor in it; everything that hums is at the far end.
02

How it works

Nine ledgers: eight in the order in which a wrong answer would change the geometry, and a ninth opened when the polymer line asked what the appliances need from it.

1 · cooking

Water boils at 89.99 °C. Two routes (Antoine, Clausius-Clapeyron) agree to 0.2 K. Starch, egg white and pasteurisation are fine; kidney-bean lectin and soybean trypsin inhibitor need 100 °C, and a quarter of the staple diet is soybean, so the pressure cooker is a mandatory part of the food system (+100 kPa gauge → 115 °C). Oven convection is 0.60× natural, 0.69× forced - the fan is not optional. A 1 kW methane burner would emit 4.7 people's CO₂ and draw 8.2 people's O₂ into a loop with no chimney, on top of the fire ledger's 1.63× spread; induction puts 84% into the pot and pays none of it.

2 · refrigeration

With Earth-sized condenser area the condensing temperature climbs from 40 to 52 °C in the thin argon-rich air and COP falls 17%; the fix is 1.67× condenser area or a fan. Every watt ends up as cabin heat. Whether that heat is a debit or a credit depends on the cavern's heat balance, which no card holds - under declared assumptions the undercity loses 37-58 kW against 19 kW of gains for its first decade. The counter-case, cold piped in from outside for the village, holds both fridge and freezer (surface day maximum −37.5 °C) at the cost of hull penetrations and a punctured vapour barrier; the undercity has no outside. Both printed, neither chosen.

3 · laundry

115 people wash 92 kg of clothes per sol in 782 L, plus 172 L of dishes: 955 L/sol against a recycle intake of 659 that never had a line for either. At the plant's own 98.2% closure the net loss is 17 L/sol, lifting city make-up water from 30.3 to 47.5 L/sol. Drying releases 46 kg of water a sol into the air loop (+17% on the condensate line); a heat pump does it for 32 kWh. The 'free' vacuum dryer outside is rejected: venting at 0.6 kPa throws away 1.5× the city's net make-up every sol, and a sealed chamber with a cold trap recovers 99.8% but sublimation costs a quarter more heat than evaporation.

4 · sanitation

The toilet's flush is not designed but back-calculated from the recycle card's 59 kg/sol flush line: 86 mL per event, one fifty-sixth of an Earth toilet - a vacuum, urine-diverting commode. Pre-treatment acid is dosed at the bowl (the VCD's hard constraint); the dose has no card and is marked not closable. Hygiene water after drinking and flushing is 0.99 L per person-day, so the shower is a 10 L recirculating loop with a 1 L top-up. Shower, dryer and cooking together add 92 kg/sol of moisture, +34% on the condensate line.

5 · dust

Martian dust's 1.5 µm median sits above HEPA's most-penetrating size, so H13 is enough and grade is not the constraint; electrostatic adhesion and 0.5 wt% perchlorate are. Loaded cartridges go to the green (filter-media) stream and the berm, never the purple textile stream that ends in compost and greenhouse soil. How much dust the airlocks bring in per cycle has no card - a 100× scan is printed and three measurements are dispatched to the door-holders.

6 · electricity

400 V is 3.3× the safety-extra-low-voltage DC limit, so the home has two tiers: 48 V sockets for anything under 1.5 kW, 400 V hard-wiring for hob, oven, washer, dryer and water heater. At 48 V a 3 kW hob is 62.5 A and needs 34 mm² of aluminium for 2% loss, 69× the conductor mass of 400 V. DC has no zero crossing: a 48 V plug pulled under load draws a 14 mm arc, 400 V 155 mm - sockets handshake before they energise. The mixed-gas breakdown curve (Townsend, mole-weighted, a declared approximation) puts 1 mm at 2.3 kV, 38% below air at the same pressure; the grid's CO₂ coefficients were used only as a known-answer gate.

7 · acoustics

A 25.9 m³ hard-walled cabin reverberates for 1.6 s; 18 m² of panels bring it to 0.3 s. The WHO night limit is 30 dB(A) and a 42 dB fridge still makes 36 dB in the softened cabin, so not one of eleven appliances may live in a cabin; the commons-to-cabin partition needs 42-49 dB. A fan moving the same mass flow in 0.79× density is 3.2 dB louder. And the cited '+20% sound speed' is −4.3%.

9 · plastic

Asked by the polymer line: 278 kg of plastic parts, none above 80 °C continuous, 54 kg in the 60-80 °C margin that wants polypropylene, 37.5 kg both exposed and next to electrics (the microwave shell becomes thin cast iron, the vacuum shell takes a flame-retardant grade). At commons duty a dishwasher's 2500 cycles last 0.95 Mars years, a washer 1.71 - not a household's ten years. Steady plastic replacement is 0.07-0.16 kg/sol, 0.1-0.3% of the polymer line's nameplate: a result that can only exclude. Appliances cannot carry that line's steady state; whether it is built is someone else's demand to show.

8 · make or import

Thirteen items decomposed part by part. Shells, insulation, cast-stone tops, printed liners and CO₂ refrigerant are local; compressors, windings, bearings, seals, electronics, heating elements, magnetrons and stainless drums are imported - the foundry's own '0% local' line. Ninety-one units city-wide: 5.66 t, 1.06 t imported; only the imports cross the depot, 1.3-1.8% of one resupply window, once. No 'local manufacturing rate' is given: by mass it flatters, by function it does not.

Laundry corner: washer and heat-pump dryer under a cast-stone top against the right wall, vacuum cleaner beside them, bathroom doorway to the left, exit niche at right
Laundry corner: washer and heat-pump dryer hard-wired at 400 V (orange), the 48 V socket panel (blue) above, the vacuum on its hook.
The bathroom cubicle with its open doorway showing the recirculating shower stall lit inside; the scorecard screen and return-air fan on the wall behind
Bathroom cubicle: vacuum toilet with its orange pre-treatment tank, recirculating shower with the UV lamp glowing, all draining to lines the recycle card actually has.
03

The ledger

Every headline number on this page, the state it is in, and the script that produced it. Scripts live in the dossier mars-home/ledger/ and write mars-home/out/; the pre-registration is the dossier's first commit.

ClaimValueStateProduced by
Boiling point at 70 kPa89.99 °Caccount · 2 routes, 0.2 Kmars-home/ledger/01_cooking.py
Pressure cooker at +100 kPa gauge115.2 °Caccount01_cooking.py
Foods needing a pressure cooker3 of 9account · temperature criterion01_cooking.py · res-grain-01 diet
Natural / forced convection factor0.60 / 0.69account · shared cabin.pyledger/cabin.py · 01_cooking.py
Undercity cooking energy, dinner peak21-51 kWh/sol · 15.5 kWestimate · declared per-person band01_cooking.py
1 kW methane burner, CO₂ / O₂ person-equivalents4.7 / 8.2account · stoichiometry gate01_cooking.py · ops-fire-01 f01
Fridge condensing temperature, same area40 → 52 °Caccount · COP −17%02_refrigeration.py
Fridge electric power, cabin53.8 Waccount · η_II 0.35 declared02_refrigeration.py
Cavern heat loss vs gains (first decade)37-58 vs 19 kWconditional · no heat-balance card02_refrigeration.py
Surface day maximum for the external-cold case−37.5 °Caccount · trench-card swing02_refrigeration.py · pwr-grid-01 trench
Hull penetration thermal bridge0.06 W/pipeaccount · degenerate gates02_refrigeration.py
Laundry + dishwashing water, 115 people955 L/sol · 1.45×estimate · declared bands03_laundry.py · res-recycle-01 water
Net loss at 98.2% closure; city make-up17 L/sol · 30.3 → 47.5account · plant's own closure03_laundry.py
Dryer moisture into the air loop46 kg/sol · +17%account · 0.5 kg/kg declared03_laundry.py
Heat-pump / resistive drying energy32 / 48 kWh/solaccount03_laundry.py
Vented sublimation dryer, water lost46 kg/sol = 1.52× make-upaccount · rejected03_laundry.py
Cold-trap recovery at −60 °C99.8%account · 611.7 Pa triple-point gate03_laundry.py
Toilet flush per event86 mL · 56× less than Earthaccount · identity gate04_sanitation.py · res-recycle-01 urine
Urine pre-treatment dose1.9-9.5 kg/sol scannot closable · no dose on any card04_sanitation.py
Hygiene water after drinking and flushing0.99 L/person-dayaccount · ECLSS 3.5 L04_sanitation.py
Shower heat per use0.055 kWhaccount · 10 L loop04_sanitation.py
Extra moisture on the condensate line92 kg/sol · +34%account · three ledgers summed04_sanitation.py
HEPA most-penetrating size; 1.5 µm penetration0.3 µm · 2.5e-5account · mechanism gate05_dust.py
Airlock dust ingress0.1-9.6 kg/sol scannot closable · measurement dispatched05_dust.py
Cabin gas density0.941 kg/m³account · reproduces fire ledger 0.9415ledger/cabin.py
Vacuum suction at the same rpm0.78×account05_dust.py
48 V hob current; cable for 2% loss62.5 A · 34 mm² Alaccount06_electrical.py
Conductor mass ratio 48 V vs 400 V69×account · identity gate06_electrical.py · pwr-grid-01 1/V²
DC arc length, 48 V / 400 V14 / 155 mmestimate · 2.5 V/mm declared06_electrical.py
Mixed-gas breakdown, 1 mm at 70 kPa2.3 kV · 0.62× airapproximation · mole-weighted Townsend, not closed06_electrical.py
Grid CO₂ Paschen point reproduced249.0 V @ 1.17 mmknown-answer gate06_electrical.py · pwr-grid-01 busduct
Cabin RT60 hard / with panels1.58 / 0.29 saccount · Sabine07_acoustics.py
Fridge level in a softened cabin vs sleep limit36.4 vs 30 dB(A)account · Earth label bands07_acoustics.py
Sound speed, cabin vs air329 vs 344 m/saccount · pure-gas known answers 1%07_acoustics.py
Fan noise at equal mass flow+3.2 dBaccount · fan law07_acoustics.py
City appliance fleet mass; imported5.66 t · 1.06 testimate · corrected 2026-09-21 by ledger 9's mass-density gate08_make_or_import.py · 09_plastic_demand.py
Imports as a share of one resupply window1.3-1.8%estimate · 60-80 t window08_make_or_import.py
Plastic parts, by grade (HDPE / PP / FR or re-shelled)187 / 54 / 37.5 kgaccount · reproduces the polymer line's 278.4 kg09_plastic_demand.py
Dishwasher / washer life at commons duty0.95 / 1.71 Mars yrestimate · 2500-cycle design life declared09_plastic_demand.py · 03_laundry.py
Steady plastic replacement demand0.067-0.155 kg/solbounds · household calendar vs commons duty09_plastic_demand.py
Polyethylene a sealed 78 m³ segment can burn3.27 kgaccount · fire ledger's 11.19 kg O₂09_plastic_demand.py · ops-fire-01 f03
Show-home geometry5,948 tris · 13.41 m · minY 0measured · validate_unitviewer/units/hab-home-01.js
In-city smoke testscale 1 · 0 console errors · fan 10 turns / 10 smeasured · ?interior=hab-home-01viewer/index.html
04

What broke

Sixty-three expectations were written before the scripts ran. Sixteen missed. These are the ones that changed something.

The external-cold counter-case was half wrong - my half.

The pre-registration said a −60 °C mean is not a stable cold source and a 4 °C fridge could not be held at midday. With the trench card's 45 K peak-to-peak swing the day maximum is −37.5 °C: fridge and freezer both hold. What the ledger overturned was my intuition, not the case; what remains against it is penetrations, the vapour barrier and 40-85 K of overcooling to regulate.

I copied another card's error into my own expectation.

Expectation E7.4 took the tank-farm card's '+20% sound speed' at face value. Computed, the mix is 4.3% slower - argon is heavy, and sound speed depends on γ/M, not pressure. The follow-on expectation of ρc ≈ 0.95 was wrong for the same reason (it is 0.75). The gate that caught it stays red in the output by name; a pure-air / pure-argon known answer proves the formula. A citation is not a check.

Gate G6.2 went red on argon, first version.

With one generic secondary-emission coefficient for all gases the argon Paschen minimum came out 160 V against 137 in the literature, 17% off. γ is the one free parameter of the two-constant Townsend model and is legitimately per-gas, so it is now calibrated on each gas's minimum voltage, with the minimum pd held out as the check (N₂ +3%, Ar −15%, air +44% - the model's known weakness, printed). The band was not moved; the first-version 2388 V is kept on file beside the current 2305 V.

The fridge was 20% hungrier than its Earth label.

20-45 W was an Earth expectation. Natural convection at 0.60× drives a same-area condenser to 52 °C and COP down 17%: 54 W. The geometry answers with a condenser 1.67× larger and a fan - which then owes ledger 7 its noise.

Two expectations forgot to multiply by the city.

Dryer energy was pre-registered at 10-20 kWh/sol for a heat pump; that was one household's number. For 115 people it is 32. Laundry water was expected at 700-1000 L/sol for 85 people; the declared 0.8 kg/person-day gives 578. Both misses are printed; the plant-throughput conclusion (1.45×) held.

A published mass was wrong by a factor of two, and another dossier's question found it.

Ledger 8 listed the shower stall as '20 kg, source cast stone' under a part name that mentioned printed panels. The polymer line's dispatch made this dossier sort plastic from stone, and a mass-density gate the ledger never had went red: a 30 mm cast-stone tray alone is 87 kg; 20 kg only fits 5 mm plastic panels - which do not self-extinguish at the fire ledger's 30% O₂ criterion. The stall is now glass walls on a stone tray, 225 kg a unit, and the earlier city-fleet figure of 2.80 t is retired (2026-09-21) for 5.66 t; imports did not move. The part name held two materials, the source column one, and the mass belonged to a third.

The first render hid half the appliances.

The kitchen cabinet was one 4.6 m box with the oven and dishwasher placed inside it, and the bathroom's front partition had a drawn door frame but no opening. Both were caught on the first in-engine screenshot, not by the validator - a validator counts triangles and checks the bounding box, it does not know that a box is in the way.

05

Try it