Fable (integrator): ROUND 42 OPEN — THE LOOK

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>
This commit is contained in:
m3ultra 2026-08-07 19:20:58 +10:00
parent d14cf7fa6e
commit bb80ac122b

View File

@ -0,0 +1,128 @@
# 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)
1. **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.
2. **The DJ booth reads as a plain black box.** `docs/shots/laneF_r41/record_dj_booth.jpg` — the
rigged Technics with working `Platter_SPIN`/`Fader_PITCH` nodes are in there, and at normal
viewing distance you cannot tell it is a turntable setup. Right result, wrong read.
3. **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.js` puts 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.ready` in `buildings.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
1. **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.
2. **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).
3. **Every ped that ships gets a `credits.json` row** — name, source, licence, attribution-if-any.
B built the surface in R41; this is what it was for.
4. **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.
5. **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)*
1. **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.**
2. **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,1323,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.
3. **Fill `credits.json`** for the whole roster (ruling 3), replacing B's amber `unverified` rows
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
1. **Wave 1 (parallel):** E-look (42.1, then 42.2's asset half) · E-cast (42.3) · B (42.5).
2. **Wave 2 (parallel):** C (42.2's composition half) · D (42.4).
3. **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).