homemaker-layout/src/homemaker
Bruno Postle 7f82c03f80 Fix programme width default: derive from sqrt(size/proportion) (homemaker-py-can)
When a programme space has no explicit 'width' key, the fallback to
width_inside [4.0, 1.0] is geometrically impossible for small spaces
(e.g. t3 WC at 3 m²). Now compute target = sqrt(size/proportion),
sigma = max(0.1, target * size_sigma / (2 * size_target)).

Effect on 35-file corpus: 32 files score +1–307% (width quality improves
for correctly-sized small rooms); 5 files lose spurious width fail lines.
Upstream Perl fix tracked as homemaker-py-8fe.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 22:23:03 +01:00
..
__init__.py Scaffold homemaker-py with validated geometry port 2026-06-10 20:50:20 +01:00
dom.py Native fitness: leaf quality terms + cost model (homemaker-py-gnw) 2026-06-13 07:59:21 +01:00
driver.py Use Urb's canonical UPPERCASE generic types (C/O); case-insensitive class checks 2026-06-12 19:01:53 +01:00
fitness.py Fix programme width default: derive from sqrt(size/proportion) (homemaker-py-can) 2026-06-13 22:23:03 +01:00
genome.py Topology genome: base tree + per-storey deltas + type assignment 2026-06-12 13:52:32 +01:00
geometry.py Fix stair-fit parity: entrance corners + weighted has_circulation (homemaker-py-w1e/q70) 2026-06-13 20:55:25 +01:00
graph.py Fix stair-fit parity: entrance corners + weighted has_circulation (homemaker-py-w1e/q70) 2026-06-13 20:55:25 +01:00
innerloop.py Phase 3 gate (homemaker-py-uxz): native fitness 35/35 corpus parity; retire oracle from search 2026-06-13 21:44:42 +01:00
operators.py Fix benchmark cell arg order and mutate_swap on undivided trees 2026-06-12 23:26:22 +01:00
oracle.py Batched oracle: score many .dom files per perl invocation 2026-06-12 01:13:55 +01:00
programme.py Fix stair-fit parity: entrance corners + weighted has_circulation (homemaker-py-w1e/q70) 2026-06-13 20:55:25 +01:00
solver.py Geometry inner loop: batched full-objective ratio optimiser (CMA-ES) 2026-06-12 09:42:24 +01:00