{"params":{"colorway":{"type":"choice","default":"ambulance-green","label":"Colorway","describe":"Curated kit-coherent scheme. ambulance-green is the approved build: a dark green proofed-canvas shell with a lighter green lining, near-black webbing, a safety-yellow cross panel and a silver reflective strip. response-red is the brick-red bag a bigger club buys, with warmer orange on the panel and cream dressings. khaki-service is army-surplus canvas with brown webbing. faded-store is a grey-blue bag that has lived in the groundsman's shed for a decade, its yellow gone to cream and its tape gone dull. Every scheme keeps the cross a true white and the webbing the darkest thing on the part.","options":["ambulance-green","response-red","khaki-service","faded-store"]},"matchday":{"type":"range","default":0.6,"label":"Matchday","describe":"Whether there is a game on, spent entirely on geometry and never on a tint. At 0 it is a wet Tuesday: the flap is shut square on the mouth and the two zip sliders are parked together at the centre front, with nothing in the bag to see. From about 0.2 the sliders run apart toward the ends and the flap lifts, and once it has swung clear at around 0.5 a taped roll and a folded triangular bandage stand up over the lip. By the default the flap is thrown well back past vertical, the zip is most of the way open and a second roll is in. At 1 the flap is fully back, the sliders are right out at the ends and a flat strip pack leans against the front of the mouth. The bag, its pockets, the reflective strip and the cross panel never move.","affects":"geometry","min":0,"max":1,"step":0.1},"packed":{"type":"range","default":0.55,"label":"How full it is","describe":"How hard the bag is packed, rebuilt rather than scaled. The crown of the vault climbs 70 mm across the range and the shoulder the front slope springs from climbs with it, while the walls go from dished in at the waist to bellied out by 30 mm across the section. At 0 it is a half-empty bag slumped low on its base with hollow flanks; at 1 it is stuffed hard, tall and drum-tight. The webbing frame, the cross, both handles, the flap, the zip, the pockets and the 0.5 m footprint keep exactly the same dimensions at every value \u2014 only the shell section and the fittings that ride its crown move.","affects":"geometry","min":0,"max":1,"step":0.05},"handle":{"type":"choice","default":"padded","label":"Carry handle","describe":"Which grab handle is sewn to the front rim. padded is the approved build: a short, deep, square-section moulded grip standing close over the lip, the way a hard-wearing response bag is made. loop is a plain flat webbing strap in a taller, wider arch with a stitched keeper at its middle \u2014 a noticeably lighter, airier silhouette above the lip, the way a cheaper club bag is made. Everything else on the bag is identical.","affects":"geometry","options":["padded","loop"]},"seed":{"type":"range","default":4,"label":"Contents layout","describe":"Re-deals the loose contents in the mouth. Nobody packs a bag the same way twice, so this picks a different cleared arrangement: the rolls stand in different places and turn onto different facets, and the folded triangular bandage moves across the mouth and takes a different lean. The number of items, the bag and everything attached to it are identical at every value. Give neighbouring bags in one scene different values and they stop reading as clones.","affects":"geometry","min":1,"max":8,"step":1},"shell":{"type":"color","default":"#3d6b30","label":"Shell canvas","describe":"Albedo of the proofed canvas body: the vault, both end pockets, the front and back pockets and the flap's outer face. The dominant mass of the part."},"lining":{"type":"color","default":"#4e8038","label":"Lining","describe":"Albedo of what the open flap reveals: the walls and floor of the mouth and the recessed field inside the flap's rim. A clear step lighter than the shell so an open bag reads as a lined bag rather than as a hole."},"trim":{"type":"color","default":"#33383c","label":"Webbing","describe":"Albedo of every woven and moulded fitting: the frame around the cross panel, the flap's rim, both carry handles and their keepers, the zip tape and its two sliders, the hinge and the cores of the taped rolls. The darkest zone on the part and the one that draws every edge."},"panel":{"type":"color","default":"#e8c23a","label":"Cross panel","describe":"Albedo of the safety-yellow field the cross sits on, recessed inside the webbing frame on the front slope. The kit allows safety yellow on this part, the line-marking cart and the stretcher and nowhere else, so it stays one bounded block rather than spreading round the bag."},"cross":{"type":"color","default":"#f6f7f5","label":"Cross","describe":"Albedo of the white cross itself, cut as real faces of the recessed field rather than painted over it. The kit's true white, the same white as its line paint and goal frames \u2014 a grey lookalike here reads as a dirty bag."},"reflect":{"type":"color","default":"#e4e5e1","label":"Reflective strip","describe":"Albedo of the sewn-on hi-vis tape: one band at one height running across the front pocket, the back pocket and both end pockets so it reads as a single strip round the bag. Cut as faces of the canvas, never a raised slab."},"dressing":{"type":"color","default":"#edf5ff","label":"Dressings","describe":"Albedo of the loose contents standing over the lip \u2014 the taped rolls, the folded triangular bandage and the strip pack. A cool clinical white, deliberately off the cross's white so a consumer can address the two separately."}},"presets":{"ambulance-green":{"shell":"#3d6b30","lining":"#4e8038","trim":"#33383c","panel":"#e8c23a","cross":"#f6f7f5","reflect":"#e4e5e1","dressing":"#edf5ff"},"response-red":{"shell":"#8e3f2e","lining":"#b0503a","trim":"#2a2019","panel":"#f2a71b","cross":"#f6f7f5","reflect":"#e4e5e1","dressing":"#fff2d8"},"khaki-service":{"shell":"#7a6444","lining":"#8f8d83","trim":"#2a2019","panel":"#e8c23a","cross":"#f6f7f5","reflect":"#e8e6e1","dressing":"#edf5ff"},"faded-store":{"shell":"#4a5760","lining":"#7c868c","trim":"#1d2024","panel":"#d8c79a","cross":"#f6f7f5","reflect":"#a8ada6","dressing":"#edf5ff"}},"decals":[{"name":"pocket-right","size":[0.15,0.06],"at":[0.25,0.057,0],"normal":[1,0,0],"up":[0,1,0],"describe":"the right end pocket's outer face, in the clear field below the reflective strip","albedo":"#3d6b30","mode":"plate","relief_mm":1,"verified":true},{"name":"pocket-left","size":[0.15,0.06],"at":[-0.25,0.057,0],"normal":[-1,0,0],"up":[0,1,0],"describe":"the left end pocket's outer face, in the clear field below the reflective strip","albedo":"#3d6b30","mode":"plate","relief_mm":1,"verified":true}],"rev":1792408796,"materials":{"shell":{"kind":"fabric","finish":"canvas"},"lining":{"kind":"fabric","finish":"cotton"},"trim":{"kind":"fabric","finish":"canvas"},"panel":{"kind":"fabric","finish":"cotton"},"cross":{"kind":"fabric","finish":"cotton"},"reflect":{"kind":"plastic","finish":"satin"},"dressing":{"kind":"fabric","finish":"cotton"}},"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":1792425288,"mod_v":1792408796}