{"params":{"colorway":{"type":"choice","default":"meadow","label":"Colorway","describe":"curated green scheme; every hex is from the kit menu and each preset repaints the WHOLE blob, because the asset is one material. meadow is the bright mid-green pasture of the kit concept image and is the default; deep-forest is the dark shaded floor of a closed canopy; spring-fresh is bright new growth for clearings and sunlit banks; dry-pasture is olive late-summer grass","affects":"colors","options":["meadow","deep-forest","spring-fresh","dry-pasture"]},"grass":{"type":"color","default":"#77b258","label":"Grass","describe":"the single albedo of the entire asset \u2014 the walkable plane, the crown, every facet of the swells, the bank that skirts down to the ground and the underside. There is deliberately no second zone: this is a grassed-over island, one material, so every facet-to-facet tone difference has to come from flat shading under the scene lights, never from paint","affects":"colors"},"spread":{"type":"range","default":1,"label":"Spread","describe":"overall diameter of the patch. 0.70 is a 6.30 x 5.72 m island big enough for one tree and a bush (286 triangles); 1.0 is the 9.00 x 8.18 m default (390); 1.22 is a 10.98 x 9.98 m meadow floor (494). This REBUILDS rather than scales: the facet SIZE is held constant, so a wider patch is built from more lattice rings and the triangle count moves with the knob, and the undulation keeps its real 3-4 m wavelength so a big patch shows more swells rather than bigger ones. Bank section, crown rise and swell height never change, so the ground stays flush with the rest of the kit at every value","affects":"geometry","min":0.7,"max":1.22},"facets":{"type":"range","default":7,"label":"Facet density","describe":"how finely the top is broken into planes (integer 3-8 lattice rings from rim to centre). 3 is coarse and chunky, a handful of big 1.8 m plates and the blockiest read (182 triangles); 7 is the default, roughly 0.7 m facets, the calm crease network the refs show (390); 8 is a finer crumpled meadow (442). This is the knob that trades triangles for surface detail. The outline, the crown profile and the swells are identical at every value, so only the surface changes","affects":"geometry","min":3,"max":8},"relief":{"type":"range","default":1,"label":"Surface relief","describe":"height of the whole top profile \u2014 crown, shoulder, swells and facet crumple together. 0 is a dead-level pad for building on: one perfectly flat plane at 0.05 m, no crown and no creases, total height 0.05 m. 1.0 is the default gently rolling turf \u2014 plateau 0.30 m over the rim plane, facets tilted 8-14 degrees against each other and a total height of 0.499 m on a 9 m span. 1.70 is a hummocky pasture, total height 0.814 m, steep enough to read as a low hill rather than a ground patch. The rim edge stays at exactly 0.05 m all the way round at every value, so the skirt and the footprint never change and props still sit flush there","affects":"geometry","min":0,"max":1.7},"swells":{"type":"range","default":3,"label":"Ground swells","describe":"how many pronounced low mounds rise out of the turf (integer 0-4). 0 leaves only the crown and the fine rumple, an evenly grazed field, and drops the total height from 0.499 m to 0.374 m; 3 is the default and they sit ONE PER CARDINAL out on the shoulder \u2014 3.1 m across and 0.175 m proud on the +Z front, 2.8 m and 0.150 m on the -X left, 2.6 m and 0.128 m on the -Z back \u2014 so every elevation has a crest of its own breaking its top line; 4 adds a 2.4 m mound 0.112 m tall on the +X right. Mounds keep their real size in metres at every spread, so a small island carries proportionally fewer of them","affects":"geometry","min":0,"max":4}},"presets":{"meadow":{"grass":"#77b258"},"deep-forest":{"grass":"#4c8140"},"spring-fresh":{"grass":"#93c46a"},"dry-pasture":{"grass":"#6f8f3c"}},"rev":1786094523,"materials":{"grass":{"kind":"foliage","finish":"leaf"}},"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.","preview_v":1792491686,"mod_v":1786094523}