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>
This commit is contained in:
parent
c3384b92c9
commit
f2ffe00ad3
160
docs/LANES/ROUND41_INSTRUCTIONS.md
Normal file
160
docs/LANES/ROUND41_INSTRUCTIONS.md
Normal file
@ -0,0 +1,160 @@
|
||||
# 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 1990–99 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 **~40–48 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 (8–10 distinct)** — `Breathing_Idle`, `Big_Yawn_While_Standing`, `Sit_With_Fidgeting_Feet`,
|
||||
cocky/hip-lean variants: the clone-army killer.
|
||||
- **Browse/shop (6–8)** — `Examine_Forwards`/`_Backwards`, `Holding_An_Object_Idle`/
|
||||
`_While_Walking`/`_While_Turning_Left`/`_Right`, `Closing_Cabinet_Door`, `Carrying_A_Box`.
|
||||
- **Sit/lean (6–8)** — `Little_Girl_Sitting_On_A_Bench_Swinging_Her_Legs`,
|
||||
`Leaning_Against_A_Wall_With_Various_Postures`, `Legs_Crossed_Leaning_On_Object`.
|
||||
- **Social (6–8)** — `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 (4–6)** — walk variants + the `45/90/135/180_Degree_{Left,Right}_Turn` set.
|
||||
- **Venue (4–6)** — 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 1–6 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.
|
||||
Loading…
Reference in New Issue
Block a user