{"params":{"colorway":{"type":"choice","default":"seaside-pastel","label":"Colourway","describe":"Curated kit scheme; sets all ten zone albedos at once and keeps the same rule in every one \u2014 the six gores alternate cool, warm, cool, warm round the ball so no two neighbours merge, and the white crown stays the lightest thing on the part. seaside-pastel is the approved default: mint, butter, sky, apricot, sage and rose. sea-glass is the cool scheme, aqua and ice and a deep sage for value. sherbet is the warm one, apricot and peach and butter with two cool gores for relief. sun-bleached is the same ball after a season on the beach, all six gores gone to chalky greys and sands. The dry sand banked against it and the dried weed keep their own colours in all four, because they are the beach and not the ball. Any colour knob set explicitly overrides the scheme.","options":["seaside-pastel","sea-glass","sherbet","sun-bleached"]},"tide":{"type":"range","default":0,"label":"Tide","describe":"What the water and the weather did to this ball, from low water on a still morning to high water in a blow. Real geometry, never a tint and never size. The BALL is the same build vertex for vertex at every value \u2014 it is a thing up the beach that the sea never reaches, so the kit contract changes it by what is drifted against it. At 0 there is NO SAND AT ALL and no weed: the bare ball standing on its own white contact patch with nothing else in the model, the clean ball to drop on any ground. The sand arrives with the first step of tide: at 0.1 it is barely a lip of dry sand round where the ball touches, heaped a little on the windward side. From 0.3 a dried wrack strap is caught against the windward flank with its foot lying on the sand. At the 0.4 default the drift is a chunky bank up the windward flank and the beach behind the ball is bare \u2014 the ball stands on the ground, never on its own sand. Only from 0.55, when the heap is deep enough to comb, does a scour tail streak out of it downwind: one low sheet with two ridge lines in it that hugs the ground and feathers to nothing at every edge. By 1 the sand is a wind-heaped drift banked well up the windward side with the ball sunk into it and the crest of the bank standing proud of that, the tail combed right out to the edge of the footprint and the strap at its longest. The drift is CONTACT DETAIL, not a patch of ground: it is measured off the ball's own surface and bedded into it, and it carries no plate under it. The ball itself never sinks \u2014 it is built complete and closed and rests on y = 0 at every value, so a buyer can drop it on any ground.","affects":"geometry","min":0,"max":1,"step":0.1},"weather":{"type":"range","default":0.5,"label":"Weather","describe":"Sun bleaching and salt chalk on the printed vinyl, shifted GORE by gore rather than as a per-triangle wobble, because the six panels are six separately printed pieces welded together and genuinely do not fade alike. 0 is a ball out of the packet, one flat tone per gore exactly on its colour knob; 0.5 a normal seafront summer; 1 a ball left out all season, the pastels dulled toward grey under a chalky salt film, each gore a little further gone than its neighbour. It touches the six gores and the white crown and base patch alike, because they are all the same vinyl \u2014 never the sand, never the weed, never the valve bore. It changes no geometry at any value.","min":0,"max":1,"step":0.05},"firmness":{"type":"range","default":0.9,"label":"Firmness","describe":"How hard the ball is blown up. It REBUILDS the profile rather than scaling the object, and it trades HEIGHT for base at constant girth, so the briefed 0.350 m across holds at every value. 1 is pumped hard: a true sphere, taller than it is wide, whose seams have pulled almost flush and which stands on a contact facet barely a tenth of its width. 0.9 is the approved build, still round, the seams open to a visible crease. 0.45 has gone soft: a squat bun clearly wider than it is tall, sagging harder below the equator than above it, standing on a flat base nearly three times the width of the firm one, with slack creases pinching the six gores four times as deep. The sand bank re-measures itself against the new profile at every value, so it never parts from the skin.","affects":"geometry","min":0.45,"max":1,"step":0.05},"facets":{"type":"range","default":18,"label":"Facets","describe":"How many flat facets go round the ball, always a whole multiple of the six gores so every colour boundary lands exactly on a seam crease. 12 is two facets to a gore, a deliberately chunky ball whose outline is a visible polygon; 18 is the approved build, three to a gore, faceted but clearly round; 24 is four to a gore, the smoothest this part goes. The latitude bands and the bank's own stations follow it, so the bank's underside and the ball's contact facet stay the same polygon. The white crown and its valve boss follow it at half the count (a six-, nine- or twelve-sided boss), so the crown stays the same faceted skin as the gores; the weed is identical at every value.","affects":"geometry","min":12,"max":24,"step":6},"seed":{"type":"range","default":1,"label":"Drift layout","describe":"Which way the sand lay when this one was built. Six hand-checked layouts, and every one moves real geometry: where the drift crests and hollows round the ball, how far apart the scour tail's two crest lines are combed and how far each streams (from Tide 0.55, where the tail begins), and which flank of the windward side the wrack strap is caught against and which way it combs round the shoulder. At Tide 0 there is no sand and no strap for it to lay out, so every layout builds the same bare ball. The ball, its gores, its white crown and its valve are identical at all six, and every layout keeps the strand clear of the decal area on the front gore and the whole piece inside its 0.5 m cell. Use it so a scene can scatter several balls without two of them lying in the same drift.","affects":"geometry","min":1,"max":6,"step":1},"strand":{"type":"toggle","default":true,"label":"Weed strand","describe":"Whether the dried wrack strap is caught on the ball. On (the approved build) it appears from Tide 0.3 up, its foot lying on the sand bank, climbing the windward flank and splitting into two fingers that sway in the wind. Off removes it at every tide and leaves the ball and its sand exactly as they were, the skin closed where the strap lay. With this off and Tide at 0 the model is the bare ball with no dressing of any kind. The empty `wrack` group stays in the model either way, so detach code always finds it.","affects":"geometry"},"panelMint":{"type":"color","default":"#9FC6C2","label":"Front gore","describe":"Albedo of the gore facing +Z, the one the hero camera looks at and the one that carries the buyer's mark. Cool in every scheme, because its two neighbours are warm."},"panelCream":{"type":"color","default":"#EDD68F","label":"Gore 2 (+X of front)","describe":"Albedo of the second gore round from the front toward +X. Warm in every scheme; keep a clear value step from the front gore or the two read as one panel at distance."},"panelSky":{"type":"color","default":"#A6B7D6","label":"Gore 3","describe":"Albedo of the third gore round toward +X, the one on the windward shoulder the wrack strand is caught against. Cool in every scheme."},"panelApricot":{"type":"color","default":"#FFD9A0","label":"Back gore (-Z)","describe":"Albedo of the gore facing -Z, the middle panel of the back view. Warm in every scheme, so the back reads as a different face of the ball from the front."},"panelSage":{"type":"color","default":"#D7DFDC","label":"Gore 5","describe":"Albedo of the fifth gore round, on the -X side. Cool in every scheme, and never adjacent to the sky gore, which is its nearest neighbour in the kit palette."},"panelRose":{"type":"color","default":"#E9B6A4","label":"Gore 6 (-X of front)","describe":"Albedo of the gore on the front's -X side, the left-hand panel in the hero. Warm in every scheme, closing the cool-warm alternation round the ball."},"capWhite":{"type":"color","default":"#F8F6F0","label":"White crown","describe":"Albedo of the white vinyl crown welded in at the top of the ball, the soft valve boss that rises out of it, and the matching patch the ball stands on underneath \u2014 one zone because they are the same white vinyl and always recolour together. The crown is part of the ball's own skin, not a lid on it, so it ages with the gores under Weather. The lightest thing on the ball; keep it clearly above every gore or the crown stops reading as its own panel."},"valveHole":{"type":"color","default":"#6B665E","label":"Valve bore","describe":"Albedo of the real bore sunk down the middle of the valve boss. It is a modelled opening, not a dot painted on the crown, and it is the one dark accent on the part \u2014 keep it well below the white crown or the valve loses its centre at thumbnail size. Untouched by Weather."},"sand":{"type":"color","default":"#C3AE86","label":"Dry sand","describe":"Albedo of the blown sand banked against the ball and of the two combed scour swells behind it \u2014 ONE flat tone for the whole heap, because sand is one material however many facets it has. It is the kit's THIRD sand rather than its second, which is a full step darker than the pale gores: the bank's outline has to hold against a weathered cream panel exactly where the two meet, and that is the one place the drift has to read. This is contact detail, not a piece of ground: it is bound to the ball's own surface and carries no plate under it. There is no sand at Tide 0, so this knob only shows from Tide 0.1 up. Set it to the sand of the tile or terrain you are standing the ball on."},"wrack":{"type":"color","default":"#8A4B32","label":"Wrack strand","describe":"Albedo of the dried weed strap caught against the windward flank from Tide 0.3 up \u2014 a 22 mm ribbon 2 to 3 mm thick that combs round the shoulder and splits into two splayed fingers. The darkest thing on the part after the valve bore, which is what lets a flat strap read against pale sand and pastel vinyl. Only visible at Tide 0.3 and above, with Weed strand on."}},"presets":{"seaside-pastel":{"panelMint":"#9FC6C2","panelCream":"#EDD68F","panelSky":"#A6B7D6","panelApricot":"#FFD9A0","panelSage":"#D7DFDC","panelRose":"#E9B6A4","capWhite":"#F8F6F0","valveHole":"#6B665E","sand":"#C3AE86","wrack":"#8A4B32"},"sea-glass":{"panelMint":"#9FC6C2","panelCream":"#EDF4FF","panelSky":"#A6B7D6","panelApricot":"#ECE7DE","panelSage":"#8FA37E","panelRose":"#E4E2DE","capWhite":"#F8F6F0","valveHole":"#6B665E","sand":"#C3AE86","wrack":"#8A4B32"},"sherbet":{"panelMint":"#FFD9A0","panelCream":"#E9B6A4","panelSky":"#EDD68F","panelApricot":"#A28E74","panelSage":"#9FC6C2","panelRose":"#C1AE92","capWhite":"#F5F2EB","valveHole":"#6B665E","sand":"#C3AE86","wrack":"#8A4B32"},"sun-bleached":{"panelMint":"#A19D93","panelCream":"#E8D9B5","panelSky":"#8C857A","panelApricot":"#B8A484","panelSage":"#6B665E","panelRose":"#E4E2DE","capWhite":"#F5F2EB","valveHole":"#474540","sand":"#C3AE86","wrack":"#5C4F42"}},"decals":[{"name":"panel-front","size":[0.09,0.06],"at":[0,0.1772,0.1727],"normal":[0,0,1],"up":[0,1,0],"describe":"the middle of the front (+Z) gore at the ball's equator, the one clear patch of panel the hero camera looks straight at; the wrack strand is always kept off it","albedo":"#a6c5c1","mode":"projected","relief_mm":13.1,"verified":true}],"materials":{"panelMint":{"kind":"plastic","finish":"matte"},"panelCream":{"kind":"plastic","finish":"matte"},"panelSky":{"kind":"plastic","finish":"matte"},"panelApricot":{"kind":"plastic","finish":"matte"},"panelSage":{"kind":"plastic","finish":"matte"},"panelRose":{"kind":"plastic","finish":"matte"},"capWhite":{"kind":"plastic","finish":"matte"},"valveHole":{"kind":"plastic","finish":"matte"},"sand":{"kind":"soil","finish":"sand"},"wrack":{"kind":"foliage","finish":"leaf"}},"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":1792420090,"mod_v":1792408796}