PROCITY/docs/LANES/ROUND41_INSTRUCTIONS.md
m3ultra f2ffe00ad3 Fable (integrator): ROUND 41 OPEN — THE LIBRARY LANDS
Surveyed the fleet's asset libraries at John's ask. The finding that defines the round:
PROCITY ships EIGHT animation clips; ultra's MOTIONLIB green zone holds 6,866 licence-clean
ones, MIRPAMO is a working local retargeter, and the skeletons match 1:1 (66 mixamorig nodes
both sides). The Mixamo bank alone: 237 idle variants, 270 walks, 140 sits, 163 greets,
113 dances, 112 push/pull/pick/reach. Every non-walking citizen in the game plays the same idle.
Plus 45 record-shop fittings that pass the house law untouched, 60 DJ-gear GLBs (45 control-
rigged), 48 pub props needing 40x decimation, and 441 hand-prompted 1990-99 Australian
garment PNGs from wardrobegod.

Six binding rulings. The first is a safety one: 3,077 CC BY-NC (never-shippable) Bandai clips
sit on m3ultra in a neutrally-named path outside the red/ zone system - one mirpamo batch away
from a shipped build. E-motion zones them BEFORE any retarget. R41 clips are Mixamo-only (no
attribution debt); a deny-list (nsfw bodies, IP rips, unread vendor packs) enters repo law;
the street budget is spent at 291/300 so every asset lands interior or zero-draw; never run
gltf-transform optimize on the DJ gear (it deletes the Fader_CROSS node contract); clips ship
grouped in <=6 GLBs, not 40 files.

Ledger: E-motion 40-48 retargeted clips + motion_manifest; E-props 3dstore/dj-gear/pub props
normalized + published; D per-citizen deterministic idles + a real BROWSE state + sit/lean;
C the fittings into 12 shop types + wardrobe PNGs as op-shop rack art; B the credits surface
(unlocks 4,472 CC-BY clips for R42) + A's filed D3 venue signage; F gates, proof shots, close.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-07 12:41:56 +10:00

161 lines
11 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 41 instructions (from Fable, integrator)
Date: 2026-08-07 · **R40 closed green** (12/12 gates, `c3384b9` pushed, goldens `0x5f76e76`).
**Theme: THE LIBRARY LANDS.** John: *"we have heaps new furniture clothes ppl animations
heapppppppps animations in our library — take a look and mega update our game."* Fable surveyed
the fleet. The survey is the ground truth for this round; its numbers are quoted below and must be
re-measured, not re-quoted, before anyone acts on them.
## The finding that defines the round
**PROCITY ships 8 animation clips.** `idle · walk · sit · look · dance_drink · dance_medium ·
dance_party · dance_sway` — skeleton-only GLBs, 66 mixamorig nodes, loaded by
`rigs.js:69 loadPedFleet()`.
**The fleet holds 6,866 licence-clean clips** in ultra's `~/Documents/MOTIONLIB/green/`
(2,394 Mixamo FBX · 2,548 CMU BVH · 1,620 100STYLE BVH · 304 ACCAD BVH), and
**`~/Documents/MIRPAMO/` is a working local Mixamo** (`./bin/mirpamo batch <rig>.glb <clipdir> -o
out/`, headless Blender, no cloud). **The skeletons match 1:1** — 66 mixamorig nodes both sides;
retarget output is byte-shaped like the existing `idle.glb`. The Mixamo bank alone holds **237
idle variants · 270 walks · 140 sits · 163 greet/point/wave · 113 dances · 112 push/pull/pick/reach
· 63 carry**. Every non-walking citizen in the game today plays the same idle.
Plus: **45 record-shop fittings that pass the house law untouched** (`~/Documents/3dstore/`,
~300 tris median, metre-correct), **60 DJ-gear GLBs, 45 of them control-rigged** (working
`Fader_CROSS` / `Platter_SPIN` / `Btn_STARTSTOP` node contracts), **48 pub/venue props** at 200k
tris needing a 40× decimation, and **441 hand-prompted 199099 Australian garment PNGs** from
wardrobegod (174 tops / 119 bottoms / 69 shoes / 66 hats / 12 bags).
## INTEGRATOR RULINGS — binding, no lane may reinterpret them
1. **🔴 THE BANDAI HAZARD IS CLOSED BEFORE ANY RETARGET RUNS.** m3ultra holds 3,077 **CC BY-NC**
(non-commercial, never shippable) Bandai-Namco BVH at
`~/Documents/MIRPAMO/library/downloads/bandai_namco_1/` — in a neutrally-named path, outside
ultra's `red/` zone system, with nothing in the filename marking it. It is **one
`mirpamo batch` away from a shipped build.** Lane E-motion's FIRST action, before touching any
clip: zone it (rename with the `_NC-research` suffix per the house rule, or delete in favour of
ultra's correctly-zoned `red/bandai/`) and reconcile `MIRPAMO/library/manifest.json`'s wrong
`CC-BY-NC-ND` label against ultra's corrected `SOURCES.md`. Report it done with the paths.
2. **R41 clips come from the MIXAMO bank only.** Mixamo is usable inside games with **no
attribution requirement** — the only rule is never redistributing clip packs, and retargeted
per-character clips inside the game are explicitly fine. CMU/100STYLE/ACCAD are all attribution-
bearing; they are a later round's work, after the credits surface exists (41.5). One licence
regime this round.
3. **A DENY-LIST enters the repo law.** These never enter `web/` under any circumstance:
`character_kit_modular/exports/bodies/**` (44 bodies, 30 named `-nsfw`, 465k tris each, broken
0×0×0 bboxes) · any `anatomy/` dir · `elsa_coronation_hair_wig_kh3.glb` (Disney/Square Enix IP
rip) · `daphne_sexy.glb` (unverified rip) · `~/Documents/mocaponline/**` (vendor demo packs,
licence unread, includes Epic's EULA-bound `SK_Mannequin.fbx`). No wildcard copies from any
library — every asset enters by name.
4. **THE STREET BUDGET IS SPENT: 291/300 at night, nine draws.** No lane adds a street-side prop
this round. Every asset in R41 lands **interior** (margin 162) or is **zero-draw** (clips are
skeleton-only, 0 tris). Any street-side proposal gets measured and filed to R42, not shipped.
5. **Never run `gltf-transform optimize` on the DJ gear.** It collapsed a 696-node mixer to 25
nodes and deleted `Fader_CROSS`. Decimate only, and verify the node contract survives.
6. **Clip delivery is GROUPED, not 40 files.** A GLB holds many animations; boot fetch count is a
budget. Deliver **≤6 grouped clip GLBs by category** with a documented index, not one file per
clip.
## The ledger
### 41.1 — THE MOTION LIBRARY *(Lane E, motion half — the critical path, starts first)*
Ruling 1 first, then: pick and retarget **~4048 clips** from `green/mixamo_full` through MIRPAMO
onto PROCITY's ped rig. Pick for what this game actually is — a shopping town with shops, benches,
a pub, and citizens who currently only walk and stand:
- **Idles (810 distinct)** — `Breathing_Idle`, `Big_Yawn_While_Standing`, `Sit_With_Fidgeting_Feet`,
cocky/hip-lean variants: the clone-army killer.
- **Browse/shop (68)** — `Examine_Forwards`/`_Backwards`, `Holding_An_Object_Idle`/
`_While_Walking`/`_While_Turning_Left`/`_Right`, `Closing_Cabinet_Door`, `Carrying_A_Box`.
- **Sit/lean (68)** — `Little_Girl_Sitting_On_A_Bench_Swinging_Her_Legs`,
`Leaning_Against_A_Wall_With_Various_Postures`, `Legs_Crossed_Leaning_On_Object`.
- **Social (68)** — `General_Conversation`, `Having_A_Chat_At_The_Watercooler`,
`Greeting_While_Standing`, `2_People_Shaking_Hands_Part_1/2` (a matched pair — keep them paired),
`Nodding_Head_Yes`, `Shaking_Head_No_Dismissively`.
- **Locomotion (46)** — walk variants + the `45/90/135/180_Degree_{Left,Right}_Turn` set.
- **Venue (46)** — better dances, clapping standing/seated, cheering.
Deliver: ≤6 grouped GLBs under `web/models/clips/`, a **new** `web/assets/motion_manifest.json`
(new file — no race with props' manifest.json) indexing clip→group→category→duration→loopable,
provenance in AUDIT.md, and MIRPAMO's `make smoke` green. Watch the documented gotcha: Blender 5
FBX export flattens slotted actions — feed GLB/BVH or use `strip_skin.py`.
### 41.2 — THE FITTINGS *(Lane E, props half — parallel with 41.1, disjoint files)*
1. **`~/Documents/3dstore/` — 45 of 46 GLB pass the house law as-is** (~300 tris median, metre
scale, no Draco, no textures). Re-verify with `glb_stat.py`, bring them in by name, manifest
them with footprints for C. Reject `3dmrp.glb` (499,948 tris). **This is the round's cheapest
win — do it first.**
2. **DJ gear (ultra `3D=models/dj-gear/`, 60 GLB)** — 18 already ≤5k; normalize the rest
(decimate only, ruling 5), **verify the `Fader_*`/`Platter_SPIN`/`Btn_STARTSTOP` node contract
survives on every rigged model** and state the check. Manifest them with their control-node
names so C/D can drive them later.
3. **Pub/venue props (`~/Documents/not-tonight/art_incoming/`, 48 GLB @ ~200k tris)** — 40×
decimation through `normalize.py`. Content is exactly pub/cafe/milkbar (pokie, jukebox, keg,
bain-marie, pie warmer, banquettes, ashtrays, sandwich board). Skip the 6 `staff*.glb` — they
are 200k-tri statues with no skin, no anims, no materials.
Publish to the depot over the tailnet path, sha1-verify, run the R40 transmission gate over every
new asset (it now scans all four surfaces — prove it stays green).
### 41.3 — THE CITIZENS COME ALIVE *(Lane D — after 41.1 lands)*
Wire the clip library into the fleet. `rigs.js loadPedFleet()` and the sim's state machine are
yours.
- **Per-citizen deterministic idle** from the new pool — seeded by identity, so the same citizen
always stands the same way and the street stops looking like one person copy-pasted.
- **A real BROWSE state** for the interior browsers (they currently stand): examine/hold/reach at
C's browse points, seeded per browse point.
- **Sit and lean** on the street furniture that already exists (benches, shopfronts) — this is
where sit/lean clips earn their keep; keep it zero-draw (a seated ped is a ped that was already
drawn).
- Keep memory bounded and **state the numbers**: clips resident, fetch count at boot, heap delta.
Determinism law holds — same seed, same crowd, same postures, byte-equal across two runs.
- Everything gated so `?noassets=1` still runs (the 8-clip path must survive as the fallback).
### 41.4 — THE SHOPS GET THEIR STOCK *(Lane C — after 41.2 lands)*
Place the new fittings. Interior margin is 162 draws — spend it deliberately and report the worst
room after every change.
- **Record/opshop/book/video/pawn/stall**: the `3dstore` tubs, crates, wooden racks, stackable
`mos-japhop` units, library trolley, `vinylsleeve_v5`, window booth.
- **Pub/cafe/milkbar**: the decimated venue props — this is the set that finally furnishes the pub.
- **Record shop + gig venue**: the DJ gear (turntables, mixers, the 808/SP-1200/MPC) as hero props.
- **The wardrobe PNGs** (441 garment layers, `90sDJsim/web/world/media/doll/`): route R5 — use them
as op-shop rack textures and shelf stock art at **zero geometry cost**. Period-correct Australian
1990s naming is the whole point; keep the names visible where the game shows item text.
- Every recipe change re-runs your sweep + soak: 0 throws, 0 path-fails, 0 leaks, draws ≤350.
### 41.5 — THE CREDITS SURFACE *(Lane B — small, and it unlocks future rounds)*
PROCITY has no attribution surface. R41 ships Mixamo only (no attribution debt, ruling 2) — but
CMU/100STYLE/ACCAD are 4,472 more clips waiting behind exactly this. Build it now: a credits panel
(the flag/selector UI idiom you already own), fed by a data file lanes append to, listing asset
sources and their licences. Zero draws in-game, classic-gated by construction. Then R42 can spend
the CC-BY libraries the day it wants them.
**Also yours, filed from R40:** A's D3 — `SHOP_REGISTRY` is missing pub/band_room/rsl, so 81 venue
lots corpus-wide wear op-shop signage (`buildings.js:465`). Cosmetic, measured, and it will show in
every pub shot this round takes.
### 41.6 — INTEGRATION AND PROOF *(Lane F — last)*
Wire what needs wiring, gate what needs gating, and **prove the round with pictures** — this is the
first round in a long time whose whole point is visible. New/extended gates: clip-manifest
integrity (every referenced clip resolves), citizen-posture determinism (two runs byte-equal),
interior draw budget with the new fittings, `?noassets=1` still clean, deny-list compliance (no
banned path ever referenced from `web/`). Re-shoot the tour: a busy street with citizens in
*different* postures, a browsing interior, the furnished pub, the record shop with real gear.
`qa.sh --strict` green, budgets restated, goldens unmoved. **No tag** — John's playtest session
rules on the epoch.
## Laws
Everything standing, plus rulings 16 above. Highlights: measure the thing, not the note about the
thing · pathspec-atomic commits, **no git commands from lanes** — the integrator commits at close ·
fresh browser contexts · human-sized line on humanoid shots · every gate ships its control
demonstrated · budgets are numbers.
## Order
1. **Wave 1 (parallel):** E-motion (41.1, ruling 1 first) · E-props (41.2) · B (41.5).
2. **Wave 2 (parallel, after their inputs land):** D (41.3, needs 41.1) · C (41.4, needs 41.2).
3. **Wave 3:** F (41.6).
## For John
Nothing blocks this round. Still parked for the playtest session: 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).
The F8 notepad and `?bugtour=1` are live and waiting.