{"params":{"colorway":{"type":"choice","default":"oiled-oak","label":"Colorway","describe":"Curated kit scheme. oiled-oak is the shipped look: blue-black iron on warm mid oak. sun-bleached lifts every zone two rungs \u2014 pale driftwood over grey-green iron, for beached or derelict guns. tarred-black drops them \u2014 near-black iron on dark pitch-soaked oak, for a night or hold-deck scene. All three keep the same value ladder: the post cap is lightest, the barrel darkest.","options":["oiled-oak","sun-bleached","tarred-black"]},"barrelIron":{"type":"color","default":"#3E4348","label":"Barrel iron","describe":"Albedo of the cast-iron barrel, breech, bore cavity and the lock knob on the post. The dominant dark mass \u2014 take it lighter and the gun reads as pewter, darker and it reads as a silhouette."},"hardware":{"type":"color","default":"#6E757A","label":"Hardware iron","describe":"Albedo of the two hexagonal trunnion nuts and the pintle neck between post cap and yoke. Light iron accent; must stay clearly lighter than barrelIron or the axle hardware disappears."},"oak":{"type":"color","default":"#9C6B3C","label":"Oak","describe":"Albedo of ALL the gun's timber: the forked yoke (cross-block, throat web, both fork arms), the carriage cradle and cheeks the barrel is slung in, and the whole curved tiller handle. Mid oiled oak \u2014 the warm mass that reads against the dark barrel. One timber, one tone: the handle is the same wood as the carriage it swings from."},"postOak":{"type":"color","default":"#6B4526","label":"Post oak","describe":"Albedo of the standing timber post and its flat foot disc. Darkest wood rung; it grounds the piece, so keep it a clear step below the yoke oak. Unused when mount is \"stub\"."},"capOak":{"type":"color","default":"#C9975C","label":"Cap oak","describe":"Albedo of the chamfered drum cap on top of the post. Lightest rung in the whole asset \u2014 it is the band that separates the dark post from the yoke above. Unused when mount is \"stub\"."},"mount":{"type":"choice","default":"post","label":"Mount","describe":"Which foot the gun stands on. \"post\" is the full standing timber: flat disc foot, tapered shaft, chamfered cap and the iron lock knob \u2014 0.89 m tall overall, a free-standing deck gun. \"stub\" deletes all of that and leaves the bare iron pintle shank with its shoulder collar, 0.72 m tall, meant to be dropped into a hole in a bulwark, gunwale or railing. Same gun, same yoke, same origin in X/Z; only the pedestal changes. The tiller's descent follows the mount, so its tip lands on the base in either case.","affects":"geometry","options":["post","stub"]},"facets":{"type":"range","default":8,"label":"Facets","describe":"Radial facet count on every turned part (barrel, bore, post, foot, cap, pintle). Rounded to an even number. 6 is a hard hexagonal barrel and a six-sided foot \u2014 chunky hand-hewn; 8 is the shipped look; 10 is a smoother, more turned cannon. Triangle count moves 552 to 776 across the range.","affects":"geometry","min":6,"max":10,"step":2},"flare":{"type":"range","default":1,"label":"Muzzle flare","describe":"How far the muzzle bell swells past the chase waist. 0.85 is an almost straight-cut mouth with a thin iron rim; 1.0 is the shipped bell (\u00d80.156 against a \u00d80.095 waist); 1.35 is a fat blunderbuss trumpet nearly as wide as the breech. The bore diameter never changes, so the rim thickens with it. Displaces existing vertices \u2014 triangle count is invariant.","affects":"geometry","min":0.85,"max":1.35,"step":0.05},"tillerSweep":{"type":"range","default":1,"label":"Tiller sweep","describe":"How far back the wooden tiller bows before it comes down to the base. The tip always lands at deck level whatever the value, so this changes the CURVE, not the height: 0.65 is a steep tail dropping almost straight down close behind the post; 1.0 is the shipped sweep, reaching 0.72 m astern; 1.25 bows it wide and shallow out to 0.85 m for a long raking tail. Displaces existing vertices \u2014 triangle count is invariant, and no setting ever puts the tip below y=0.","affects":"geometry","min":0.65,"max":1.25,"step":0.05}},"presets":{"oiled-oak":{"barrelIron":"#3E4348","hardware":"#6E757A","oak":"#9C6B3C","postOak":"#6B4526","capOak":"#C9975C"},"sun-bleached":{"barrelIron":"#5A6462","hardware":"#7C8683","oak":"#C4A46A","postOak":"#A88458","capOak":"#E8D6A8"},"tarred-black":{"barrelIron":"#2A2320","hardware":"#3E4348","oak":"#6B4526","postOak":"#4A2E1B","capOak":"#9C6B3C"}},"rev":1787907804,"materials":{"barrelIron":{"kind":"metal","finish":"cast"},"hardware":{"kind":"metal","finish":"satin"},"oak":{"kind":"wood","finish":"oiled"},"postOak":{"kind":"wood","finish":"oiled"},"capOak":{"kind":"wood","finish":"oiled"}},"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":1792489703,"mod_v":1787907804}