R41 furnished the rooms and filled the streets; doing so made three cosmetic faults newly visible on its own proof shots. John looked and said fix them. No new systems. The three: (1) the 39 pub props ship UNTEXTURED - the couch and jukebox render as white blobs (E's own note: 37/39 have no texture); (2) the DJ booth reads as a plain black box - the rigged Technics are in there and you cannot tell at viewing distance; (3) the ped roster does not fit 1990s Australia - there is a purple masked luchador in the pub crowd, and ultra's library splits 53 people-normal / 10 comical / 9 fantasy. Ruling 1 makes the period law explicit: 1990s Australia, no fantasy/superhero/anime/ medieval - if it would look wrong on a suburban Sydney street in 1996 it does not ship. Ruling 2 prefers CC0 replacements (Quaternius ships Casual/Punk/Suit/Worker/Farmer) so the look fix and the licence gap close in one move - because B's credits work surfaced that the 19 base peds have NO per-asset licence record and our declared zone includes CC-BY and paid RF. Ruling 3: unrecorded licence = not shipped. Ruling 4: draw-neutral (street margin is nine); interior may spend from the TRUE 227 margin, measured. Ruling 5: no new capability - the DJ driver and the conversation state machine are R43. Also clears standing debt: bench yaw faces along the street instead of at the road (D's sitters now show it), benchStops export, document.fonts.ready for the sign-atlas race that makes four bookmarks unreproducible, and D's warn-level browse smoke. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
8.5 KiB
PROCITY — Round 42 instructions (from Fable, integrator)
Date: 2026-08-07 · R41 closed green (18 gates, d14cf7f pushed, goldens 0x5f76e76).
Theme: THE LOOK. R41 furnished the rooms and filled the streets with postures; doing so made
three cosmetic faults newly visible. John looked and said fix them. This round is a visual
debt pass — no new systems, no new content, just making what shipped last round read right.
The three faults (Fable's own eyeball pass on R41's proof shots — go look before you start)
- The pub props render as untextured white blobs.
docs/shots/laneF_r41/pub_furnished.jpg— the couch and jukebox are lumpy white masses. E's own §41.2 note says 37 of 39 shipped with no texture at all; they are geometrically correct and visually unfinished. A 90s pub couch is brown vinyl or worn floral, not white. - The DJ booth reads as a plain black box.
docs/shots/laneF_r41/record_dj_booth.jpg— the rigged Technics with workingPlatter_SPIN/Fader_PITCHnodes are in there, and at normal viewing distance you cannot tell it is a turntable setup. Right result, wrong read. - The ped roster does not fit 1990s Australia. There is a purple masked luchador in the
pub crowd. The survey found ultra's
3D=models/characters/is 83 FBX = 53 people-normal · 10 comical · 9 fantasy — some of the wrong 19 are in our shipped 24.
Standing debt this round also clears (all filed, all small)
- [B, from D]
furniture.jsputs the bench's front along the street, not facing the road — contradicting its own comment. D's citizens now sit on these benches, so it shows. - [B, from D] one
benchStops(plan)export retires D's derived-station mirror. - [B, from F] one
await document.fonts.readyinbuildings.js— the sign-atlas font race that makes four bookmarks unreproducible across boots. - [E, from B] the 19 base ped models have no per-asset licence record anywhere in this repo, and CITY_SPEC's declared zone includes CC-BY and paid-royalty-free. B built the credits surface; this round fills the rows. A ped we cannot licence is a ped we replace.
- [D, from F]
r41_shots.py's browse arm is deterministically red (it re-enters the winner after a ~3 s/candidate scan, by which time the occupant has left) — currently warn-level.
INTEGRATOR RULINGS
- Period law, now explicit: PROCITY is 1990s Australia. No fantasy, no superhero, no luchador, no anime, no medieval. If a model would look out of place on a suburban Sydney street in 1996, it does not ship. This applies to peds first and everything after.
- Prefer CC0 or known-licence replacements — it fixes the look and the licence gap in one move. The survey found Quaternius (CC0) ships Casual, Casual2, Punk, Suit, Worker, Farmer, Beach: directly usable town archetypes with zero attribution debt. Ultra's 53 people-normal FBX are the other pool; each needs its licence recorded before it ships (ruling: unrecorded ⇒ not shipped).
- Every ped that ships gets a
credits.jsonrow — name, source, licence, attribution-if-any. B built the surface in R41; this is what it was for. - Draw-neutral or better. Street is 291/300 at night — nine draws. A ped swap is one-for-one; a texture is not a draw. Interior margin is 227 (the true number after C's phantom-room fix) — the pub may spend some of it, measured, and must state the worst room.
- No new capability. No conversation system, no DJ driver, no new mechanics. If a fix needs a system, file it to R43 with the measurement.
The ledger
42.1 — DRESS THE PUB (Lane E, look half)
The 39 art_incoming props ship untextured. Give them materials that read as a 1990s Australian
pub/cafe/milkbar. Cheapest correct route first — these are flat-material meshes, so baked vertex
colour or a small shared palette atlas beats per-asset texture maps (and keeps the draw win C
fought for). Priorities by how much screen they own: old_couch, jukebox, banquette,
plywood_bar, bistro_table, pokie, bain_marie, pie_warmer, keg, lounge_chair.
Beer-stained carpet reds, brown vinyl, laminex, brass and chrome — not white. Ship a contact sheet
and an A/B pair against R41's shot. Keep the house GLB law, re-run the four-surface transmission
gate, republish + sha1-verify.
42.2 — MAKE THE DECKS READ (Lane E look half + Lane C, jointly)
The booth is right and unreadable. Diagnose before you change anything: is it the asset (a black plinth with a dark deck on a dark counter), the composition (nothing around it says DJ), or the lighting? Then fix the cheapest cause. Likely both: E gives the deck body some contrast (silver platter, coloured slipmat, visible tonearm, a lit pitch fader), and C composes the booth so it reads at a glance — mixer beside the deck, a record on the platter, sleeves in the rack behind, maybe the booth angled toward the door instead of flat to a wall. No control-node driver this round (ruling 5) — the nodes stay recorded for R43. Before/after pair required.
42.3 — RECAST THE TOWN (Lane E cast half — audit and source)
- Audit the shipped 24 peds: for each, name it, judge it against ruling 1 (1990s Australian
street: yes/no), and record its licence — or mark it
unverified. The survey's split of ultra's library (53 normal / 10 comical / 9 fantasy) is your map; the shipped roster is the territory. Show the luchador and name it. - Source replacements for every reject, preferring CC0 (Quaternius: Casual, Casual2, Punk, Suit, Worker, Farmer, Beach) then ultra's people-normal pool. Normalize to the existing ped contract — same mixamorig skeleton, same 66-node shape, same 2,132–3,999 tri band, same texture budget — because D's 46 clips and the impostor bake both ride that contract and a deviation breaks them silently.
- Fill
credits.jsonfor the whole roster (ruling 3), replacing B's amberunverifiedrows with real ones.
42.4 — RECAST, WIRED (Lane D — after 42.3)
Swap the roster in rigs.js/loadPedFleet and the fleet slot machinery. Non-negotiables:
determinism holds (same seed → same crowd — the fleet-order bug you fixed in R2 is exactly the
hazard here: fill fixed slots by index, never by load-completion order), draw count unchanged,
the impostor bake still matches its rigs at the swap boundary, and the no-giants gate stays green
(new models, new scale risk — this is precisely the R10 failure class). Re-shoot your street shot.
Also yours: fix r41_shots.py's browse arm so it stops being warn-level.
42.5 — THE THREE SMALL ONES (Lane B)
The bench yaw (make the bench face the road; D's sitters will show it either way, so a
before/after shot is the proof), the benchStops(plan) export, and await document.fonts.ready
in buildings.js. That last one should make the four unreproducible bookmarks stable — verify
it does by re-running F's 3-boot hash check, and tell F whether byte-hash goldens become
possible again.
42.6 — PROVE THE LOOK (Lane F — last)
This round is judged by eye, so the shots are the deliverable. Re-shoot every R41 frame that
showed a fault, paired against the R41 original (they are committed — use them as the before):
pub, DJ booth, street crowd, pub crowd (the luchador's replacement). Gates: period-law compliance
(no banned-genre model in the ped manifest — a name-list gate, control demonstrated), roster
licence completeness (every shipped ped has a credits row — red if any unverified remains),
plus everything standing. Budgets restated with the true numbers. qa.sh --strict green.
No tag.
Laws
Everything standing: no git commands from lanes (integrator commits at close) · measure the thing, not the note about the thing · fresh browser contexts · human-sized line on humanoid shots · every gate ships its control demonstrated · the R41 deny-list is permanent repo law.
Order
- Wave 1 (parallel): E-look (42.1, then 42.2's asset half) · E-cast (42.3) · B (42.5).
- Wave 2 (parallel): C (42.2's composition half) · D (42.4).
- Wave 3: F (42.6).
For John
Still parked for your playtest: the op-shop bin's contents · fog default-on vs mode · v9's third
layer · the audio listen pass (nobody in this loop has ears). F8 and ?bugtour=1 are live.
Filed to R43: the DJ control-node driver, the paired-conversation state machine (D's 8 social
clips are shipped and unused), and repainting the nine non-venue shop signage palettes (an art
call B deliberately left you).