diff --git a/dancer/README.md b/dancer/README.md index 5f263bc8..0dce58c1 100644 --- a/dancer/README.md +++ b/dancer/README.md @@ -2,14 +2,14 @@ **Current producer mesh declaration:** `config.json` carries the owner-selected smear50 bottomwear as an explicit payload at parts 1.64.0, with `bottomwear` still in `turn.depths`. Its setup seam is zero. This is separate from the immutable accepted dance replay below. Producer reproduction and the remaining motion/preservation blockers are recorded under `provenance/smear50-producer.json`. -**Current accepted dance: owner v3, 2026-10-24.** Run `sh build-accepted-dance.sh` from this directory. The corpus stores the accepted rig/motion once and replays them with released core; no trial checkout, acquisition, generation, retarget or hand authoring is needed. [V3 source and commands](accepted-dance/v3/README.md) and `declared-repairs-v3.json` bind the exact native-frame target. The setup keeper below is separate base provenance. The corpus-only v3 default replay exited 0: all three compiled hashes and native 391-PNG concatenation `b75fc5696ac468f3ea9f58cc892d79389d66bf6ce7aeb31428f95350b9121029` match the accepted target exactly; gate 23 PASS / 0 FAIL / 13 SKIP / 14 excluded. [Actual v3 proof](accepted-dance/v3/reproduction-evidence.json). +**Current accepted dance: owner v4, 2026-10-25.** Run `sh build-accepted-dance.sh` from this directory. The owner's eye verdict was "v4 looks good, merge it" ([#73](https://github.com/rig-c/examples/issues/73)). V4 replays the mesh-only smear50 rig with released core; motion and every other rig subtree are unchanged from v3. [V4 source, commands and measured evidence](accepted-dance/v4/README.md). The setup producer is separate provenance. V3 remains immutable and explicitly selectable with `sh build-accepted-dance.sh --version v3 work/accepted-v3`; its versioned records describe its earlier acceptance/default, not the current selection. [Historical v3 proof](accepted-dance/v3/reproduction-evidence.json). | Dance version | Source date | Record / selection | | --- | --- | --- | | v1 | 2026-10-24 | Accepted R3/v5, [trial #52](https://github.com/rig-c/examples/pull/52) and [corpus #53](https://github.com/rig-c/examples/pull/53); original declarations/evidence retained; explicit `sh build-accepted-dance.sh --version v1 work/accepted-v1` | | v2 | 2026-10-24 | Intermediate generated holds and lifted-jacket strip, [#38](https://github.com/rig-c/examples/issues/38); recorded, not promoted | -| v3 | 2026-10-24 | Owner-named final, [#56](https://github.com/rig-c/examples/issues/56), [trial #57](https://github.com/rig-c/examples/pull/57); permanent hip waist, generated chest holds, compensated +17u chest lift and front-slot lowering; current default | -| v4 | 2026-10-25 | Explicit smear50 mesh-only candidate, [#71](https://github.com/rig-c/examples/issues/71); original eval 20/4, bottomwear folds 0; [source, reproduction and evidence](accepted-dance/v4/README.md); opt in with `sh build-accepted-dance.sh --version v4 work/accepted-v4`; owner eye acceptance pending | +| v3 | 2026-10-24 | Owner-named final, [#56](https://github.com/rig-c/examples/issues/56), [trial #57](https://github.com/rig-c/examples/pull/57); permanent hip waist, generated chest holds, compensated +17u chest lift and front-slot lowering; historical accepted version, explicitly selectable | +| v4 | 2026-10-25 | Owner-accepted smear50 mesh-only replay, [#71](https://github.com/rig-c/examples/issues/71); original eval 20/4, bottomwear folds 0; [source, reproduction and evidence](accepted-dance/v4/README.md); current default; explicit `sh build-accepted-dance.sh --version v4 work/accepted-v4` also remains available | Generated painting and saved rig inputs accepted on 2026-10-22. Origin: accepted dance-skirt v3/v5; original painting and See-through runs, 2026-10-13. @@ -38,7 +38,7 @@ Each input's origin is recorded in `source-manifest.json`. separate artifacts; config-only output is not claimed to recreate that rig. No reference video, audio, picture-in-picture, installed dependency tree or private raw -log is included. The current accepted dance payload is explicitly stored once under accepted-dance/v3/. Generation model names are source records; model binary hashes +log is included. The current accepted dance payload is stored under accepted-dance/v4/; immutable v3 remains beside it. Generation model names are source records; model binary hashes are not available in those records. ## Reproduce the current producer build diff --git a/dancer/accepted-dance/v4/README.md b/dancer/accepted-dance/v4/README.md index e3b23690..c909ed91 100644 --- a/dancer/accepted-dance/v4/README.md +++ b/dancer/accepted-dance/v4/README.md @@ -1,13 +1,16 @@ -# Mesh-only dance candidate v4 +# Current accepted dance: v4, 2026-10-25 V4 replaces only `skins.default.bottomwear.bottomwear` in immutable v3 with the owner-selected smear50 payload. Motion bytes, all other attachments, bones, constraints, slots and skeleton remain identical. `provenance.json` binds the -sources and payload. V3 remains the default pending owner video acceptance. +sources and payload. The owner accepted v4 after video review: "v4 looks good, +merge it" ([#73](https://github.com/rig-c/examples/issues/73)). V4 is now the +default; v3 remains unchanged and selectable by name. -From `dancer/`, select this replay explicitly: +From `dancer/`, run the default replay (or select v4 explicitly): ```sh +sh build-accepted-dance.sh sh build-accepted-dance.sh --version v4 work/accepted-v4 ``` @@ -54,4 +57,4 @@ SAR 1:1, 1,367,689 bytes. The stream and SHA-256 are in the video receipt. provide Pillow and explicit ffmpeg/ffprobe executables. Original PNGs were hash-checked and deleted after the sheet was read (391 per version). The small sheet, video receipt and native render receipts remain. Owner eye acceptance is -pending; this record does not promote v4 or change the default. +recorded in #73; the measured receipts preserve their pre-verdict context. diff --git a/dancer/source-manifest.json b/dancer/source-manifest.json index ff2de37a..a42db911 100644 --- a/dancer/source-manifest.json +++ b/dancer/source-manifest.json @@ -12,8 +12,8 @@ }, { "path": "README.md", - "bytes": 14903, - "sha256": "f72beb349cfdd29205d3905be64d7e7091f089f4cac494603df88846dbcb412c", + "bytes": 14919, + "sha256": "cd08bd000567b84b3c148ebb334cbd238048191603686b4d8289a56fde47ef91", "sourceSHA256": "4740c3709acf23594af59dec1b77bd6193a8c84b189544b56465824de1c82366", "origin": "Owner-accepted v3 transfer, 2026-10-24; trial PR57 source ee5ec1ad56b3d97e7af6fd85e1957cc0ff9ee7a4", "role": "Corpus-only v3 declaration, replay or measured evidence", @@ -383,12 +383,12 @@ }, { "path": "accepted-dance/v4/README.md", - "bytes": 3127, - "sha256": "fbe6a7dc50906ac56c95c2d4b8b50982244e61f2a1d63b623f56c2a5af913fe0", + "bytes": 3329, + "sha256": "35aa192aabb4e48206db7e20cfcd1cb91dda9069e0d6b3bca60aff59d89909eb", "sourceSHA256": "fbe6a7dc50906ac56c95c2d4b8b50982244e61f2a1d63b623f56c2a5af913fe0", "origin": "Issue #71 explicit producer and mesh-only v4 transfer, 2026-10-25", "role": "Corpus-owned reproducible source or measured evidence", - "contentIdentical": true + "contentIdentical": false }, { "path": "accepted-dance/v4/evidence/measurement.json", @@ -2281,7 +2281,7 @@ { "path": "tools/reproduce-accepted-dance.py", "bytes": 5936, - "sha256": "dd9f63a5aab31b8f6f604bffa06ed4c1d59381c56813edb49bd18b049eada0e7", + "sha256": "f82b9e908424e98e336fc1b72e3b12cbb61982b928e9242ffe165242292f34fb", "sourceSHA256": "53471aa6d0904b6efec0bc0f5495551b5a8eea809b33e2419d60633eca046cdd", "origin": "owner-accepted dance record and standalone replay,2026-10-24; trial PR52", "role": "declared hand corrections / standalone reproducibility input", diff --git a/dancer/tools/reproduce-accepted-dance.py b/dancer/tools/reproduce-accepted-dance.py index 924f180b..0e02e3dc 100644 --- a/dancer/tools/reproduce-accepted-dance.py +++ b/dancer/tools/reproduce-accepted-dance.py @@ -2,7 +2,7 @@ from pathlib import Path import argparse,hashlib,json,os,shutil,subprocess,sys source=Path(__file__).resolve().parent.parent -p=argparse.ArgumentParser();p.add_argument('--out',default='work/accepted-dance');p.add_argument('--version',choices=['v1','v3','v4'],default='v3');p.add_argument('--preflight',action='store_true');a=p.parse_args() +p=argparse.ArgumentParser();p.add_argument('--out',default='work/accepted-dance');p.add_argument('--version',choices=['v1','v3','v4'],default='v4');p.add_argument('--preflight',action='store_true');a=p.parse_args() if a.version=='v4': args=[sys.executable,str(source/'tools/reproduce-smear50.py'),'--version','v4','--out',a.out] if a.preflight:args.append('--preflight')