{"params":{"colorway":{"type":"choice","default":"brownstone","label":"Colorway","describe":"curated kit-coherent scheme; sets all seven zone albedos at once. brownstone = the shipped warm taupe stone, limestone trim, red door; red-brick = darker red masonry with cool grey trim, slate panes and the blackest ironwork; greystone = cool pale limestone walls, near-white trim, slate panes, red door; slate-front = a dark painted front with pale stone trim, mid-grey railings and a red door. Individual colour knobs override the preset","options":["brownstone","red-brick","greystone","slate-front"]},"stone":{"type":"color","default":"#b69582","label":"Brownstone","describe":"albedo of the four walls, the pierced facade slab, the end piers, the parapet, the frieze under the cornice and the whole stoop mass (steps, landing, cheek walls). The dominant zone by a wide margin \u2014 this is the colour the building reads as from across the street"},"trim":{"type":"color","default":"#c1b0a1","label":"Limestone trim","describe":"albedo of every dressed-stone member: the projecting water table, each window sill, apron, lintel and jamb architrave, the door pilasters, consoles and entablature, the stoop rake caps and the cornice bed moulding, brackets and crown. Keep it LIGHTER than stone or the shallow facade relief flattens out"},"granite":{"type":"color","default":"#463b37","label":"Granite base","describe":"albedo of the garden-level base course below the water table and the dark lining behind its two windows. A dark WARM stone, not black: the iron fence stands in front of it and has to stay legible as separate ironwork"},"iron":{"type":"color","default":"#322d2c","label":"Ironwork","describe":"albedo of the painted steel: stoop railings, balusters and newels, the areaway picket fence, the flat roof deck and the dark reveal lining behind the doors. Matte painted metal, deliberately not metallic \u2014 keep it the darkest zone but never pure black"},"glass":{"type":"color","default":"#7b8b8f","label":"Window glass","describe":"albedo of every pane: the eight sash windows, the two garden-level windows and the door transom. A flat opaque blue-grey by day; this is also the zone that lights up after dark (see the night map), so keep it distinct from the ironwork around it"},"door":{"type":"color","default":"#b63735","label":"Front door","describe":"albedo of the two hinged door leaves only. The single small warm accent on an otherwise masonry elevation \u2014 a saturated hue here is the point, and it is the first thing that reads at the top of the stoop"},"sash":{"type":"color","default":"#e8e4de","label":"Sash bars","describe":"albedo of the cream muntin bar across each window, the transom bar and the two rails on each door leaf. Small, sparse, high-value flecks \u2014 the lightest zone on the model"},"floors":{"type":"choice","default":"4","label":"Floors","describe":"how many storeys the house is REBUILT with, at the kit contract 3 m pitch: 4 = the shipped 13 m four-storey brownstone (three tiers of windows above the parlour door, roof line at 12 m), 3 = a 10 m three-storey (two tiers), 2 = a 7 m two-storey carriage house (the parlour tier only). Each value adds or removes a whole tier of openings with their own sills, aprons, lintels and jambs, and moves the roof line, parapet and cornice with it, so the triangle count changes; the garden-level plinth, the 3 m stoop and the cornice profile are identical at every value","affects":"geometry","options":["2","3","4"]},"brackets":{"type":"range","default":6,"label":"Cornice brackets","describe":"integer count of the console blocks carrying the cornice, spread evenly over the same 6.80 m run with the end pair pinned at x = \u00b13.40. Their width scales inversely with the count, so 4 reads as heavy chunky Italianate consoles, 6 is the shipped rhythm and 10 is a fine close-packed dentil course. Nothing else on the facade moves","affects":"geometry","min":4,"max":10},"areaway":{"type":"toggle","default":true,"label":"Areaway fence","describe":"the black iron picket fence standing at the sidewalk line either side of the stoop, guarding the two garden-level windows. true = the shipped fence (rails, end posts and three pickets per side); false = removes it entirely for a bare granite base course, which is what a stripped or renovated house looks like. The base wall behind it is finished either way, so nothing opens up","affects":"geometry"}},"presets":{"brownstone":{"stone":"#b69582","trim":"#c1b0a1","granite":"#463b37","iron":"#322d2c","glass":"#7b8b8f","door":"#b63735","sash":"#cfc6b9"},"red-brick":{"stone":"#97614a","trim":"#9f9890","granite":"#564e4a","iron":"#211f1d","glass":"#45525f","door":"#c7504d","sash":"#cfc6b9"},"greystone":{"stone":"#9f9890","trim":"#cfc6b9","granite":"#62605c","iron":"#322d2c","glass":"#45525f","door":"#b63735","sash":"#c1b0a1"},"slate-front":{"stone":"#564e4a","trim":"#9f9890","granite":"#211f1d","iron":"#62605c","glass":"#45525f","door":"#c7504d","sash":"#cfc6b9"}},"night":{"glass":{"color":"#ffc978","intensity":0.6,"describe":"warm interior light behind the window and transom panes","albedo":"#7b8b8f","findable":true}},"decals":[{"name":"wall-sign-right","size":[2.6,3.4],"at":[4,9.3,-2],"normal":[1,0,0],"up":[0,1,0],"describe":"painted wall sign high on the +X party wall \u2014 the RIGHT flank seen from the street \u2014 on the blank brownstone plane that is exposed when this house is the end of a row; a ghost-ad panel clear of the roof line, the base course and the end pier","albedo":"#b69582","mode":"plate","relief_mm":0,"verified":true},{"name":"wall-sign-left","size":[2.6,3.4],"at":[-4,9.3,-2],"normal":[-1,0,0],"up":[0,1,0],"describe":"the same painted wall sign mirrored onto the -X party wall, the LEFT flank seen from the street, for a house placed at the other end of the row; a mid-terrace house has both flanks buried against its neighbours and prints neither","albedo":"#b69582","mode":"plate","relief_mm":0,"verified":true}],"rev":1792408799,"materials":{"stone":{"kind":"stone","finish":"rough"},"trim":{"kind":"stone","finish":"rough"},"granite":{"kind":"stone","finish":"rough"},"iron":{"kind":"paint","finish":"matte"},"glass":{"kind":"glass","finish":"frosted"},"door":{"kind":"paint","finish":"eggshell"},"sash":{"kind":"paint","finish":"matte"}},"materials_note":"what each colour zone is made of: `kind` and `finish` name a procedural PBR material in https://polyfork.dev/materials.mjs (dressByAlbedo finds a zone by its albedo in COLOR_0). A zone not listed has not been classified.","night_note":"match `albedo` in COLOR_0 exactly, make those vertices emissive at `color` and `intensity`, and drop your scene lights. findable false means that colour is no longer in this asset's geometry: skip the zone rather than guessing.","decals_note":"flat areas on the surface where you can print your own logo, sign or number. `at` is the centre in model space, `normal` points out of the surface, `size` is [width, height] in metres. Bake art with https://polyfork.dev/cdn/sdf.mjs and place it with https://polyfork.dev/cdn/decal.mjs, or use `at`/`normal`/`size` directly in any engine. `albedo` is the colour it prints on. mode `plate` means the face is flat and a quad is enough; `projected` means it is curved (`relief_mm` deep) and the mark has to be projected onto the geometry. Measured on the DEFAULT build: a geometry knob can move the surface a few centimetres; decal.mjs follows it, anywhere else re-measure or keep the defaults.","preview_v":1792468457,"mod_v":1792408799}