NDJSON
The authored model. Edit it, diff it, or feed it to an agent.
- bimtex
Loading 3D…
Courtyard Kindergarten: 180 source entities compile into 691 solids, 5 coordinated views and 7 discipline sheets. Every view below is regenerated from that same source model.
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 same model also produced 10 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 · 1 egress plan · 7 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.
// Courtyard Kindergarten — a new early-years campus organised as a small village.
// Three single-storey gabled pavilions frame a secure planted learning courtyard.
// A low timber cloister links every room directly to the shared outdoor space.
{"t":"project","id":"courtyard-kindergarten","name":"Courtyard Kindergarten","summary":"Three child-scaled learning pavilions gathered around a protected garden classroom.","unit":"m","typology":"civic","frontSide":"south","light":"morning"}
{"t":"parcel","id":"lot","x":0,"y":0,"w":40,"d":30,"address":"Synthetic early-years campus","frontage":"south"}
{"t":"grade","id":"grade","elev":0}
{"t":"setback","id":"lot-setback","all":2}
// Three small buildings make a U-shaped village around the central garden.
{"t":"footprint","id":"north-wing","x":9,"y":4,"w":22,"d":8,"label":"CLASSROOM PAVILIONS"}
{"t":"footprint","id":"west-wing","x":4,"y":13,"w":9,"d":12,"label":"ATELIER PAVILION"}
{"t":"footprint","id":"east-wing","x":27,"y":13,"w":9,"d":12,"label":"COMMONS PAVILION"}
{"t":"level","id":"north-g","building":"north-wing","name":"Classrooms","elev":0,"height":3.6,"ceiling":3.25}
{"t":"level","id":"west-g","building":"west-wing","name":"Atelier","elev":0,"height":3.2,"ceiling":2.9}
{"t":"level","id":"east-g","building":"east-wing","name":"Commons","elev":0,"height":3.4,"ceiling":3.05}
// Rooms are shallow, daylit, and each has its own threshold to the courtyard.
{"t":"room","id":"classroom-sun","label":"Sun Classroom","use":"classroom","level":"north-g","x":0.3,"y":0.3,"w":10.7,"d":7.4}
{"t":"room","id":"classroom-sky","label":"Sky Classroom","use":"classroom","level":"north-g","x":11,"y":0.3,"w":10.7,"d":7.4}
{"t":"room","id":"atelier","label":"Art Atelier","use":"classroom","level":"west-g","x":0.3,"y":0.3,"w":8.4,"d":7.2}
{"t":"room","id":"quiet-room","label":"Story Room","use":"assembly","level":"west-g","x":0.3,"y":7.5,"w":8.4,"d":4.2}
{"t":"room","id":"commons","label":"Family Commons","use":"assembly","level":"east-g","x":0.3,"y":0.3,"w":8.4,"d":5.3}
{"t":"room","id":"kitchen","label":"Teaching Kitchen","use":"kitchen","level":"east-g","x":0.3,"y":5.6,"w":4.2,"d":6.1}
{"t":"room","id":"child-wc","label":"Children's WC","use":"bathroom","level":"east-g","x":4.5,"y":5.6,"w":4.2,"d":3}
{"t":"room","id":"staff","label":"Staff Room","use":"office","level":"east-g","x":4.5,"y":8.6,"w":4.2,"d":3.1}
// Warm mineral walls outside, timber faces toward the garden.
{"t":"wall","id":"north-n","level":"north-g","side":"north","type":"exterior","thickness":0.28,"material":"kg-clay"}
{"t":"wall","id":"north-s","level":"north-g","side":"south","type":"exterior","thickness":0.28,"material":"kg-timber"}
{"t":"wall","id":"north-e","level":"north-g","side":"east","type":"exterior","thickness":0.28,"material":"kg-clay"}
{"t":"wall","id":"north-w","level":"north-g","side":"west","type":"exterior","thickness":0.28,"material":"kg-clay"}
{"t":"wall","id":"north-divider","level":"north-g","from":[11,0],"to":[11,8],"type":"partition","thickness":0.14}
{"t":"wall","id":"west-n","level":"west-g","side":"north","type":"exterior","thickness":0.28,"material":"kg-clay"}
{"t":"wall","id":"west-s","level":"west-g","side":"south","type":"exterior","thickness":0.28,"material":"kg-clay"}
{"t":"wall","id":"west-e","level":"west-g","side":"east","type":"exterior","thickness":0.28,"material":"kg-timber"}
{"t":"wall","id":"west-w","level":"west-g","side":"west","type":"exterior","thickness":0.28,"material":"kg-clay"}
{"t":"wall","id":"west-divider","level":"west-g","from":[0,7.5],"to":[9,7.5],"type":"partition","thickness":0.14}
{"t":"wall","id":"east-n","level":"east-g","side":"north","type":"exterior","thickness":0.28,"material":"kg-clay"}
{"t":"wall","id":"east-s","level":"east-g","side":"south","type":"exterior","thickness":0.28,"material":"kg-clay"}
{"t":"wall","id":"east-e","level":"east-g","side":"east","type":"exterior","thickness":0.28,"material":"kg-clay"}
{"t":"wall","id":"east-w","level":"east-g","side":"west","type":"exterior","thickness":0.28,"material":"kg-timber"}
{"t":"wall","id":"east-public-divider","level":"east-g","from":[0,5.6],"to":[9,5.6],"type":"partition","thickness":0.14}
{"t":"wall","id":"east-service-divider","level":"east-g","from":[4.5,5.6],"to":[4.5,12],"type":"partition","thickness":0.14}
{"t":"wall","id":"east-staff-divider","level":"east-g","from":[4.5,8.6],"to":[9,8.6],"type":"partition","thickness":0.14}
// Full-height garden doors alternate with low-sill windows for children.
{"t":"opening","id":"sun-garden-door","on":"north-s","kind":"door","at":5.8,"width":2.2,"leaves":2,"operation":"sliding","room":"classroom-sun","glass":"kg-glass"}
{"t":"opening","id":"sun-garden-window","on":"north-s","kind":"window","at":1,"width":3.6,"sill":0.45,"head":2.65,"glass":"kg-glass"}
{"t":"opening","id":"sky-garden-door","on":"north-s","kind":"door","at":13.5,"width":2.2,"leaves":2,"operation":"sliding","room":"classroom-sky","glass":"kg-glass"}
{"t":"opening","id":"sky-garden-window","on":"north-s","kind":"window","at":17.2,"width":3.8,"sill":0.45,"head":2.65,"glass":"kg-glass"}
{"t":"opening","id":"sun-north-light","on":"north-n","kind":"window","at":3.2,"width":3.2,"sill":0.8,"head":2.5,"glass":"kg-glass"}
{"t":"opening","id":"sky-north-light","on":"north-n","kind":"window","at":15.4,"width":3.2,"sill":0.8,"head":2.5,"glass":"kg-glass"}
{"t":"opening","id":"atelier-door","on":"west-e","kind":"door","at":1.4,"width":1.8,"leaves":2,"room":"atelier","glass":"kg-glass"}
{"t":"opening","id":"atelier-window","on":"west-e","kind":"window","at":4.2,"width":2.7,"sill":0.45,"head":2.45,"glass":"kg-glass"}
{"t":"opening","id":"story-door","on":"west-e","kind":"door","at":8.1,"width":1.2,"room":"quiet-room"}
{"t":"opening","id":"story-window","on":"west-e","kind":"window","at":9.8,"width":1.6,"sill":0.45,"head":2.35,"glass":"kg-glass"}
{"t":"opening","id":"atelier-west-light","on":"west-w","kind":"window","at":2.3,"width":3.2,"sill":0.65,"head":2.45,"glass":"kg-glass"}
{"t":"opening","id":"commons-window","on":"east-w","kind":"window","at":0.7,"width":2.3,"sill":0.45,"head":2.5,"glass":"kg-glass"}
{"t":"opening","id":"commons-door","on":"east-w","kind":"door","at":3.4,"width":1.4,"leaves":2,"room":"commons","glass":"kg-glass"}
{"t":"opening","id":"kitchen-door","on":"east-w","kind":"door","at":6.1,"width":1.1,"room":"kitchen"}
{"t":"opening","id":"wc-door","on":"east-e","kind":"door","at":6.2,"width":1,"room":"child-wc"}
{"t":"opening","id":"staff-door","on":"east-e","kind":"door","at":9.2,"width":1,"room":"staff"}
{"t":"opening","id":"commons-east-light","on":"east-e","kind":"window","at":1.1,"width":2.7,"sill":0.65,"head":2.45,"glass":"kg-glass"}
// Three gables create a child-scaled skyline instead of one institutional roof.
{"t":"roof","id":"roof-north","level":"north-g","type":"gable","ridgeAxis":"x","pitch":0.48,"overhang":0.75,"eave":3.6,"x":9,"y":4,"w":22,"d":8}
{"t":"opening","id":"sun-skylight-west","on":"roof-north","kind":"window","at":11.7,"up":1.6,"width":1.4,"glass":"kg-glass"}
{"t":"opening","id":"sun-skylight-east","on":"roof-north","kind":"window","at":16,"up":1.6,"width":1.4,"glass":"kg-glass"}
{"t":"opening","id":"sky-skylight-west","on":"roof-north","kind":"window","at":22.2,"up":1.6,"width":1.4,"glass":"kg-glass"}
{"t":"opening","id":"sky-skylight-east","on":"roof-north","kind":"window","at":26.5,"up":1.6,"width":1.4,"glass":"kg-glass"}
{"t":"roof","id":"roof-west","level":"west-g","type":"gable","ridgeAxis":"y","pitch":0.52,"overhang":0.7,"eave":3.2,"x":4,"y":13,"w":9,"d":12}
{"t":"roof","id":"roof-east","level":"east-g","type":"gable","ridgeAxis":"y","pitch":0.52,"overhang":0.7,"eave":3.4,"x":27,"y":13,"w":9,"d":12}
// The cloister is an outdoor room: deep eaves, timber posts, and a continuous path.
{"t":"paving","id":"north-veranda","use":"walkway","x":13,"y":12,"w":14,"d":2,"material":"kg-paving"}
{"t":"paving","id":"west-veranda","use":"walkway","x":13,"y":14,"w":2,"d":11,"material":"kg-paving"}
{"t":"paving","id":"east-veranda","use":"walkway","x":25,"y":14,"w":2,"d":11,"material":"kg-paving"}
{"t":"asset","id":"timber-cloister","class":"timber garden cloister","material":"kg-timber","parts":[{"x":13,"y":12,"w":14,"d":1.8,"z0":2.55,"z1":2.72},{"x":13,"y":13.8,"w":1.8,"d":11.2,"z0":2.55,"z1":2.72},{"x":25.2,"y":13.8,"w":1.8,"d":11.2,"z0":2.55,"z1":2.72},{"x":13.15,"y":13.25,"w":0.16,"d":0.16,"z0":0,"z1":2.62},{"x":17,"y":13.25,"w":0.16,"d":0.16,"z0":0,"z1":2.62},{"x":21,"y":13.25,"w":0.16,"d":0.16,"z0":0,"z1":2.62},{"x":25.05,"y":13.25,"w":0.16,"d":0.16,"z0":0,"z1":2.62},{"x":14.15,"y":17,"w":0.16,"d":0.16,"z0":0,"z1":2.62},{"x":14.15,"y":21.5,"w":0.16,"d":0.16,"z0":0,"z1":2.62},{"x":25.85,"y":17,"w":0.16,"d":0.16,"z0":0,"z1":2.62},{"x":25.85,"y":21.5,"w":0.16,"d":0.16,"z0":0,"z1":2.62}]}
// Central garden classroom: loop path, sand play, water play, and a mature shade tree.
{"t":"landscape","id":"garden-lawn","x":15,"y":14,"w":10,"d":11,"planting":{"species":"play lawn","count":1}}
{"t":"paving","id":"play-loop","use":"walkway","shape":"ring","cx":20,"cy":19,"r":3.4,"width":1.0,"material":"kg-paving"}
{"t":"asset","id":"sand-garden","class":"raised sand garden","x":16.2,"y":15.6,"w":2.8,"d":2.2,"z0":0.03,"z1":0.28,"material":"kg-sand"}
{"t":"asset","id":"water-table","class":"outdoor water table","x":21.4,"y":15.8,"w":2.2,"d":1.1,"z0":0.04,"z1":0.66,"material":"kg-sky"}
{"t":"asset","id":"play-house","class":"timber play house","material":"kg-timber","parts":[{"x":21.4,"y":21.1,"w":2.2,"d":2.2,"z0":0.04,"z1":1.45},{"x":21.15,"y":20.85,"w":2.7,"d":2.7,"z0":1.45,"z1":1.62}]}
{"t":"tree","id":"courtyard-maple","x":18.2,"y":21.4,"canopy":3.8,"species":"maple"}
{"t":"tree","id":"north-oak","x":5.2,"y":6.2,"canopy":4.2,"species":"oak"}
{"t":"tree","id":"east-birch","x":34.7,"y":7.2,"canopy":3.2,"species":"birch"}
// A generous, legible entrance arrives between the two side pavilions.
{"t":"paving","id":"entry-path","use":"walkway","x":18.5,"y":24,"w":3,"d":6,"material":"kg-paving"}
{"t":"asset","id":"entry-gate","class":"timber entry gate","material":"kg-timber","parts":[{"x":18.3,"y":26.5,"w":0.22,"d":0.22,"z0":0,"z1":2.8},{"x":21.5,"y":26.5,"w":0.22,"d":0.22,"z0":0,"z1":2.8},{"x":18.3,"y":26.5,"w":3.42,"d":0.35,"z0":2.55,"z1":2.85}]}
{"t":"landscape","id":"site-meadow","x":0,"y":0,"w":40,"d":30,"planting":{"species":"native meadow","count":42}}
{"t":"landscape","id":"front-rain-garden","x":5,"y":26,"w":11,"d":3,"planting":{"species":"native grasses","count":18}}
{"t":"landscape","id":"front-orchard","x":24,"y":26,"w":11,"d":3,"planting":{"species":"fruit trees","count":5}}
{"t":"fence","id":"secure-north","kind":"picket","from":[2,2],"to":[38,2],"height":1.35}
{"t":"fence","id":"secure-west","kind":"picket","from":[2,2],"to":[2,29],"height":1.35}
{"t":"fence","id":"secure-east","kind":"picket","from":[38,2],"to":[38,29],"height":1.35}
{"t":"fence","id":"secure-south-w","kind":"picket","from":[2,29],"to":[18.3,29],"height":1.35}
{"t":"fence","id":"secure-south-e","kind":"picket","from":[21.7,29],"to":[38,29],"height":1.35}
{"t":"street","id":"front-street","name":"GARDEN LANE","from":[-4,35],"to":[44,35],"width":8,"lanes":2,"class":"local"}
{"t":"curb","id":"front-curb","from":[-4,31.8],"to":[44,31.8]}
{"t":"paving","id":"front-sidewalk","use":"walkway","x":-2,"y":30,"w":44,"d":1.8,"material":"kg-paving"}
// Furniture makes the plans read as real teaching environments.
{"t":"furniture","id":"sun-table-a","type":"round-table-6","level":"north-g","x":2.6,"y":2.1,"w":1.4,"d":1.4,"height":0.52,"material":"kg-timber"}
{"t":"furniture","id":"sun-table-b","type":"round-table-6","level":"north-g","x":7.3,"y":4.2,"w":1.4,"d":1.4,"height":0.52,"material":"kg-timber"}
{"t":"furniture","id":"sun-cubby-run","type":"cubby-run","level":"north-g","x":0.5,"y":6.7,"w":2.2,"d":0.45,"height":1.05,"material":"kg-timber"}
{"t":"furniture","id":"sun-kinder-chair","type":"chair","level":"north-g","x":3.1,"y":3.58,"w":0.38,"d":0.42,"height":0.66}
{"t":"furniture","id":"sun-whiteboard","type":"whiteboard","level":"north-g","x":8.4,"y":6.82,"w":1.7,"d":0.55,"height":1.35}
{"t":"furniture","id":"sky-table-a","type":"round-table-6","level":"north-g","x":13.2,"y":2.1,"w":1.4,"d":1.4,"height":0.52,"material":"kg-timber"}
{"t":"furniture","id":"sky-table-b","type":"round-table-6","level":"north-g","x":17.4,"y":4.2,"w":1.4,"d":1.4,"height":0.52,"material":"kg-timber"}
{"t":"furniture","id":"sky-toy-shelf","type":"toy-shelf","level":"north-g","x":19.1,"y":6.7,"w":2.2,"d":0.45,"height":0.68,"material":"kg-timber"}
{"t":"furniture","id":"sky-student-desk","type":"student-desk","level":"north-g","x":12.1,"y":1.1,"w":0.6,"d":0.5,"height":0.64}
{"t":"furniture","id":"sky-student-chair","type":"student-chair","level":"north-g","x":12.2,"y":1.65,"w":0.38,"d":0.42,"height":0.66}
{"t":"furniture","id":"sky-teacher-desk","type":"teacher-desk","level":"north-g","x":19.6,"y":1.05,"w":1.45,"d":0.65,"height":0.79}
{"t":"furniture","id":"atelier-table","type":"dining-table","level":"west-g","x":2,"y":2.6,"w":3.4,"d":1.4,"height":0.58,"material":"kg-timber"}
{"t":"furniture","id":"atelier-sink","type":"kitchen-sink","level":"west-g","x":0.5,"y":6.2,"w":1.8,"d":0.55,"height":0.78}
{"t":"furniture","id":"atelier-supply-shelf","type":"shelving","level":"west-g","x":7.85,"y":5.1,"w":0.45,"d":1.6,"height":1.2}
{"t":"asset","id":"atelier-easel","class":"easel","x":10.4,"y":18.7,"w":1.1,"d":0.8,"z0":0,"z1":1.2}
{"t":"asset","id":"atelier-sand-table","class":"sand-table","x":8.8,"y":18.8,"w":1.1,"d":0.9,"z0":0,"z1":0.72}
{"t":"asset","id":"story-tier","class":"story-steps","x":5.2,"y":22,"w":5.8,"d":1.5,"z0":0,"z1":0.75,"material":"kg-timber"}
{"t":"asset","id":"story-play-mat","class":"play-mat","x":10.3,"y":20.75,"w":2.1,"d":1.1,"z0":0,"z1":0.04}
{"t":"asset","id":"story-book-display","class":"classroom-book-display","x":11.35,"y":23.9,"w":1,"d":0.4,"z0":0,"z1":0.75}
{"t":"furniture","id":"story-loveseat","type":"loveseat","level":"west-g","x":0.6,"y":7.75,"w":1.45,"d":0.78,"height":0.75}
{"t":"furniture","id":"story-coffee-table","type":"coffee-table","level":"west-g","x":2.45,"y":7.9,"w":0.9,"d":0.5,"height":0.38}
{"t":"furniture","id":"story-sofa","type":"sofa","level":"west-g","x":3.8,"y":7.75,"w":1.8,"d":0.8,"height":0.72}
{"t":"furniture","id":"commons-table","type":"dining-table","level":"east-g","x":2,"y":2.1,"w":4.2,"d":1.3,"height":0.66,"material":"kg-timber"}
{"t":"furniture","id":"commons-sofa","type":"sofa","level":"east-g","x":0.65,"y":0.55,"w":1.8,"d":0.8,"height":0.72}
{"t":"furniture","id":"commons-coffee-table","type":"coffee-table","level":"east-g","x":2.65,"y":0.75,"w":0.9,"d":0.5,"height":0.38}
{"t":"furniture","id":"commons-loveseat","type":"loveseat","level":"east-g","x":4,"y":0.5,"w":1.45,"d":0.78,"height":0.75}
{"t":"furniture","id":"commons-armchair","type":"armchair","level":"east-g","x":6.1,"y":3.9,"w":0.72,"d":0.72,"height":0.72}
{"t":"furniture","id":"teaching-island","type":"island","level":"east-g","x":1.05,"y":8,"w":2.55,"d":1,"height":0.82,"material":"kg-timber"}
{"t":"furniture","id":"teaching-counter","type":"counter","level":"east-g","x":0.55,"y":10.85,"w":1.1,"d":0.55,"height":0.72}
{"t":"furniture","id":"teaching-sink","type":"kitchen-sink","level":"east-g","x":2.45,"y":5.85,"w":0.9,"d":0.55,"height":0.82}
{"t":"furniture","id":"teaching-range","type":"stove","level":"east-g","x":3.45,"y":5.85,"w":0.72,"d":0.55,"height":0.72}
{"t":"furniture","id":"teaching-fridge","type":"fridge","level":"east-g","x":3.65,"y":7,"w":0.65,"d":0.7,"height":1.65}
{"t":"furniture","id":"child-toilet-a","type":"toilet","level":"east-g","x":5,"y":6.1,"w":0.34,"d":0.55,"height":0.42}
{"t":"furniture","id":"child-toilet-b","type":"toilet","level":"east-g","x":6,"y":6.1,"w":0.34,"d":0.55,"height":0.42}
{"t":"furniture","id":"child-washbasin","type":"sink","level":"east-g","x":7.65,"y":7.25,"w":0.55,"d":0.48,"height":0.8}
{"t":"furniture","id":"staff-desk","type":"desk","level":"east-g","x":5.2,"y":9.3,"w":1.8,"d":0.8,"height":0.74}
{"t":"furniture","id":"staff-storage","type":"shelving","level":"east-g","x":7.8,"y":10.9,"w":0.45,"d":1.5,"height":1.8}
// Scale figures make the authored interior view read at a child's eye level.
{"t":"asset","id":"commons-child","class":"person-child","x":34.2,"y":15.2,"w":0.35,"d":0.35,"z0":0,"z1":1.05}
{"t":"asset","id":"sun-seated-child","class":"person-seated","x":13,"y":6.55,"w":0.42,"d":0.42,"z0":0,"z1":0.85}
{"t":"materialdef","id":"kg-clay","of":"terracotta","value":80,"accent":"#c87959","hatch":"masonry","body":{"roughness":0.9}}
{"t":"materialdef","id":"kg-timber","of":"siding","value":72,"accent":"#b88b5e","hatch":"timber","body":{"roughness":0.72}}
{"t":"materialdef","id":"kg-glass","of":"glass","value":72,"body":{"type":"MeshPhysicalMaterial","transmission":0.9,"ior":1.5,"roughness":0.05}}
{"t":"materialdef","id":"kg-paving","of":"paving","value":80,"accent":"#d6c7ad","body":{"roughness":0.92}}
{"t":"materialdef","id":"kg-sand","of":"render","value":80,"accent":"#d7b974","body":{"roughness":0.96}}
{"t":"materialdef","id":"kg-sky","of":"paint","value":58,"accent":"#5d9fb6","body":{"roughness":0.58}}
// Grafted verbatim from packs/classroom.ndjson; bimtex models have no include mechanism.
{"t":"materialdef","id":"pack-cls-birch","of":"timber","value":80,"hatch":"timber","body":{"roughness":0.68}}
{"t":"materialdef","id":"pack-cls-sun","of":"paint","value":72,"accent":"#e8a83c","body":{"roughness":0.6}}
{"t":"materialdef","id":"pack-cls-sky","of":"paint","value":58,"accent":"#4f93b8","body":{"roughness":0.6}}
{"t":"materialdef","id":"pack-cls-coral","of":"paint","value":58,"accent":"#d9614c","body":{"roughness":0.6}}
{"t":"materialdef","id":"pack-cls-moss","of":"cloth","value":58,"accent":"#7a9a5b"}
{"t":"materialdef","id":"pack-cls-sand","of":"gravel","value":72,"accent":"#c5a56b","body":{"roughness":0.94}}
{"t":"look","id":"use-kinder-round-table-2","for":"furniture:round-table-6","use":"kinder-round-table-2"}
{"t":"look","id":"use-kinder-chair-2","for":"furniture:chair","use":"kinder-chair-2"}
{"t":"look","id":"use-cubby-run","for":"furniture:cubby-run","use":"cubby-run"}
{"t":"look","id":"use-story-steps","for":"asset:story-steps","use":"story-steps"}
{"t":"look","id":"use-easel-double-2","for":"asset:easel","use":"easel-double-2"}
{"t":"look","id":"use-toy-shelf","for":"furniture:toy-shelf","use":"toy-shelf"}
{"t":"look","id":"use-sand-table-2","for":"asset:sand-table","use":"sand-table-2"}
{"t":"look","id":"use-play-mat","for":"asset:play-mat","use":"play-mat"}
{"t":"look","id":"use-primary-student-desk","for":"furniture:student-desk","use":"primary-student-desk"}
{"t":"look","id":"use-primary-student-chair","for":"furniture:student-chair","use":"primary-student-chair"}
{"t":"look","id":"use-teacher-workstation","for":"furniture:teacher-desk","use":"teacher-workstation"}
{"t":"look","id":"use-mobile-whiteboard","for":"furniture:whiteboard","use":"mobile-whiteboard"}
{"t":"look","id":"use-classroom-book-display","for":"asset:classroom-book-display","use":"classroom-book-display"}
// Grafted verbatim from packs/interiors.ndjson; bimtex models have no include mechanism.
{"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-clay","of":"plaster","value":72,"body":{"roughness":0.86}}
{"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":"look","id":"use-base-run-2","for":"furniture:counter","use":"base-run-2"}
{"t":"look","id":"use-undermount-sink-2","for":"furniture:kitchen-sink","use":"undermount-sink-2"}
{"t":"look","id":"use-slide-in-range-2","for":"furniture:stove","use":"slide-in-range-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-two-cushion-lounge-sofa","for":"furniture:sofa","use":"two-cushion-lounge-sofa"}
{"t":"look","id":"use-three-bay-kitchen-island","for":"furniture:island","use":"three-bay-kitchen-island"}
{"t":"look","id":"use-fluted-drum-coffee-table","for":"furniture:coffee-table","use":"fluted-drum-coffee-table"}
{"t":"look","id":"use-oak-trestle-writing-desk","for":"furniture:desk","use":"oak-trestle-writing-desk"}
{"t":"look","id":"use-open-shelf-unit","for":"furniture:shelving","use":"open-shelf-unit"}
{"t":"look","id":"use-wall-basin","for":"furniture:sink","use":"wall-basin"}
// Grafted verbatim from packs/furniture.ndjson; bimtex models have no include mechanism.
{"t":"materialdef","id":"pack-ash","of":"timber","value":80,"accent":"#cbbfa9"}
{"t":"materialdef","id":"pack-oatmeal","of":"boucle","value":80,"accent":"#d7cbbb"}
{"t":"look","id":"use-tub-armchair-2","for":"furniture:armchair","use":"tub-armchair-2"}
{"t":"look","id":"use-trestle-table","for":"furniture:dining-table","use":"trestle-table"}
{"t":"look","id":"use-compact-loveseat-2","for":"furniture:loveseat","use":"compact-loveseat-2"}
// These five authored site constructions are intentionally plain blocks. Their
// class-specific looks preserve that geometry while satisfying the dressed-model contract.
{"t":"lookdef","id":"kg-cloister-block","for":"asset:timber garden cloister","body":{"type":"Mesh","material":"kg-timber","geometry":{"type":"BoxGeometry","width":1,"height":1,"depth":1},"position":[0,0.5,0]}}
{"t":"lookdef","id":"kg-sand-garden-block","for":"asset:raised sand garden","body":{"type":"Mesh","material":"kg-sand","geometry":{"type":"BoxGeometry","width":1,"height":1,"depth":1},"position":[0,0.5,0]}}
{"t":"lookdef","id":"kg-water-table-block","for":"asset:outdoor water table","body":{"type":"Mesh","material":"kg-sky","geometry":{"type":"BoxGeometry","width":1,"height":1,"depth":1},"position":[0,0.5,0]}}
{"t":"lookdef","id":"kg-play-house-block","for":"asset:timber play house","body":{"type":"Mesh","material":"kg-timber","geometry":{"type":"BoxGeometry","width":1,"height":1,"depth":1},"position":[0,0.5,0]}}
{"t":"lookdef","id":"kg-entry-gate-block","for":"asset:timber entry gate","body":{"type":"Mesh","material":"kg-timber","geometry":{"type":"BoxGeometry","width":1,"height":1,"depth":1},"position":[0,0.5,0]}}
// Grafted verbatim from packs/site-assets.ndjson; bimtex models have no include mechanism.
{"t":"look","id":"use-seated-figure","for":"asset:person-seated","use":"seated-figure"}
{"t":"look","id":"use-child-figure","for":"asset:person-child","use":"child-figure"}