PROCITY/docs/V6_LIVING_STREET.md

99 lines
6.9 KiB
Markdown
Raw Permalink 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 v6 — THE LIVING STREET (epoch charter — DRAFT for John)
*Fable (m3), 2026-07-17. John's idea, from a browser walk down the strip: the crowd is
believable but narrow — one walk, one idle, one sit, everyone jaywalks, nobody owns the street.
Status: DRAFT — v5.0 (THE LIVE CRATE) is still closing; this charters the v6 conversation the
retro was already going to open. Applies to PROCITY first and 90sDJsim by depot (the Lane-G
two-studio pattern, proven).*
## The vision
The street stops being 24 clones who walk anywhere and becomes a town of *people*: personas
with their own gaits, errands and manners; footpaths used like footpaths; the odd car easing
down the main street; a busker outside the record shop doing a move John actually performed in
his actual shop. **Every asset generated, rigged, animated and shipped on our own machines —
zero cloud, zero subscriptions, everything owned.**
## The stack (measured today, not aspirational)
| piece | state | what it gives us |
|---|---|---|
| **mixamo-fetch** (tailnet source box) | **34 clips cached, only 3 wired** (walk/idle/sit) | the free stash, already in hand — lean, look-around, phone, talk, carry… |
| **MOCAPGOD** (ultra) | Lanes 0/A/B **DONE**: phone video → HSMR/SKEL → BVH, MPS-verified, ~1.6× realtime, mixamorig name-map shipped | film John → skeleton motion. Lanes C (retarget) + D (clip factory) remain |
| **MIRPAMO** (both Macs) | repo live: **a local offline Mixamo** — autorig (landmark → mixamorig fit → bone-heat weights) + retarget → `character@clip.glb` | new rigged BODIES from any mesh + clip retargeting, no Adobe |
| **MODELBEAST** (m3ultra :8777) | flux_local (Apache, free) · **hunyuan3d_mlx local** · trellis_mac · sf3d · mflux_image_edit · seedvr2 | concept art → 3D meshes → texture/outfit variants, $0 |
| **3GOD depot** | live, no-Draco law, two-studio consumption proven (Lane G) | one publish, every game (PROCITY · 90sDJsim · festifun) consumes |
| **PROCITY runtime** | ped fleet (19 rigged, `_canon` mixamorig), sit.glb clip pattern proven (R16), persona hooks half-exist (loiter/dance/bench/patronage) | the body the assets walk into |
| **A's street exports** | `roadWidth/vergeBand/poleOffset` per edge — **shipped R15, barely consumed** | the footpath law is one D constraint away, not a new system |
**MOCAPGOD Lane C and MIRPAMO's retarget are the same machinery** — an integration decision
for Fable-ultra before either builds it twice.
## THE SPIKES (do these FIRST — cheap, each kills the biggest unknown in one thread)
The pipeline test John asked for, as three end-to-end spikes. No epoch work until these run.
1. **SPIKE 1 — the free stash (motion, zero generation).** ~~Wire 2 of the 34 cached clips
(`lean`, `look-around`)~~ **AMENDED R28: `lean` does not exist in the stash** — E measured
the 34 instead of trusting the wishlist (the brief's premise was half wrong). `look.glb` is
shipped + depot-verified (R28); D's wiring closes in R29 wave 0. The lean moves to Spike
2's shot list — John films a wall-lean. *Proves:* the clip bank expands cheaply, and
wishlists are not inventories. Risk: ~zero (confirmed).
2. **SPIKE 2 — the full mocap loop (the one that matters).** John films ONE move on a phone —
**the crate-riffle, at Monster Robot** (the exact clip D's notes flagged "bespoke, won't be
on Mixamo" two epochs ago) → MOCAPGOD ingest → BVH → retarget (MOCAPGOD-C or MIRPAMO —
the integration call) → clip GLB → depot → **a ped riffles a crate on Musgrave Road,
in-game**. *Proves:* film-yourself-to-NPC works end to end. Needs: MOCAPGOD Lane C/D
sessions on ultra + John's test vids in the queue (it's empty — that's the ask).
3. **SPIKE 3 — a generated body (the stretch).** flux_local concept ("older shopper with
trolley, 90s AU high street") → hunyuan3d_mlx mesh → **MIRPAMO autorig** → walk retarget →
in-game past the no-giants gate. *Proves (or honestly fails):* autorig quality on generated
meshes — the least-proven link, which is exactly why it's a spike and not a plan line.
## The epoch tracks (after v5.0 tags + the retro + the spikes report)
1. **CLIPS** — wire the 34; fetch more free categories; the MOCAPGOD bespoke set (riffle,
till-operation, busker strum, lean-on-wall, trolley-push, phone-check). Licence rail: the
HSMR/SKEL NC-risk (MOCAPGOD Decision 1) means mocap-derived clips stay **in-house** until
reviewed — same discipline as the item photos, same flag line.
2. **PERSONAS (D)** — a seeded archetype layer per citizen: {body variant, clip set, speed
band, loiter/dance/bench biases, errand routes (pick a shop, walk there, dwell, move on —
patronage formalized into visible purpose)}. The persona is DATA riding the existing sim;
determinism per citizen id; identity signatures unchanged.
3. **STREET DISCIPLINE (D + B + A)** — the footpath law: peds walk the `vergeBand`, cross at
nodes (zebra-preferred on real roads — B's crossings already render); **occasional cars**:
seeded parked cars (instanced, furniture pattern) + 13 movers on the mains (the tram
pattern: deterministic path-followers, ~2 draws each, stated budgets). v0 non-interacting:
cars don't yield, peds don't jaywalk — both true by construction because each stays in its
band.
4. **BODIES (E + MIRPAMO)** — outfit/texture variety on the existing fleet first (
mflux_image_edit reskins — free variety, zero rig risk), MIRPAMO-autorigged newcomers
second, per Spike 3's verdict.
## Laws (inherited + this epoch's)
Everything behind **`?streetlife=1`** (cars possibly split as `?traffic=1` — F's call at
wiring), default-OFF until soaked, `?classic=1` byte-identical as ever · budgets stated per
system (cars and new rigs are draw/tri line items) · determinism from citySeed + citizen id ·
asset law (every new clip/body rides the manifest + depot + `?noassets` fail-soft) · licence
law (LICENSES.md per clip source: Mixamo royalty-free / MOCAPGOD in-house-NC-flagged /
generated CC0-equiv) · vacuous-gate law (a persona gate proves a persona DID something, not
that one exists) · measurement over brief.
## Sequencing (the honest order)
1. **Now:** v5.0 closes per ROUND27 — nothing here touches it.
2. **In parallel, zero collision (different repos):** MOCAPGOD Lanes C/D run on ultra ·
John drops 23 test vids in the MOCAPGOD queue · a MIRPAMO autorig smoke on one
hunyuan3d_mlx mesh.
3. **After the v5 retro:** the spikes run as v6 wave 1; this charter ratifies (or amends)
on their results; the tracks become rounds.
## John — the asks that unblock the spikes
1. **Film the test vids** (Spike 2 blocks on an empty MOCAPGOD queue): the capture protocol
is `docs/CAPTURE.md` in MOCAPGOD — the crate-riffle plus any two more moves you fancy.
2. **The MOCAPGOD C-vs-MIRPAMO integration call** is Fable-ultra's to make — nudge that
session when you're next on the M1.
3. Nothing else — the free stash (Spike 1) needs no new material at all.