homemaker-layout/experiments
Bruno Postle 13f73be771 Topology genome: base tree + per-storey deltas + type assignment
genome.py (homemaker-py-k2g): Genome = base-floor GNode tree + per-storey
StoreyDelta (undivides, divide subtrees, leaf retypes, height) + base
metadata. encode/decode round-trips dom.py Node trees.

Key empirical finding baked into the design: upper-storey nodes carry
heavily drifted DEAD fields (97 inherited-cut divisions, 187 rotations
differ from the owning node below across the corpus) — dead because
geometry delegates to below before reading them. decode canonicalises
them; encode stores only owned state, so genomes from drifted sources
compare equal (fixed-point test).

Acceptance: 35/35 corpus files fitness-identical after round-trip through
the oracle (experiments/genome_parity.py, URB_NO_OCCLUSION=1); owned-cut
projection + genome fixed-point + storey counts in tests/test_genome.py
(16 tests pass).

Closes homemaker-py-k2g.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 13:52:32 +01:00
..
accept_innerloop.py Re-baseline under URB_NO_OCCLUSION: new reference gains, DESIGN §4.7 2026-06-12 10:31:38 +01:00
bench_batch_oracle.py Batched oracle: score many .dom files per perl invocation 2026-06-12 01:13:55 +01:00
diag_2f45907.py Geometry inner loop: batched full-objective ratio optimiser (CMA-ES) 2026-06-12 09:42:24 +01:00
dump_areas.pl Scaffold homemaker-py with validated geometry port 2026-06-10 20:50:20 +01:00
dump_areas.py Scaffold homemaker-py with validated geometry port 2026-06-10 20:50:20 +01:00
genome_parity.py Topology genome: base tree + per-storey deltas + type assignment 2026-06-12 13:52:32 +01:00
optimize_fullfitness.py Full-fitness frozen-topology optimisation validates geometry inner loop 2026-06-10 22:27:30 +01:00
rebaseline_no_occlusion.py Geometry inner loop: batched full-objective ratio optimiser (CMA-ES) 2026-06-12 09:42:24 +01:00
refine_sweep.py Add programme/solver/oracle + sizing experiments (negative result) 2026-06-10 21:49:31 +01:00
resolve_ratios.py Add programme/solver/oracle + sizing experiments (negative result) 2026-06-10 21:49:31 +01:00
sweep_failtypes.py Full-fitness frozen-topology optimisation validates geometry inner loop 2026-06-10 22:27:30 +01:00
warm_vs_cold.py Warm-vs-cold experiment: topology mutations + Lamarckian ratio inheritance 2026-06-12 10:00:51 +01:00