{"params":{"colorway":{"type":"choice","default":"club-navy","label":"Colorway","describe":"Curated team scheme. club-navy is the approved build: galvanised tube, navy helmets with a white stripe and white facemasks, silver pads trimmed red over dark foam, an orange cooler jug. club-red is red helmets with navy pad trim, forest-gold green helmets with gold stripes and masks on a darker painted frame, school-slate slate helmets on a pale powder-coated frame with rust trim. The jug stays cooler orange and the balls leather brown in every scheme.","options":["club-navy","club-red","forest-gold","school-slate"]},"count":{"type":"range","default":5,"label":"Sets","describe":"How many players the rack is kitted for: that many helmet pegs on the top rail and that many raked pad hooks on the lower rail, each carrying a helmet and a set of shoulder pads when the rack is loaded. The stations are spread in equal cells along the rails, so 2 is a pair of sets with bare rail either side and 8 is a packed rail of helmets almost touching over a tight fan of pads. The frame, its 2.0 x 0.5 m footprint, the rail heights, the tube sections and the end shelf never change.","affects":"geometry","min":2,"max":8,"step":1},"matchday":{"type":"range","default":0.6,"label":"Matchday","describe":"Whether there is a game on, spent entirely on geometry. At 0 it is a wet Tuesday: the rack is empty and parked against a wall with its brakes on, every peg a bare mushroom knob, every pad hook bare with its upturned tip showing, the wire bin empty and no jug, and one helmet left behind sitting askew on the first peg. From 0.2 the helmets go onto their pegs left to right and are all on by 0.5; from 0.3 the pads go onto their hooks and are all on by 0.6, and the cooler jug arrives on the shelf; from 0.4 the bin is full of footballs; from 0.7 a sleeve of cups is clipped to the jug; at 0.9 and above the rack stands on the sideline with its brakes pressed. The frame and footprint never move.","affects":"geometry","min":0,"max":1,"step":0.1},"harvested":{"type":"toggle","default":false,"label":"Kit handed out","describe":"The rack after the players have taken their kit, which is genuinely the same rack with nothing on it: every helmet and pad gone, the pegs standing as bare knobs, the pad hooks bare with their upturned tips showing, and the wire ball bin empty to its floor. The cooler jug and its cups stay for the sideline. At a matchday value where the rack was not loaded (below 0.2) it changes nothing: the helmet left behind is still left behind.","affects":"geometry"},"endShelf":{"type":"toggle","default":true,"label":"End shelf","describe":"The lipped shelf tray laid on the foot rails at the right-hand end, with the cooler jug, its cup sleeve and the wire bin of footballs on it. Off, the rack is the bare frame with open daylight between the foot rails at that end.","affects":"geometry"},"steel":{"type":"color","default":"#9ba3a6","label":"Galvanised tube","describe":"Albedo of the whole chamfered square-tube frame: the four posts and their caps and foot plates, every rail, the helmet pegs, the shelf tray, the four castor hoods and the castor hubs. The dominant hard mass of the part."},"tyres":{"type":"color","default":"#1d2024","label":"Tyres","describe":"Albedo of the four solid castor tyres and the rubber pads of the two brake pedals. The darkest zone on the part."},"wire":{"type":"color","default":"#4a5760","label":"Coated wire","describe":"Albedo of the vinyl-coated wire: the raked J-hooks the pads hang on, the open mesh bin the footballs sit in, and the clips holding the cup sleeve to the jug."},"helmet":{"type":"color","default":"#13488c","label":"Helmets","describe":"Albedo of every helmet shell, the team colour. One zone for the whole rack, as one team kits one rack."},"helmetTrim":{"type":"color","default":"#f6f7f5","label":"Stripe and facemask","describe":"Albedo of each helmet's centre stripe (a full band of facets running brow to nape), of its cage facemask, and of its chin cup and straps. Kept one zone because a team's mask, stripe and chin strap are specified together."},"pad":{"type":"color","default":"#e4e5e1","label":"Pad shells","describe":"Albedo of the moulded shoulder-pad shells: the split chest plates, the back plate, the two shoulder arches and the tops of the two epaulets of every pad."},"padFoam":{"type":"color","default":"#33383c","label":"Foam and liner","describe":"Albedo of the dark padding: the foam lining every pad plate and showing on its edges and on the ends of the arches and epaulets, and the liner seen in each helmet's face opening, neck opening and ear holes."},"padTrim":{"type":"color","default":"#c0372f","label":"Pad trim","describe":"Albedo of each pad's side straps, the laces across its split chest, and the binding under and round its epaulets, the team's second colour."},"leather":{"type":"color","default":"#8b5e37","label":"Footballs","describe":"Albedo of the leather footballs in the wire bin on the end shelf."},"jug":{"type":"color","default":"#f2a71b","label":"Cooler jug","describe":"Albedo of the cooler jug's body on the end shelf, the one warm mass on the part."},"cups":{"type":"color","default":"#fff2d8","label":"Lid, cups and laces","describe":"Albedo of the cooler jug's lid, carry handle and spigot, of the sleeve of stacked cups clipped to its front, and of the laces on the footballs."}},"presets":{"club-navy":{"steel":"#9ba3a6","tyres":"#1d2024","wire":"#4a5760","helmet":"#13488c","helmetTrim":"#f6f7f5","pad":"#e4e5e1","padFoam":"#33383c","padTrim":"#c0372f","leather":"#8b5e37","jug":"#f2a71b","cups":"#fff2d8"},"club-red":{"steel":"#9ba3a6","tyres":"#2a2019","wire":"#33383c","helmet":"#c0372f","helmetTrim":"#f6f7f5","pad":"#e8e6e1","padFoam":"#1d2024","padTrim":"#13488c","leather":"#8b5e37","jug":"#f2a71b","cups":"#fff2d8"},"forest-gold":{"steel":"#7c868c","tyres":"#1d2024","wire":"#4a5760","helmet":"#2e5730","helmetTrim":"#e8c23a","pad":"#e4e5e1","padFoam":"#33383c","padTrim":"#d8c79a","leather":"#8b5e37","jug":"#f2a71b","cups":"#fff2d8"},"school-slate":{"steel":"#e4e5e1","tyres":"#2a2019","wire":"#33383c","helmet":"#4a5760","helmetTrim":"#f6f7f5","pad":"#8f8d83","padFoam":"#1d2024","padTrim":"#b0503a","leather":"#7c4e33","jug":"#f2a71b","cups":"#edf5ff"}},"decals":[{"name":"helmet-left","size":[0.07,0.06],"at":[-0.8614,1.4082,-0.0546],"normal":[-0.883,0.4177,-0.2142],"up":[0,1,0],"describe":"the left flank of the left-hand helmet on the top rail, behind and above its ear hole, where a team puts its logo","albedo":"#13488c","mode":"projected","relief_mm":9.9,"verified":true},{"name":"helmet-right","size":[0.07,0.06],"at":[0.8614,1.4082,-0.0546],"normal":[0.883,0.4177,-0.2142],"up":[0,1,0],"describe":"the right flank of the right-hand helmet on the top rail, behind and above its ear hole, where a team puts its logo","albedo":"#13488c","mode":"projected","relief_mm":9.9,"verified":true}],"materials":{"steel":{"kind":"metal","finish":"satin"},"tyres":{"kind":"rubber","finish":"black"},"wire":{"kind":"plastic","finish":"satin"},"helmet":{"kind":"plastic","finish":"gloss"},"helmetTrim":{"kind":"paint","finish":"gloss"},"pad":{"kind":"plastic","finish":"satin"},"padFoam":{"kind":"fabric","finish":"knit"},"padTrim":{"kind":"fabric","finish":"canvas"},"leather":{"kind":"leather","finish":"grain"},"jug":{"kind":"plastic","finish":"gloss"},"cups":{"kind":"plastic","finish":"matte"}},"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":1792425402,"mod_v":1792408796}