create-aura3d 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/dist/cli.js +10 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +11 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/showcase-spec-artifacts.d.ts +104 -0
  8. package/dist/showcase-spec-artifacts.d.ts.map +1 -0
  9. package/dist/showcase-spec-artifacts.js +142 -0
  10. package/dist/showcase-spec-artifacts.js.map +1 -0
  11. package/dist/showcase-spec-category-plan.d.ts +15 -0
  12. package/dist/showcase-spec-category-plan.d.ts.map +1 -0
  13. package/dist/showcase-spec-category-plan.js +45 -0
  14. package/dist/showcase-spec-category-plan.js.map +1 -0
  15. package/dist/showcase-spec-compiler.d.ts +5 -0
  16. package/dist/showcase-spec-compiler.d.ts.map +1 -0
  17. package/dist/showcase-spec-compiler.js +240 -0
  18. package/dist/showcase-spec-compiler.js.map +1 -0
  19. package/dist/showcase-spec-evidence.d.ts +7 -0
  20. package/dist/showcase-spec-evidence.d.ts.map +1 -0
  21. package/dist/showcase-spec-evidence.js +815 -0
  22. package/dist/showcase-spec-evidence.js.map +1 -0
  23. package/dist/showcase-spec-game-geometry-extractor.d.ts +21 -0
  24. package/dist/showcase-spec-game-geometry-extractor.d.ts.map +1 -0
  25. package/dist/showcase-spec-game-geometry-extractor.js +725 -0
  26. package/dist/showcase-spec-game-geometry-extractor.js.map +1 -0
  27. package/dist/showcase-spec-game-replacement-evidence.d.ts +14 -0
  28. package/dist/showcase-spec-game-replacement-evidence.d.ts.map +1 -0
  29. package/dist/showcase-spec-game-replacement-evidence.js +219 -0
  30. package/dist/showcase-spec-game-replacement-evidence.js.map +1 -0
  31. package/dist/showcase-spec-game-template-evidence.d.ts +72 -0
  32. package/dist/showcase-spec-game-template-evidence.d.ts.map +1 -0
  33. package/dist/showcase-spec-game-template-evidence.js +435 -0
  34. package/dist/showcase-spec-game-template-evidence.js.map +1 -0
  35. package/dist/showcase-spec-gameplay-evidence.d.ts +3 -0
  36. package/dist/showcase-spec-gameplay-evidence.d.ts.map +1 -0
  37. package/dist/showcase-spec-gameplay-evidence.js +108 -0
  38. package/dist/showcase-spec-gameplay-evidence.js.map +1 -0
  39. package/dist/showcase-spec-parser.d.ts +3 -0
  40. package/dist/showcase-spec-parser.d.ts.map +1 -0
  41. package/dist/showcase-spec-parser.js +662 -0
  42. package/dist/showcase-spec-parser.js.map +1 -0
  43. package/dist/showcase-spec-platformer-artifacts.d.ts +3 -0
  44. package/dist/showcase-spec-platformer-artifacts.d.ts.map +1 -0
  45. package/dist/showcase-spec-platformer-artifacts.js +276 -0
  46. package/dist/showcase-spec-platformer-artifacts.js.map +1 -0
  47. package/dist/showcase-spec-racing-artifacts.d.ts +3 -0
  48. package/dist/showcase-spec-racing-artifacts.d.ts.map +1 -0
  49. package/dist/showcase-spec-racing-artifacts.js +273 -0
  50. package/dist/showcase-spec-racing-artifacts.js.map +1 -0
  51. package/dist/showcase-spec-replacement-apply.d.ts +10 -0
  52. package/dist/showcase-spec-replacement-apply.d.ts.map +1 -0
  53. package/dist/showcase-spec-replacement-apply.js +166 -0
  54. package/dist/showcase-spec-replacement-apply.js.map +1 -0
  55. package/dist/showcase-spec-replacement-candidates.d.ts +16 -0
  56. package/dist/showcase-spec-replacement-candidates.d.ts.map +1 -0
  57. package/dist/showcase-spec-replacement-candidates.js +244 -0
  58. package/dist/showcase-spec-replacement-candidates.js.map +1 -0
  59. package/dist/showcase-spec-replacement-game-geometry.d.ts +4 -0
  60. package/dist/showcase-spec-replacement-game-geometry.d.ts.map +1 -0
  61. package/dist/showcase-spec-replacement-game-geometry.js +175 -0
  62. package/dist/showcase-spec-replacement-game-geometry.js.map +1 -0
  63. package/dist/showcase-spec-replacement-manifest.d.ts +41 -0
  64. package/dist/showcase-spec-replacement-manifest.d.ts.map +1 -0
  65. package/dist/showcase-spec-replacement-manifest.js +62 -0
  66. package/dist/showcase-spec-replacement-manifest.js.map +1 -0
  67. package/dist/showcase-spec-replacement-values.d.ts +9 -0
  68. package/dist/showcase-spec-replacement-values.d.ts.map +1 -0
  69. package/dist/showcase-spec-replacement-values.js +41 -0
  70. package/dist/showcase-spec-replacement-values.js.map +1 -0
  71. package/dist/showcase-spec-replacement.d.ts +13 -0
  72. package/dist/showcase-spec-replacement.d.ts.map +1 -0
  73. package/dist/showcase-spec-replacement.js +144 -0
  74. package/dist/showcase-spec-replacement.js.map +1 -0
  75. package/dist/showcase-spec-types.d.ts +304 -0
  76. package/dist/showcase-spec-types.d.ts.map +1 -0
  77. package/dist/showcase-spec-types.js +2 -0
  78. package/dist/showcase-spec-types.js.map +1 -0
  79. package/package.json +21 -2
  80. package/templates/animation-channel/package.json +1 -1
  81. package/templates/animation-channel/tests/screenshot.spec.ts +16 -0
  82. package/templates/animation-studio/index.html +12 -0
  83. package/templates/animation-studio/node_modules.publish-aside/.vite/deps/_metadata.json +8 -0
  84. package/templates/animation-studio/node_modules.publish-aside/.vite/deps/package.json +3 -0
  85. package/templates/animation-studio/package.json +1 -1
  86. package/templates/animation-studio/scripts/animation-scene.ts +1 -1
  87. package/templates/animation-studio/scripts/asset-motion-probe.ts +7 -1
  88. package/templates/animation-studio/scripts/author-office-scene.ts +1 -1
  89. package/templates/animation-studio/scripts/build-characters.ts +1 -1
  90. package/templates/animation-studio/scripts/render-live.ts +24 -0
  91. package/templates/animation-studio/src/director/director-heuristics.ts +2 -2
  92. package/templates/animation-studio/src/director/{prompt-to-scene.ts → prompt-scene.ts} +74 -6
  93. package/templates/animation-studio/studio/src/App.tsx +146 -78
  94. package/templates/animation-studio/studio/src/components/Console.tsx +8 -2
  95. package/templates/animation-studio/studio/src/components/Inspector.tsx +57 -1
  96. package/templates/animation-studio/studio/src/components/Stage.tsx +10 -5
  97. package/templates/animation-studio/studio/src/components/Timeline.tsx +49 -2
  98. package/templates/animation-studio/studio/src/state/mapDocument.ts +13 -2
  99. package/templates/animation-studio/studio/src/state/sceneTool.ts +20 -9
  100. package/templates/animation-studio/studio/src/state/types.ts +8 -0
  101. package/templates/animation-studio/tests/route-health.spec.ts +33 -0
  102. package/templates/animation-studio/tests/screenshot.spec.ts +30 -0
  103. package/templates/character-controller/package.json +1 -1
  104. package/templates/character-controller/src/main.ts +18 -1
  105. package/templates/cinematic-scene/package.json +1 -1
  106. package/templates/cinematic-scene/tests/screenshot.spec.ts +3 -3
  107. package/templates/episode-builder/package.json +1 -1
  108. package/templates/episode-builder/tests/screenshot.spec.ts +15 -0
  109. package/templates/falling-blocks-starter/README.md +18 -0
  110. package/templates/falling-blocks-starter/index.html +23 -0
  111. package/templates/falling-blocks-starter/package.json +21 -0
  112. package/templates/falling-blocks-starter/playwright.config.ts +12 -0
  113. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.679d52fe.glb +0 -0
  114. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.thumb.svg +1 -0
  115. package/templates/falling-blocks-starter/src/aura-assets.ts +20 -0
  116. package/templates/falling-blocks-starter/src/main.ts +358 -0
  117. package/templates/falling-blocks-starter/tests/playable.spec.ts +85 -0
  118. package/templates/falling-blocks-starter/tests/route-health.spec.ts +34 -0
  119. package/templates/falling-blocks-starter/tsconfig.json +13 -0
  120. package/templates/fighting-game/package.json +1 -1
  121. package/templates/fighting-game/tests/screenshot.spec.ts +15 -0
  122. package/templates/mini-game/README.md +13 -0
  123. package/templates/mini-game/index.html +1 -1
  124. package/templates/mini-game/package.json +2 -2
  125. package/templates/mini-game/src/main.ts +251 -21
  126. package/templates/mini-game/tests/playable.spec.ts +49 -0
  127. package/templates/mini-game/tests/screenshot.spec.ts +37 -32
  128. package/templates/product-viewer/package.json +1 -1
  129. package/templates/product-viewer/tests/screenshot.spec.ts +4 -4
  130. package/templates/prompt-animation-channel/package.json +1 -1
  131. package/templates/prompt-animation-channel/tests/screenshot.spec.ts +15 -0
  132. package/templates/racing-starter/README.md +27 -0
  133. package/templates/racing-starter/index.html +23 -0
  134. package/templates/racing-starter/package.json +21 -0
  135. package/templates/racing-starter/playwright.config.ts +12 -0
  136. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.1c69283f.glb +0 -0
  137. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.thumb.svg +1 -0
  138. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.5cbb912e.glb +0 -0
  139. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.thumb.svg +1 -0
  140. package/templates/racing-starter/src/aura-assets.ts +36 -0
  141. package/templates/racing-starter/src/main.ts +280 -0
  142. package/templates/racing-starter/tests/playable.spec.ts +93 -0
  143. package/templates/racing-starter/tests/route-health.spec.ts +40 -0
  144. package/templates/racing-starter/tsconfig.json +13 -0
  145. package/templates/three-compat-architecture-interior/index.html +16 -0
  146. package/templates/three-compat-architecture-interior/package.json +21 -0
  147. package/templates/three-compat-architecture-interior/playwright.config.ts +14 -0
  148. package/templates/three-compat-architecture-interior/src/main.ts +27 -0
  149. package/templates/three-compat-architecture-interior/tests/route-health.spec.ts +16 -0
  150. package/templates/three-compat-architecture-interior/tests/screenshot.spec.ts +15 -0
  151. package/templates/three-compat-architecture-interior/tsconfig.json +19 -0
  152. package/templates/three-compat-asset-inspector/index.html +16 -0
  153. package/templates/three-compat-asset-inspector/package.json +21 -0
  154. package/templates/three-compat-asset-inspector/playwright.config.ts +14 -0
  155. package/templates/three-compat-asset-inspector/src/main.ts +17 -0
  156. package/templates/three-compat-asset-inspector/tests/route-health.spec.ts +16 -0
  157. package/templates/three-compat-asset-inspector/tests/screenshot.spec.ts +15 -0
  158. package/templates/three-compat-asset-inspector/tsconfig.json +19 -0
  159. package/templates/three-compat-character-viewer/index.html +16 -0
  160. package/templates/three-compat-character-viewer/package.json +21 -0
  161. package/templates/three-compat-character-viewer/playwright.config.ts +14 -0
  162. package/templates/three-compat-character-viewer/src/main.ts +17 -0
  163. package/templates/three-compat-character-viewer/tests/route-health.spec.ts +16 -0
  164. package/templates/three-compat-character-viewer/tests/screenshot.spec.ts +15 -0
  165. package/templates/three-compat-character-viewer/tsconfig.json +19 -0
  166. package/templates/three-compat-custom-threejs-migration/index.html +16 -0
  167. package/templates/three-compat-custom-threejs-migration/package.json +21 -0
  168. package/templates/three-compat-custom-threejs-migration/playwright.config.ts +14 -0
  169. package/templates/three-compat-custom-threejs-migration/src/main.ts +16 -0
  170. package/templates/three-compat-custom-threejs-migration/tests/route-health.spec.ts +16 -0
  171. package/templates/three-compat-custom-threejs-migration/tests/screenshot.spec.ts +15 -0
  172. package/templates/three-compat-custom-threejs-migration/tsconfig.json +19 -0
  173. package/templates/three-compat-large-scene/index.html +16 -0
  174. package/templates/three-compat-large-scene/package.json +21 -0
  175. package/templates/three-compat-large-scene/playwright.config.ts +14 -0
  176. package/templates/three-compat-large-scene/src/main.ts +31 -0
  177. package/templates/three-compat-large-scene/tests/route-health.spec.ts +16 -0
  178. package/templates/three-compat-large-scene/tests/screenshot.spec.ts +15 -0
  179. package/templates/three-compat-large-scene/tsconfig.json +19 -0
  180. package/templates/three-compat-material-authoring/index.html +16 -0
  181. package/templates/three-compat-material-authoring/package.json +21 -0
  182. package/templates/three-compat-material-authoring/playwright.config.ts +14 -0
  183. package/templates/three-compat-material-authoring/src/main.ts +33 -0
  184. package/templates/three-compat-material-authoring/tests/route-health.spec.ts +16 -0
  185. package/templates/three-compat-material-authoring/tests/screenshot.spec.ts +15 -0
  186. package/templates/three-compat-material-authoring/tsconfig.json +19 -0
  187. package/templates/three-compat-postprocess-scene/index.html +16 -0
  188. package/templates/three-compat-postprocess-scene/package.json +21 -0
  189. package/templates/three-compat-postprocess-scene/playwright.config.ts +14 -0
  190. package/templates/three-compat-postprocess-scene/src/main.ts +17 -0
  191. package/templates/three-compat-postprocess-scene/tests/route-health.spec.ts +16 -0
  192. package/templates/three-compat-postprocess-scene/tests/screenshot.spec.ts +15 -0
  193. package/templates/three-compat-postprocess-scene/tsconfig.json +19 -0
  194. package/templates/three-compat-premium-product-viewer/index.html +16 -0
  195. package/templates/three-compat-premium-product-viewer/package.json +21 -0
  196. package/templates/three-compat-premium-product-viewer/playwright.config.ts +14 -0
  197. package/templates/three-compat-premium-product-viewer/src/main.ts +18 -0
  198. package/templates/three-compat-premium-product-viewer/tests/route-health.spec.ts +16 -0
  199. package/templates/three-compat-premium-product-viewer/tests/screenshot.spec.ts +15 -0
  200. package/templates/three-compat-premium-product-viewer/tsconfig.json +19 -0
  201. package/templates/animation-channel/public/aura-assets/moon-garden-feature-frame.png +0 -0
  202. package/templates/animation-channel/tests/reports/prompt-animation/cartoon-sample-episode.png +0 -0
  203. package/templates/animation-studio/dist/episodes/scene/episode-3d.webm +0 -0
  204. package/templates/animation-studio/dist/episodes/scene/frames/action.png +0 -0
  205. package/templates/animation-studio/dist/episodes/scene/frames/dialogue.png +0 -0
  206. package/templates/animation-studio/dist/episodes/scene/frames/final.png +0 -0
  207. package/templates/animation-studio/dist/episodes/scene/frames/first.png +0 -0
  208. package/templates/animation-studio/dist/episodes/scene/frames/mouth-closed.png +0 -0
  209. package/templates/animation-studio/dist/episodes/scene/frames/mouth-open.png +0 -0
  210. package/templates/animation-studio/dist/episodes/scene/render-live-summary.json +0 -5616
  211. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/broken.png +0 -0
  212. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/chefs.png +0 -0
  213. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/customer.png +0 -0
  214. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-1.png +0 -0
  215. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-2.png +0 -0
  216. package/templates/animation-studio/dist/generated/second-scene.document.json +0 -1210
  217. package/templates/animation-studio/dist/generated/studio-edited.document.json +0 -1196
  218. package/templates/animation-studio/dist/scene/inshader-accept.document.json +0 -1
  219. package/templates/animation-studio/dist/scene/inshader-test.document.json +0 -1
  220. package/templates/animation-studio/dist/scene/integ.document.json +0 -1
  221. package/templates/animation-studio/dist/scene/working.document.json +0 -594
  222. package/templates/animation-studio/dist/scene/working.history.json +0 -1
  223. package/templates/animation-studio/studio/dist/assets/index-i8URxOOt.css +0 -1
  224. package/templates/animation-studio/studio/dist/assets/index-pC9hdZ-B.js +0 -11
  225. package/templates/animation-studio/studio/dist/index.html +0 -19
  226. package/templates/animation-studio/tests/reports/animation-studio/hifi-cast-validation.json +0 -938
@@ -1,938 +0,0 @@
1
- {
2
- "generatedAt": "2026-06-08T09:57:30.057Z",
3
- "note": "FK PRE-FILTER ONLY — NOT A RENDER. A PASS means the rig survived a canonical forward-kinematics sanity pass (no collapsed legs / sagging arms / exploded or NaN bones). It does NOT skin the real mesh and cannot see texture/weight/bind-pose problems. Final acceptance requires a real GPU render + visual review.",
4
- "poorCoverageThreshold": 0.6,
5
- "fkClips": [
6
- "talk",
7
- "walk"
8
- ],
9
- "sampleTimes": [
10
- 0,
11
- 0.3,
12
- 0.6,
13
- 0.9,
14
- 1.2,
15
- 1.6
16
- ],
17
- "count": 13,
18
- "passCount": 8,
19
- "failCount": 5,
20
- "verdicts": [
21
- {
22
- "file": "public/hifi-cast/BrainStem.glb",
23
- "bytes": 3194848,
24
- "parsed": true,
25
- "jointCount": 0,
26
- "clips": [],
27
- "rigGrade": "D",
28
- "mappedBoneCount": 0,
29
- "capabilities": {
30
- "hasLegs": false,
31
- "hasKnees": false,
32
- "hasAnkles": false,
33
- "hasFeet": false
34
- },
35
- "gradeReasons": [
36
- "0 of 22 canonical humanoid bones mapped",
37
- "not enough body structure to drive body acting (D)",
38
- "missing spine/head axis",
39
- "missing a pair of upper arms",
40
- "missing a usable pair of legs"
41
- ],
42
- "retargetCoverage": 0,
43
- "retargetRequiredCoverage": 0,
44
- "retargetingPoor": true,
45
- "fkPass": true,
46
- "fkClips": [
47
- {
48
- "clip": "talk",
49
- "pass": true,
50
- "failures": []
51
- },
52
- {
53
- "clip": "walk",
54
- "pass": true,
55
- "failures": []
56
- }
57
- ],
58
- "fkSignatures": [],
59
- "verdict": "FAIL",
60
- "notes": [
61
- "rig graded D — not suitable for body acting (refuse).",
62
- "retargeting will be poor — body acting won't transfer (coverage 0% < 60%).",
63
- "no feet mapped — locomotion / standing pose can't be validated by FK."
64
- ]
65
- },
66
- {
67
- "file": "public/hifi-cast/CesiumMan.glb",
68
- "bytes": 438044,
69
- "parsed": true,
70
- "jointCount": 19,
71
- "clips": [],
72
- "rigGrade": "C",
73
- "mappedBoneCount": 6,
74
- "capabilities": {
75
- "hasLegs": true,
76
- "hasKnees": true,
77
- "hasAnkles": false,
78
- "hasFeet": false
79
- },
80
- "gradeReasons": [
81
- "6 of 22 canonical humanoid bones mapped",
82
- "mascot/sparse rig: head + torso acting only, no real limb chains (C)",
83
- "no usable forearm chain on both arms"
84
- ],
85
- "retargetCoverage": 0.273,
86
- "retargetRequiredCoverage": 0.333,
87
- "retargetingPoor": true,
88
- "fkPass": true,
89
- "fkClips": [
90
- {
91
- "clip": "talk",
92
- "pass": true,
93
- "failures": []
94
- },
95
- {
96
- "clip": "walk",
97
- "pass": true,
98
- "failures": []
99
- }
100
- ],
101
- "fkSignatures": [],
102
- "verdict": "FAIL",
103
- "notes": [
104
- "retargeting will be poor — body acting won't transfer (coverage 27% < 60%).",
105
- "no feet mapped — locomotion / standing pose can't be validated by FK."
106
- ]
107
- },
108
- {
109
- "file": "public/hifi-cast/RiggedFigure.glb",
110
- "bytes": 50116,
111
- "parsed": true,
112
- "jointCount": 19,
113
- "clips": [],
114
- "rigGrade": "C",
115
- "mappedBoneCount": 6,
116
- "capabilities": {
117
- "hasLegs": true,
118
- "hasKnees": true,
119
- "hasAnkles": false,
120
- "hasFeet": false
121
- },
122
- "gradeReasons": [
123
- "6 of 22 canonical humanoid bones mapped",
124
- "mascot/sparse rig: head + torso acting only, no real limb chains (C)",
125
- "no usable forearm chain on both arms"
126
- ],
127
- "retargetCoverage": 0.273,
128
- "retargetRequiredCoverage": 0.333,
129
- "retargetingPoor": true,
130
- "fkPass": true,
131
- "fkClips": [
132
- {
133
- "clip": "talk",
134
- "pass": true,
135
- "failures": []
136
- },
137
- {
138
- "clip": "walk",
139
- "pass": true,
140
- "failures": []
141
- }
142
- ],
143
- "fkSignatures": [],
144
- "verdict": "FAIL",
145
- "notes": [
146
- "retargeting will be poor — body acting won't transfer (coverage 27% < 60%).",
147
- "no feet mapped — locomotion / standing pose can't be validated by FK."
148
- ]
149
- },
150
- {
151
- "file": "public/hifi-cast/kaykit/Barbarian.glb",
152
- "bytes": 3613268,
153
- "parsed": true,
154
- "jointCount": 41,
155
- "clips": [
156
- "1H_Melee_Attack_Chop",
157
- "1H_Melee_Attack_Slice_Diagonal",
158
- "1H_Melee_Attack_Slice_Horizontal",
159
- "1H_Melee_Attack_Stab",
160
- "1H_Ranged_Aiming",
161
- "1H_Ranged_Reload",
162
- "1H_Ranged_Shoot",
163
- "1H_Ranged_Shooting",
164
- "2H_Melee_Attack_Chop",
165
- "2H_Melee_Attack_Slice",
166
- "2H_Melee_Attack_Spin",
167
- "2H_Melee_Attack_Spinning",
168
- "2H_Melee_Attack_Stab",
169
- "2H_Melee_Idle",
170
- "2H_Ranged_Aiming",
171
- "2H_Ranged_Reload",
172
- "2H_Ranged_Shoot",
173
- "2H_Ranged_Shooting",
174
- "Block",
175
- "Block_Attack",
176
- "Block_Hit",
177
- "Blocking",
178
- "Cheer",
179
- "Death_A",
180
- "Death_A_Pose",
181
- "Death_B",
182
- "Death_B_Pose",
183
- "Dodge_Backward",
184
- "Dodge_Forward",
185
- "Dodge_Left",
186
- "Dodge_Right",
187
- "Dualwield_Melee_Attack_Chop",
188
- "Dualwield_Melee_Attack_Slice",
189
- "Dualwield_Melee_Attack_Stab",
190
- "Hit_A",
191
- "Hit_B",
192
- "Idle",
193
- "Interact",
194
- "Jump_Full_Long",
195
- "Jump_Full_Short",
196
- "Jump_Idle",
197
- "Jump_Land",
198
- "Jump_Start",
199
- "Lie_Down",
200
- "Lie_Idle",
201
- "Lie_Pose",
202
- "Lie_StandUp",
203
- "PickUp",
204
- "Running_A",
205
- "Running_B",
206
- "Running_Strafe_Left",
207
- "Running_Strafe_Right",
208
- "Sit_Chair_Down",
209
- "Sit_Chair_Idle",
210
- "Sit_Chair_Pose",
211
- "Sit_Chair_StandUp",
212
- "Sit_Floor_Down",
213
- "Sit_Floor_Idle",
214
- "Sit_Floor_Pose",
215
- "Sit_Floor_StandUp",
216
- "Spellcast_Long",
217
- "Spellcast_Raise",
218
- "Spellcast_Shoot",
219
- "Spellcasting",
220
- "T-Pose",
221
- "Throw",
222
- "Unarmed_Idle",
223
- "Unarmed_Melee_Attack_Kick",
224
- "Unarmed_Melee_Attack_Punch_A",
225
- "Unarmed_Melee_Attack_Punch_B",
226
- "Unarmed_Pose",
227
- "Use_Item",
228
- "Walking_A",
229
- "Walking_B",
230
- "Walking_Backwards",
231
- "Walking_C"
232
- ],
233
- "rigGrade": "B",
234
- "mappedBoneCount": 18,
235
- "capabilities": {
236
- "hasLegs": true,
237
- "hasKnees": true,
238
- "hasAnkles": true,
239
- "hasFeet": true
240
- },
241
- "gradeReasons": [
242
- "18 of 22 canonical humanoid bones mapped",
243
- "partial humanoid: body acting possible but a limb chain or extremities are missing (B)",
244
- "incomplete upper body (forearms/hands/neck)"
245
- ],
246
- "retargetCoverage": 0.818,
247
- "retargetRequiredCoverage": 1,
248
- "retargetingPoor": false,
249
- "fkPass": true,
250
- "fkClips": [
251
- {
252
- "clip": "talk",
253
- "pass": true,
254
- "failures": []
255
- },
256
- {
257
- "clip": "walk",
258
- "pass": true,
259
- "failures": []
260
- }
261
- ],
262
- "fkSignatures": [],
263
- "verdict": "PASS",
264
- "notes": []
265
- },
266
- {
267
- "file": "public/hifi-cast/kaykit/Knight.glb",
268
- "bytes": 3659532,
269
- "parsed": true,
270
- "jointCount": 41,
271
- "clips": [
272
- "1H_Melee_Attack_Chop",
273
- "1H_Melee_Attack_Slice_Diagonal",
274
- "1H_Melee_Attack_Slice_Horizontal",
275
- "1H_Melee_Attack_Stab",
276
- "1H_Ranged_Aiming",
277
- "1H_Ranged_Reload",
278
- "1H_Ranged_Shoot",
279
- "1H_Ranged_Shooting",
280
- "2H_Melee_Attack_Chop",
281
- "2H_Melee_Attack_Slice",
282
- "2H_Melee_Attack_Spin",
283
- "2H_Melee_Attack_Spinning",
284
- "2H_Melee_Attack_Stab",
285
- "2H_Melee_Idle",
286
- "2H_Ranged_Aiming",
287
- "2H_Ranged_Reload",
288
- "2H_Ranged_Shoot",
289
- "2H_Ranged_Shooting",
290
- "Block",
291
- "Block_Attack",
292
- "Block_Hit",
293
- "Blocking",
294
- "Cheer",
295
- "Death_A",
296
- "Death_A_Pose",
297
- "Death_B",
298
- "Death_B_Pose",
299
- "Dodge_Backward",
300
- "Dodge_Forward",
301
- "Dodge_Left",
302
- "Dodge_Right",
303
- "Dualwield_Melee_Attack_Chop",
304
- "Dualwield_Melee_Attack_Slice",
305
- "Dualwield_Melee_Attack_Stab",
306
- "Hit_A",
307
- "Hit_B",
308
- "Idle",
309
- "Interact",
310
- "Jump_Full_Long",
311
- "Jump_Full_Short",
312
- "Jump_Idle",
313
- "Jump_Land",
314
- "Jump_Start",
315
- "Lie_Down",
316
- "Lie_Idle",
317
- "Lie_Pose",
318
- "Lie_StandUp",
319
- "PickUp",
320
- "Running_A",
321
- "Running_B",
322
- "Running_Strafe_Left",
323
- "Running_Strafe_Right",
324
- "Sit_Chair_Down",
325
- "Sit_Chair_Idle",
326
- "Sit_Chair_Pose",
327
- "Sit_Chair_StandUp",
328
- "Sit_Floor_Down",
329
- "Sit_Floor_Idle",
330
- "Sit_Floor_Pose",
331
- "Sit_Floor_StandUp",
332
- "Spellcast_Long",
333
- "Spellcast_Raise",
334
- "Spellcast_Shoot",
335
- "Spellcasting",
336
- "T-Pose",
337
- "Throw",
338
- "Unarmed_Idle",
339
- "Unarmed_Melee_Attack_Kick",
340
- "Unarmed_Melee_Attack_Punch_A",
341
- "Unarmed_Melee_Attack_Punch_B",
342
- "Unarmed_Pose",
343
- "Use_Item",
344
- "Walking_A",
345
- "Walking_B",
346
- "Walking_Backwards",
347
- "Walking_C"
348
- ],
349
- "rigGrade": "B",
350
- "mappedBoneCount": 18,
351
- "capabilities": {
352
- "hasLegs": true,
353
- "hasKnees": true,
354
- "hasAnkles": true,
355
- "hasFeet": true
356
- },
357
- "gradeReasons": [
358
- "18 of 22 canonical humanoid bones mapped",
359
- "partial humanoid: body acting possible but a limb chain or extremities are missing (B)",
360
- "incomplete upper body (forearms/hands/neck)"
361
- ],
362
- "retargetCoverage": 0.818,
363
- "retargetRequiredCoverage": 1,
364
- "retargetingPoor": false,
365
- "fkPass": true,
366
- "fkClips": [
367
- {
368
- "clip": "talk",
369
- "pass": true,
370
- "failures": []
371
- },
372
- {
373
- "clip": "walk",
374
- "pass": true,
375
- "failures": []
376
- }
377
- ],
378
- "fkSignatures": [],
379
- "verdict": "PASS",
380
- "notes": []
381
- },
382
- {
383
- "file": "public/hifi-cast/kaykit/Mage.glb",
384
- "bytes": 3589240,
385
- "parsed": true,
386
- "jointCount": 41,
387
- "clips": [
388
- "1H_Melee_Attack_Chop",
389
- "1H_Melee_Attack_Slice_Diagonal",
390
- "1H_Melee_Attack_Slice_Horizontal",
391
- "1H_Melee_Attack_Stab",
392
- "1H_Ranged_Aiming",
393
- "1H_Ranged_Reload",
394
- "1H_Ranged_Shoot",
395
- "1H_Ranged_Shooting",
396
- "2H_Melee_Attack_Chop",
397
- "2H_Melee_Attack_Slice",
398
- "2H_Melee_Attack_Spin",
399
- "2H_Melee_Attack_Spinning",
400
- "2H_Melee_Attack_Stab",
401
- "2H_Melee_Idle",
402
- "2H_Ranged_Aiming",
403
- "2H_Ranged_Reload",
404
- "2H_Ranged_Shoot",
405
- "2H_Ranged_Shooting",
406
- "Block",
407
- "Block_Attack",
408
- "Block_Hit",
409
- "Blocking",
410
- "Cheer",
411
- "Death_A",
412
- "Death_A_Pose",
413
- "Death_B",
414
- "Death_B_Pose",
415
- "Dodge_Backward",
416
- "Dodge_Forward",
417
- "Dodge_Left",
418
- "Dodge_Right",
419
- "Dualwield_Melee_Attack_Chop",
420
- "Dualwield_Melee_Attack_Slice",
421
- "Dualwield_Melee_Attack_Stab",
422
- "Hit_A",
423
- "Hit_B",
424
- "Idle",
425
- "Interact",
426
- "Jump_Full_Long",
427
- "Jump_Full_Short",
428
- "Jump_Idle",
429
- "Jump_Land",
430
- "Jump_Start",
431
- "Lie_Down",
432
- "Lie_Idle",
433
- "Lie_Pose",
434
- "Lie_StandUp",
435
- "PickUp",
436
- "Running_A",
437
- "Running_B",
438
- "Running_Strafe_Left",
439
- "Running_Strafe_Right",
440
- "Sit_Chair_Down",
441
- "Sit_Chair_Idle",
442
- "Sit_Chair_Pose",
443
- "Sit_Chair_StandUp",
444
- "Sit_Floor_Down",
445
- "Sit_Floor_Idle",
446
- "Sit_Floor_Pose",
447
- "Sit_Floor_StandUp",
448
- "Spellcast_Long",
449
- "Spellcast_Raise",
450
- "Spellcast_Shoot",
451
- "Spellcasting",
452
- "T-Pose",
453
- "Throw",
454
- "Unarmed_Idle",
455
- "Unarmed_Melee_Attack_Kick",
456
- "Unarmed_Melee_Attack_Punch_A",
457
- "Unarmed_Melee_Attack_Punch_B",
458
- "Unarmed_Pose",
459
- "Use_Item",
460
- "Walking_A",
461
- "Walking_B",
462
- "Walking_Backwards",
463
- "Walking_C"
464
- ],
465
- "rigGrade": "B",
466
- "mappedBoneCount": 18,
467
- "capabilities": {
468
- "hasLegs": true,
469
- "hasKnees": true,
470
- "hasAnkles": true,
471
- "hasFeet": true
472
- },
473
- "gradeReasons": [
474
- "18 of 22 canonical humanoid bones mapped",
475
- "partial humanoid: body acting possible but a limb chain or extremities are missing (B)",
476
- "incomplete upper body (forearms/hands/neck)"
477
- ],
478
- "retargetCoverage": 0.818,
479
- "retargetRequiredCoverage": 1,
480
- "retargetingPoor": false,
481
- "fkPass": true,
482
- "fkClips": [
483
- {
484
- "clip": "talk",
485
- "pass": true,
486
- "failures": []
487
- },
488
- {
489
- "clip": "walk",
490
- "pass": true,
491
- "failures": []
492
- }
493
- ],
494
- "fkSignatures": [],
495
- "verdict": "PASS",
496
- "notes": []
497
- },
498
- {
499
- "file": "public/hifi-cast/kaykit/Rogue.glb",
500
- "bytes": 3616284,
501
- "parsed": true,
502
- "jointCount": 41,
503
- "clips": [
504
- "1H_Melee_Attack_Chop",
505
- "1H_Melee_Attack_Slice_Diagonal",
506
- "1H_Melee_Attack_Slice_Horizontal",
507
- "1H_Melee_Attack_Stab",
508
- "1H_Ranged_Aiming",
509
- "1H_Ranged_Reload",
510
- "1H_Ranged_Shoot",
511
- "1H_Ranged_Shooting",
512
- "2H_Melee_Attack_Chop",
513
- "2H_Melee_Attack_Slice",
514
- "2H_Melee_Attack_Spin",
515
- "2H_Melee_Attack_Spinning",
516
- "2H_Melee_Attack_Stab",
517
- "2H_Melee_Idle",
518
- "2H_Ranged_Aiming",
519
- "2H_Ranged_Reload",
520
- "2H_Ranged_Shoot",
521
- "2H_Ranged_Shooting",
522
- "Block",
523
- "Block_Attack",
524
- "Block_Hit",
525
- "Blocking",
526
- "Cheer",
527
- "Death_A",
528
- "Death_A_Pose",
529
- "Death_B",
530
- "Death_B_Pose",
531
- "Dodge_Backward",
532
- "Dodge_Forward",
533
- "Dodge_Left",
534
- "Dodge_Right",
535
- "Dualwield_Melee_Attack_Chop",
536
- "Dualwield_Melee_Attack_Slice",
537
- "Dualwield_Melee_Attack_Stab",
538
- "Hit_A",
539
- "Hit_B",
540
- "Idle",
541
- "Interact",
542
- "Jump_Full_Long",
543
- "Jump_Full_Short",
544
- "Jump_Idle",
545
- "Jump_Land",
546
- "Jump_Start",
547
- "Lie_Down",
548
- "Lie_Idle",
549
- "Lie_Pose",
550
- "Lie_StandUp",
551
- "PickUp",
552
- "Running_A",
553
- "Running_B",
554
- "Running_Strafe_Left",
555
- "Running_Strafe_Right",
556
- "Sit_Chair_Down",
557
- "Sit_Chair_Idle",
558
- "Sit_Chair_Pose",
559
- "Sit_Chair_StandUp",
560
- "Sit_Floor_Down",
561
- "Sit_Floor_Idle",
562
- "Sit_Floor_Pose",
563
- "Sit_Floor_StandUp",
564
- "Spellcast_Long",
565
- "Spellcast_Raise",
566
- "Spellcast_Shoot",
567
- "Spellcasting",
568
- "T-Pose",
569
- "Throw",
570
- "Unarmed_Idle",
571
- "Unarmed_Melee_Attack_Kick",
572
- "Unarmed_Melee_Attack_Punch_A",
573
- "Unarmed_Melee_Attack_Punch_B",
574
- "Unarmed_Pose",
575
- "Use_Item",
576
- "Walking_A",
577
- "Walking_B",
578
- "Walking_Backwards",
579
- "Walking_C"
580
- ],
581
- "rigGrade": "B",
582
- "mappedBoneCount": 18,
583
- "capabilities": {
584
- "hasLegs": true,
585
- "hasKnees": true,
586
- "hasAnkles": true,
587
- "hasFeet": true
588
- },
589
- "gradeReasons": [
590
- "18 of 22 canonical humanoid bones mapped",
591
- "partial humanoid: body acting possible but a limb chain or extremities are missing (B)",
592
- "incomplete upper body (forearms/hands/neck)"
593
- ],
594
- "retargetCoverage": 0.818,
595
- "retargetRequiredCoverage": 1,
596
- "retargetingPoor": false,
597
- "fkPass": true,
598
- "fkClips": [
599
- {
600
- "clip": "talk",
601
- "pass": true,
602
- "failures": []
603
- },
604
- {
605
- "clip": "walk",
606
- "pass": true,
607
- "failures": []
608
- }
609
- ],
610
- "fkSignatures": [],
611
- "verdict": "PASS",
612
- "notes": []
613
- },
614
- {
615
- "file": "public/hifi-cast/kaykit/Rogue_Hooded.glb",
616
- "bytes": 3597652,
617
- "parsed": true,
618
- "jointCount": 41,
619
- "clips": [
620
- "1H_Melee_Attack_Chop",
621
- "1H_Melee_Attack_Slice_Diagonal",
622
- "1H_Melee_Attack_Slice_Horizontal",
623
- "1H_Melee_Attack_Stab",
624
- "1H_Ranged_Aiming",
625
- "1H_Ranged_Reload",
626
- "1H_Ranged_Shoot",
627
- "1H_Ranged_Shooting",
628
- "2H_Melee_Attack_Chop",
629
- "2H_Melee_Attack_Slice",
630
- "2H_Melee_Attack_Spin",
631
- "2H_Melee_Attack_Spinning",
632
- "2H_Melee_Attack_Stab",
633
- "2H_Melee_Idle",
634
- "2H_Ranged_Aiming",
635
- "2H_Ranged_Reload",
636
- "2H_Ranged_Shoot",
637
- "2H_Ranged_Shooting",
638
- "Block",
639
- "Block_Attack",
640
- "Block_Hit",
641
- "Blocking",
642
- "Cheer",
643
- "Death_A",
644
- "Death_A_Pose",
645
- "Death_B",
646
- "Death_B_Pose",
647
- "Dodge_Backward",
648
- "Dodge_Forward",
649
- "Dodge_Left",
650
- "Dodge_Right",
651
- "Dualwield_Melee_Attack_Chop",
652
- "Dualwield_Melee_Attack_Slice",
653
- "Dualwield_Melee_Attack_Stab",
654
- "Hit_A",
655
- "Hit_B",
656
- "Idle",
657
- "Interact",
658
- "Jump_Full_Long",
659
- "Jump_Full_Short",
660
- "Jump_Idle",
661
- "Jump_Land",
662
- "Jump_Start",
663
- "Lie_Down",
664
- "Lie_Idle",
665
- "Lie_Pose",
666
- "Lie_StandUp",
667
- "PickUp",
668
- "Running_A",
669
- "Running_B",
670
- "Running_Strafe_Left",
671
- "Running_Strafe_Right",
672
- "Sit_Chair_Down",
673
- "Sit_Chair_Idle",
674
- "Sit_Chair_Pose",
675
- "Sit_Chair_StandUp",
676
- "Sit_Floor_Down",
677
- "Sit_Floor_Idle",
678
- "Sit_Floor_Pose",
679
- "Sit_Floor_StandUp",
680
- "Spellcast_Long",
681
- "Spellcast_Raise",
682
- "Spellcast_Shoot",
683
- "Spellcasting",
684
- "T-Pose",
685
- "Throw",
686
- "Unarmed_Idle",
687
- "Unarmed_Melee_Attack_Kick",
688
- "Unarmed_Melee_Attack_Punch_A",
689
- "Unarmed_Melee_Attack_Punch_B",
690
- "Unarmed_Pose",
691
- "Use_Item",
692
- "Walking_A",
693
- "Walking_B",
694
- "Walking_Backwards",
695
- "Walking_C"
696
- ],
697
- "rigGrade": "B",
698
- "mappedBoneCount": 18,
699
- "capabilities": {
700
- "hasLegs": true,
701
- "hasKnees": true,
702
- "hasAnkles": true,
703
- "hasFeet": true
704
- },
705
- "gradeReasons": [
706
- "18 of 22 canonical humanoid bones mapped",
707
- "partial humanoid: body acting possible but a limb chain or extremities are missing (B)",
708
- "incomplete upper body (forearms/hands/neck)"
709
- ],
710
- "retargetCoverage": 0.818,
711
- "retargetRequiredCoverage": 1,
712
- "retargetingPoor": false,
713
- "fkPass": true,
714
- "fkClips": [
715
- {
716
- "clip": "talk",
717
- "pass": true,
718
- "failures": []
719
- },
720
- {
721
- "clip": "walk",
722
- "pass": true,
723
- "failures": []
724
- }
725
- ],
726
- "fkSignatures": [],
727
- "verdict": "PASS",
728
- "notes": []
729
- },
730
- {
731
- "file": "public/hifi-cast/rpm/cesiumman.glb",
732
- "bytes": 438044,
733
- "parsed": true,
734
- "jointCount": 19,
735
- "clips": [],
736
- "rigGrade": "C",
737
- "mappedBoneCount": 6,
738
- "capabilities": {
739
- "hasLegs": true,
740
- "hasKnees": true,
741
- "hasAnkles": false,
742
- "hasFeet": false
743
- },
744
- "gradeReasons": [
745
- "6 of 22 canonical humanoid bones mapped",
746
- "mascot/sparse rig: head + torso acting only, no real limb chains (C)",
747
- "no usable forearm chain on both arms"
748
- ],
749
- "retargetCoverage": 0.273,
750
- "retargetRequiredCoverage": 0.333,
751
- "retargetingPoor": true,
752
- "fkPass": true,
753
- "fkClips": [
754
- {
755
- "clip": "talk",
756
- "pass": true,
757
- "failures": []
758
- },
759
- {
760
- "clip": "walk",
761
- "pass": true,
762
- "failures": []
763
- }
764
- ],
765
- "fkSignatures": [],
766
- "verdict": "FAIL",
767
- "notes": [
768
- "retargeting will be poor — body acting won't transfer (coverage 27% < 60%).",
769
- "no feet mapped — locomotion / standing pose can't be validated by FK."
770
- ]
771
- },
772
- {
773
- "file": "public/hifi-cast/rpm/fox.glb",
774
- "bytes": 162852,
775
- "parsed": true,
776
- "jointCount": 24,
777
- "clips": [
778
- "Survey",
779
- "Walk",
780
- "Run"
781
- ],
782
- "rigGrade": "B",
783
- "mappedBoneCount": 15,
784
- "capabilities": {
785
- "hasLegs": true,
786
- "hasKnees": true,
787
- "hasAnkles": true,
788
- "hasFeet": true
789
- },
790
- "gradeReasons": [
791
- "15 of 22 canonical humanoid bones mapped",
792
- "partial humanoid: body acting possible but a limb chain or extremities are missing (B)"
793
- ],
794
- "retargetCoverage": 0.682,
795
- "retargetRequiredCoverage": 0.867,
796
- "retargetingPoor": false,
797
- "fkPass": true,
798
- "fkClips": [
799
- {
800
- "clip": "talk",
801
- "pass": true,
802
- "failures": []
803
- },
804
- {
805
- "clip": "walk",
806
- "pass": true,
807
- "failures": []
808
- }
809
- ],
810
- "fkSignatures": [],
811
- "verdict": "PASS",
812
- "notes": []
813
- },
814
- {
815
- "file": "public/hifi-cast/rpm/riggedfigure.glb",
816
- "bytes": 50116,
817
- "parsed": true,
818
- "jointCount": 19,
819
- "clips": [],
820
- "rigGrade": "C",
821
- "mappedBoneCount": 6,
822
- "capabilities": {
823
- "hasLegs": true,
824
- "hasKnees": true,
825
- "hasAnkles": false,
826
- "hasFeet": false
827
- },
828
- "gradeReasons": [
829
- "6 of 22 canonical humanoid bones mapped",
830
- "mascot/sparse rig: head + torso acting only, no real limb chains (C)",
831
- "no usable forearm chain on both arms"
832
- ],
833
- "retargetCoverage": 0.273,
834
- "retargetRequiredCoverage": 0.333,
835
- "retargetingPoor": true,
836
- "fkPass": true,
837
- "fkClips": [
838
- {
839
- "clip": "talk",
840
- "pass": true,
841
- "failures": []
842
- },
843
- {
844
- "clip": "walk",
845
- "pass": true,
846
- "failures": []
847
- }
848
- ],
849
- "fkSignatures": [],
850
- "verdict": "FAIL",
851
- "notes": [
852
- "retargeting will be poor — body acting won't transfer (coverage 27% < 60%).",
853
- "no feet mapped — locomotion / standing pose can't be validated by FK."
854
- ]
855
- },
856
- {
857
- "file": "public/aura-assets/rusty.catalog.glb",
858
- "bytes": 681820,
859
- "parsed": true,
860
- "jointCount": 28,
861
- "clips": [
862
- "Take 001"
863
- ],
864
- "rigGrade": "B",
865
- "mappedBoneCount": 17,
866
- "capabilities": {
867
- "hasLegs": true,
868
- "hasKnees": true,
869
- "hasAnkles": true,
870
- "hasFeet": true
871
- },
872
- "gradeReasons": [
873
- "17 of 22 canonical humanoid bones mapped",
874
- "partial humanoid: body acting possible but a limb chain or extremities are missing (B)",
875
- "incomplete upper body (forearms/hands/neck)"
876
- ],
877
- "retargetCoverage": 0.773,
878
- "retargetRequiredCoverage": 0.733,
879
- "retargetingPoor": false,
880
- "fkPass": true,
881
- "fkClips": [
882
- {
883
- "clip": "talk",
884
- "pass": true,
885
- "failures": []
886
- },
887
- {
888
- "clip": "walk",
889
- "pass": true,
890
- "failures": []
891
- }
892
- ],
893
- "fkSignatures": [],
894
- "verdict": "PASS",
895
- "notes": []
896
- },
897
- {
898
- "file": "public/aura-assets/luma.catalog.glb",
899
- "bytes": 2856452,
900
- "parsed": true,
901
- "jointCount": 63,
902
- "clips": [
903
- "Idle"
904
- ],
905
- "rigGrade": "A",
906
- "mappedBoneCount": 22,
907
- "capabilities": {
908
- "hasLegs": true,
909
- "hasKnees": true,
910
- "hasAnkles": true,
911
- "hasFeet": true
912
- },
913
- "gradeReasons": [
914
- "22 of 22 canonical humanoid bones mapped",
915
- "full humanoid: spine/neck/head + both arms (forearms+hands) + both legs (lower legs+feet) (A)"
916
- ],
917
- "retargetCoverage": 1,
918
- "retargetRequiredCoverage": 1,
919
- "retargetingPoor": false,
920
- "fkPass": true,
921
- "fkClips": [
922
- {
923
- "clip": "talk",
924
- "pass": true,
925
- "failures": []
926
- },
927
- {
928
- "clip": "walk",
929
- "pass": true,
930
- "failures": []
931
- }
932
- ],
933
- "fkSignatures": [],
934
- "verdict": "PASS",
935
- "notes": []
936
- }
937
- ]
938
- }