# The FURNITURE flagship — a two-bedroom flat, furnished with the whole symbol catalogue. # # Every other example draws a fixture or two in passing. This one is here for the drawn # symbols themselves: thirty-eight of the eighty-three catalogued kinds, across all five # indoor domains (bath, kitchen/utility, bedroom, living/dining, office/misc). It is a # two-bedroom flat rather than a showroom, so the ceiling on that number is the FLOOR # AREA, not the catalogue: every piece here is somewhere a real one would go, and the # linter is what says so -- no piece floats off its wall, backs onto the room, blocks a # door, eats a clearance or collides with anything, and `arch validate --strict` is clean. # # Four things to read off the source rather than the picture: # # 1. NO LABELS. A drawn symbol ignores `label` — the word reaches `describe()` and # nothing else — so the only text in this drawing comes from the rooms. # 2. MOST PIECES CARRY NO SIZE. `against wall … in ` takes the catalogued # footprint (a fridge is 600 along the wall by 650 deep) and derives the rotation # from the wall, so a fitted kitchen, a plumbed bathroom and a bed with its # headboard on the right wall are written without a single hand-computed number. # `offset` is where the piece's CENTRE lands along the wall run, so a kitchen run # is written as a sequence of centres, not as corners. # Only the free-standing pieces — the L-sofa, armchair, coffee table, dining table, # island, desk, office chair, plant, rug, piano and lounger — declare a `size`, # because with no wall there is nothing to tell `along` from `depth`. # 3. THE RUG IS AN UNDERLAY. It is walked on rather than round, so the pieces standing # on it raise no overlap warning and the circulation flood-fill crosses it. Rugs, # alone among the symbols, are drawn unfilled — nothing they are written after can # be hidden by them. # 4. THREE PIECES ARE OVERHEAD, and the drawing says so with a dashed outline: the # range hood sits over the stove at the same offset, the mirror over the basin at # the same offset, and the wall cabinet over its length of the east wall. A thing # above the cut plane and a thing below it cannot collide, so those pairs raise no # overlap warning — but unlike the rug they are still obstacles to a walk, because a # body is taller than a wall unit's underside. That is the whole difference between # the two flags, and it is why this plan can draw a kitchen that is actually fitted. plan "Furnished Flat" { units mm grid 50 paper A3 portrait scale 1:50 north up dims auto overall schedule rooms wall id=w_north exterior thickness 200 { (0,0) (8400,0) } wall id=w_east exterior thickness 200 { (8400,0) (8400,10800) } wall id=w_south exterior thickness 200 { (0,10800) (8400,10800) } wall id=w_west exterior thickness 200 { (0,0) (0,10800) } wall id=w_kit partition thickness 100 { (5000,0) (5000,5600) } wall id=w_util partition thickness 100 { (5000,3800) (8400,3800) } wall id=w_hall_n partition thickness 100 { (0,5600) (8400,5600) } wall id=w_hall_s partition thickness 100 { (0,6800) (8400,6800) } wall id=w_bed partition thickness 100 { (3600,6800) (3600,10800) } wall id=w_bath partition thickness 100 { (6400,6800) (6400,10800) } room id=r_live at (0,0) size 5000x5600 label "Living / Dining" uses living room id=r_kitchen at (5000,0) size 3400x3800 label "Kitchen" uses kitchen room id=r_util at (5000,3800) size 3400x1800 label "Utility" room id=r_hall at (0,5600) size 8400x1200 label "Hall" uses hall room id=r_bed1 at (0,6800) size 3600x4000 label "Bedroom 1" uses bedroom room id=r_bed2 at (3600,6800) size 2800x4000 label "Bedroom 2" uses bedroom room id=r_bath at (6400,6800) size 2000x4000 label "Bath" uses bath door id=d_front on w_east at 6200 width 900 hinge near start swing into r_hall # The living door sits at the hall's kitchen end, so the walk from the front door to the # kitchen (through the living room's opening) does not double back down the hall. door id=d_live on w_hall_n at 4100 width 900 hinge near start swing into r_live door id=d_util on w_hall_n at 5700 width 800 hinge near start swing into r_util door id=d_bed1 on w_hall_s at 700 width 800 hinge near start swing into r_bed1 door id=d_bed2 on w_hall_s at 5400 width 800 hinge near start swing into r_bed2 door id=d_bath on w_hall_s at 7000 width 800 hinge near start swing into r_bath opening on w_kit at 1600 width 1200 window on w_north at 3300 width 1400 window on w_north at 6650 width 1200 window on w_west at 1800 width 1400 window on w_west at 4300 width 1200 window on w_south at 2600 width 1400 window on w_south at 4450 width 1400 # --- Living / Dining -------------------------------------------------------- # The rug is an UNDERLAY: the coffee table and the L-sofa stand on it, so that overlap # is the arrangement rather than a collision, and the flood-fill walks straight over it. # It is also the only symbol here drawn with no fill, which is why it cannot hide the # sofa it is written after. furniture rug at (200,600) size 2700x2400 in r_live furniture tv_unit against wall w_north offset 1000 in r_live furniture sofa_l at (300,1300) size 2400x1500 rotate 180 in r_live furniture coffee_table at (900,700) size 1000x500 in r_live furniture armchair at (3300,1100) size 900x850 rotate 90 in r_live furniture sun_lounger at (1950,150) size 1400x700 rotate 90 in r_live furniture plant at (4300,300) size 600x600 in r_live # A piano carries NO catalogued footprint on purpose, so it cannot be written # `against wall` — that form would derive a rotation from the wall and face the # keyboard into it. Placed by hand, like it is on a real drawing. furniture piano at (250,3200) size 1400x1400 in r_live # A six-seat 1800 x 1000 table, 800 mm clear of the sofa: the one walk from the hall to # the kitchen opening passes between them. furniture dining_table at (2900,3600) size 1800x1000 in r_live furniture radiator against wall w_west offset 4300 in r_live # --- Kitchen: a fitted run of centres along the north wall ------------------- furniture counter against wall w_north offset 5650 size 1200x600 in r_kitchen furniture kitchen_sink against wall w_north offset 6650 in r_kitchen furniture stove against wall w_north offset 7950 in r_kitchen furniture range_hood against wall w_north offset 7350 in r_kitchen furniture dishwasher against wall w_north offset 7350 in r_kitchen furniture fridge against wall w_east offset 1000 in r_kitchen furniture upper_cabinet against wall w_east offset 1800 in r_kitchen furniture microwave against wall w_east offset 2600 in r_kitchen furniture island at (5800,2000) size 1600x900 in r_kitchen # --- Utility ---------------------------------------------------------------- furniture washer against wall w_east offset 4400 in r_util furniture dryer against wall w_east offset 5000 in r_util furniture laundry_sink against wall w_util offset 1300 in r_util furniture water_heater against wall w_util offset 500 in r_util # --- Bedroom 1 -------------------------------------------------------------- furniture double_bed against wall w_west offset 9100 in r_bed1 furniture nightstand against wall w_west offset 7925 in r_bed1 furniture nightstand against wall w_west offset 10275 in r_bed1 furniture wardrobe against wall w_hall_s offset 2600 in r_bed1 furniture vanity against wall w_bed offset 1700 in r_bed1 furniture dresser against wall w_bed offset 3250 in r_bed1 # --- Bedroom 2 -------------------------------------------------------------- furniture bed against wall w_bath offset 2950 in r_bed2 furniture desk against wall w_bed offset 1000 size 1200x700 in r_bed2 furniture office_chair at (4450,8000) size 600x600 rotate 90 in r_bed2 furniture bookshelf against wall w_bed offset 3100 in r_bed2 # --- Bath ------------------------------------------------------------------- furniture shower against wall w_bath offset 1350 in r_bath furniture basin against wall w_east offset 7800 in r_bath furniture mirror against wall w_east offset 7800 in r_bath furniture wc against wall w_east offset 9200 in r_bath furniture bathtub against wall w_south offset 7450 in r_bath furniture bidet against wall w_east offset 8500 in r_bath title { project "Furnished Flat" drawn_by "ArchLang" date "2026-08-26" } }