{"params":{"colorway":{"type":"choice","default":"seafront","label":"Colourway","describe":"Curated seaside scheme; sets all twelve zone albedos at once and every scheme keeps the same role order (four chalky bay pastels cycling along the row, salt-white joinery, a grey felt roof, bare silvered timber, a dark hook rail and a darker lining). seafront is the approved default and deliberately keeps its four pastels a shade off the beach hut's own four, so a hut and a cubicle row never merge on a shelf. saltwash is the bleached near-neutral row, harbour the cool greens and blues, sundeck the warm sands and creams. No scheme anywhere uses the kit's accent red, which belongs to the lifeguard kit.","options":["seafront","saltwash","harbour","sundeck"]},"bays":{"type":"choice","default":"6","label":"Bays","describe":"How many 1.2 m changing bays this row builds, so a whole row is one import rather than six parts. It REBUILDS rather than stretches: the bay stays exactly 1.200 m wide and 1.200 m deep, the party wall stays 0.100 m, the end pier stays 0.400 m, the board course stays 0.192 m, the doorway stays 0.820 m and the storey stays 2.200 m, while the COUNT of bays, doors, benches, hook rails, party boards and interiors changes and the roof slab, the sole board and the boarding run on unbroken. 1 is a single 2.0 m cubicle block, 2 is 3.2 m, 3 is 4.4 m, 4 is 5.6 m and 6 is the approved 8.0 m row, which is exactly two of the kit's 4 m cells. Both end faces stay dead flat at every value, so any two rows butt into one run.","affects":"geometry","options":["1","2","3","4","6"]},"tide":{"type":"range","default":0.4,"label":"Tide","describe":"What the water and the weather did to this row, from low water on a still morning to high water in a blow. A changing row is a BUILT thing that carries no dressing of its own, so this is only what is left open, hung, stowed and drifted against it, as real geometry and never a tint: up to 0.45 every half door stands 45 degrees open with a towel folded over the top edge of each of the two centre doors (of the middle door alone on an odd count), its two falls lifting off the leaf and settling back in the breeze without ever touching it; between 0.45 and 0.70 the doors swing shut and the towel comes in; from 0.55 blown sand starts banking along the back wall, reaching 0.30 m at 1.0; and from 0.75 a latch bar goes across every leaf and a rolled windbreak and a folded chair are stowed at the end bay against the pier. Nothing it adds ever crosses an end plane or reaches past the roof at the back.","affects":"geometry","min":0,"max":1,"step":0.1},"eave":{"type":"range","default":0.14,"label":"Front eave","describe":"How far the roof slab oversails the door face, in metres. It rebuilds the cap rather than scaling it: the slab stays 0.120 m thick, its front arris keeps the same 0.030 m chamfer, the back oversail stays 0.120 m and the wall plate does not move, while the soffit, the fascia and the slab's own plan follow, and beyond 0.22 m a timber bracket appears under the eave on EVERY bay line because that is the span at which a felt roof needs one. 0.06 is a bare drip edge with the doors in full sun; 0.14 is the approved build; 0.40 throws a deep shade band across the whole row of doors and puts seven brackets on the face.","affects":"geometry","min":0.06,"max":0.4,"step":0.02},"weather":{"type":"range","default":0.5,"label":"Weather","describe":"Salt bleaching and paint loss, shifted BOARD by board rather than as a per-triangle wobble. 0 is a row repainted this season, one flat tone per zone; 0.5 a normal seafront summer; 1 a chalky row whose weatherboards, linings and door boarding have each gone their own way. It touches only the painted cladding, the salt-white joinery and the bare timber - never the notice board that carries the signwriting, never the felt roof, never the hook rails or the interior lining - and it changes no geometry at any value.","min":0,"max":1,"step":0.05},"bayA":{"type":"color","default":"#EDF4FF","label":"Bay colour A (ends)","describe":"Albedo of the END bays' pastel, on their FRONT panel and their door leaf. The three bay colours are laid A, B, C, C, B, A from the ends inward, so the row is painted symmetrically about its own centre and no neighbour but the middle pair shares a colour. Keep it a chalky unsaturated pastel and a shade off the beach hut's own four: this coast has no postcard colours."},"bayB":{"type":"color","default":"#E8D9B5","label":"Bay colour B (second in)","describe":"Albedo of the second bay in from each end, on its front panel and door leaf. Pick it a clear step away from bayA in VALUE as well as hue, because these two sit side by side at four bays or more."},"bayC":{"type":"color","default":"#D7DFDC","label":"Bay colour C (centre)","describe":"Albedo of the two centre bays, on their front panels and door leaves. The darkest of the three in the approved scheme, which is what stops the middle of a long row going flat; the pair of them reads as one deliberate block at the centre of the composition. Only reached at three bays or more."},"trim":{"type":"color","default":"#F5F2EB","label":"Joinery","describe":"Albedo of the salt-white painted joinery, and the largest single zone on the part: both end piers, the whole back wall, both end walls, the party board on every bay line, and the lining and reveal round every doorway. One clear step brighter than the bay pastels, which is what makes every proud lip in the kit read."},"roof":{"type":"color","default":"#7C7871","label":"Felt roof","describe":"Albedo of the bituminous felt cap: the slab top, its chamfered front arris, the fascia front and back, the soffit under the eave and the slab section on both end planes. Deliberately the darkest large zone, so the cap reads as a separate weight at thumbnail size."},"timber":{"type":"color","default":"#A28E74","label":"Bare timber","describe":"Albedo of the bare silvered timber: the sole board round the foot of the row, the bench slats and their brackets, the threshold under every door, the ledge brace across each leaf and the stowed chair frame at high water. Warmer and greyer than the painted work, because it was never painted."},"rail":{"type":"color","default":"#5C4F42","label":"Hook rail","describe":"Albedo of the dark fittings: the hook rail across the back of every cubicle, its three pegs, the latch and handle on every door and the storm bar at high water. The one dark accent inside a pale bay, and what makes the interior read as fitted out rather than empty."},"inside":{"type":"color","default":"#7E6E59","label":"Cubicle lining","describe":"Albedo of the boarded lining seen through every open door: floor, ceiling, back wall, both side walls and the returns round the opening. A real step darker than anything outside, because it faces away from the sky (rule 8bf); it is the value gap that makes a doorway read as a hole rather than as a painted panel."},"board":{"type":"color","default":"#474540","label":"Notice board","describe":"Albedo of the dark slate notice board let into the end pier, and the face the buyer's signwriting is printed on (see the decals export). Keep it dark and keep it unique: nothing else on the row is ever painted this hex, and the weather knob is held off it so the lettering always meets one flat surface."},"towel":{"type":"color","default":"#A6B7D6","label":"Towel","describe":"Albedo of the towel hung over the top of a half door at low water, and of the rolled windbreak canvas stowed at high water. Pick the pastel the bays are not; it is the only soft thing on the part and the only thing the sea breeze moves."},"sand":{"type":"color","default":"#D6C49C","label":"Drifted sand","describe":"Albedo of the blown sand banked along the back wall by `tide`. Dry beach sand, paler and warmer than the timber it buries, and present only where the ground meets the part."}},"presets":{"seafront":{"bayA":"#EDF4FF","bayB":"#E8D9B5","bayC":"#D7DFDC","trim":"#F5F2EB","roof":"#7C7871","timber":"#A28E74","rail":"#5C4F42","inside":"#7E6E59","board":"#474540","towel":"#A6B7D6","sand":"#D6C49C"},"saltwash":{"bayA":"#ECE7DE","bayB":"#E4E2DE","bayC":"#A19D93","trim":"#F8F6F0","roof":"#6B665E","timber":"#9A8968","rail":"#5C4F42","inside":"#7E6E59","board":"#474540","towel":"#A6B7D6","sand":"#E8D9B5"},"harbour":{"bayA":"#EDF4FF","bayB":"#9FC6C2","bayC":"#A6B7D6","trim":"#F5F2EB","roof":"#6B665E","timber":"#8C857A","rail":"#5C4F42","inside":"#7E6E59","board":"#474540","towel":"#E9B6A4","sand":"#D6C49C"},"sundeck":{"bayA":"#E8D9B5","bayB":"#E9B6A4","bayC":"#EDD68F","trim":"#F8F6F0","roof":"#7C7871","timber":"#A28E74","rail":"#5C4F42","inside":"#7E6E59","board":"#474540","towel":"#A6B7D6","sand":"#E8D9B5"}},"decals":[{"name":"notice","size":[0.52,0.3],"at":[3.9649999999999994,1.3119999999999998,0],"normal":[1,0,0],"up":[0,1,0],"describe":"the slate notice board let into the end pier of the row \u2014 the beach name, a tide table or the cubicle rules","albedo":"#474540","mode":"plate","relief_mm":0,"verified":true}],"materials":{"bayA":{"kind":"paint","finish":"matte"},"bayB":{"kind":"paint","finish":"matte"},"bayC":{"kind":"paint","finish":"matte"},"trim":{"kind":"paint","finish":"matte"},"roof":{"kind":"rubber","finish":"black"},"timber":{"kind":"wood","finish":"raw"},"rail":{"kind":"wood","finish":"raw"},"inside":{"kind":"wood","finish":"raw"},"board":{"kind":"paint","finish":"matte"},"towel":{"kind":"fabric","finish":"cotton"},"sand":{"kind":"soil","finish":"sand"}},"rev":1792408796,"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.","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":1792420254,"mod_v":1792408796}