ArchLang Playground

Garden Loft — an ArchLang floor plan example

A 35 m² loft: three rooms, a kitchen run with a wall behind it, a bath with real fixtures, and a door into every one of them.

This plan compiles to 3 rooms, 35 m² of floor area and 4 windows; every room is reachable from the entrance.

Living / Kitchen 21.0 m² Bedroom 9.0 m² Bath 5.0 m² 2850 900 1050 600 1800 4200 2800 7200 3000 1400 800 3200 1800 5200 1600 1800 1700 1200 900 4200 2800 7200 100 200 N 02 m PROJECTGarden LoftDRAWN BYArchLangDATE2026-08-16SCALE1:50
"Garden Loft" — a 3-room floor plan, 35 m² total: Living / Kitchen (21 m²), Bedroom (8.96 m²), Bath (5.04 m²); 3 doors, 4 windows, entrance via d_main.
Open in the editor

The source

This is the whole plan. The drawing above is what the compiler produced from it — nothing was drawn by hand.

# A 35 m² garden loft — the plan the docs home page reads its own facts from.
#
# Deliberately the smallest plan worth DESCRIBING: three rooms, so `describe()`'s room
# table fits in a band beside the drawing, but a real one — a kitchen run with a wall
# behind it, a bath with three fixtures, a door into every room. `scale 1:50` is
# annotation here (there is no `paper` block), which is what a web page wants: the
# caption says 1:50 and the SVG scales to whatever box it is dropped into. Nothing but
# the walls carries a coordinate — openings are pinned to a run along a named wall and
# fixtures resolve against their room or the wall behind them.
plan "Garden Loft" {
  units mm
  grid 50
  scale 1:50
  north up
  dims auto all

  wall id=w_north exterior  thickness 200 { (0,0) (7000,0) }
  wall id=w_east  exterior  thickness 200 { (7000,0) (7000,5000) }
  wall id=w_south exterior  thickness 200 { (0,5000) (7000,5000) }
  wall id=w_west  exterior  thickness 200 { (0,0) (0,5000) }
  wall id=w_spine partition thickness 100 { (4200,0) (4200,5000) }
  wall id=w_bath  partition thickness 100 { (4200,3200) (7000,3200) }

  room id=r_live at (0,0)       size 4200x5000 label "Living / Kitchen" uses living kitchen
  room id=r_bed  at (4200,0)    size 2800x3200 label "Bedroom"          uses bedroom
  room id=r_bath at (4200,3200) size 2800x1800 label "Bath"             uses bath

  door id=d_main on w_south at 3200 width 900 hinge near start swing into r_live
  door id=d_bed  on w_spine at 1600 width 800 hinge left  swing into r_bed
  door id=d_bath on w_spine at 4100 width 800 hinge right swing into r_bath

  window on w_west  at 3600 width 1400
  window on w_north at 2400 width 1800
  window on w_north at 5600 width 1200
  window on w_south at 5000 width 600

  furniture fridge       against wall w_west offset 400  in r_live
  furniture stove        against wall w_west offset 1100 in r_live
  furniture kitchen_sink against wall w_west offset 1900 in r_live
  furniture table  in r_live centered size 1300x900 label "Table"
  furniture sofa   in r_live anchor bottom-left flush inset 300 size 1900x850 label "Sofa"
  furniture bed    in r_bed  anchor bottom-right flush inset 200 size 1500x2000 label "Bed"
  furniture robe   in r_bed  anchor top-left      flush inset 150 size 1200x600  label "Wardrobe"
  furniture shower in r_bath anchor top-right    flush size 900x900
  furniture wc     in r_bath anchor bottom       flush size 400x700
  furniture basin  in r_bath anchor bottom-right flush size 600x450

  title { project "Garden Loft" drawn_by "ArchLang" date "2026-08-16" }
}

Read more