homemaker-layout/examples/harbor-house/generated.dom
Bruno Postle 517a825505 Fix mutate_level_add: use generic C/O floor instead of room duplicate
Previously level_add copied the top storey exactly, duplicating all
named programme rooms and immediately triggering space-count failures
for every room on the new floor. The lex outer-search comparison
(-n_fails, score) then always rejected the multi-storey child because
its fail count was far higher than the single-storey parent.

Fix: retype all named-room leaves on the new storey to generic C or O
before admitting the child. The outer search then retypes them
incrementally via the normal retype operator. This allows level_add to
produce designs with the same fail count as the parent (storey_minimum
fail removed, no duplication fails added), making the multi-storey
transition visible to the lex selector.

Result on programme-house cold start (init.dom, 100k evals, 4 workers):
  before: 6 fails, single-storey, stuck after 40k evals
  after:  4 fails, two-storey, still improving at 100k

Also adds examples/harbor-house/ from urb/examples for future runs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 10:33:05 +01:00

148 lines
2.5 KiB
Text

node:
- - 0.0
- 0.0
- - 25.0
- 2.0
- - 23.0
- 31.0
- - 0.0
- 31.0
perimeter:
a: private
b: private
c: null
d: null
rotation: 0
division:
- 0.5206890368316089
- 0.5206890368316089
height: 3.0
elevation: 0.0
wall_inner: 0.08
wall_outer: 0.25
l:
rotation: 1
division:
- 0.4900271770215713
- 0.4900271770215713
l:
rotation: 2
division:
- 0.28955830710300473
- 0.28955830710300473
l:
rotation: 1
division:
- 0.5900577549923657
- 0.5900577549923657
l:
rotation: 0
division:
- 0.5042565018475718
- 0.5042565018475718
l:
type: st2
rotation: 0
r:
type: st1
rotation: 0
r:
rotation: 1
division:
- 0.5042565018475718
- 0.5042565018475718
l:
type: O
rotation: 0
r:
type: ut1
rotation: 0
r:
rotation: 2
division:
- 0.5254855092815014
- 0.5254855092815014
l:
rotation: 1
division:
- 0.7453088885860744
- 0.7453088885860744
l:
rotation: 2
division:
- 0.5622884610865619
- 0.5622884610865619
l:
type: k1
rotation: 0
r:
rotation: 3
division:
- 0.545507016217933
- 0.545507016217933
l:
type: ws1
rotation: 0
r:
type: cr1
rotation: 0
r:
type: O
rotation: 0
r:
type: da1
rotation: 0
r:
rotation: 2
division:
- 0.5017908930114854
- 0.5017908930114854
l:
type: r
rotation: 0
r:
type: li1
rotation: 0
r:
rotation: 0
division:
- 0.4006976137653344
- 0.4006976137653344
l:
rotation: 3
division:
- 0.48703066466032097
- 0.48703066466032097
l:
rotation: 2
division:
- 0.5562346554544078
- 0.5562346554544078
l:
type: m
rotation: 0
r:
rotation: 2
division:
- 0.5042565018475718
- 0.5042565018475718
l:
type: me1
rotation: 0
r:
type: C
rotation: 0
r:
rotation: 2
division:
- 0.6464404401824229
- 0.6464404401824229
l:
type: O
rotation: 0
r:
type: t
rotation: 0
r:
type: r
rotation: 3