PROCITY/docs/LANES/ROUND42_INSTRUCTIONS.md
m3ultra bb80ac122b 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>
2026-08-07 19:20:58 +10:00

129 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).