@aura3d/engine 4.5.0 → 4.6.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 (199) hide show
  1. package/README.md +1 -0
  2. package/dist/animation/pose/BoneMask.d.ts +8 -0
  3. package/dist/animation/pose/BoneMask.d.ts.map +1 -1
  4. package/dist/animation/pose/BoneMask.js +18 -1
  5. package/dist/animation/pose/BoneMask.js.map +1 -1
  6. package/dist/animation/pose/PoseMixer.d.ts +18 -2
  7. package/dist/animation/pose/PoseMixer.d.ts.map +1 -1
  8. package/dist/animation/pose/PoseMixer.js +52 -4
  9. package/dist/animation/pose/PoseMixer.js.map +1 -1
  10. package/dist/animation/pose/RetargetWorker.d.ts +8 -1
  11. package/dist/animation/pose/RetargetWorker.d.ts.map +1 -1
  12. package/dist/animation/pose/RetargetWorker.js +30 -2
  13. package/dist/animation/pose/RetargetWorker.js.map +1 -1
  14. package/dist/aura3d-cli/index.d.ts +6 -0
  15. package/dist/aura3d-cli/index.d.ts.map +1 -1
  16. package/dist/aura3d-cli/index.js +28 -0
  17. package/dist/aura3d-cli/index.js.map +1 -1
  18. package/dist/create-aura3d/cli.js +22 -2
  19. package/dist/create-aura3d/cli.js.map +1 -1
  20. package/dist/create-aura3d/index.d.ts +11 -0
  21. package/dist/create-aura3d/index.d.ts.map +1 -1
  22. package/dist/create-aura3d/index.js +9 -2
  23. package/dist/create-aura3d/index.js.map +1 -1
  24. package/dist/create-aura3d/template-assets.d.ts +53 -0
  25. package/dist/create-aura3d/template-assets.d.ts.map +1 -0
  26. package/dist/create-aura3d/template-assets.js +116 -0
  27. package/dist/create-aura3d/template-assets.js.map +1 -0
  28. package/dist/engine/agent-api/Clock.d.ts +5 -2
  29. package/dist/engine/agent-api/Clock.d.ts.map +1 -1
  30. package/dist/engine/agent-api/Clock.js +9 -4
  31. package/dist/engine/agent-api/Clock.js.map +1 -1
  32. package/dist/engine/agent-api/animationMask.d.ts +14 -2
  33. package/dist/engine/agent-api/animationMask.d.ts.map +1 -1
  34. package/dist/engine/agent-api/animationMask.js +19 -4
  35. package/dist/engine/agent-api/animationMask.js.map +1 -1
  36. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
  37. package/dist/engine/agent-api/app/actorAnimationHandle.js +7 -4
  38. package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
  39. package/dist/engine/agent-api/app/canvas.d.ts +21 -0
  40. package/dist/engine/agent-api/app/canvas.d.ts.map +1 -1
  41. package/dist/engine/agent-api/app/canvas.js +119 -7
  42. package/dist/engine/agent-api/app/canvas.js.map +1 -1
  43. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  44. package/dist/engine/agent-api/app/createAuraApp.js +104 -15
  45. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  46. package/dist/engine/agent-api/app/frameLoop.d.ts +13 -0
  47. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  48. package/dist/engine/agent-api/app/frameLoop.js +93 -12
  49. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  50. package/dist/engine/agent-api/app/parentFit.d.ts +20 -2
  51. package/dist/engine/agent-api/app/parentFit.d.ts.map +1 -1
  52. package/dist/engine/agent-api/app/parentFit.js +13 -9
  53. package/dist/engine/agent-api/app/parentFit.js.map +1 -1
  54. package/dist/engine/agent-api/app/renderPath.d.ts +31 -2
  55. package/dist/engine/agent-api/app/renderPath.d.ts.map +1 -1
  56. package/dist/engine/agent-api/app/renderPath.js +128 -22
  57. package/dist/engine/agent-api/app/renderPath.js.map +1 -1
  58. package/dist/engine/agent-api/app/rendererOptions.d.ts +27 -4
  59. package/dist/engine/agent-api/app/rendererOptions.d.ts.map +1 -1
  60. package/dist/engine/agent-api/app/rendererOptions.js +63 -16
  61. package/dist/engine/agent-api/app/rendererOptions.js.map +1 -1
  62. package/dist/engine/agent-api/app/runtimeNodes.d.ts +2 -0
  63. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  64. package/dist/engine/agent-api/app/runtimeNodes.js +76 -2
  65. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  66. package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
  67. package/dist/engine/agent-api/compiler/animation.js +4 -3
  68. package/dist/engine/agent-api/compiler/animation.js.map +1 -1
  69. package/dist/engine/agent-api/compiler/compileScene.d.ts +21 -5
  70. package/dist/engine/agent-api/compiler/compileScene.d.ts.map +1 -1
  71. package/dist/engine/agent-api/compiler/compileScene.js +103 -11
  72. package/dist/engine/agent-api/compiler/compileScene.js.map +1 -1
  73. package/dist/engine/agent-api/compiler/contactShadowKey.d.ts +14 -0
  74. package/dist/engine/agent-api/compiler/contactShadowKey.d.ts.map +1 -0
  75. package/dist/engine/agent-api/compiler/contactShadowKey.js +66 -0
  76. package/dist/engine/agent-api/compiler/contactShadowKey.js.map +1 -0
  77. package/dist/engine/agent-api/compiler/environment.d.ts +37 -0
  78. package/dist/engine/agent-api/compiler/environment.d.ts.map +1 -1
  79. package/dist/engine/agent-api/compiler/environment.js +129 -11
  80. package/dist/engine/agent-api/compiler/environment.js.map +1 -1
  81. package/dist/engine/agent-api/compiler/mountedRoots.d.ts +6 -0
  82. package/dist/engine/agent-api/compiler/mountedRoots.d.ts.map +1 -0
  83. package/dist/engine/agent-api/compiler/mountedRoots.js +25 -0
  84. package/dist/engine/agent-api/compiler/mountedRoots.js.map +1 -0
  85. package/dist/engine/agent-api/compiler/primitives.d.ts +13 -1
  86. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  87. package/dist/engine/agent-api/compiler/primitives.js +28 -3
  88. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  89. package/dist/engine/agent-api/compiler/renderer.d.ts +5 -3
  90. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  91. package/dist/engine/agent-api/compiler/renderer.js +33 -7
  92. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  93. package/dist/engine/agent-api/compiler/shadows.d.ts +4 -1
  94. package/dist/engine/agent-api/compiler/shadows.d.ts.map +1 -1
  95. package/dist/engine/agent-api/compiler/shadows.js +6 -2
  96. package/dist/engine/agent-api/compiler/shadows.js.map +1 -1
  97. package/dist/engine/agent-api/nodes/instances.d.ts.map +1 -1
  98. package/dist/engine/agent-api/nodes/instances.js +16 -4
  99. package/dist/engine/agent-api/nodes/instances.js.map +1 -1
  100. package/dist/engine/agent-api/nodes/model.d.ts +15 -0
  101. package/dist/engine/agent-api/nodes/model.d.ts.map +1 -1
  102. package/dist/engine/agent-api/nodes/model.js +37 -0
  103. package/dist/engine/agent-api/nodes/model.js.map +1 -1
  104. package/dist/engine/agent-api/nodes/physics.d.ts +25 -0
  105. package/dist/engine/agent-api/nodes/physics.d.ts.map +1 -1
  106. package/dist/engine/agent-api/nodes/physics.js +107 -11
  107. package/dist/engine/agent-api/nodes/physics.js.map +1 -1
  108. package/dist/engine/agent-api/nodes/primitives.d.ts +16 -1
  109. package/dist/engine/agent-api/nodes/primitives.d.ts.map +1 -1
  110. package/dist/engine/agent-api/nodes/primitives.js +11 -8
  111. package/dist/engine/agent-api/nodes/primitives.js.map +1 -1
  112. package/dist/engine/agent-api/nodes/types/runtime.d.ts +5 -0
  113. package/dist/engine/agent-api/nodes/types/runtime.d.ts.map +1 -1
  114. package/dist/engine/agent-api/nodes/types.d.ts +2 -0
  115. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  116. package/dist/engine/contracts/environment.d.ts +9 -0
  117. package/dist/engine/contracts/environment.d.ts.map +1 -1
  118. package/dist/engine/contracts/environment.js.map +1 -1
  119. package/dist/engine/contracts/lighting.d.ts +3 -0
  120. package/dist/engine/contracts/lighting.d.ts.map +1 -1
  121. package/dist/engine/contracts/lighting.js.map +1 -1
  122. package/dist/engine/lanes/prd02.d.ts +12 -4
  123. package/dist/engine/lanes/prd02.d.ts.map +1 -1
  124. package/dist/engine/lanes/prd02.js +23 -7
  125. package/dist/engine/lanes/prd02.js.map +1 -1
  126. package/dist/game/touch/TouchControls.d.ts.map +1 -1
  127. package/dist/game/touch/TouchControls.js +48 -12
  128. package/dist/game/touch/TouchControls.js.map +1 -1
  129. package/dist/react/index.d.ts +13 -0
  130. package/dist/react/index.d.ts.map +1 -1
  131. package/dist/react/index.js +88 -8
  132. package/dist/react/index.js.map +1 -1
  133. package/dist/rendering/DepthPass.d.ts +7 -0
  134. package/dist/rendering/DepthPass.d.ts.map +1 -1
  135. package/dist/rendering/DepthPass.js +40 -4
  136. package/dist/rendering/DepthPass.js.map +1 -1
  137. package/dist/rendering/ForwardPass.d.ts +69 -5
  138. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  139. package/dist/rendering/ForwardPass.js +119 -27
  140. package/dist/rendering/ForwardPass.js.map +1 -1
  141. package/dist/rendering/RenderDevice.d.ts +5 -0
  142. package/dist/rendering/RenderDevice.d.ts.map +1 -1
  143. package/dist/rendering/RenderDevice.js.map +1 -1
  144. package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
  145. package/dist/rendering/RendererPostprocessPlan.js +8 -1
  146. package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
  147. package/dist/rendering/WebGL2Device.d.ts +3 -0
  148. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  149. package/dist/rendering/WebGL2Device.js +20 -0
  150. package/dist/rendering/WebGL2Device.js.map +1 -1
  151. package/dist/rendering/forward/Lighting.d.ts +32 -0
  152. package/dist/rendering/forward/Lighting.d.ts.map +1 -1
  153. package/dist/rendering/forward/Lighting.js +103 -3
  154. package/dist/rendering/forward/Lighting.js.map +1 -1
  155. package/dist/rendering/index.d.ts +2 -2
  156. package/dist/rendering/index.d.ts.map +1 -1
  157. package/dist/rendering/index.js +1 -1
  158. package/dist/rendering/index.js.map +1 -1
  159. package/dist/rendering/post/v2Stages.d.ts.map +1 -1
  160. package/dist/rendering/post/v2Stages.js +2 -0
  161. package/dist/rendering/post/v2Stages.js.map +1 -1
  162. package/dist/rendering/quality/DirectPath.d.ts +13 -0
  163. package/dist/rendering/quality/DirectPath.d.ts.map +1 -1
  164. package/dist/rendering/quality/DirectPath.js +33 -1
  165. package/dist/rendering/quality/DirectPath.js.map +1 -1
  166. package/dist/rendering/renderer/Background.d.ts.map +1 -1
  167. package/dist/rendering/renderer/Background.js +31 -2
  168. package/dist/rendering/renderer/Background.js.map +1 -1
  169. package/dist/rendering/renderer/InstanceFrustumCull.d.ts +5 -3
  170. package/dist/rendering/renderer/InstanceFrustumCull.d.ts.map +1 -1
  171. package/dist/rendering/renderer/InstanceFrustumCull.js +17 -6
  172. package/dist/rendering/renderer/InstanceFrustumCull.js.map +1 -1
  173. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts +6 -1
  174. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -1
  175. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js +8 -2
  176. package/dist/rendering/shaders/chunks/lighting_ibl.glsl.js.map +1 -1
  177. package/dist/rendering/shadows/CascadeUse.d.ts +3 -0
  178. package/dist/rendering/shadows/CascadeUse.d.ts.map +1 -1
  179. package/dist/rendering/shadows/CascadeUse.js +16 -1
  180. package/dist/rendering/shadows/CascadeUse.js.map +1 -1
  181. package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts +4 -0
  182. package/dist/rendering/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
  183. package/dist/rendering/shadows/Prd02ShadowsContributor.js +3 -1
  184. package/dist/rendering/shadows/Prd02ShadowsContributor.js.map +1 -1
  185. package/dist/rendering/webgl2/ContextLifecycle.d.ts.map +1 -1
  186. package/dist/rendering/webgl2/ContextLifecycle.js +14 -2
  187. package/dist/rendering/webgl2/ContextLifecycle.js.map +1 -1
  188. package/dist/rendering/webgl2/MultiDraw.d.ts +2 -0
  189. package/dist/rendering/webgl2/MultiDraw.d.ts.map +1 -1
  190. package/dist/rendering/webgl2/MultiDraw.js +24 -6
  191. package/dist/rendering/webgl2/MultiDraw.js.map +1 -1
  192. package/package.json +25 -25
  193. package/templates/cinematic-scene/package.json +2 -2
  194. package/templates/mini-game/package.json +2 -2
  195. package/templates/product-viewer/package.json +2 -2
  196. package/templates/production-asset-inspector/package.json +1 -1
  197. package/templates/production-material-studio/package.json +1 -1
  198. package/templates/production-product-configurator/package.json +1 -1
  199. package/templates/production-product-viewer/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { CREATE_AURA3D_TEMPLATES, createA3DProject, resolveTemplateAlias, templateAliasWarning } from "./index.js";
2
+ import { readFileSync } from "node:fs";
3
+ import { CREATE_AURA3D_TEMPLATES, createA3DProject, fetchMissingTemplateAssets, resolveTemplateAlias, templateAliasWarning } from "./index.js";
3
4
  import { compileShowcaseSpecFile } from "./showcase-spec-compiler.js";
4
5
  const args = process.argv.slice(2);
5
6
  if (args.includes("--help") || args.includes("-h")) {
@@ -56,7 +57,26 @@ const result = createA3DProject({
56
57
  agent: agentOption,
57
58
  skills: skillsOption
58
59
  });
59
- console.log(JSON.stringify(result, null, 2));
60
+ // No top-level await (lessons-learned B8, pnpm verify:no-tla): the download runs in a promise chain.
61
+ if (result.missingAssets.length > 0) {
62
+ // Large template binaries are not in the npm package; fetch them from this version's tagged source tree.
63
+ const version = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
64
+ const mb = result.missingAssets.reduce((sum, entry) => sum + entry.bytes, 0) / 1048576;
65
+ console.error(`create-aura3d: downloading ${result.missingAssets.length} template asset(s), ${mb.toFixed(1)} MB, for ${template} ${version}`);
66
+ void fetchMissingTemplateAssets(result, { version, log: (line) => console.error(` ${line}`) }).then((assets) => {
67
+ if (assets.failed.length > 0) {
68
+ console.error(`create-aura3d: ${assets.failed.length} template asset(s) could not be downloaded and verified:`);
69
+ for (const failure of assets.failed)
70
+ console.error(` ${failure.path}\n ${failure.reasons.join("\n ")}`);
71
+ console.error("Run the same command again when online, or set AURA3D_TEMPLATE_ASSET_BASE to a mirror of packages/create-aura3d.");
72
+ process.exitCode = 1;
73
+ }
74
+ console.log(JSON.stringify({ ...result, missingAssets: assets.failed.map((f) => f.path), fetchedAssets: assets.fetched.map((f) => f.path) }, null, 2));
75
+ });
76
+ }
77
+ else {
78
+ console.log(JSON.stringify(result, null, 2));
79
+ }
60
80
  function readOption(name) {
61
81
  const index = args.indexOf(name);
62
82
  return index >= 0 ? args[index + 1] : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type FetchTemplateAssetsOptions, type FetchTemplateAssetsResult, type TemplateAssetEntry } from "./template-assets.js";
1
2
  export declare const CREATE_AURA3D_TEMPLATES: readonly ["product-viewer", "cinematic-scene", "mini-game", "racing-starter", "falling-blocks-starter", "fighting-game", "arena-shooter", "animation-channel", "prompt-animation-channel", "animation-studio", "episode-builder", "character-controller", "premium-product-viewer", "architecture-interior", "material-authoring", "asset-inspector", "character-viewer", "postprocess-scene", "custom-scene", "large-scene"];
2
3
  export type CreateA3DTemplate = (typeof CREATE_AURA3D_TEMPLATES)[number];
3
4
  /**
@@ -40,12 +41,22 @@ export interface CreateA3DProjectResult {
40
41
  readonly template: CreateA3DTemplate;
41
42
  readonly files: readonly string[];
42
43
  readonly agentSkills?: import("./agent-skills.js").WriteAgentSkillsResult;
44
+ /**
45
+ * Large template binaries the npm package does not ship (template-assets.json) and that are not in the project yet.
46
+ * Empty in a source checkout. Pass the result to `fetchMissingTemplateAssets` (the CLI does) to download them.
47
+ */
48
+ readonly missingAssets: readonly TemplateAssetEntry[];
43
49
  }
44
50
  export declare function createA3DProject(options: CreateA3DProjectOptions): CreateA3DProjectResult;
51
+ /** Download the template binaries `createA3DProject` reported missing; each is verified against its size and sha256. */
52
+ export declare function fetchMissingTemplateAssets(result: CreateA3DProjectResult, options: {
53
+ readonly version: string;
54
+ } & Pick<FetchTemplateAssetsOptions, "bases" | "fetch" | "log">): Promise<FetchTemplateAssetsResult>;
45
55
  export declare function writeCreateA3DReport(path: string, result: CreateA3DProjectResult): void;
46
56
  export { probeShowcaseGameGeometry, type ShowcaseGameGeometryCategory, type ShowcaseGameGeometryProbeResult } from "./showcase-spec-game-geometry-probe.js";
47
57
  export type { ExtractOptions as ShowcaseGameGeometryExtractOptions, GeometryExtractionFailure as ShowcaseGameGeometryExtractionFailure, GeometryExtractionResult as ShowcaseGameGeometryExtractionResult, GeometryExtractionSuccess as ShowcaseGameGeometryExtractionSuccess } from "./showcase-spec-game-geometry-extractor.js";
48
58
  export type { ShowcasePlatformerPlayableSurfaceMap, ShowcaseRacingTrackTopology } from "./showcase-spec-types.js";
49
59
  export { SHOWCASE_ASSET_PAIR_COMPOSITION_THRESHOLDS, validateShowcaseAssetPairComposition, validateShowcaseAssetPairCompositionFromDisk, type ShowcaseAssetPairCompositionCategory, type ShowcaseAssetPairCompositionCheck, type ShowcaseAssetPairCompositionInput, type ShowcaseAssetPairCompositionReport, type ValidateShowcaseAssetPairCompositionFromDiskOptions } from "./showcase-spec-asset-pair-composition.js";
60
+ export { DEFAULT_TEMPLATE_ASSET_BASES, TEMPLATE_ASSET_MANIFEST, buildTemplateAssetManifest, fetchTemplateAssets, missingTemplateAssets, readTemplateAssetManifest, templateAssetBases, type FetchTemplateAssetsOptions, type FetchTemplateAssetsResult, type TemplateAssetEntry, type TemplateAssetManifest } from "./template-assets.js";
50
61
  export { AURA_AGENT_CLIENTS, AURA_SKILLS_LEDGER, findBundledSkillsDir, readSkillsManifest, selectSkills, writeAgentSkills, type AuraAgentClient, type AuraAgentTarget, type AuraSkillMode, type AuraSkillsManifest, type WriteAgentSkillsOptions, type WriteAgentSkillsResult } from "./agent-skills.js";
51
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,uBAAuB,+ZAqB1B,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;EAS0B,CAAC;AACxD,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAM9E;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAGlF;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,mBAAmB,EAAE,eAAe,CAAC;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,mBAAmB,EAAE,aAAa,CAAC;CAC7D;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,mBAAmB,EAAE,sBAAsB,CAAC;CAC3E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAwCzF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAGvF;AA0BD,OAAO,EACL,yBAAyB,EACzB,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,cAAc,IAAI,kCAAkC,EACpD,yBAAyB,IAAI,qCAAqC,EAClE,wBAAwB,IAAI,oCAAoC,EAChE,yBAAyB,IAAI,qCAAqC,EACnE,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,oCAAoC,EACpC,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,0CAA0C,EAC1C,oCAAoC,EACpC,4CAA4C,EAC5C,KAAK,oCAAoC,EACzC,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,KAAK,mDAAmD,EACzD,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { dirname, relative, resolve } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { writeAgentSkills } from "./agent-skills.js";
5
5
  import { copyTemplateHdris, TEMPLATE_HDRI_DIR, templateAuthorsLook } from "./template-hdri.js";
6
+ import { fetchTemplateAssets, missingTemplateAssets, readTemplateAssetManifest } from "./template-assets.js";
6
7
  export const CREATE_AURA3D_TEMPLATES = [
7
8
  "product-viewer",
8
9
  "cinematic-scene",
@@ -75,7 +76,7 @@ export function createA3DProject(options) {
75
76
  const dependencies = { ...(packageJson.dependencies ?? {}) };
76
77
  const auraDependencies = Object.keys(dependencies).filter((name) => name.startsWith("@aura3d/"));
77
78
  if (auraDependencies.length === 0) {
78
- dependencies["@aura3d/engine"] = options.packageVersion ?? "4.5.0";
79
+ dependencies["@aura3d/engine"] = options.packageVersion ?? "4.6.0";
79
80
  }
80
81
  else if (options.packageVersion) {
81
82
  for (const dependency of auraDependencies)
@@ -94,9 +95,14 @@ export function createA3DProject(options) {
94
95
  targetDir,
95
96
  template,
96
97
  files: listTemplateFiles(targetDir),
97
- ...(agentSkills ? { agentSkills } : {})
98
+ ...(agentSkills ? { agentSkills } : {}),
99
+ missingAssets: missingTemplateAssets(readTemplateAssetManifest(rootDir), template, targetDir)
98
100
  };
99
101
  }
102
+ /** Download the template binaries `createA3DProject` reported missing; each is verified against its size and sha256. */
103
+ export async function fetchMissingTemplateAssets(result, options) {
104
+ return fetchTemplateAssets({ projectDir: result.targetDir, template: result.template, entries: result.missingAssets, ...options });
105
+ }
100
106
  export function writeCreateA3DReport(path, result) {
101
107
  mkdirSync(dirname(resolve(path)), { recursive: true });
102
108
  writeFileSync(resolve(path), `${JSON.stringify(result, null, 2)}\n`);
@@ -129,5 +135,6 @@ function findDefaultTemplateRoot() {
129
135
  }
130
136
  export { probeShowcaseGameGeometry } from "./showcase-spec-game-geometry-probe.js";
131
137
  export { SHOWCASE_ASSET_PAIR_COMPOSITION_THRESHOLDS, validateShowcaseAssetPairComposition, validateShowcaseAssetPairCompositionFromDisk } from "./showcase-spec-asset-pair-composition.js";
138
+ export { DEFAULT_TEMPLATE_ASSET_BASES, TEMPLATE_ASSET_MANIFEST, buildTemplateAssetManifest, fetchTemplateAssets, missingTemplateAssets, readTemplateAssetManifest, templateAssetBases } from "./template-assets.js";
132
139
  export { AURA_AGENT_CLIENTS, AURA_SKILLS_LEDGER, findBundledSkillsDir, readSkillsManifest, selectSkills, writeAgentSkills } from "./agent-skills.js";
133
140
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ export declare const TEMPLATE_ASSET_MANIFEST = "template-assets.json";
2
+ /** Files at or above this size, with a binary extension, are fetched on demand instead of shipped. */
3
+ export declare const TEMPLATE_ASSET_MIN_BYTES: number;
4
+ export declare const TEMPLATE_ASSET_EXTENSIONS: readonly [".glb", ".gltf", ".bin", ".wav", ".ogg", ".mp3", ".ktx2", ".hdr"];
5
+ export interface TemplateAssetEntry {
6
+ /** Path inside the template, POSIX separators (e.g. "public/aura-assets/hero.glb"). */
7
+ readonly path: string;
8
+ readonly bytes: number;
9
+ readonly sha256: string;
10
+ }
11
+ export interface TemplateAssetManifest {
12
+ readonly schema: "create-aura3d/template-assets@1";
13
+ /** template name -> entries */
14
+ readonly templates: Readonly<Record<string, readonly TemplateAssetEntry[]>>;
15
+ }
16
+ /**
17
+ * Where a file comes from: `<base>/<path inside the package>`. `{version}` in a base is replaced with the package
18
+ * version. Tried in order; AURA3D_TEMPLATE_ASSET_BASE (one base, or several separated by spaces) replaces the defaults.
19
+ */
20
+ export declare const DEFAULT_TEMPLATE_ASSET_BASES: readonly ["https://raw.githubusercontent.com/auraoneai/aura3d/v{version}/packages/create-aura3d", "https://cdn.jsdelivr.net/gh/auraoneai/aura3d@v{version}/packages/create-aura3d"];
21
+ /** Build the manifest from a package root (`<root>/templates/<name>/...`). Pure filesystem, sorted, deterministic. */
22
+ export declare function buildTemplateAssetManifest(rootDir: string, templates: readonly string[], listFiles: (dir: string) => string[]): TemplateAssetManifest;
23
+ export declare function readTemplateAssetManifest(rootDir: string): TemplateAssetManifest | null;
24
+ /** Manifest entries of `template` that are missing (or the wrong size) in `projectDir`. */
25
+ export declare function missingTemplateAssets(manifest: TemplateAssetManifest | null, template: string, projectDir: string): TemplateAssetEntry[];
26
+ export interface FetchTemplateAssetsOptions {
27
+ readonly projectDir: string;
28
+ readonly template: string;
29
+ readonly entries: readonly TemplateAssetEntry[];
30
+ readonly version: string;
31
+ readonly bases?: readonly string[];
32
+ readonly fetch?: (url: string) => Promise<{
33
+ ok: boolean;
34
+ status: number;
35
+ arrayBuffer(): Promise<ArrayBuffer>;
36
+ }>;
37
+ readonly log?: (line: string) => void;
38
+ }
39
+ export interface FetchTemplateAssetsResult {
40
+ readonly fetched: readonly {
41
+ path: string;
42
+ url: string;
43
+ bytes: number;
44
+ }[];
45
+ readonly failed: readonly {
46
+ path: string;
47
+ reasons: readonly string[];
48
+ }[];
49
+ }
50
+ export declare function templateAssetBases(env?: Record<string, string | undefined>): string[];
51
+ /** Download each entry, verify size and sha256, write it atomically. Never writes a file that fails verification. */
52
+ export declare function fetchTemplateAssets(options: FetchTemplateAssetsOptions): Promise<FetchTemplateAssetsResult>;
53
+ //# sourceMappingURL=template-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-assets.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/template-assets.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAC9D,sGAAsG;AACtG,eAAO,MAAM,wBAAwB,QAAa,CAAC;AACnD,eAAO,MAAM,yBAAyB,6EAA8E,CAAC;AAErH,MAAM,WAAW,kBAAkB;IACjC,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC;IACnD,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC,CAAC,CAAC;CAC7E;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,qLAG/B,CAAC;AAKX,sHAAsH;AACtH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,GAAG,qBAAqB,CAgBrJ;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAMvF;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAMxI;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;IAChH,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1E,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;CAC1E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,MAAM,EAAE,CAGlG;AAED,qHAAqH;AACrH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAqCjH"}
@@ -0,0 +1,116 @@
1
+ // On-demand template assets (audit RH-14). create-aura3d@4.5.0 is 101.9 MB unpacked; 87 MB of it is 51 binary files
2
+ // (GLB, WAV) under templates/*/public. Those files are left out of the npm tarball and listed, with size and sha256, in
3
+ // template-assets.json. After a template is copied, any listed file that is missing is downloaded from the tagged
4
+ // source tree for this package version and written only if its size and sha256 match. In a source checkout every file
5
+ // is present, so nothing is fetched.
6
+ import { createHash } from "node:crypto";
7
+ import { existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from "node:fs";
8
+ import { dirname, join, relative, resolve, sep } from "node:path";
9
+ export const TEMPLATE_ASSET_MANIFEST = "template-assets.json";
10
+ /** Files at or above this size, with a binary extension, are fetched on demand instead of shipped. */
11
+ export const TEMPLATE_ASSET_MIN_BYTES = 256 * 1024;
12
+ export const TEMPLATE_ASSET_EXTENSIONS = [".glb", ".gltf", ".bin", ".wav", ".ogg", ".mp3", ".ktx2", ".hdr"];
13
+ /**
14
+ * Where a file comes from: `<base>/<path inside the package>`. `{version}` in a base is replaced with the package
15
+ * version. Tried in order; AURA3D_TEMPLATE_ASSET_BASE (one base, or several separated by spaces) replaces the defaults.
16
+ */
17
+ export const DEFAULT_TEMPLATE_ASSET_BASES = [
18
+ "https://raw.githubusercontent.com/auraoneai/aura3d/v{version}/packages/create-aura3d",
19
+ "https://cdn.jsdelivr.net/gh/auraoneai/aura3d@v{version}/packages/create-aura3d"
20
+ ];
21
+ const toPosix = (p) => p.split(sep).join("/");
22
+ const sha256 = (bytes) => createHash("sha256").update(bytes).digest("hex");
23
+ /** Build the manifest from a package root (`<root>/templates/<name>/...`). Pure filesystem, sorted, deterministic. */
24
+ export function buildTemplateAssetManifest(rootDir, templates, listFiles) {
25
+ const out = {};
26
+ for (const template of [...templates].sort()) {
27
+ const dir = resolve(rootDir, "templates", template);
28
+ const entries = [];
29
+ for (const file of listFiles(dir).sort()) {
30
+ const rel = toPosix(relative(dir, file));
31
+ if (rel.split("/").some((part) => part === "node_modules" || part === "dist" || part === "test-results"))
32
+ continue;
33
+ if (!TEMPLATE_ASSET_EXTENSIONS.some((ext) => rel.toLowerCase().endsWith(ext)))
34
+ continue;
35
+ const size = statSync(file).size;
36
+ if (size < TEMPLATE_ASSET_MIN_BYTES)
37
+ continue;
38
+ entries.push({ path: rel, bytes: size, sha256: sha256(readFileSync(file)) });
39
+ }
40
+ if (entries.length)
41
+ out[template] = entries;
42
+ }
43
+ return { schema: "create-aura3d/template-assets@1", templates: out };
44
+ }
45
+ export function readTemplateAssetManifest(rootDir) {
46
+ const file = resolve(rootDir, TEMPLATE_ASSET_MANIFEST);
47
+ if (!existsSync(file))
48
+ return null;
49
+ const parsed = JSON.parse(readFileSync(file, "utf8"));
50
+ if (parsed.schema !== "create-aura3d/template-assets@1")
51
+ throw new Error(`create-aura3d: unknown ${TEMPLATE_ASSET_MANIFEST} schema ${String(parsed.schema)}`);
52
+ return parsed;
53
+ }
54
+ /** Manifest entries of `template` that are missing (or the wrong size) in `projectDir`. */
55
+ export function missingTemplateAssets(manifest, template, projectDir) {
56
+ const entries = manifest?.templates[template] ?? [];
57
+ return entries.filter((entry) => {
58
+ const file = join(projectDir, ...entry.path.split("/"));
59
+ return !existsSync(file) || statSync(file).size !== entry.bytes;
60
+ });
61
+ }
62
+ export function templateAssetBases(env = process.env) {
63
+ const override = env.AURA3D_TEMPLATE_ASSET_BASE?.trim();
64
+ return override ? override.split(/\s+/) : [...DEFAULT_TEMPLATE_ASSET_BASES];
65
+ }
66
+ /** Download each entry, verify size and sha256, write it atomically. Never writes a file that fails verification. */
67
+ export async function fetchTemplateAssets(options) {
68
+ const doFetch = options.fetch ?? ((url) => fetch(url));
69
+ const bases = (options.bases ?? templateAssetBases()).map((b) => b.replace(/\{version\}/g, options.version).replace(/\/+$/, ""));
70
+ const fetched = [];
71
+ const failed = [];
72
+ for (const entry of options.entries) {
73
+ if (entry.path.split("/").some((part) => part === ".." || part === "") || entry.path.startsWith("/")) {
74
+ failed.push({ path: entry.path, reasons: ["unsafe path in manifest"] });
75
+ continue;
76
+ }
77
+ const reasons = [];
78
+ let done = false;
79
+ for (const base of bases) {
80
+ const url = `${base}/templates/${options.template}/${entry.path}`;
81
+ try {
82
+ const response = await doFetch(url);
83
+ if (!response.ok) {
84
+ reasons.push(`${url}: HTTP ${response.status}`);
85
+ continue;
86
+ }
87
+ const bytes = new Uint8Array(await response.arrayBuffer());
88
+ if (bytes.byteLength !== entry.bytes) {
89
+ reasons.push(`${url}: ${bytes.byteLength} bytes, expected ${entry.bytes}`);
90
+ continue;
91
+ }
92
+ const digest = sha256(bytes);
93
+ if (digest !== entry.sha256) {
94
+ reasons.push(`${url}: sha256 ${digest.slice(0, 12)}..., expected ${entry.sha256.slice(0, 12)}...`);
95
+ continue;
96
+ }
97
+ const target = join(options.projectDir, ...entry.path.split("/"));
98
+ mkdirSync(dirname(target), { recursive: true });
99
+ const temp = `${target}.download`;
100
+ writeFileSync(temp, bytes);
101
+ renameSync(temp, target);
102
+ fetched.push({ path: entry.path, url, bytes: bytes.byteLength });
103
+ options.log?.(`fetched ${entry.path} (${(bytes.byteLength / 1048576).toFixed(1)} MB)`);
104
+ done = true;
105
+ break;
106
+ }
107
+ catch (error) {
108
+ reasons.push(`${url}: ${error instanceof Error ? error.message : String(error)}`);
109
+ }
110
+ }
111
+ if (!done)
112
+ failed.push({ path: entry.path, reasons });
113
+ }
114
+ return { fetched, failed };
115
+ }
116
+ //# sourceMappingURL=template-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-assets.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/template-assets.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@
3
3
  * time base. `getDelta()` returns seconds since the last `getDelta`/
4
4
  * `getElapsedTime` call (0 while stopped); `getElapsedTime()` returns total
5
5
  * seconds since `start()`. `autoStart` (default true) starts the clock on the
6
- * first read, matching three.js.
6
+ * first read, matching three.js. `stop()` folds the pending interval into
7
+ * `elapsedTime` and clears `autoStart`, as three does, so a stopped clock stays
8
+ * stopped and keeps its time (anim-phys-05).
7
9
  *
8
10
  * Backed by `createFrameLoop({ useRaf: false, fixedDt: 0 })`: the loop is a
9
11
  * pure accumulator here — `step(dt)` adds scaled real seconds to `time`, which
@@ -19,7 +21,8 @@ export interface AuraClockOptions {
19
21
  export declare class Clock {
20
22
  private readonly loop;
21
23
  private readonly now;
22
- private readonly autoStart;
24
+ /** three's `clock.autoStart`; `stop()` sets it to false. */
25
+ autoStart: boolean;
23
26
  private lastNow;
24
27
  private runningFlag;
25
28
  /** Loop time at the last start(); three resets elapsedTime to 0 on every start(). */
@@ -1 +1 @@
1
- {"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/Clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAK;IAErB,+FAA+F;gBACnF,OAAO,GAAE,gBAAgB,GAAG,OAAY;IAOpD,+BAA+B;IAC/B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,qEAAqE;IACrE,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IAMZ,gFAAgF;IAChF,QAAQ,IAAI,MAAM;IAgBlB,mGAAmG;IACnG,cAAc,IAAI,MAAM;CAIzB"}
1
+ {"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/Clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAK;IAErB,+FAA+F;gBACnF,OAAO,GAAE,gBAAgB,GAAG,OAAY;IAOpD,+BAA+B;IAC/B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,qEAAqE;IACrE,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IASZ,gFAAgF;IAChF,QAAQ,IAAI,MAAM;IAalB,mGAAmG;IACnG,cAAc,IAAI,MAAM;CAIzB"}
@@ -3,7 +3,9 @@
3
3
  * time base. `getDelta()` returns seconds since the last `getDelta`/
4
4
  * `getElapsedTime` call (0 while stopped); `getElapsedTime()` returns total
5
5
  * seconds since `start()`. `autoStart` (default true) starts the clock on the
6
- * first read, matching three.js.
6
+ * first read, matching three.js. `stop()` folds the pending interval into
7
+ * `elapsedTime` and clears `autoStart`, as three does, so a stopped clock stays
8
+ * stopped and keeps its time (anim-phys-05).
7
9
  *
8
10
  * Backed by `createFrameLoop({ useRaf: false, fixedDt: 0 })`: the loop is a
9
11
  * pure accumulator here — `step(dt)` adds scaled real seconds to `time`, which
@@ -14,6 +16,7 @@ import { createFrameLoop } from "./FrameLoop.js";
14
16
  export class Clock {
15
17
  loop;
16
18
  now;
19
+ /** three's `clock.autoStart`; `stop()` sets it to false. */
17
20
  autoStart;
18
21
  lastNow;
19
22
  runningFlag = false;
@@ -44,6 +47,10 @@ export class Clock {
44
47
  this.lastNow = this.now();
45
48
  }
46
49
  stop() {
50
+ // three: `this.getElapsedTime(); this.running = false; this.autoStart = false;`
51
+ if (this.runningFlag)
52
+ this.getDelta();
53
+ this.autoStart = false;
47
54
  this.runningFlag = false;
48
55
  this.loop.stop();
49
56
  this.lastNow = undefined;
@@ -51,10 +58,8 @@ export class Clock {
51
58
  /** Seconds since the previous `getDelta`/`getElapsedTime` (0 while stopped). */
52
59
  getDelta() {
53
60
  if (!this.runningFlag) {
54
- if (this.autoStart && this.lastNow === undefined) {
61
+ if (this.autoStart)
55
62
  this.start();
56
- return 0;
57
- }
58
63
  return 0;
59
64
  }
60
65
  const now = this.now();
@@ -1 +1 @@
1
- {"version":3,"file":"Clock.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/Clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AASjE,MAAM,OAAO,KAAK;IACC,IAAI,CAAY;IAChB,GAAG,CAAe;IAClB,SAAS,CAAU;IAC5B,OAAO,CAAqB;IAC5B,WAAW,GAAG,KAAK,CAAC;IAC5B,qFAAqF;IAC7E,QAAQ,GAAG,CAAC,CAAC;IAErB,+FAA+F;IAC/F,YAAY,UAAsC,EAAE;QAClD,IAAI,OAAO,OAAO,KAAK,SAAS;YAAE,OAAO,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,qEAAqE;IACrE,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IACnD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,yEAAyE;QACzE,uBAAuB;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,gFAAgF;IAChF,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mGAAmG;IACnG,cAAc;QACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"Clock.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/Clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AASjE,MAAM,OAAO,KAAK;IACC,IAAI,CAAY;IAChB,GAAG,CAAe;IACnC,4DAA4D;IAC5D,SAAS,CAAU;IACX,OAAO,CAAqB;IAC5B,WAAW,GAAG,KAAK,CAAC;IAC5B,qFAAqF;IAC7E,QAAQ,GAAG,CAAC,CAAC;IAErB,+FAA+F;IAC/F,YAAY,UAAsC,EAAE;QAClD,IAAI,OAAO,OAAO,KAAK,SAAS;YAAE,OAAO,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,qEAAqE;IACrE,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IACnD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,yEAAyE;QACzE,uBAAuB;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI;QACF,gFAAgF;QAChF,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,gFAAgF;IAChF,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,4DAA4D;QAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mGAAmG;IACnG,cAAc;QACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { BoneMaskSpec } from "../../animation/lanes/index.js";
1
+ import type { BoneMaskSkeleton, BoneMaskSpec } from "../../animation/lanes/index.js";
2
2
  import type { AuraBoneMaskSpec } from "../contracts/animation.js";
3
3
  /**
4
4
  * The public `AuraBoneMaskSpec` (`{ include?, exclude?, humanoid? }`) is not the shape the pose mixer's
@@ -8,7 +8,19 @@ import type { AuraBoneMaskSpec } from "../contracts/animation.js";
8
8
  *
9
9
  * - `include` entries are exact bone names (or pose selectors, passed through);
10
10
  * - `humanoid` adds the matching preset (`"arms"` is both arms);
11
- * - `exclude` names get weight 0 after the includes, so they win.
11
+ * - `exclude` names get weight 0 after the includes, so they win, and take their child bones with them;
12
+ * with no `include`/`humanoid`, the mask starts from the full body (anim-phys-08).
12
13
  */
14
+ /**
15
+ * The skeleton a mask is built over: bind-order joint names plus parent indices, so subtree
16
+ * selectors (`upper-body`, `exclude`) reach child bones. Without the mixer's skeleton the parents
17
+ * are unknown and every selector touches only the named joints (anim-phys-08).
18
+ */
19
+ export declare function boneMaskSkeletonFor(runtime: {
20
+ readonly skeletonJointNames?: () => readonly string[];
21
+ readonly mixer?: () => {
22
+ readonly skeleton?: BoneMaskSkeleton;
23
+ };
24
+ }): BoneMaskSkeleton | undefined;
13
25
  export declare function toPoseBoneMaskSpec(spec: AuraBoneMaskSpec | BoneMaskSpec): BoneMaskSpec;
14
26
  //# sourceMappingURL=animationMask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"animationMask.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/animationMask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,GAAG,YAAY,CAQtF"}
1
+ {"version":3,"file":"animationMask.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/animationMask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;;;GAUG;AACH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC;CACjE,GAAG,gBAAgB,GAAG,SAAS,CAI/B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,GAAG,YAAY,CAYtF"}
@@ -6,8 +6,20 @@
6
6
  *
7
7
  * - `include` entries are exact bone names (or pose selectors, passed through);
8
8
  * - `humanoid` adds the matching preset (`"arms"` is both arms);
9
- * - `exclude` names get weight 0 after the includes, so they win.
9
+ * - `exclude` names get weight 0 after the includes, so they win, and take their child bones with them;
10
+ * with no `include`/`humanoid`, the mask starts from the full body (anim-phys-08).
10
11
  */
12
+ /**
13
+ * The skeleton a mask is built over: bind-order joint names plus parent indices, so subtree
14
+ * selectors (`upper-body`, `exclude`) reach child bones. Without the mixer's skeleton the parents
15
+ * are unknown and every selector touches only the named joints (anim-phys-08).
16
+ */
17
+ export function boneMaskSkeletonFor(runtime) {
18
+ const skeleton = typeof runtime.mixer === "function" ? runtime.mixer().skeleton : undefined;
19
+ if (skeleton?.parentIndices !== undefined)
20
+ return { jointNames: skeleton.jointNames, parentIndices: skeleton.parentIndices };
21
+ return typeof runtime.skeletonJointNames === "function" ? { jointNames: runtime.skeletonJointNames() } : undefined;
22
+ }
11
23
  export function toPoseBoneMaskSpec(spec) {
12
24
  const source = spec;
13
25
  const include = [...(source.include ?? [])];
@@ -16,8 +28,11 @@ export function toPoseBoneMaskSpec(spec) {
16
28
  else if (source.humanoid !== undefined)
17
29
  include.push({ humanoid: source.humanoid });
18
30
  const weights = { ...(source.weights ?? {}) };
19
- for (const bone of source.exclude ?? [])
20
- weights[bone] = 0;
21
- return Object.keys(weights).length > 0 ? { include, weights } : { include };
31
+ const exclude = [...(source.exclude ?? [])];
32
+ return {
33
+ include,
34
+ ...(Object.keys(weights).length > 0 ? { weights } : {}),
35
+ ...(exclude.length > 0 ? { exclude } : {})
36
+ };
22
37
  }
23
38
  //# sourceMappingURL=animationMask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"animationMask.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/animationMask.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAqC;IACtE,MAAM,MAAM,GAAG,IAAgD,CAAC;IAChE,MAAM,OAAO,GAAuB,CAAC,GAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAiC,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;SAC7F,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpF,MAAM,OAAO,GAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;IACtE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"animationMask.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/animationMask.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAGnC;IACC,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,IAAI,QAAQ,EAAE,aAAa,KAAK,SAAS;QAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;IAC7H,OAAO,OAAO,OAAO,CAAC,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACrH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAqC;IACtE,MAAM,MAAM,GAAG,IAAgD,CAAC;IAChE,MAAM,OAAO,GAAuB,CAAC,GAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAiC,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;SAC7F,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpF,MAAM,OAAO,GAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;IACtE,MAAM,OAAO,GAAuB,CAAC,GAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAiC,CAAC,CAAC;IACjG,OAAO;QACL,OAAO;QACP,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"actorAnimationHandle.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/actorAnimationHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actorAnimationHandle.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/app/actorAnimationHandle.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  import { composeMat4, decomposeMat4, eulerXYZFromQuat, multiplyMat4, quatFromEulerXYZ } from "../../../scene/index.js";
9
9
  import { addPrd06ActorConstraint, addPrd06ActorSpringBones, clearPrd06ActorConstraints, clearPrd06ActorSpringBones } from "../../production-runtime/actor/TypedGLBActorAnimation.js";
10
10
  import { createBoneMask } from "../../../animation/lanes/index.js";
11
- import { toPoseBoneMaskSpec } from "../animationMask.js";
11
+ import { boneMaskSkeletonFor, toPoseBoneMaskSpec } from "../animationMask.js";
12
12
  import { resolveQrFlags } from "../../contracts/flags.js";
13
13
  import { StubActorAnimationApi } from "../../contracts/animation.js";
14
14
  let overrideQrAnimationFlags;
@@ -352,8 +352,9 @@ class Prd06ActorAnimationApi extends StubActorAnimationApi {
352
352
  if (mixer === undefined)
353
353
  return super.playLayer(layer, clip, options);
354
354
  const runtime = this.actor.animation;
355
- const mask = options?.mask !== undefined && typeof runtime.skeletonJointNames === "function"
356
- ? createBoneMask(toPoseBoneMaskSpec(options.mask), { jointNames: runtime.skeletonJointNames() })
355
+ const maskSkeleton = options?.mask !== undefined ? boneMaskSkeletonFor(runtime) : undefined;
356
+ const mask = options?.mask !== undefined && maskSkeleton !== undefined
357
+ ? createBoneMask(toPoseBoneMaskSpec(options.mask), maskSkeleton)
357
358
  : undefined;
358
359
  const additiveWanted = options?.blendMode === "additive";
359
360
  const clipName = additiveWanted && typeof runtime.ensureAdditiveClip === "function"
@@ -363,7 +364,9 @@ class Prd06ActorAnimationApi extends StubActorAnimationApi {
363
364
  weight: options?.weight,
364
365
  blendMode: options?.blendMode,
365
366
  additive: additiveWanted,
366
- mask
367
+ mask,
368
+ // A replaced clip on the same layer fades out while the new one fades in (anim-phys-03).
369
+ ...(options?.fadeIn !== undefined && options.fadeIn > 0 ? { fadeOutPrevious: options.fadeIn } : {})
367
370
  });
368
371
  if (options?.fadeIn !== undefined && options.fadeIn > 0)
369
372
  action.fadeIn(options.fadeIn);