{ "_": "PROCITY R42 \u00a742.1+\u00a742.2a \u2014 the 1990s Australian pub / cafe / milk bar palette.", "_law": "Every asset is listed BY NAME (R41 ruling 3 / the permanent deny-list). No wildcards.", "_route": "ramp = luminance->palette (bleached-grey sources) \u00b7 lut = exact colour->part (DJ gear) \u00b7 tint = keep hue, force sat/value \u00b7 huesplit = two ramps by source hue \u00b7 factor = baseColorFactor on a textured source.", "_cost": "COLOR_0 is rewritten in place: same accessor, same element count, same byte length. 0 tri delta, 0 draw delta on every entry.", "palette": { "carpet_red": "#7a2233", "burgundy": "#5e1f2a", "maroon_dk": "#2a0e14", "brown_vinyl": "#6b4526", "tan_vinyl": "#9a7040", "worn_tan": "#b99464", "dark_stain": "#2e1c12", "mid_timber": "#6e4a2a", "pine": "#b08a54", "laminex": "#dcd0ae", "laminex_gr": "#b6b2a2", "brass": "#a97f2c", "brass_lt": "#d2a64a", "chrome": "#c6cbd0", "stainless": "#98a0a6", "steel_dk": "#5a6066", "cream": "#e6dcc2", "hotel_green": "#2f4a3a", "beer_gold": "#c98b22", "amber_lit": "#e8b44a", "fire_red": "#a81e14", "charcoal": "#26262a", "soot": "#141416", "terracotta": "#9c5330", "foliage": "#4c6b36", "concrete": "#8e8a80", "galv": "#9ea5aa", "sl_silver": "#b9bdc2" }, "assets": { "old_couch": { "file": "procity_fit_old_couch_01.glb", "route": "ramp", "note": "brown vinyl 3-seater, worn on the cushion crowns. Screen-area #1 in the pub.", "stops": [ [ 0.0, "#1e1208" ], [ 0.35, "#402a15" ], [ 0.7, "#6b4526" ], [ 1.0, "#8d6539" ] ], "roughness": 0.78, "metallic": 0.0 }, "jukebox": { "file": "procity_fit_jukebox_01.glb", "route": "ramp", "note": "dark cabinet, deep-red selector panel, brass arch, lit amber dome.", "stops": [ [ 0.0, "#191310" ], [ 0.3, "#2e1c12" ], [ 0.52, "#7a2233" ], [ 0.78, "#9a7228" ], [ 1.0, "#dcb15c" ] ], "roughness": 0.5, "metallic": 0.12 }, "banquette": { "file": "procity_fit_banquette_01.glb", "route": "ramp", "note": "burgundy buttoned vinyl. The source is a 1990s-teal that reads as office furniture.", "stops": [ [ 0.0, "#2a0e14" ], [ 0.5, "#5e1f2a" ], [ 1.0, "#8f3c47" ] ], "roughness": 0.62, "metallic": 0.0 }, "plywood_bar": { "file": "procity_fit_plywood_bar_01.glb", "route": "ramp", "note": "stained ply front, timber bar top, brass foot rail.", "stops": [ [ 0.0, "#1b1108" ], [ 0.4, "#432a14" ], [ 0.72, "#6e4a26" ], [ 1.0, "#9c7440" ] ], "roughness": 0.68, "metallic": 0.06 }, "bistro_table": { "file": "procity_fit_bistro_table_01.glb", "route": "ramp", "note": "cream laminex top on a dark pedestal, timber chairs.", "stops": [ [ 0.0, "#1e1208" ], [ 0.45, "#4e3218" ], [ 0.78, "#8a6236" ], [ 1.0, "#dcd0ae" ] ], "roughness": 0.55, "metallic": 0.0 }, "pokie": { "file": "procity_fit_pokie_01.glb", "route": "tint", "note": "already carries lit artwork (sat 0.45) \u2014 deepen it instead of flattening it to a ramp.", "sat_mul": 1.45, "hue_rot": -6, "val": [ 0.1, 0.94 ], "gamma": 1.0, "roughness": 0.42, "metallic": 0.1 }, "bain_marie": { "file": "procity_fit_bain_marie_01.glb", "route": "ramp", "note": "stainless tray unit under a warm servery lamp.", "stops": [ [ 0.0, "#2f3438" ], [ 0.45, "#7b838a" ], [ 0.8, "#b9c0c5" ], [ 1.0, "#e8c070" ] ], "roughness": 0.32, "metallic": 0.45 }, "pie_warmer": { "file": "procity_fit_pie_warmer_01.glb", "route": "ramp", "note": "stainless + glass box, pies glowing amber inside.", "stops": [ [ 0.0, "#2b2f32" ], [ 0.4, "#6e767c" ], [ 0.72, "#aeb5ba" ], [ 1.0, "#e0a94e" ] ], "roughness": 0.3, "metallic": 0.38 }, "keg": { "file": "procity_fit_keg_01.glb", "route": "factor", "note": "the only pub prop with a real texture and no COLOR_0 \u2014 tint the map instead.", "factor": "#b7c0c6", "roughness": 0.3, "metallic": 0.62 }, "lounge_chair": { "file": "procity_fit_lounge_chair_01.glb", "route": "ramp", "note": "worn red-brown vinyl tub chair, timber feet.", "stops": [ [ 0.0, "#25130f" ], [ 0.4, "#5a2f24" ], [ 0.72, "#7f4a34" ], [ 1.0, "#a3714f" ] ], "roughness": 0.8, "metallic": 0.0 }, "ash_urn": { "file": "procity_fit_ash_urn_01.glb", "route": "ramp", "note": "chrome sand urn by the door.", "stops": [ [ 0.0, "#42474b" ], [ 0.5, "#8d949a" ], [ 1.0, "#d2d7db" ] ], "roughness": 0.3, "metallic": 0.58 }, "ashtray_post": { "file": "procity_fit_ashtray_post_01.glb", "route": "ramp", "note": "chrome post, dark bowl.", "stops": [ [ 0.0, "#242428" ], [ 0.5, "#7c8288" ], [ 1.0, "#c2c7cc" ] ], "roughness": 0.32, "metallic": 0.5 }, "beer_umbrella": { "file": "procity_fit_beer_umbrella_01.glb", "route": "ramp", "note": "green brewery canvas on a stained timber pole. Was sRGB 238,238,238.", "stops": [ [ 0.0, "#3a2618" ], [ 0.3, "#1f4030" ], [ 0.62, "#2c5a42" ], [ 1.0, "#427a5b" ] ], "roughness": 0.9, "metallic": 0.0 }, "bin_round": { "file": "procity_fit_bin_round_01.glb", "route": "ramp", "note": "dark-green council bin, galvanised lid.", "stops": [ [ 0.0, "#1c261f" ], [ 0.55, "#33513e" ], [ 1.0, "#7d8a80" ] ], "roughness": 0.8, "metallic": 0.08 }, "broken_basin": { "file": "procity_fit_broken_basin_01.glb", "route": "ramp", "note": "cream porcelain, grimed in the crack.", "stops": [ [ 0.0, "#6b6558" ], [ 0.5, "#b8b3a2" ], [ 1.0, "#e6e1d0" ] ], "roughness": 0.28, "metallic": 0.0 }, "cable_snake": { "file": "procity_fit_cable_snake_01.glb", "route": "ramp", "note": "black rubber loom, gaffer-taped.", "stops": [ [ 0.0, "#0e0e10" ], [ 0.6, "#1d1d21" ], [ 1.0, "#39393f" ] ], "roughness": 0.88, "metallic": 0.0 }, "can_stack": { "file": "procity_fit_can_stack_01.glb", "route": "ramp", "note": "aluminium cans in a cardboard tray.", "stops": [ [ 0.0, "#5a4025" ], [ 0.35, "#8a6a3e" ], [ 0.62, "#99a0a6" ], [ 0.88, "#c6cbd0" ], [ 1.0, "#d9b23a" ] ], "roughness": 0.35, "metallic": 0.4 }, "cdj_deck": { "file": "procity_fit_cdj_deck_01.glb", "route": "ramp", "note": "charcoal desktop deck, silver jog wheel \u2014 the venue booth's read (\u00a742.2).", "stops": [ [ 0.0, "#191a1d" ], [ 0.42, "#3a3d42" ], [ 0.78, "#9ea4aa" ], [ 1.0, "#dde0e3" ] ], "roughness": 0.42, "metallic": 0.22 }, "champ_bucket": { "file": "procity_fit_champ_bucket_01.glb", "route": "ramp", "note": "chrome ice bucket.", "stops": [ [ 0.0, "#363e42" ], [ 0.45, "#8e969c" ], [ 0.8, "#cbd0d4" ], [ 1.0, "#e9ecee" ] ], "roughness": 0.22, "metallic": 0.65 }, "concrete_plinth": { "file": "procity_fit_concrete_plinth_01.glb", "route": "ramp", "note": "poured concrete, warm dust.", "stops": [ [ 0.0, "#4a4842" ], [ 0.5, "#86837a" ], [ 1.0, "#b4b0a4" ] ], "roughness": 0.95, "metallic": 0.0 }, "crowd_barrier": { "file": "procity_fit_crowd_barrier_01.glb", "route": "ramp", "note": "galvanised steel bike rack.", "stops": [ [ 0.0, "#4a5054" ], [ 0.5, "#8e959a" ], [ 1.0, "#c0c6ca" ] ], "roughness": 0.4, "metallic": 0.5 }, "distro_box": { "file": "procity_fit_distro_box_01.glb", "route": "ramp", "note": "black distro with a yellow warning face.", "stops": [ [ 0.0, "#171719" ], [ 0.5, "#37383d" ], [ 0.85, "#6e7076" ], [ 1.0, "#c89a22" ] ], "roughness": 0.6, "metallic": 0.15 }, "fire_ext": { "file": "procity_fit_fire_ext_01.glb", "route": "ramp", "note": "proper AS fire red with a brass valve; the source is a pink-red (240,109,99).", "stops": [ [ 0.0, "#180f10" ], [ 0.35, "#7c140f" ], [ 0.8, "#a81e14" ], [ 1.0, "#cf9a3c" ] ], "roughness": 0.4, "metallic": 0.2 }, "firepit": { "file": "procity_fit_firepit_01.glb", "route": "ramp", "note": "rusted drum, soot, embers.", "stops": [ [ 0.0, "#131010" ], [ 0.45, "#483327" ], [ 0.8, "#7a4a2a" ], [ 1.0, "#cb6a20" ] ], "roughness": 0.9, "metallic": 0.1 }, "flight_case": { "file": "procity_fit_flight_case_01.glb", "route": "ramp", "note": "black road case. The source's top luminance decile is speckle noise, not chrome \u2014 a bright top stop turns it into a starfield, so the ramp is compressed to case-black.", "stops": [ [ 0.0, "#101013" ], [ 0.5, "#191a1d" ], [ 1.0, "#3c4046" ] ], "roughness": 0.45, "metallic": 0.3 }, "marble_sink": { "file": "procity_fit_marble_sink_01.glb", "route": "ramp", "note": "cream marble slab, chrome tap.", "stops": [ [ 0.0, "#67645a" ], [ 0.45, "#b4af9e" ], [ 0.8, "#dcd6c4" ], [ 1.0, "#eeeade" ] ], "roughness": 0.25, "metallic": 0.15 }, "pallet": { "file": "procity_fit_pallet_01.glb", "route": "ramp", "note": "raw pine pallet.", "stops": [ [ 0.0, "#3b2a17" ], [ 0.5, "#7e5a32" ], [ 1.0, "#b28c56" ] ], "roughness": 0.95, "metallic": 0.0 }, "picnic_table": { "file": "procity_fit_picnic_table_01.glb", "route": "ramp", "note": "hardwood beer-garden setting, weathered grey-brown.", "stops": [ [ 0.0, "#382713" ], [ 0.5, "#7c5830" ], [ 1.0, "#b08a5c" ] ], "roughness": 0.95, "metallic": 0.0 }, "planter": { "file": "procity_fit_planter_01.glb", "route": "huesplit", "note": "a pot and a plant are not one ramp \u2014 hue-split keeps the foliage green and makes the pot terracotta.", "hue_band": [ 55, 190 ], "hue_min_sat": 0.04, "in_stops": [ [ 0.0, "#22331c" ], [ 0.5, "#4c6b36" ], [ 1.0, "#87a355" ] ], "out_stops": [ [ 0.0, "#3d1f11" ], [ 0.5, "#9c5330" ], [ 1.0, "#c98a5c" ] ], "roughness": 0.9, "metallic": 0.0 }, "topiary": { "file": "procity_fit_topiary_01.glb", "route": "huesplit", "note": "same split: clipped bay in a terracotta pot.", "hue_band": [ 55, 190 ], "hue_min_sat": 0.04, "in_stops": [ [ 0.0, "#1e2f1a" ], [ 0.5, "#415f30" ], [ 1.0, "#7d9a4e" ] ], "out_stops": [ [ 0.0, "#3d1f11" ], [ 0.5, "#9c5330" ], [ 1.0, "#c98a5c" ] ], "roughness": 0.9, "metallic": 0.0 }, "raffle_drum": { "file": "procity_fit_raffle_drum_01.glb", "route": "ramp", "note": "brass meat-raffle drum on a stained stand.", "stops": [ [ 0.0, "#281a0e" ], [ 0.45, "#7a5a20" ], [ 0.8, "#a97f2c" ], [ 1.0, "#d8ae55" ] ], "roughness": 0.35, "metallic": 0.5 }, "rope_post": { "file": "procity_fit_rope_post_01.glb", "route": "ramp", "note": "brass bollard, burgundy velvet rope.", "stops": [ [ 0.0, "#2f210e" ], [ 0.45, "#7a2233" ], [ 0.75, "#a97f2c" ], [ 1.0, "#dcb35a" ] ], "roughness": 0.35, "metallic": 0.45 }, "sandwich_board": { "file": "procity_fit_sandwich_board_01.glb", "route": "ramp", "note": "chalkboard A-frame in a timber surround.", "stops": [ [ 0.0, "#191917" ], [ 0.45, "#4a3a22" ], [ 0.8, "#8a6236" ], [ 1.0, "#c8a76e" ] ], "roughness": 0.85, "metallic": 0.0 }, "smoke_machine": { "file": "procity_fit_smoke_machine_01.glb", "route": "ramp", "note": "black plastic hazer.", "stops": [ [ 0.0, "#0e0e10" ], [ 0.6, "#222226" ], [ 1.0, "#4a4a50" ] ], "roughness": 0.6, "metallic": 0.1 }, "speaker_stack": { "file": "procity_fit_speaker_stack_01.glb", "route": "ramp", "note": "black-carpeted PA column, grey grille cloth.", "stops": [ [ 0.0, "#0f0f11" ], [ 0.5, "#1e1e22" ], [ 0.8, "#3c3c42" ], [ 1.0, "#74767c" ] ], "roughness": 0.85, "metallic": 0.0 }, "strobe_light": { "file": "procity_fit_strobe_light_01.glb", "route": "ramp", "note": "black body, chrome reflector, cold lens.", "stops": [ [ 0.0, "#0d0d0f" ], [ 0.55, "#202024" ], [ 0.85, "#7e858b" ], [ 1.0, "#e2e4e6" ] ], "roughness": 0.35, "metallic": 0.3 }, "sub_bass": { "file": "procity_fit_sub_bass_01.glb", "route": "ramp", "note": "black sub, grey cones.", "stops": [ [ 0.0, "#0e0e10" ], [ 0.55, "#1c1c20" ], [ 0.85, "#343440" ], [ 1.0, "#63656b" ] ], "roughness": 0.85, "metallic": 0.0 }, "urinal_trough": { "file": "procity_fit_urinal_trough_01.glb", "route": "factor", "note": "second textured prop \u2014 tint the map to stainless.", "factor": "#aeb5ba", "roughness": 0.28, "metallic": 0.5 }, "wheelie_bin": { "file": "procity_fit_wheelie_bin_01.glb", "route": "ramp", "note": "dark-green council wheelie bin.", "stops": [ [ 0.0, "#141e18" ], [ 0.5, "#2e4433" ], [ 1.0, "#556f59" ] ], "roughness": 0.85, "metallic": 0.0 }, "deck_1200_rigged": { "file": "procity_fit_deck_1200_rigged_01.glb", "route": "lut", "note": "\u00a742.2 \u2014 Technics-silver chassis, alloy platter, BLACK RECORD with a red label, red start/stop, contrast pitch cap. Per-mesh because a colour means a different part in each node.", "rules": [ { "src": [ 0.05, 0.05, 0.05 ], "to": "#b9bdc2" }, { "src": [ 0.08, 0.08, 0.09 ], "to": "#9aa0a6" }, { "src": [ 0.55, 0.55, 0.58 ], "to": "#c0202a" }, { "src": [ 0.6, 0.6, 0.62 ], "to": "#7e838a" }, { "src": [ 0.75, 0.75, 0.78 ], "to": "#aeb4ba" }, { "src": [ 0.85, 0.85, 0.88 ], "to": "#cbd0d5" }, { "src": [ 0.92, 0.92, 0.9 ], "to": "#d5d9dd" } ], "roughness": 0.38, "metallic": 0.35, "meshes": { "Platter": { "route": "lut", "metallic": 0.55, "roughness": 0.3, "rules": [ { "src": [ 0.05, 0.05, 0.05 ], "to": "#17171a" }, { "src": [ 0.75, 0.75, 0.78 ], "to": "#c9ced3" } ], "note": "the record. Measured as a triangle fan (160 verts at r=0, 162 at r=0.15), so a centre-vs-rim label colour would interpolate across the entire disc \u2014 flat vinyl black is the only honest colouring of this topology." }, "Headshell": { "route": "lut", "metallic": 0.5, "roughness": 0.3, "rules": [ { "src": [ 0.05, 0.05, 0.05 ], "to": "#2c2e33" }, { "src": [ 0.08, 0.08, 0.09 ], "to": "#1d1f22" }, { "src": [ 0.75, 0.75, 0.78 ], "to": "#c2c7cc" }, { "src": [ 0.85, 0.85, 0.88 ], "to": "#d4d8dc" }, { "src": [ 0.92, 0.92, 0.9 ], "to": "#c8202c" } ] }, "PitchCap": { "route": "lut", "metallic": 0.0, "roughness": 0.35, "emissive": "#3c1206", "rules": [ { "src": [ 0.55, 0.55, 0.58 ], "to": "#f0ece2" } ] }, "StartStopBtn": { "route": "lut", "metallic": 0.1, "roughness": 0.35, "rules": [ { "src": [ 0.55, 0.55, 0.58 ], "to": "#c8202c" }, { "src": [ 0.05, 0.05, 0.05 ], "to": "#1f2124" } ] } } }, "deck_1200": { "file": "procity_fit_deck_1200_01.glb", "route": "lut", "note": "\u00a742.2 \u2014 the static twin of the hero. One joined primitive, so the record disc is found by POSITION: measured at y=0.079, up-facing, r<0.158 of the platter centre (-0.0455, 0).", "rules": [ { "src": [ 0.05, 0.05, 0.05 ], "y_min": 0.0775, "y_max": 0.0805, "cyl": { "center": [ -0.0455, 0.0 ], "r_max": 0.158 }, "to": "#17171a" }, { "src": [ 0.05, 0.05, 0.05 ], "y_min": 0.082, "to": "#2c2e33" }, { "src": [ 0.05, 0.05, 0.05 ], "to": "#b9bdc2" }, { "src": [ 0.03, 0.03, 0.03 ], "to": "#6e7378" }, { "src": [ 0.016, 0.016, 0.016 ], "to": "#4a4d51" }, { "src": [ 0.012, 0.012, 0.012 ], "to": "#3c3f43" }, { "src": [ 0.08, 0.08, 0.09 ], "to": "#9aa0a6" }, { "src": [ 0.55, 0.55, 0.58 ], "to": "#c0202a" }, { "src": [ 0.6, 0.6, 0.62 ], "to": "#7e838a" }, { "src": [ 0.72, 0.7, 0.66 ], "to": "#c2b9a6" }, { "src": [ 0.75, 0.75, 0.78 ], "to": "#c9ced3" }, { "src": [ 0.85, 0.85, 0.88 ], "to": "#cbd0d5" }, { "src": [ 0.92, 0.92, 0.9 ], "to": "#d5d9dd" }, { "src": [ 0.42, 0.02, 0.02 ], "to": "#c8202c" } ], "roughness": 0.38, "metallic": 0.35 }, "mixer_ttm54i_rigged": { "file": "procity_fit_mixer_ttm54i_rigged_01.glb", "route": "tint", "note": "\u00a742.2 \u2014 battle mixer: lift the near-black face to a readable graphite and put colour back in the knob caps.", "sat_mul": 1.9, "val": [ 0.14, 0.96 ], "roughness": 0.45, "metallic": 0.25, "meshes": { "Fader_CROSS_cap": { "route": "lut", "metallic": 0.0, "roughness": 0.35, "rules": [ { "src": [ 0.82, 0.82, 0.8 ], "to": "#f0ece2" }, { "src": [ 0.035, 0.035, 0.038 ], "to": "#c8202c" }, { "src": [ 0.004, 0.004, 0.004 ], "to": "#1f2124" } ] } } }, "mixer_pmc05pro_rigged": { "file": "procity_fit_mixer_pmc05pro_rigged_01.glb", "route": "tint", "note": "\u00a742.2 \u2014 same treatment, second rigged mixer.", "sat_mul": 1.9, "val": [ 0.14, 0.96 ], "roughness": 0.45, "metallic": 0.25, "meshes": { "Fader_CROSS_cap": { "route": "tint", "sat_mul": 1.0, "sat": 0.0, "val": [ 0.86, 0.98 ], "metallic": 0.0, "roughness": 0.35 } } }, "mixer_shdj1200_rigged": { "file": "procity_fit_mixer_shdj1200_rigged_01.glb", "route": "tint", "note": "\u00a742.2 \u2014 same treatment, third rigged mixer.", "sat_mul": 1.9, "val": [ 0.14, 0.96 ], "roughness": 0.45, "metallic": 0.25, "meshes": { "Fader_CROSS_cap": { "route": "tint", "sat_mul": 1.0, "sat": 0.0, "val": [ 0.86, 0.98 ], "metallic": 0.0, "roughness": 0.35 } } }, "mixer_pmx9000": { "file": "procity_fit_mixer_pmx9000_01.glb", "route": "tint", "note": "\u00a742.2 \u2014 the venue booth's mixer, static. Same lift so the booth reads as gear, not as a slab.", "sat_mul": 1.9, "val": [ 0.14, 0.96 ], "roughness": 0.45, "metallic": 0.25 }, "sl_deck_3": { "file": "procity_fit_sl_deck_3_01.glb", "route": "tint", "note": "\u00a742.2 \u2014 the venue booth's third part.", "sat_mul": 1.6, "val": [ 0.16, 0.97 ], "roughness": 0.42, "metallic": 0.28 } } }