Builds path (b) from §26 -- a leaf permanently serving two DIFFERENT compatible programme codes at once, extending leaf-sharing's same-code multiplicity mechanism to different-but-compatible codes. Architect-declared `co_locate` pairs (validated against interchangeable()'s S1-S4 bounds, no transitive closure so the b3v chain problem can't recur), threaded through graph.py's checks via a new leaf_codes() resolver and fitness.py's quality terms (additive size, stricter-of-both width/proportion). Construction-time only, gated behind `multi_use` (default OFF, bit-identical when off). End-to-end A/B (20k evals x 3 seeds x 2 programmes) came back net negative: harbor-house -4.0% but health-centre +24.5% worse (3/3 seeds), because fusing different codes' shape targets via stricter-of-both can impose a tighter joint constraint than either code needed alone, which the tightly- packed health-centre programme can't absorb. Written up as DESIGN.md §33; multi_use stays default OFF, no default-flip recommended. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R8agJBT2ZpmF3ErW7wi2wY
266 lines
4 KiB
Text
266 lines
4 KiB
Text
---
|
|
# Harbor House - Programme-driven building evolution (Simplified)
|
|
# Two-story community living facility for 50+ residents
|
|
# Using anonymous interchangeable rooms to reduce complexity
|
|
|
|
# Building programme: community living spaces
|
|
spaces:
|
|
# GROUND FLOOR - Main Community Areas
|
|
cr1:
|
|
name: Common Room with Fireplace
|
|
size:
|
|
- 80.0
|
|
- 10.0
|
|
width:
|
|
- 6.0
|
|
- 1.5
|
|
proportion:
|
|
- 2.0
|
|
- 0.5
|
|
level: 0
|
|
adjacency:
|
|
- c
|
|
- o
|
|
|
|
ef1:
|
|
name: Entrance Foyer
|
|
size:
|
|
- 15.0
|
|
- 3.0
|
|
width:
|
|
- 3.0
|
|
- 0.5
|
|
level: 0
|
|
adjacency:
|
|
- c
|
|
# homemaker-py-1s3 (§26 path b): a foyer can double as an informal meeting
|
|
# nook (Stewart Brand "loose-fit") — declared here, validated against
|
|
# interchangeable()'s S1-S4 bounds before it's ever honoured.
|
|
co_locate:
|
|
- m
|
|
|
|
da1:
|
|
name: Dining Area
|
|
size:
|
|
- 60.0
|
|
- 8.0
|
|
width:
|
|
- 5.0
|
|
- 1.0
|
|
proportion:
|
|
- 2.5
|
|
- 0.8
|
|
level: 0
|
|
adjacency:
|
|
- c
|
|
- k1
|
|
- o
|
|
|
|
k1:
|
|
name: Kitchen
|
|
size:
|
|
- 30.0
|
|
- 5.0
|
|
width:
|
|
- 4.0
|
|
- 1.0
|
|
level: 0
|
|
adjacency:
|
|
- da1
|
|
- c
|
|
|
|
# SLEEPING AREAS - Anonymous neighborhoods (5 total, 2 ground + 3 first)
|
|
n:
|
|
name: Neighborhood
|
|
size:
|
|
- 60.0
|
|
- 8.0
|
|
width:
|
|
- 5.0
|
|
- 1.0
|
|
proportion:
|
|
- 2.0
|
|
- 0.6
|
|
adjacency:
|
|
- c
|
|
count: 5
|
|
|
|
# GROUND FLOOR - Activity Spaces
|
|
ws1:
|
|
name: Workshop Space
|
|
size:
|
|
- 40.0
|
|
- 6.0
|
|
width:
|
|
- 5.0
|
|
- 1.0
|
|
proportion:
|
|
- 1.8
|
|
- 0.5
|
|
level: 0
|
|
adjacency:
|
|
- c
|
|
- o
|
|
|
|
# MEETING ROOMS - Anonymous interchangeable (3 total)
|
|
m:
|
|
name: Meeting Room
|
|
size:
|
|
- 10.0
|
|
- 2.0
|
|
width:
|
|
- 2.5
|
|
- 0.5
|
|
level: 0
|
|
adjacency:
|
|
- c
|
|
count: 3
|
|
co_locate:
|
|
- ef1
|
|
|
|
# GROUND FLOOR - Service Areas
|
|
# BATHROOMS - Ground floor (3 total)
|
|
t:
|
|
name: Bathroom
|
|
size:
|
|
- 6.0
|
|
- 1.5
|
|
width:
|
|
- 2.0
|
|
- 0.5
|
|
adjacency:
|
|
- c
|
|
count: 6 # 3 ground + 3 first floor
|
|
|
|
la1:
|
|
name: Laundry Room
|
|
size:
|
|
- 20.0
|
|
- 4.0
|
|
width:
|
|
- 3.0
|
|
- 0.8
|
|
level: 0
|
|
adjacency:
|
|
- c
|
|
# homemaker-py-1s3: laundry and plant/M&E rooms are both "back of house"
|
|
# utility space — a common real loose-fit pairing.
|
|
co_locate:
|
|
- me1
|
|
|
|
st1:
|
|
name: Ground Floor Storage
|
|
size:
|
|
- 22.0
|
|
- 4.0
|
|
width:
|
|
- 3.0
|
|
- 0.8
|
|
level: 0
|
|
adjacency:
|
|
- c
|
|
|
|
me1:
|
|
name: Mechanical/Electrical Room
|
|
size:
|
|
- 25.0
|
|
- 4.0
|
|
width:
|
|
- 3.5
|
|
- 0.8
|
|
level: 0
|
|
adjacency:
|
|
- c
|
|
co_locate:
|
|
- la1
|
|
|
|
# STAFF OFFICES - Anonymous (2 total)
|
|
of:
|
|
name: Staff Office
|
|
size:
|
|
- 12.5
|
|
- 2.5
|
|
width:
|
|
- 2.5
|
|
- 0.5
|
|
level: 0
|
|
adjacency:
|
|
- c
|
|
count: 2
|
|
|
|
# FIRST FLOOR - Community Areas
|
|
li1:
|
|
name: Library Corner
|
|
size:
|
|
- 20.0
|
|
- 4.0
|
|
width:
|
|
- 3.5
|
|
- 0.8
|
|
level: 1
|
|
adjacency:
|
|
- c
|
|
|
|
# FIRST FLOOR - Individual Rooms (10 anonymous rooms)
|
|
r:
|
|
name: Individual Room
|
|
size:
|
|
- 10.0
|
|
- 2.0
|
|
width:
|
|
- 2.5
|
|
- 0.5
|
|
level: 1
|
|
adjacency:
|
|
- c
|
|
count: 10
|
|
|
|
# FIRST FLOOR - Storage
|
|
st2:
|
|
name: First Floor Storage
|
|
size:
|
|
- 18.0
|
|
- 3.5
|
|
width:
|
|
- 3.0
|
|
- 0.8
|
|
level: 1
|
|
adjacency:
|
|
- c
|
|
|
|
ut1:
|
|
name: Utilities Closet
|
|
size:
|
|
- 14.0
|
|
- 3.0
|
|
width:
|
|
- 2.5
|
|
- 0.6
|
|
level: 1
|
|
adjacency:
|
|
- c
|
|
|
|
# Building constraints
|
|
storey_minimum: 2
|
|
storey_limit: 3
|
|
force_roof_garden: 0
|
|
|
|
# Circulation ratio (allow more circulation for larger building)
|
|
ratio_circulation:
|
|
- 0.08
|
|
- 0.15
|
|
|
|
# Outside space ratio (courtyard requirement)
|
|
ratio_outside:
|
|
- 0.15
|
|
- 0.10
|
|
|
|
# Staircase requirements (main + secondary)
|
|
staircase_min: 2
|
|
staircase_max: 2
|
|
|
|
# Economic parameters
|
|
value_inside: 300.0
|
|
value_circulation: 50.0
|
|
value_outside: 100.0
|
|
value_supported: 300.0
|