Lane E R36 w1: the 2 a.m. commits regularized — 9 assets (not 7) swept, Rokoko zone correction, depot 44→53

046668e + b339402 provenance'd: 4 dance clips are ROKOKO free mocap (263 pack,
Mixamo-skeleton export — the brief's Mixamo guess corrected by measurement; new
licence-table zone) and there are FIVE trellis DJ bodies, not three. All 9
sha1-identical to their 90sDJsim originals; chain recorded to source FBXs.

Structural: clips mesh-free 68n/198t/52-joint skin+IBM, 0 NaN, bind 65/66 (only
mixamorigReference unbound); bodies 3998-4000 tris, 1024 webp, no Draco, ped law
PASS. FLAG -> F w2: bodies' bind-pose ~0.99 units vs roster ~175 (cm) — the
figure-scale gate's expected number; rigs.js:163 absorbs it at spawn. No file
touched, nothing fixed in place.

Depot: published per R22 standing authorization via tailnet ingress,
_published.json 44->53, all 9 fetched back from the public depot byte-identical.
validate_manifest 0/0, publish --verify 53/53 live.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
m3ultra 2026-07-25 22:43:17 +10:00
parent 24183b1eb3
commit 83bce93f82
3 changed files with 116 additions and 1 deletions

View File

@ -1,5 +1,69 @@
# LANE E — cross-lane notes
## Round 36 wave 1 — the 2 a.m. commits, regularized ⟨v7.0⟩
**Scope: sweep `046668e` + `b339402` (July 20, landed outside the round system) into the pipeline —
provenance, licence table, structural checks, depot.** Everything below is measured off the committed
bytes, not the commit messages.
**1. THE COUNT: the brief said 7 assets; there are NINE.** `046668e` = 4 dance clips.
**`b339402` = FIVE trellis DJ bodies, not 3** (`dj_phrtt_01 · dj_techno_01 · woman_dj_01/02/03` — the
commit's own diffstat says five, and all five are in `PED_NAMES`). All 9 swept; the table rows say 9.
**2. THE ZONE CORRECTION — the dance clips are NOT Mixamo. They are ROKOKO.** The brief guessed the
Adobe Mixamo walk/idle/sit/look family; 90sDJsim's own clip baker (`tools/bake_clips.py`, the
`fbx_to_clip.py` port) names the true source: **Rokoko's free 263-asset motion-capture library**,
`Rokoko Studio (Mocap)/Dancing/{GentleSwayingDancing,NPC_DancingParty,DancingMedium,DancingwithDrink}_mixamo.fbx`
— the pack is on this box (`~/Documents/Rokoko_Free_Mocap_FBX_263`), the `_mixamo` suffix is **Rokoko's
own Mixamo-skeleton export** (which is why they bind like Mixamo clips without being Mixamo clips).
Licence verified at the source (rokoko.com, the pack's own download page): *"use them in any animation,
VFX, game, 3D art or other 3D project you want, **including for commercial use**"* — royalty-free, no
attribution demanded, motion only and mesh-free as shipped. **🟢 web-ok, but a NEW zone** — the licence
table gains a Rokoko row rather than quietly widening the Mixamo one. A licence spine that files a
Rokoko clip under Adobe's licence is the R25 spelling-fork one layer up: right answer, wrong authority.
**3. Clip structure — the sit.glb checklist, run; the shape DEVIATES from sit/look and I'm recording
it, not normalizing it.** All 4: **mesh-free (0 meshes)**, 1 animation, **198 tracks**, dangling skin
**with inverseBindMatrices present**, **0 NaN / 0 Inf** across every sampler accessor (156k268k floats
scanned per clip), durations 30.58 / 30.50 / 44.04 / 52.42 s (party/medium/drink/sway). But the Rokoko
export shape is **68 nodes, 52-joint skin** — not the Mixamo clips' 66 nodes / 195 tracks / 65-joint
skin. The bind census against a shipped ped skeleton (`man_casual_01`, 65 canonical bones): **65/66
distinct canonicalised track targets bind; the sole unbound is `mixamorigReference`** (Rokoko's root
node — `_canon` can't map it, three.js drops the orphan track silently; matches 90sDJsim's in-game
64/65-tracks measurement). Not a defect: both repos verified the dancers animating in-scene.
**4. Bodies — GLB law + ped law, PASS; one number F's gate must see.** Tris **4000 / 4000 / 3999 /
3999 / 3998** (≤5k ped law, the commit's "4k" claim is honest) · 1 material / 1 image / **tex 1024²
webp** (`EXT_texture_webp` — the whole existing roster carries the same extension, so no seam) · **no
Draco** · 65-joint mixamorig skin, IBM clean (0 NaN/1040). **⚠ → F (figure-scale gate, your wave 2):
the new bodies' bind-pose skeletons measure ~0.950.99 units tall; the pre-existing roster measures
~173180** (the cm-scale convention). In-game this is absorbed by design — `rigs.js:163` scales every
rig to target height (`inner.scale.setScalar(height/span)`), and both repos eyeballed them animating —
but they joined the roster ungated and the R36 brief already routes them through your figure-scale
gate: this is the number it should expect. FLAG, not a fix; the files are untouched.
**5. Provenance chain, proved not narrated.** All 9 procity GLBs are **sha1-identical to the 90sDJsim
originals** (`f8f0208` clips / `1906294` bodies, both July 20). Bodies' upstream: John's own DJ
characters (`grldj5/grldj2/djgrl3/techno_01/phrtt2`) — flux_local sheet → **TRELLIS.2 on-device mesh**
(the instrument-pipeline zone, CC0-equiv) → **Adobe Mixamo auto-rig** (full 65-bone) → MESHGOD
`scripts/fbx_to_ped.py` FBX→skinned-GLB + 4k decimate. Honest caveat: the source FBXs live in the
rigroom library (`~/meshgod-backups`, on **ultra** — not this box), so the mesh-generation step is
recorded from 90sDJsim's commit + both repos' `trellis'd DJ bodies` roster comments + MESHGOD's
rigroom autorig flow, while everything downstream of the FBX is verified from bytes here.
**6. Depot — published per standing practice, verified by fetching the bytes back (R28 discipline).**
Staged to `_normalized/` (the sit/look pattern), pushed via the passwordless tailnet ingress under
**John's R22 standing authorization for Lane E assets**: `_published.json` **44 → 53**, drift check
`✓ all 53 recorded assets live`. Then all 9 fetched back from the **public** depot
(`https://digalot.fyi/3god/a/<name>.glb`) — **HTTP 200, byte counts exact, sha1 identical to local,
9/9.** Gates re-run after the sweep: `validate_manifest` **OK — 0 errors, 0 warnings** (ped assets load
by convention, not the manifest — unchanged, same as walk/idle/sit/look) · `publish.py --verify` green.
**→ F (wave 2), the full flag list from this sweep:** (a) the figure-scale number in §4; (b) the
clips' 68-node/52-joint Rokoko shape in §3 — if your gate pins the sit.glb structural template,
these four are legitimately different; gate on binds (65/66) and NaN (0), not node count; (c) nothing
else — no defective file found, nothing held back.
## Round 28 — Spike 1: half of it shipped, half of it doesn't exist ⟨v5.1⟩
**1. `look.glb` — DONE, published, verified.** `Looking_Around.fbx` (675 KB, from the cached tailnet stash,
@ -809,6 +873,8 @@ loader wiring (`spawnRig`/fleet). Bench-sit loiter (Fable's stretch goal) reuses
| Ped clip **⟨v3.1⟩** | `sit.glb` (E R16; + pre-existing `walk`/`idle` from D/90sDJsim) | Adobe **Mixamo** `Sitting_Idle.fbx` | `fbx_to_clip.py` (Blender, mesh-strip) | 🟢 Mixamo royalty-free (motion only, mesh stripped) |
| Ped clip **⟨v5.1⟩** | `look.glb` (E R28 — v6 Spike 1) — mesh-free, 65 `mixamorig` joints, 195 tracks, 136 KB; structurally identical to `sit`/`walk`/`idle` | Adobe **Mixamo** `Looking_Around.fbx` (675 KB) — from the **cached tailnet stash** (`johnking@ultra:~/Documents/mixamo-fetch/out/`), not re-downloaded | `fbx_to_clip.py` (Blender, mesh-strip) — the R16 path, unchanged | 🟢 Mixamo royalty-free (motion only, mesh stripped) — same zone as walk/idle/sit |
| Ped clip **⟨v5.1⟩ NOT BUILT** | `lean.glb`**the source does not exist** (see R28 §1) | — | — | — |
| Ped dance clips **⟨v7.0⟩** | `dance_party` · `dance_medium` · `dance_drink` · `dance_sway` (4 — joined `046668e` outside the round system, swept R36 w1) — mesh-free, 68 nodes / 198 tracks / 52-joint dangling skin + IBM each, 0 NaN, 30.552.4 s | **Rokoko free motion-capture library** (263-asset pack, `~/Documents/Rokoko_Free_Mocap_FBX_263`, `Rokoko Studio (Mocap)/Dancing/*_mixamo.fbx` — Rokoko's own Mixamo-skeleton export). **NOT Mixamo** — R36 measured zone correction | 90sDJsim `tools/bake_clips.py` (the `fbx_to_clip.py` port, ACTIVE_ACTIONS fix) → sha1-identical copy into procity (`f8f0208` → `046668e`) | 🟢 **Rokoko royalty-free incl. commercial** ("use in any … 3D project … including for commercial use" — rokoko.com pack page); motion only, mesh-free |
| Ped bodies **⟨v7.0⟩** | `dj_phrtt_01` · `dj_techno_01` · `woman_dj_01/02/03` (**5, not the brief's 3** — joined `b339402` outside the round system, swept R36 w1) — 4000/4000/3999/3999/3998 tris, 1024² webp (`EXT_texture_webp`, roster-standard), no Draco, 65-joint mixamorig skin, IBM clean | John's own DJ characters (`grldj5/grldj2/djgrl3/techno_01/phrtt2`): `flux_local` sheet → **TRELLIS.2 on-device mesh** → Adobe **Mixamo auto-rig** (full 65-bone). Source FBXs in the rigroom library on ultra | MESHGOD `scripts/fbx_to_ped.py` (FBX→skinned GLB, 4k collapse-decimate, mixamorig + skin preserved) → sha1-identical copy (`1906294` → `b339402`) | 🟢 **CC0-equiv on-device mesh (the instrument-pipeline zone) + Mixamo auto-rig output (royalty-free)** · ⚠ figure-scale gate pending (R36 w2, F) |
| Town pack **⟨v5.0-FINAL⟩** | **21 real AU towns, all 8 states/territories****1196 shops** (299 heroes) + real street geometry (`roads[]`) | **OpenStreetMap** via Overpass API — bounded per-town bbox; raw shops+roads snapshots committed in `_raw/` | `build_towns.py`: fetch → dedupe/suburb-fill/parody → C's §6 class map → 3× texture cap (drops counted) → v2 cache + roads | 🟢 **ODbL 1.0** (© OSM contributors; `web/assets/towns/SOURCES.md` + `license`/`attribution` on every cache) |
| Godverse towns *(Lane G's, listed for completeness)* **⟨v5.0-FINAL⟩** | `newtown_godverse` (72 shops) · **`redhill_godverse` (37)** — the town whose record shop is THE shop. Both rostered in E's `index.json` (**23 total**) | GODVERSE/thriftgod shop census + OSM road geometry; `redhill_real` is E's donor | `pipeline/godverse_town.py` (**Lane G owns this provenance**) | 🟢 ODbL 1.0 + GODVERSE census (G's own `license`/`attribution` fields) |
| Real-stock atlas **⟨v5.0-FINAL⟩** | **1 crate, 120 items**, 2×2048² webp — Monster Robot Party (`3962749`) | **the real POS** (`recordgod`) — crate 550 "DEEP HOUSE"; covers are **the shop's own product shots**, cached by dealgod | `pipeline/godverse_stock.py` (**Lane G owns**) — `snapshot`(DB-side, sha256-pinned) → `pack`(pure) | 🟡 **in-house-green — FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE** · `sourcing:"real"` · ids `sku_<POS id>` |

View File

@ -481,3 +481,43 @@ helpers `organ()` + `grungechord()`). Audio pack **26 → 28 assets**. Old `pubr
ingress (this box is allowlisted): the 5 base names now serve **14k bytes** + the 5 `_hi` originals are
live. Verified on the public `digalot.fyi` depot (amp base **5.9 MB → 1.31 MB**, `_hi` 5.9 MB live).
`_published.json` **33 → 38**. `validate_manifest --depot` GREEN; Gate-3 provenance flag **cleared**.
## Round 36 wave 1 — the 2 a.m. ped assets, swept (provenance + depot regularization)
`046668e` (4 dance clips) + `b339402` (**5** trellis DJ bodies — the R36 brief said 3; the diffstat
says 5) landed July 20 outside the round system. R36 wave 1 swept all **9** into the pipeline; the
files themselves are untouched (byte-identical to both commits and to their 90sDJsim originals).
**Dance clips — zone corrected by measurement: ROKOKO, not Mixamo.** Source = Rokoko's free 263-asset
mocap library (`~/Documents/Rokoko_Free_Mocap_FBX_263`, `Rokoko Studio (Mocap)/Dancing/*_mixamo.fbx`,
Rokoko's own Mixamo-skeleton export), baked mesh-free by 90sDJsim `tools/bake_clips.py` (the
`fbx_to_clip.py` port). Licence per the pack's rokoko.com page: royalty-free including commercial use.
Structure (all 4): 0 meshes · 68 nodes · 198 tracks · 52-joint dangling skin with IBM · 0 NaN/Inf ·
binds 65/66 canonical targets on a shipped ped skeleton (only `mixamorigReference` unbound — dropped
silently by three.js; matches 90sDJsim's in-game 64/65). Durations 30.58/30.50/44.04/52.42 s.
| clip | bytes | sha1 |
|---|---|---|
| dance_party.glb | 688 220 | 38587f7b0cf4aaf199f55677a139db087acdd80d |
| dance_medium.glb | 1 028 164 | 4a30fb62163b6e5137c8fb513dfc70d5f6f322b4 |
| dance_drink.glb | 962 464 | d818ddb0868e19c87a435b26c8b6ffab14832be4 |
| dance_sway.glb | 1 132 560 | 8af9112538e5219fc6a7b6cb36bf1e87e5ac24ff |
**DJ bodies — on-device TRELLIS.2 mesh (CC0-equiv, the instrument zone) + Adobe Mixamo auto-rig,
converted/decimated by MESHGOD `scripts/fbx_to_ped.py`.** GLB law: no Draco, 1024² webp
(`EXT_texture_webp` — roster-standard), 1 mtl/1 img, 65-joint mixamorig skin, IBM 0 NaN. Ped law ≤5k:
PASS. ⚠ bind-pose skeleton spans ~0.950.99 units vs the existing roster's ~173180 (cm convention) —
absorbed at spawn (`rigs.js:163` height/span normalize), flagged to F's R36-w2 figure-scale gate.
| body | tris | bytes | sha1 |
|---|---|---|---|
| dj_phrtt_01.glb | 4 000 | 712 792 | 21cf0db5a291f88f7fd9b9cfdb0eac8413c7cf2e |
| dj_techno_01.glb | 4 000 | 702 760 | 4cb6bf44a752f921e14d1355f9944b7859c92386 |
| woman_dj_01.glb | 3 999 | 731 440 | 7d364dfc7e7659c0b15bead82a5d8bbd285e5286 |
| woman_dj_02.glb | 3 999 | 715 116 | 2413ededff1a7684999d6fd6fd58417b77f25c10 |
| woman_dj_03.glb | 3 998 | 718 128 | ec39692fa8019645bd200aab9eb6d1078535189c |
**Depot:** staged to `_normalized/` (the sit/look practice) and published via the passwordless tailnet
ingress under John's R22 standing authorization — `_published.json` **44 → 53**, drift check green, and
all 9 fetched back from the public depot (`digalot.fyi/3god/a/`) sha1-identical to local. Gates after
the sweep: `validate_manifest` 0 errors / 0 warnings · `publish.py --verify` ✓ 53/53 live.

View File

@ -1,4 +1,10 @@
[
"dance_drink.glb",
"dance_medium.glb",
"dance_party.glb",
"dance_sway.glb",
"dj_phrtt_01.glb",
"dj_techno_01.glb",
"look.glb",
"procity_fit_arcade_cabinet_01.glb",
"procity_fit_bass_guitar_01.glb",
@ -42,5 +48,8 @@
"procity_street_park_bench_01.glb",
"procity_street_streetlight_01.glb",
"sit.glb",
"vintage-cash-register.glb"
"vintage-cash-register.glb",
"woman_dj_01.glb",
"woman_dj_02.glb",
"woman_dj_03.glb"
]