NDJSON
The authored model. Edit it, diff it, or feed it to an agent.
- bimtex
Corner Café — Retail Parade: 195 source entities compile into 324 solids, 18 coordinated views and 10 discipline sheets. Every view below is regenerated from that same source model.
Generated views
Generated from the compiled model, each at a camera the interactive view above already offers. Not photographs — this building does not exist.
Continue elsewhere
Take the same compiled building into an editor, a BIM workflow, or a realtime 3D scene.
The authored model. Edit it, diff it, or feed it to an agent.
Buildings, storeys, walls, openings, rooms, slabs and roofs.
PBR geometry ready for Three.js and other glTF viewers.
Metre-based, z-up geometry with named objects; no MTL or BIM data.
Parcel, grade, setbacks, paving, landscape, fences and streets are compiled beside the building rather than by a separate site renderer.
The X–X cut is placed automatically in clear space; structure at the plane draws heavy and the authored grade masks construction below ground.
The roof surfaces are omitted from the same projection so interior walls, stairs, furniture and equipment remain coordinated.
The same model also produced 21 further drawings, indexed here the way a construction set indexes its sheets. Open any drawing on this page — plate or thumbnail — to read it at full size and download it in every format it exports.
2 plans · 4 elevations · 1 section · 2 axonometrics · 1 egress plan · 1 design study · 10 issued sheets
Move a slider. The model recompiles in this browser and both views redraw from the result. Push the storey height beyond a valid configuration and the real validator turns the verdict red.
// bimtex example 09 — Corner Café, a street-front café in a retail parade
//
// Prototype: a composite of two published UK café fit-outs, recast as the
// brief's 21 m × 12 m single-storey corner parade block.
// Sources:
// https://planningregister.cherwell.gov.uk/Planning/Display/19/02538/F
// Coffee #1, 22 Castle Quay, Banbury — T3A furniture plan and T5A
// proposed elevations, Thomas Parry Design Partnership, 2019.
// https://www.ealing.gov.uk/downloads/download/3421/gunnersbury_park_cafe_and_carriage_proposals
// Gunnersbury Park Café — drawings 6674-17 plan and 6674-18 elevations,
// Rodney Melville + Partners, 2014.
// Sourced dimensions:
// The brief fixes the parade at 21.00 × 12.00 m, split 8.00 m neighbour /
// 13.00 m café, one storey at 3.60 m floor-to-ceiling.
// Coffee #1: 2.35 m shopfront door; 0.65 m stallriser; 0.40 m fascia
// lettering; 0.75 m projecting sign; 0.60/0.70 m round tables; 0.80 m
// square tables; 2.40 × 0.80 m sharing table; outdoor furniture held
// 1.00 m from the shopfront.
// Gunnersbury: kitchen + servery 53.3 m²; dry store 10.3 m²; accessible
// WC 4.7 m²; staff WC 2.5 m²; external bin store 6.3 m²; flat EPDM roof
// and cast-iron downpipes.
// ESTIMATED:
// The Coffee #1 and Gunnersbury programmes are larger than this 13 m bay.
// Kitchen and dry-store areas are reduced in the same order of magnitude
// (38.4 m² and 7.05 m²); the 4.7 m² accessible WC and 2.5 m² staff WC are
// retained exactly. Internal partitions, 2.20 m canopy projection, 0.55 m
// parapet, road width, pavement width and all street-tree positions are a
// coordinated design derived from those drawings, not a survey.
// The 28 × 20 m parcel is a tight editorial crop around the parade, rear
// service yard and two public pavements. The 252 m² building therefore covers
// exactly 45.0% of the parcel instead of floating in a business-park lawn.
{"t":"project","id":"corner-cafe","name":"Corner Café — Retail Parade","unit":"m","typology":"commercial","frontSide":"south","light":"morning"}
{"t":"parcel","id":"corner-site","x":2,"y":2,"w":28,"d":20,"address":"Composite UK corner-parade study · 45.0% coverage","frontage":"south"}
{"t":"grade","id":"grade","elev":0}
// The 21 m parade is two joined footprints: one 8 m retail shell and one
// 13 m corner café. Their south parapets meet at x=14 without overlap.
{"t":"footprint","id":"neighbour-bay","label":"WEST RETAIL SHELL","x":6,"y":6,"w":8,"d":12}
{"t":"footprint","id":"cafe-bay","label":"CORNER CAFÉ","x":14,"y":6,"w":13,"d":12}
{"t":"level","id":"g-neighbour","building":"neighbour-bay","name":"Neighbour shell","elev":0,"height":3.6}
{"t":"level","id":"g-cafe","building":"cafe-bay","name":"Café ground floor","elev":0,"height":3.6}
// Rooms: the western bay stays an empty retail shell; the café keeps public
// seating south and the complete commercial service programme to the rear.
{"t":"room","id":"retail-shell","label":"Neighbour Retail Shell","use":"retail","level":"g-neighbour","x":0.25,"y":0.25,"w":7.5,"d":11.5}
{"t":"room","id":"seating","label":"Café Seating","use":"assembly","level":"g-cafe","x":0.25,"y":6.25,"w":12.5,"d":5.5}
{"t":"room","id":"kitchen","label":"Kitchen + Servery","use":"kitchen","level":"g-cafe","x":0.25,"y":0.25,"w":6.4,"d":6}
{"t":"room","id":"dry-store","label":"Dry Store","use":"storage","level":"g-cafe","x":6.65,"y":0.25,"w":2.35,"d":3}
{"t":"room","id":"staff-wc","label":"Staff WC","use":"bathroom","level":"g-cafe","x":9,"y":0.25,"w":1.25,"d":2}
{"t":"room","id":"rear-service","label":"Service","use":"service","level":"g-cafe","x":10.25,"y":0.25,"w":2.5,"d":2}
{"t":"room","id":"accessible-wc","label":"Accessible WC","use":"bathroom","level":"g-cafe","x":6.65,"y":4.25,"w":2.35,"d":2}
{"t":"room","id":"service-lobby","label":"Staff Lobby","use":"circulation","level":"g-cafe","x":9,"y":2.25,"w":3.75,"d":4}
// Neighbour shell and its single shop bay.
{"t":"wall","id":"w-neighbour-n","level":"g-neighbour","side":"north","type":"exterior","thickness":0.25,"material":"masonry"}
{"t":"wall","id":"w-neighbour-s","level":"g-neighbour","side":"south","type":"exterior","thickness":0.25,"material":"masonry"}
{"t":"wall","id":"w-neighbour-w","level":"g-neighbour","side":"west","type":"exterior","thickness":0.25,"material":"masonry"}
{"t":"opening","id":"neighbour-window","on":"w-neighbour-s","kind":"window","at":0.5,"width":5.2,"sill":0.65,"head":2.75,"operation":"fixed","glass":"glass"}
{"t":"opening","id":"neighbour-door","on":"w-neighbour-s","kind":"door","at":6.2,"width":1.2,"head":2.35,"operation":"swing","room":"retail-shell"}
// Café shell. The south/east walls are only a 0.40 m masonry head above the
// curtain wall; small full-opening host segments carry the two real doors.
{"t":"wall","id":"w-cafe-n","level":"g-cafe","side":"north","type":"exterior","thickness":0.25,"material":"masonry"}
{"t":"wall","id":"w-cafe-s-head","level":"g-cafe","side":"south","type":"exterior","base":3.2,"top":3.6,"thickness":0.25,"material":"masonry"}
{"t":"wall","id":"w-cafe-e-head","level":"g-cafe","side":"east","type":"exterior","base":3.2,"top":3.6,"thickness":0.25,"material":"masonry"}
{"t":"wall","id":"party-wall","level":"g-cafe","from":[0,0],"to":[0,12],"type":"partition","thickness":0.25,"material":"masonry"}
{"t":"wall","id":"w-cafe-e-service","level":"g-cafe","from":[13,0],"to":[13,2.25],"type":"exterior","thickness":0.25,"material":"masonry"}
{"t":"wall","id":"host-main-door","level":"g-cafe","side":"south","from":[6,12],"to":[7.8,12],"type":"exterior","thickness":0.08,"material":"wall"}
{"t":"wall","id":"host-east-door","level":"g-cafe","side":"east","from":[13,8.3],"to":[13,9.5],"type":"exterior","thickness":0.08,"material":"wall"}
{"t":"curtain-wall","id":"shopfront-south","level":"g-cafe","side":"south","bay":2.17,"transom":2.55,"height":3.2,"thickness":0.06,"glass":"glass","mullion":"stainless"}
{"t":"curtain-wall","id":"shopfront-east","level":"g-cafe","side":"east","bay":2,"transom":2.55,"height":3.2,"thickness":0.06,"glass":"glass","mullion":"stainless"}
{"t":"opening","id":"main-entry","on":"host-main-door","kind":"door","at":6,"width":1.8,"head":2.35,"leaves":2,"operation":"double-acting","room":"seating"}
{"t":"opening","id":"east-entry","on":"host-east-door","kind":"door","at":8.3,"width":1.2,"head":2.35,"operation":"swing","room":"seating"}
{"t":"opening","id":"rear-service-door","on":"w-cafe-n","kind":"door","at":10.8,"width":1,"head":2.35,"operation":"swing","room":"rear-service"}
// Back-of-house partitions and truthful room-to-room connections.
{"t":"wall","id":"p-boh-front","level":"g-cafe","from":[0.25,6.25],"to":[12.75,6.25],"type":"partition","thickness":0.14}
{"t":"wall","id":"p-kitchen-east","level":"g-cafe","from":[6.65,0.25],"to":[6.65,6.25],"type":"partition","thickness":0.14}
{"t":"wall","id":"p-dry-south","level":"g-cafe","from":[6.65,3.25],"to":[9,3.25],"type":"partition","thickness":0.14}
{"t":"wall","id":"p-dry-staff","level":"g-cafe","from":[9,0.25],"to":[9,4.25],"type":"partition","thickness":0.14}
{"t":"wall","id":"p-rear-service-west","level":"g-cafe","from":[10.25,0.25],"to":[10.25,2.25],"type":"partition","thickness":0.14}
{"t":"wall","id":"p-back-mid","level":"g-cafe","from":[9,2.25],"to":[12.75,2.25],"type":"partition","thickness":0.14}
{"t":"wall","id":"p-access-north","level":"g-cafe","from":[6.65,4.25],"to":[9,4.25],"type":"partition","thickness":0.14}
{"t":"wall","id":"p-access-east","level":"g-cafe","from":[9,4.25],"to":[9,6.25],"type":"partition","thickness":0.14}
{"t":"opening","id":"kitchen-opening","on":"p-boh-front","kind":"opening","at":0.35,"width":1.2,"between":["kitchen","seating"]}
{"t":"opening","id":"accessible-door","on":"p-boh-front","kind":"door","at":7.4,"width":0.9,"operation":"sliding","between":["accessible-wc","seating"]}
{"t":"opening","id":"service-lobby-door","on":"p-boh-front","kind":"door","at":10.2,"width":1,"operation":"swing","between":["service-lobby","seating"]}
{"t":"opening","id":"dry-store-door","on":"p-kitchen-east","kind":"door","at":1.1,"width":0.9,"operation":"swing","between":["kitchen","dry-store"]}
{"t":"opening","id":"staff-wc-door","on":"p-back-mid","kind":"door","at":9.15,"width":0.9,"operation":"sliding","between":["staff-wc","service-lobby"]}
{"t":"opening","id":"rear-service-inner-door","on":"p-back-mid","kind":"door","at":11,"width":0.9,"operation":"swing","between":["rear-service","service-lobby"]}
{"t":"slab","id":"slab-neighbour","level":"g-neighbour","x":0,"y":0,"w":8,"d":12,"thickness":0.2,"material":"concrete"}
{"t":"slab","id":"slab-cafe","level":"g-cafe","x":0,"y":0,"w":13,"d":12,"thickness":0.2,"material":"concrete"}
{"t":"roof","id":"roof-neighbour","level":"g-neighbour","type":"flat","eave":3.6,"pitch":0,"overhang":0,"material":"membrane"}
{"t":"roof","id":"roof-cafe","level":"g-cafe","type":"flat","eave":3.6,"pitch":0,"overhang":0,"material":"membrane"}
// Continuous outer parapet and coping: six adjacent segments, no doubled
// party-edge geometry.
{"t":"parapet","id":"para-neighbour-n","on":"w-neighbour-n","height":0.55,"thickness":0.22,"base":3.6}
{"t":"parapet","id":"para-neighbour-s","on":"w-neighbour-s","height":0.55,"thickness":0.22,"base":3.6}
{"t":"parapet","id":"para-neighbour-w","on":"w-neighbour-w","height":0.55,"thickness":0.22,"base":3.6}
{"t":"parapet","id":"para-cafe-n","on":"w-cafe-n","height":0.55,"thickness":0.22,"base":3.6}
{"t":"parapet","id":"para-cafe-s","on":"w-cafe-s-head","height":0.55,"thickness":0.22,"base":3.6}
{"t":"parapet","id":"para-cafe-e","on":"w-cafe-e-head","height":0.55,"thickness":0.22,"base":3.6}
{"t":"coping","id":"cop-neighbour-n","on":"para-neighbour-n","width":0.32,"height":0.08}
{"t":"coping","id":"cop-neighbour-s","on":"para-neighbour-s","width":0.32,"height":0.08}
{"t":"coping","id":"cop-neighbour-w","on":"para-neighbour-w","width":0.32,"height":0.08}
{"t":"coping","id":"cop-cafe-n","on":"para-cafe-n","width":0.32,"height":0.08}
{"t":"coping","id":"cop-cafe-s","on":"para-cafe-s","width":0.32,"height":0.08}
{"t":"coping","id":"cop-cafe-e","on":"para-cafe-e","width":0.32,"height":0.08}
{"t":"canopy","id":"canopy-south","on":"w-cafe-s-head","offset":0.3,"width":12.4,"depth":2.2,"base":2.55,"thickness":0.12,"supports":false,"material":"timber"}
{"t":"canopy","id":"canopy-east","on":"w-cafe-e-head","offset":0.3,"width":11.4,"depth":2.2,"base":2.55,"thickness":0.12,"supports":false,"material":"timber"}
{"t":"sign","id":"cafe-fascia-sign","kind":"wall","on":"w-cafe-s-head","offset":4.4,"base":3.16,"w":4,"d":0.1,"faceH":0.4,"text":"CORNER CUP","material":"signface"}
{"t":"downpipe","id":"rear-downpipe-west","on":"w-cafe-n","offset":0.25,"diameter":0.1,"height":3.6,"material":"stainless"}
{"t":"downpipe","id":"rear-downpipe-east","on":"w-cafe-n","offset":12.65,"diameter":0.1,"height":3.6,"material":"stainless"}
// The neighbour bay is let and fitted out. It was drawn as an empty shell to
// show that a parade is two tenancies compiled side by side, and an empty
// shell made that point once; a second tenancy with a different fit-out makes
// it every time the drawing is looked at. Everything here is packs/retail —
// wall bays and fitting rooms at the back, gondola runs through the middle,
// the window display and the till where a shopper meets them.
{"t":"furniture","id":"fitting-room-a","type":"fitting-room","level":"g-neighbour","x":0.5,"y":0.5,"w":1.1,"d":1.2,"height":2.2,"material":"pack-retail-oak"}
{"t":"furniture","id":"fitting-room-b","type":"fitting-room","level":"g-neighbour","x":1.7,"y":0.5,"w":1.1,"d":1.2,"height":2.2,"material":"pack-retail-oak"}
{"t":"furniture","id":"shop-wall-bay-e1","type":"wall-bay","level":"g-neighbour","x":7.3,"y":0.6,"w":0.4,"d":1,"height":2.2,"material":"pack-retail-oak"}
{"t":"furniture","id":"shop-wall-bay-e2","type":"wall-bay","level":"g-neighbour","x":7.3,"y":1.75,"w":0.4,"d":1,"height":2.2,"material":"pack-retail-oak"}
{"t":"furniture","id":"shop-wall-bay-e3","type":"wall-bay","level":"g-neighbour","x":7.3,"y":2.9,"w":0.4,"d":1,"height":2.2,"material":"pack-retail-oak"}
{"t":"furniture","id":"shop-wall-bay-w1","type":"wall-bay","level":"g-neighbour","x":0.3,"y":3.5,"w":0.4,"d":1,"height":2.2,"material":"pack-retail-oak"}
{"t":"furniture","id":"shop-wall-bay-w2","type":"wall-bay","level":"g-neighbour","x":0.3,"y":4.65,"w":0.4,"d":1,"height":2.2,"material":"pack-retail-oak"}
{"t":"furniture","id":"shop-wall-bay-w3","type":"wall-bay","level":"g-neighbour","x":0.3,"y":5.8,"w":0.4,"d":1,"height":2.2,"material":"pack-retail-oak"}
{"t":"furniture","id":"shop-gondola-w1","type":"gondola","level":"g-neighbour","x":2,"y":3.5,"w":0.6,"d":1.2,"height":1.5,"material":"pack-retail-charcoal"}
{"t":"furniture","id":"shop-gondola-w2","type":"gondola","level":"g-neighbour","x":2,"y":4.8,"w":0.6,"d":1.2,"height":1.5,"material":"pack-retail-charcoal"}
{"t":"furniture","id":"shop-gondola-w3","type":"gondola","level":"g-neighbour","x":2,"y":6.1,"w":0.6,"d":1.2,"height":1.5,"material":"pack-retail-charcoal"}
{"t":"furniture","id":"shop-gondola-e1","type":"gondola","level":"g-neighbour","x":4.4,"y":3.5,"w":0.6,"d":1.2,"height":1.5,"material":"pack-retail-charcoal"}
{"t":"furniture","id":"shop-gondola-e2","type":"gondola","level":"g-neighbour","x":4.4,"y":4.8,"w":0.6,"d":1.2,"height":1.5,"material":"pack-retail-charcoal"}
{"t":"furniture","id":"shop-gondola-e3","type":"gondola","level":"g-neighbour","x":4.4,"y":6.1,"w":0.6,"d":1.2,"height":1.5,"material":"pack-retail-charcoal"}
{"t":"furniture","id":"shop-rail-a","type":"clothing-rack","level":"g-neighbour","x":1.2,"y":8.6,"w":1.5,"d":0.6,"height":1.7,"material":"pack-retail-chrome"}
{"t":"furniture","id":"shop-rail-b","type":"clothing-rack","level":"g-neighbour","x":1.2,"y":10,"w":1.5,"d":0.6,"height":1.7,"material":"pack-retail-chrome"}
{"t":"furniture","id":"shop-round-rack","type":"round-rack","level":"g-neighbour","x":4,"y":9.6,"w":1.1,"d":1.1,"height":1.6,"material":"pack-retail-chrome"}
{"t":"furniture","id":"shop-display-table","type":"display-table","level":"g-neighbour","x":5.6,"y":9.4,"w":1.2,"d":0.8,"height":0.8,"material":"pack-retail-oak"}
{"t":"asset","id":"shop-window-figure-a","class":"mannequin","x":7,"y":17.2,"w":0.4,"d":0.4,"z0":0,"z1":1.8,"material":"pack-retail-linen"}
{"t":"asset","id":"shop-window-figure-b","class":"mannequin","x":9.2,"y":17.2,"w":0.4,"d":0.4,"z0":0,"z1":1.8,"material":"pack-retail-linen"}
{"t":"furniture","id":"shop-till","type":"retail-till","level":"g-neighbour","x":6.6,"y":6.8,"w":0.7,"d":1.6,"height":1,"material":"pack-retail-oak"}
{"t":"furniture","id":"shop-security-gate","type":"security-gate","level":"g-neighbour","x":4.8,"y":11.2,"w":0.95,"d":0.25,"height":1.5,"material":"pack-retail-charcoal"}
{"t":"asset","id":"shop-basket-stack","class":"basket-stack","x":13.2,"y":16.4,"w":0.5,"d":0.4,"z0":0,"z1":0.9,"material":"pack-retail-charcoal"}
// Public service line and seating. The massing boxes below are unchanged: what
// dresses them is the def layer at the foot of this file, so a fit-out is a
// paste rather than a re-model.
{"t":"furniture","id":"service-bar","type":"bar","level":"g-cafe","x":1.8,"y":6.5,"w":2.4,"d":0.7,"height":1.07,"material":"timber"}
{"t":"furniture","id":"checkout","type":"checkout","level":"g-cafe","x":4.3,"y":6.5,"w":1.8,"d":0.9,"height":1.05,"material":"timber"}
{"t":"furniture","id":"service-counter","type":"counter","level":"g-cafe","x":6.2,"y":6.5,"w":1,"d":0.65,"height":0.91,"material":"timber"}
{"t":"furniture","id":"bar-stools","type":"bar-stool","level":"g-cafe","x":2,"y":7.45,"w":0.42,"d":0.42,"height":1,"cols":4,"gapX":0.28,"material":"stainless"}
{"t":"furniture","id":"booth-west-a","type":"booth","level":"g-cafe","x":0.55,"y":8.4,"w":2,"d":1.2,"height":1.05}
{"t":"furniture","id":"booth-west-b","type":"booth","level":"g-cafe","x":0.55,"y":10.1,"w":2,"d":1.2,"height":1.05}
{"t":"furniture","id":"table-a","type":"round-table-4","level":"g-cafe","x":4,"y":8.6,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"table-b","type":"round-table-4","level":"g-cafe","x":6.3,"y":8.6,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"table-c","type":"round-table-4","level":"g-cafe","x":8.6,"y":8.6,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"table-d","type":"round-table-4","level":"g-cafe","x":4,"y":10.4,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"table-e","type":"round-table-4","level":"g-cafe","x":6.3,"y":10.4,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"table-f","type":"round-table-4","level":"g-cafe","x":8.6,"y":10.4,"w":0.7,"d":0.7,"height":0.74}
{"t":"asset","id":"cafe-plant-corner","class":"interior-plant","x":25.9,"y":16.6,"w":0.7,"d":0.7,"z0":0,"z1":1.5,"material":"pack-int-clay"}
{"t":"asset","id":"cafe-plant-servery","class":"interior-plant","x":21.4,"y":12.6,"w":0.55,"d":0.55,"z0":0,"z1":1.1,"material":"pack-int-clay"}
// Commercial kitchen equipment — no residential substitutions.
{"t":"furniture","id":"walk-in-chiller","type":"walk-in","level":"g-cafe","x":0.55,"y":0.55,"w":2.2,"d":2.2,"height":2.4}
{"t":"furniture","id":"kitchen-fridge","type":"fridge","level":"g-cafe","x":3,"y":0.55,"w":0.9,"d":0.7,"height":1.8,"material":"stainless"}
{"t":"furniture","id":"cooking-range","type":"range","level":"g-cafe","x":4.1,"y":0.55,"w":0.91,"d":0.8,"height":0.91,"material":"stainless"}
{"t":"furniture","id":"range-hood","type":"range-hood","level":"g-cafe","x":4.1,"y":0.55,"w":1.2,"d":0.9,"base":1.8,"height":0.55,"material":"stainless"}
{"t":"furniture","id":"prep-table-a","type":"prep-table","level":"g-cafe","x":0.6,"y":3.35,"w":1.5,"d":0.75,"height":0.9,"material":"stainless"}
{"t":"furniture","id":"prep-table-b","type":"prep-table","level":"g-cafe","x":4.9,"y":3.35,"w":1.5,"d":0.75,"height":0.9,"material":"stainless"}
{"t":"furniture","id":"commercial-sink","type":"commercial-sink","level":"g-cafe","x":2.3,"y":4.9,"w":1.8,"d":0.75,"height":1.22,"material":"stainless"}
{"t":"furniture","id":"dishwasher","type":"dishwasher","level":"g-cafe","x":4.2,"y":4.9,"w":0.6,"d":0.62,"height":0.86,"material":"stainless"}
{"t":"furniture","id":"dry-store-shelving","type":"shelving","level":"g-cafe","x":6.85,"y":0.5,"w":1.9,"d":0.45,"height":1.8}
// WC fixtures and the explicit 1.50 m accessible turning circle.
{"t":"furniture","id":"accessible-turn","type":"turning-circle","level":"g-cafe","x":6.72,"y":4.65,"w":1.5,"d":1.5,"height":0.01}
{"t":"furniture","id":"accessible-toilet","type":"toilet","level":"g-cafe","x":8.35,"y":4.35,"w":0.42,"d":0.72,"height":0.78}
{"t":"furniture","id":"accessible-sink","type":"sink","level":"g-cafe","x":8.25,"y":5.5,"w":0.55,"d":0.48,"height":1.1}
{"t":"furniture","id":"staff-toilet","type":"toilet","level":"g-cafe","x":9.1,"y":0.45,"w":0.42,"d":0.72,"height":0.78}
{"t":"furniture","id":"staff-sink","type":"sink","level":"g-cafe","x":9.6,"y":1.45,"w":0.55,"d":0.48,"height":1.1}
// Pavement seating remains under the two canopies and at least 1 m from the
// curtain-wall line, following Coffee #1's external-furniture annotation.
{"t":"paving","id":"pavement-south","use":"walkway","x":2,"y":18,"w":25,"d":3,"material":"paving"}
{"t":"paving","id":"pavement-east","use":"walkway","x":27,"y":2,"w":3,"d":19,"material":"paving"}
{"t":"furniture","id":"outside-s-1","type":"round-table-4","level":"g-cafe","x":1.2,"y":13,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"outside-s-2","type":"round-table-4","level":"g-cafe","x":3.4,"y":13,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"outside-s-3","type":"round-table-4","level":"g-cafe","x":9,"y":13,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"outside-s-4","type":"round-table-4","level":"g-cafe","x":11.2,"y":13,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"outside-e-1","type":"round-table-4","level":"g-cafe","x":14,"y":3,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"outside-e-2","type":"round-table-4","level":"g-cafe","x":14,"y":5.5,"w":0.7,"d":0.7,"height":0.74}
{"t":"furniture","id":"outside-e-3","type":"round-table-4","level":"g-cafe","x":14,"y":10,"w":0.7,"d":0.7,"height":0.74}
// Rear servicing, the L-shaped corner street and planted pavement pockets.
{"t":"paving","id":"rear-service-walk","use":"walkway","x":18,"y":3,"w":9,"d":3,"material":"paving"}
{"t":"fence","id":"bin-store-n","kind":"wall","from":[24.3,2.7],"to":[27,2.7],"height":1.8,"material":"timber"}
{"t":"fence","id":"bin-store-w","kind":"wall","from":[24.3,2.7],"to":[24.3,5.1],"height":1.8,"material":"timber"}
{"t":"fence","id":"bin-store-e","kind":"wall","from":[27,2.7],"to":[27,5.1],"height":1.8,"material":"timber"}
{"t":"street","id":"corner-streets","name":"HIGH STREET / MARKET STREET","width":7.2,"lanes":2,"class":"local","from":[2,24.6],"path":[{"to":[33.6,24.6]},{"to":[33.6,2]}],"material":"asphalt"}
{"t":"curb","id":"curb-south","from":[2,21],"to":[30,21]}
{"t":"curb","id":"curb-east","from":[30,2],"to":[30,21]}
{"t":"landscape","id":"south-tree-pit","x":3,"y":18.4,"w":2.2,"d":1.6,"planting":{"species":"low grasses","count":8}}
{"t":"landscape","id":"east-tree-pit","x":27.5,"y":3.4,"w":1.8,"d":2.4,"planting":{"species":"low grasses","count":8}}
{"t":"tree","id":"street-tree-south","x":4.1,"y":19.2,"canopy":3.2,"species":"ornamental pear"}
{"t":"tree","id":"street-tree-east","x":28.4,"y":4.6,"canopy":3.2,"species":"ornamental pear"}
{"t":"view","id":"interior:cafe-room","mode":"interior","building":"cafe-bay","level":"g-cafe","label":"CAFÉ ROOM + OPEN SERVERY","cameraElevation":28,"cameraAzimuth":220}
// A turning circle is clearance, not furniture; the 10 mm glass disc keeps it
// visible in presentations without pretending that the clear space is solid.
{"t":"lookdef","id":"accessible-turning-clearance","for":"furniture:turning-circle","body":{"type":"Mesh","material":"glass","geometry":{"type":"CylinderGeometry","radiusTop":0.5,"radiusBottom":0.5,"height":1,"radialSegments":48},"position":[0,0.5,0]}}
// The def layer. bimtex has no include: a model that wants a pack element
// carries its definition, which is exactly what the element page's copy button
// hands a reader. Three packs meet here — the café's fit-out, the neighbour
// tenancy's, and the doorsets and windows both bays already had.
{"t":"materialdef","id":"pack-int-linen","of":"cloth","value":72,"body":{"sheen":0.7,"sheenRoughness":0.6}}
{"t":"materialdef","id":"pack-int-linen-soft","of":"cloth","value":80,"body":{"sheenRoughness":0.55}}
{"t":"materialdef","id":"pack-int-oak","of":"timber","value":58,"hatch":"timber","body":{"roughness":0.62}}
{"t":"materialdef","id":"pack-int-saddle","of":"cloth","value":58,"accent":"#b87542","body":{"roughness":0.68,"sheen":0.18,"sheenColor":"#d29a6a","sheenRoughness":0.74}}
{"t":"materialdef","id":"pack-int-stone","of":"stone","value":86,"body":{"roughness":0.3}}
{"t":"materialdef","id":"pack-int-black","of":"membrane","value":20,"body":{"roughness":0.44,"metalness":0.3}}
{"t":"materialdef","id":"pack-int-steel","of":"steel","value":72,"body":{"roughness":0.3,"metalness":0.6}}
{"t":"materialdef","id":"pack-int-brass","of":"brass","value":58,"accent":"#b08d52","body":{"metalness":0.75}}
{"t":"materialdef","id":"pack-int-china","of":"plaster","value":92,"body":{"roughness":0.22}}
{"t":"materialdef","id":"pack-int-screen","of":"membrane","value":20,"body":{"roughness":0.14,"metalness":0.2}}
{"t":"materialdef","id":"pack-int-moss","of":"cloth","value":42,"accent":"#5d6b4a","body":{"sheenRoughness":0.6}}
{"t":"materialdef","id":"pack-int-plant-leaf-light","of":"foliage","value":58,"accent":"#8a9460","body":{"flatShading":true,"roughness":0.96}}
{"t":"look","id":"use-base-run-2","for":"furniture:counter","use":"base-run-2"}
{"t":"look","id":"use-tall-fridge-2","for":"furniture:fridge","use":"tall-fridge-2"}
{"t":"look","id":"use-wall-hung-wc-2","for":"furniture:toilet","use":"wall-hung-wc-2"}
{"t":"look","id":"use-cafe-service-bar-2","for":"furniture:bar","use":"cafe-service-bar-2"}
{"t":"look","id":"use-cafe-booth-2","for":"furniture:booth","use":"cafe-booth-2"}
{"t":"look","id":"use-pos-checkout-2","for":"furniture:checkout","use":"pos-checkout-2"}
{"t":"look","id":"use-commercial-prep-table","for":"furniture:prep-table","use":"commercial-prep-table"}
{"t":"look","id":"use-six-burner-range","for":"furniture:range","use":"six-burner-range"}
{"t":"look","id":"use-commercial-range-hood-2","for":"furniture:range-hood","use":"commercial-range-hood-2"}
{"t":"look","id":"use-three-bowl-sink-2","for":"furniture:commercial-sink","use":"three-bowl-sink-2"}
{"t":"look","id":"use-undercounter-dishwasher","for":"furniture:dishwasher","use":"undercounter-dishwasher"}
{"t":"look","id":"use-walk-in-cooler-2","for":"furniture:walk-in","use":"walk-in-cooler-2"}
{"t":"look","id":"use-saddle-counter-stool","for":"furniture:bar-stool","use":"saddle-counter-stool"}
{"t":"look","id":"use-open-shelf-unit","for":"furniture:shelving","use":"open-shelf-unit"}
{"t":"look","id":"use-four-top-round-table","for":"furniture:round-table-4","use":"four-top-round-table"}
{"t":"look","id":"use-wall-basin","for":"furniture:sink","use":"wall-basin"}
{"t":"look","id":"use-interior-plant","for":"asset:interior-plant","use":"interior-plant"}
{"t":"materialdef","id":"pack-retail-oak","of":"timber","value":72,"accent":"#b88b59","body":{"roughness":0.68}}
{"t":"materialdef","id":"pack-retail-charcoal","of":"painted-metal","value":20,"accent":"#343536","body":{"metalness":0.38}}
{"t":"materialdef","id":"pack-retail-chrome","of":"chrome","value":72,"accent":"#bfc4c7","body":{"metalness":0.82}}
{"t":"materialdef","id":"pack-retail-linen","of":"cloth","value":80,"accent":"#d9d0c2","body":{"sheen":0.55,"sheenColor":"#f1ebe0","sheenRoughness":0.8}}
{"t":"materialdef","id":"pack-retail-white","of":"paint","value":92,"accent":"#f2f1ec","body":{"roughness":0.38}}
{"t":"materialdef","id":"pack-retail-mirror","of":"glass","value":86,"body":{"type":"MeshPhysicalMaterial","roughness":0.08,"metalness":0.72,"transmission":0.18,"ior":1.5,"thickness":0.02}}
{"t":"materialdef","id":"pack-retail-glass","of":"glass","value":86,"body":{"type":"MeshPhysicalMaterial","roughness":0.08,"transmission":0.86,"ior":1.48,"thickness":0.025}}
{"t":"look","id":"use-straight-clothing-rail","for":"furniture:clothing-rack","use":"straight-clothing-rail"}
{"t":"look","id":"use-round-clothing-rack","for":"furniture:round-rack","use":"round-clothing-rack"}
{"t":"look","id":"use-curtained-fitting-room","for":"furniture:fitting-room","use":"curtained-fitting-room"}
{"t":"look","id":"use-gondola-shelving","for":"furniture:gondola","use":"gondola-shelving"}
{"t":"look","id":"use-wall-shelving-bay","for":"furniture:wall-bay","use":"wall-shelving-bay"}
{"t":"look","id":"use-retail-display-table","for":"furniture:display-table","use":"retail-display-table"}
{"t":"look","id":"use-retail-till-counter","for":"furniture:retail-till","use":"retail-till-counter"}
{"t":"look","id":"use-retail-mannequin","for":"asset:mannequin","use":"retail-mannequin"}
{"t":"look","id":"use-security-pedestal","for":"furniture:security-gate","use":"security-pedestal"}
{"t":"look","id":"use-basket-stack","for":"asset:basket-stack","use":"basket-stack"}
{"t":"materialdef","id":"pack-opening-oak","of":"timber","value":58,"hatch":"timber","body":{"roughness":0.68}}
{"t":"materialdef","id":"pack-opening-blue","of":"paint","value":42,"accent":"#607888","body":{"roughness":0.64}}
{"t":"materialdef","id":"pack-opening-glass","of":"glass","value":72,"body":{"type":"MeshPhysicalMaterial","transmission":0.92,"ior":1.5,"roughness":0.06,"thickness":0.12}}
{"t":"look","id":"use-deep-reveal-window","for":"opening:window","use":"deep-reveal-window"}
{"t":"look","id":"use-slim-fixed-window","for":"opening:fixed","use":"slim-fixed-window"}
{"t":"look","id":"use-timber-flush-door-2","for":"opening:door","use":"timber-flush-door-2"}
{"t":"look","id":"use-painted-panel-door-2","for":"opening:swing","use":"painted-panel-door-2"}
{"t":"look","id":"use-sliding-glass-door","for":"opening:sliding","use":"sliding-glass-door"}
{"t":"look","id":"use-glazed-double-acting-door","for":"opening:double-acting","use":"glazed-double-acting-door"}