REPOSITORY SOURCE

skeletal-acceptance.json

docs/evidence/skeletal-acceptance.json

1{
2  "format": 1,
3  "recordedAt": "2026-10-25T00:41:29.265751+00:00",
4  "source": "aabb2674d8228e11bb6106923d5c861f6433e679",
5  "engine": "0.1.0",
6  "profiles": {
7    "artifact": "glb-skinned.1",
8    "format": 6,
9    "compiler": "glb-compiler.6",
10    "isolatedJob": "asset-job.6",
11    "presentation": 4,
12    "shader": "forward-shaders.6"
13  },
14  "headless": {
15    "command": "npm test",
16    "tests": 272,
17    "pass": 272,
18    "fail": 0,
19    "skipped": 0,
20    "log": "skeletal-headless.tap",
21    "provenance": "Full suite after final catalog resource budgeting, authored rest-palette projection and exact world palette-capacity test. Subsequent edits before the source commit were documentation/evidence only."
22  },
23  "browser": {
24    "command": "npm run test:browser",
25    "stats": {
26      "startTime": "2026-10-25T00:34:48.249Z",
27      "duration": 335217.43,
28      "expected": 26,
29      "skipped": 0,
30      "unexpected": 0,
31      "flaky": 0
32    },
33    "report": "skeletal-browser.json",
34    "log": "skeletal-browser.log",
35    "capabilities": "skeletal-capabilities.json",
36    "environment": {
37      "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/141.0.7390.37 Safari/537.36",
38      "secureContext": true,
39      "hardwareConcurrency": 16,
40      "devicePixelRatio": 1
41    },
42    "configuration": "CI=1, Chromium 141 headless, software WebGPU, 960x640, one worker, isolated temporary production client and room storage",
43    "provenance": "Complete 26-scenario run with final skeletal GPU implementation and shadow controls, before final catalog budgeting, authored rest-palette projection and world palette-capacity test. Build metadata records previous HEAD and dirty=true."
44  },
45  "finalSourceFollowup": {
46    "command": "npm run test:browser -- tests/browser/probe.spec.ts --grep 'owned renderer'",
47    "stats": {
48      "startTime": "2026-10-25T00:40:39.004Z",
49      "duration": 38720.721999999994,
50      "expected": 1,
51      "skipped": 0,
52      "unexpected": 0,
53      "flaky": 0
54    },
55    "report": "skeletal-final-browser.json",
56    "log": "skeletal-final-browser.log",
57    "capabilities": "skeletal-final-capabilities.json",
58    "build": {
59      "revision": "aabb2674d8228e11bb6106923d5c861f6433e679",
60      "dirty": true,
61      "builtAt": "2026-10-25T00:40:39.447Z"
62    },
63    "provenance": "Focused production-browser renderer/worker/device-loss/restart scenario passes against committed source, including two complete Observatory runs. Only untracked acceptance evidence existed at build time; build dirty flag is retained without claiming a pristine checkout."
64  },
65  "skeletal": {
66    "fixture": "model-skeleton.1",
67    "hash": "a36c36c9116941d40059d6d4db3ce0875dccb4ea1c0569dd201bcdf5dcf759a5",
68    "browserCompilerMatch": true,
69    "referenceFrames": 9,
70    "maxReferenceError": 0,
71    "changedFrame": true,
72    "loopRestored": true,
73    "sharedGeometryPoses": true,
74    "cullingRestored": true,
75    "rejectedPreservedFrame": true,
76    "recoveredFrame": true,
77    "shadowControls": 2,
78    "shadowDifferencePixels": [
79      6890,
80      5097
81    ],
82    "sampledFrames": 12,
83    "bytes": 264564,
84    "buffers": 34,
85    "textures": 3,
86    "disposed": {
87      "buffers": 0,
88      "textures": 0,
89      "instances": 0
90    }
91  },
92  "validation": {
93    "typeAndImports": "Passed; 60 package source files.",
94    "worldFingerprints": {
95      "darkwind": "e900a87c1854ad85a8bdc79953bd3e4d4b64f7b15a1451da8209609c2b504888",
96      "engine-zoo": "9facac25f35d9a16926052dbcc41fa12d5164ae891528e3a5ff62010c9f5a9cb"
97    },
98    "portableCompiler": "Packaged Node compiler imports the skeletal fixture outside the checkout; source/reference fixtures reproduce and the browser compiler matches the pinned identity.",
99    "authoredWorld": "Rest palettes survive canonical ECS presentation and checkpoint reconstruction. Exactly 4096 matrices compile; the next placement fails before publication.",
100    "diffWhitespace": "Passed.",
101    "container": "Docker smoke includes skinned-panel; remote acceptance of this new source is pending."
102  },
103  "priorCi": "animation-clips-ci.json",
104  "visuals": [
105    "engine-observatory-skeletal.png",
106    "engine-observatory-narrow-skeletal.png"
107  ],
108  "limits": [
109    "Actor animation state, shared/replayed clip semantics and original playable characters are not yet integrated.",
110    "Four influences per vertex, 64 joints per skin, 16 skins/256 declared joints per model, and 4096 palette matrices per presentation scene. Mixed joint orientations and changing prepared orientation are unsupported.",
111    "Some admitted curves may interpolate to singular or out-of-budget poses; those samples fail before publication. Universal curve renderability is not claimed.",
112    "Collision remains authored rest geometry. Blending, morph targets and attachment APIs remain open.",
113    "The skeletal shadow comparisons use opaque normal-mapped geometry. Existing MASK fragment behavior is reused; a separate skinned MASK reference fixture is not part of this acceptance.",
114    "Software WebGPU results do not establish physical GPU/mobile performance.",
115    "Earlier remote device-loss-delivery and graphics-capture timeouts remain unresolved. New local passes do not prove their root cause fixed.",
116    "No beta rebuild, main merge/deployment, or full engine milestone completion."
117  ]
118}
119