@aura3d/engine 1.0.3 → 1.0.6

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 (210) hide show
  1. package/README.md +338 -14
  2. package/dist/animation/AnimationClipEvents.d.ts +57 -0
  3. package/dist/animation/AnimationClipEvents.d.ts.map +1 -0
  4. package/dist/animation/AnimationClipEvents.js +171 -0
  5. package/dist/animation/AnimationClipEvents.js.map +1 -0
  6. package/dist/animation/AnimationClipRegistry.d.ts +76 -0
  7. package/dist/animation/AnimationClipRegistry.d.ts.map +1 -0
  8. package/dist/animation/AnimationClipRegistry.js +130 -0
  9. package/dist/animation/AnimationClipRegistry.js.map +1 -0
  10. package/dist/animation/AnimationController.d.ts +168 -0
  11. package/dist/animation/AnimationController.d.ts.map +1 -0
  12. package/dist/animation/AnimationController.js +619 -0
  13. package/dist/animation/AnimationController.js.map +1 -0
  14. package/dist/animation/AnimationStateGraph.d.ts +2 -0
  15. package/dist/animation/AnimationStateGraph.d.ts.map +1 -0
  16. package/dist/animation/AnimationStateGraph.js +2 -0
  17. package/dist/animation/AnimationStateGraph.js.map +1 -0
  18. package/dist/animation/AnimationStateMachine.d.ts +16 -0
  19. package/dist/animation/AnimationStateMachine.d.ts.map +1 -1
  20. package/dist/animation/AnimationStateMachine.js +69 -7
  21. package/dist/animation/AnimationStateMachine.js.map +1 -1
  22. package/dist/animation/HumanoidRetargeting.d.ts +76 -0
  23. package/dist/animation/HumanoidRetargeting.d.ts.map +1 -0
  24. package/dist/animation/HumanoidRetargeting.js +331 -0
  25. package/dist/animation/HumanoidRetargeting.js.map +1 -0
  26. package/dist/animation/browser-index.d.ts +18 -0
  27. package/dist/animation/browser-index.d.ts.map +1 -1
  28. package/dist/animation/browser-index.js +13 -0
  29. package/dist/animation/browser-index.js.map +1 -1
  30. package/dist/animation/index.d.ts +17 -1
  31. package/dist/animation/index.d.ts.map +1 -1
  32. package/dist/animation/index.js +12 -1
  33. package/dist/animation/index.js.map +1 -1
  34. package/dist/animation/threejs-compatibility/AnimationDiagnostics.d.ts.map +1 -1
  35. package/dist/animation/threejs-compatibility/AnimationDiagnostics.js +3 -5
  36. package/dist/animation/threejs-compatibility/AnimationDiagnostics.js.map +1 -1
  37. package/dist/assets/GLTFAnimationRuntime.js +1 -1
  38. package/dist/assets/GLTFLoader.js +1 -1
  39. package/dist/aura3d-cli/cli.js +225 -8
  40. package/dist/aura3d-cli/cli.js.map +1 -1
  41. package/dist/aura3d-cli/index.d.ts +283 -3
  42. package/dist/aura3d-cli/index.d.ts.map +1 -1
  43. package/dist/aura3d-cli/index.js +1028 -4
  44. package/dist/aura3d-cli/index.js.map +1 -1
  45. package/dist/aura3d-cli/pull-bridge.d.ts +108 -0
  46. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -0
  47. package/dist/aura3d-cli/pull-bridge.js +333 -0
  48. package/dist/aura3d-cli/pull-bridge.js.map +1 -0
  49. package/dist/create-aura3d/index.d.ts +1 -1
  50. package/dist/create-aura3d/index.d.ts.map +1 -1
  51. package/dist/create-aura3d/index.js +9 -2
  52. package/dist/create-aura3d/index.js.map +1 -1
  53. package/dist/editor-runtime/ProjectSerializer.d.ts +74 -1
  54. package/dist/editor-runtime/ProjectSerializer.d.ts.map +1 -1
  55. package/dist/editor-runtime/ProjectSerializer.js +123 -6
  56. package/dist/editor-runtime/ProjectSerializer.js.map +1 -1
  57. package/dist/editor-runtime/TimelineModel.d.ts +18 -0
  58. package/dist/editor-runtime/TimelineModel.d.ts.map +1 -1
  59. package/dist/editor-runtime/TimelineModel.js +67 -3
  60. package/dist/editor-runtime/TimelineModel.js.map +1 -1
  61. package/dist/editor-runtime/TimelineRuntimeBridge.d.ts +98 -0
  62. package/dist/editor-runtime/TimelineRuntimeBridge.d.ts.map +1 -0
  63. package/dist/editor-runtime/TimelineRuntimeBridge.js +186 -0
  64. package/dist/editor-runtime/TimelineRuntimeBridge.js.map +1 -0
  65. package/dist/editor-runtime/index.d.ts +3 -1
  66. package/dist/editor-runtime/index.d.ts.map +1 -1
  67. package/dist/editor-runtime/index.js +1 -0
  68. package/dist/editor-runtime/index.js.map +1 -1
  69. package/dist/engine/agent-api/AnimationController.d.ts +607 -0
  70. package/dist/engine/agent-api/AnimationController.d.ts.map +1 -0
  71. package/dist/engine/agent-api/AnimationController.js +2192 -0
  72. package/dist/engine/agent-api/AnimationController.js.map +1 -0
  73. package/dist/engine/agent-api/AssetEvidence.d.ts +88 -0
  74. package/dist/engine/agent-api/AssetEvidence.d.ts.map +1 -0
  75. package/dist/engine/agent-api/AssetEvidence.js +157 -0
  76. package/dist/engine/agent-api/AssetEvidence.js.map +1 -0
  77. package/dist/engine/agent-api/AuraAppHandle.d.ts +55 -0
  78. package/dist/engine/agent-api/AuraAppHandle.d.ts.map +1 -0
  79. package/dist/engine/agent-api/AuraAppHandle.js +15 -0
  80. package/dist/engine/agent-api/AuraAppHandle.js.map +1 -0
  81. package/dist/engine/agent-api/AuraVoiceBridge.d.ts +96 -0
  82. package/dist/engine/agent-api/AuraVoiceBridge.d.ts.map +1 -0
  83. package/dist/engine/agent-api/AuraVoiceBridge.js +370 -0
  84. package/dist/engine/agent-api/AuraVoiceBridge.js.map +1 -0
  85. package/dist/engine/agent-api/CartoonDirector.d.ts +95 -0
  86. package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
  87. package/dist/engine/agent-api/CartoonDirector.js +342 -0
  88. package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
  89. package/dist/engine/agent-api/CartoonPerformance.d.ts +149 -0
  90. package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
  91. package/dist/engine/agent-api/CartoonPerformance.js +317 -0
  92. package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
  93. package/dist/engine/agent-api/CartoonRenderQueue.d.ts +132 -0
  94. package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
  95. package/dist/engine/agent-api/CartoonRenderQueue.js +385 -0
  96. package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
  97. package/dist/engine/agent-api/CharacterAssembly.d.ts +126 -0
  98. package/dist/engine/agent-api/CharacterAssembly.d.ts.map +1 -0
  99. package/dist/engine/agent-api/CharacterAssembly.js +280 -0
  100. package/dist/engine/agent-api/CharacterAssembly.js.map +1 -0
  101. package/dist/engine/agent-api/DialoguePerformance.d.ts +150 -0
  102. package/dist/engine/agent-api/DialoguePerformance.d.ts.map +1 -0
  103. package/dist/engine/agent-api/DialoguePerformance.js +335 -0
  104. package/dist/engine/agent-api/DialoguePerformance.js.map +1 -0
  105. package/dist/engine/agent-api/FrameLoop.d.ts +70 -0
  106. package/dist/engine/agent-api/FrameLoop.d.ts.map +1 -0
  107. package/dist/engine/agent-api/FrameLoop.js +165 -0
  108. package/dist/engine/agent-api/FrameLoop.js.map +1 -0
  109. package/dist/engine/agent-api/GameAppRuntime.d.ts +62 -0
  110. package/dist/engine/agent-api/GameAppRuntime.d.ts.map +1 -0
  111. package/dist/engine/agent-api/GameAppRuntime.js +189 -0
  112. package/dist/engine/agent-api/GameAppRuntime.js.map +1 -0
  113. package/dist/engine/agent-api/GameAssetValidation.d.ts +279 -0
  114. package/dist/engine/agent-api/GameAssetValidation.d.ts.map +1 -0
  115. package/dist/engine/agent-api/GameAssetValidation.js +719 -0
  116. package/dist/engine/agent-api/GameAssetValidation.js.map +1 -0
  117. package/dist/engine/agent-api/GameEvidence.d.ts +148 -0
  118. package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -0
  119. package/dist/engine/agent-api/GameEvidence.js +269 -0
  120. package/dist/engine/agent-api/GameEvidence.js.map +1 -0
  121. package/dist/engine/agent-api/GameRuntime.d.ts +931 -0
  122. package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -0
  123. package/dist/engine/agent-api/GameRuntime.js +2229 -0
  124. package/dist/engine/agent-api/GameRuntime.js.map +1 -0
  125. package/dist/engine/agent-api/GameSceneBridge.d.ts +54 -0
  126. package/dist/engine/agent-api/GameSceneBridge.d.ts.map +1 -0
  127. package/dist/engine/agent-api/GameSceneBridge.js +110 -0
  128. package/dist/engine/agent-api/GameSceneBridge.js.map +1 -0
  129. package/dist/engine/agent-api/PromptAnimationContract.d.ts +278 -0
  130. package/dist/engine/agent-api/PromptAnimationContract.d.ts.map +1 -0
  131. package/dist/engine/agent-api/PromptAnimationContract.js +238 -0
  132. package/dist/engine/agent-api/PromptAnimationContract.js.map +1 -0
  133. package/dist/engine/agent-api/PromptAnimationEvidence.d.ts +183 -0
  134. package/dist/engine/agent-api/PromptAnimationEvidence.d.ts.map +1 -0
  135. package/dist/engine/agent-api/PromptAnimationEvidence.js +454 -0
  136. package/dist/engine/agent-api/PromptAnimationEvidence.js.map +1 -0
  137. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +100 -0
  138. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -0
  139. package/dist/engine/agent-api/RuntimeNodeHandle.js +36 -0
  140. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -0
  141. package/dist/engine/agent-api/ShotTimeline.d.ts +179 -0
  142. package/dist/engine/agent-api/ShotTimeline.d.ts.map +1 -0
  143. package/dist/engine/agent-api/ShotTimeline.js +264 -0
  144. package/dist/engine/agent-api/ShotTimeline.js.map +1 -0
  145. package/dist/engine/agent-api/VisemeController.d.ts +89 -0
  146. package/dist/engine/agent-api/VisemeController.d.ts.map +1 -0
  147. package/dist/engine/agent-api/VisemeController.js +207 -0
  148. package/dist/engine/agent-api/VisemeController.js.map +1 -0
  149. package/dist/engine/agent-api/game-kits/fighting.d.ts +123 -0
  150. package/dist/engine/agent-api/game-kits/fighting.d.ts.map +1 -0
  151. package/dist/engine/agent-api/game-kits/fighting.js +483 -0
  152. package/dist/engine/agent-api/game-kits/fighting.js.map +1 -0
  153. package/dist/engine/agent-api/game-kits/index.d.ts +15 -0
  154. package/dist/engine/agent-api/game-kits/index.d.ts.map +1 -0
  155. package/dist/engine/agent-api/game-kits/index.js +6 -0
  156. package/dist/engine/agent-api/game-kits/index.js.map +1 -0
  157. package/dist/engine/agent-api/humanoid-walk-runtime.d.ts +1 -0
  158. package/dist/engine/agent-api/humanoid-walk-runtime.d.ts.map +1 -1
  159. package/dist/engine/agent-api/index.d.ts +495 -1
  160. package/dist/engine/agent-api/index.d.ts.map +1 -1
  161. package/dist/engine/agent-api/index.js +752 -6
  162. package/dist/engine/agent-api/index.js.map +1 -1
  163. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  164. package/dist/index.d.ts +1 -0
  165. package/dist/index.js +1 -0
  166. package/dist/physics/CollisionVolumes.d.ts +57 -0
  167. package/dist/physics/CollisionVolumes.d.ts.map +1 -0
  168. package/dist/physics/CollisionVolumes.js +159 -0
  169. package/dist/physics/CollisionVolumes.js.map +1 -0
  170. package/dist/physics/HitboxWorld.d.ts +250 -0
  171. package/dist/physics/HitboxWorld.d.ts.map +1 -0
  172. package/dist/physics/HitboxWorld.js +771 -0
  173. package/dist/physics/HitboxWorld.js.map +1 -0
  174. package/dist/physics/KinematicBody.d.ts +157 -0
  175. package/dist/physics/KinematicBody.d.ts.map +1 -0
  176. package/dist/physics/KinematicBody.js +405 -0
  177. package/dist/physics/KinematicBody.js.map +1 -0
  178. package/dist/physics/KinematicWorld.d.ts +58 -0
  179. package/dist/physics/KinematicWorld.d.ts.map +1 -0
  180. package/dist/physics/KinematicWorld.js +246 -0
  181. package/dist/physics/KinematicWorld.js.map +1 -0
  182. package/dist/physics/index.d.ts +4 -0
  183. package/dist/physics/index.d.ts.map +1 -1
  184. package/dist/physics/index.js +4 -0
  185. package/dist/physics/index.js.map +1 -1
  186. package/dist/rendering/ForwardPass.js +2 -2
  187. package/dist/rendering/ShaderLibrary.js +2 -2
  188. package/dist/rendering/SkinnedLitMaterial.js +3 -3
  189. package/dist/rendering/SkinnedUnlitMaterial.js +3 -3
  190. package/dist/scene/Renderable.js +2 -2
  191. package/dist/scripting/VisualGraph.d.ts +2 -1
  192. package/dist/scripting/VisualGraph.d.ts.map +1 -1
  193. package/dist/scripting/VisualGraph.js +118 -1
  194. package/dist/scripting/VisualGraph.js.map +1 -1
  195. package/dist/scripting/VisualGraphContext.d.ts +123 -0
  196. package/dist/scripting/VisualGraphContext.d.ts.map +1 -0
  197. package/dist/scripting/VisualGraphContext.js +2 -0
  198. package/dist/scripting/VisualGraphContext.js.map +1 -0
  199. package/dist/scripting/VisualGraphExecutor.d.ts +6 -1
  200. package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
  201. package/dist/scripting/VisualGraphExecutor.js +364 -7
  202. package/dist/scripting/VisualGraphExecutor.js.map +1 -1
  203. package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
  204. package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
  205. package/dist/scripting/VisualNodeCatalog.js +61 -1
  206. package/dist/scripting/VisualNodeCatalog.js.map +1 -1
  207. package/dist/scripting/index.d.ts +1 -0
  208. package/dist/scripting/index.d.ts.map +1 -1
  209. package/dist/scripting/index.js.map +1 -1
  210. package/package.json +203 -118
@@ -0,0 +1,62 @@
1
+ import type { AuraAppFrameCallback, AuraAppHandle, AuraAppScreenshot } from "./AuraAppHandle";
2
+ import type { GameInputController, GameInputOptions } from "./GameRuntime";
3
+ import type { GameRuntimeEvidence, GameRuntimeEvidenceOptions } from "./GameEvidence";
4
+ import { type FrameLoopOptions, type FrameLoopSnapshot } from "./FrameLoop";
5
+ export type GameAppRuntimeStatus = "idle" | "running" | "paused" | "disposed";
6
+ export interface GameAppRuntimeLoopOptions extends Omit<FrameLoopOptions, "autoStart"> {
7
+ }
8
+ export interface GameAppRuntimeResize {
9
+ readonly width: number;
10
+ readonly height: number;
11
+ readonly pixelRatio: number;
12
+ }
13
+ export interface GameAppRuntimeEvidence {
14
+ readonly kind: "aura-game-app-runtime-evidence";
15
+ readonly status: GameAppRuntimeStatus;
16
+ readonly running: boolean;
17
+ readonly paused: boolean;
18
+ readonly disposed: boolean;
19
+ readonly started: boolean;
20
+ readonly frame: number;
21
+ readonly time: number;
22
+ readonly fixedDt: number;
23
+ readonly startCount: number;
24
+ readonly pauseCount: number;
25
+ readonly resumeCount: number;
26
+ readonly stepCount: number;
27
+ readonly resizeCount: number;
28
+ readonly disposeCount: number;
29
+ readonly inputControllers: number;
30
+ readonly activeInputControllers: number;
31
+ readonly lastResize?: GameAppRuntimeResize;
32
+ readonly loop: FrameLoopSnapshot;
33
+ readonly app: GameRuntimeEvidence;
34
+ }
35
+ export interface GameAppRuntimeOptions {
36
+ readonly autoStart?: boolean;
37
+ readonly loop?: GameAppRuntimeLoopOptions;
38
+ readonly input?: GameInputOptions | readonly GameInputOptions[];
39
+ readonly evidence?: GameRuntimeEvidenceOptions;
40
+ }
41
+ export interface GameAppRuntime<TApp extends AuraAppHandle = AuraAppHandle> {
42
+ readonly kind: "aura-game-app-runtime";
43
+ readonly app: TApp;
44
+ readonly input?: GameInputController;
45
+ readonly status: GameAppRuntimeStatus;
46
+ readonly running: boolean;
47
+ readonly paused: boolean;
48
+ readonly disposed: boolean;
49
+ readonly evidence: GameAppRuntimeEvidence;
50
+ start(): GameAppRuntimeEvidence;
51
+ pause(): GameAppRuntimeEvidence;
52
+ resume(): GameAppRuntimeEvidence;
53
+ step(dt?: number): GameAppRuntimeEvidence;
54
+ resize(width: number, height: number, pixelRatio?: number): GameAppRuntimeEvidence;
55
+ onFrame(callback: AuraAppFrameCallback): () => void;
56
+ offFrame(callback: AuraAppFrameCallback): void;
57
+ inputController(options: GameInputOptions): GameInputController;
58
+ screenshot(): AuraAppScreenshot;
59
+ dispose(): GameAppRuntimeEvidence;
60
+ }
61
+ export declare function createGameAppRuntime<TApp extends AuraAppHandle>(app: TApp, options?: GameAppRuntimeOptions): GameAppRuntime<TApp>;
62
+ //# sourceMappingURL=GameAppRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameAppRuntime.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/GameAppRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ import { createFrameLoop } from "./FrameLoop.js";
2
+ export function createGameAppRuntime(app, options = {}) {
3
+ const loop = createFrameLoop({ ...options.loop, autoStart: false });
4
+ const ownedInputs = new Set();
5
+ const frameCallbacks = new Set();
6
+ let status = "idle";
7
+ let started = false;
8
+ let disposed = false;
9
+ let startCount = 0;
10
+ let pauseCount = 0;
11
+ let resumeCount = 0;
12
+ let stepCount = 0;
13
+ let resizeCount = 0;
14
+ let disposeCount = 0;
15
+ let lastResize;
16
+ const loopFrameUnsubscribe = loop.onFrame((frame) => {
17
+ app.step(frame.dt);
18
+ });
19
+ const internalFrameUnsubscribe = app.onFrame((frame) => {
20
+ const loopSnapshot = loop.snapshot();
21
+ for (const input of ownedInputs)
22
+ input.update(frame.dt);
23
+ const normalizedFrame = {
24
+ ...frame,
25
+ fixedDt: loopSnapshot.fixedDt,
26
+ paused: status === "paused" || app.runtime.paused
27
+ };
28
+ for (const callback of [...frameCallbacks]) {
29
+ if (frameCallbacks.has(callback))
30
+ callback(normalizedFrame);
31
+ }
32
+ });
33
+ const registerInput = (inputOptions) => {
34
+ const controller = app.input(inputOptions);
35
+ ownedInputs.add(controller);
36
+ return controller;
37
+ };
38
+ const initialInputs = Array.isArray(options.input) ? options.input : options.input ? [options.input] : [];
39
+ const defaultInput = initialInputs.map(registerInput)[0];
40
+ const evidenceOptions = () => options.evidence ?? {};
41
+ const snapshotEvidence = () => {
42
+ const appRuntime = app.runtime;
43
+ const loopSnapshot = loop.snapshot();
44
+ const activeInputControllers = disposed ? 0 : ownedInputs.size;
45
+ return {
46
+ kind: "aura-game-app-runtime-evidence",
47
+ status,
48
+ running: status === "running",
49
+ paused: status === "paused" || appRuntime.paused,
50
+ disposed,
51
+ started,
52
+ frame: appRuntime.frame,
53
+ time: appRuntime.time,
54
+ fixedDt: loopSnapshot.fixedDt,
55
+ startCount,
56
+ pauseCount,
57
+ resumeCount,
58
+ stepCount,
59
+ resizeCount,
60
+ disposeCount,
61
+ inputControllers: ownedInputs.size,
62
+ activeInputControllers,
63
+ ...(lastResize ? { lastResize } : {}),
64
+ loop: loopSnapshot,
65
+ app: app.evidence(evidenceOptions())
66
+ };
67
+ };
68
+ const assertAlive = (method) => {
69
+ if (disposed) {
70
+ throw new Error(`GameAppRuntime.${method}() cannot run after dispose(). Create a new game app runtime instead.`);
71
+ }
72
+ };
73
+ const runtime = {
74
+ kind: "aura-game-app-runtime",
75
+ app,
76
+ get input() {
77
+ return defaultInput;
78
+ },
79
+ get status() {
80
+ return status;
81
+ },
82
+ get running() {
83
+ return status === "running";
84
+ },
85
+ get paused() {
86
+ return status === "paused" || app.runtime.paused;
87
+ },
88
+ get disposed() {
89
+ return disposed;
90
+ },
91
+ get evidence() {
92
+ return snapshotEvidence();
93
+ },
94
+ start() {
95
+ assertAlive("start");
96
+ if (!started) {
97
+ started = true;
98
+ startCount += 1;
99
+ }
100
+ if (status !== "running") {
101
+ status = "running";
102
+ loop.start();
103
+ app.resume();
104
+ }
105
+ return snapshotEvidence();
106
+ },
107
+ pause() {
108
+ assertAlive("pause");
109
+ if (status !== "paused")
110
+ pauseCount += 1;
111
+ status = "paused";
112
+ loop.pause();
113
+ app.pause();
114
+ return snapshotEvidence();
115
+ },
116
+ resume() {
117
+ assertAlive("resume");
118
+ if (status !== "running")
119
+ resumeCount += 1;
120
+ started = true;
121
+ status = "running";
122
+ loop.resume();
123
+ app.resume();
124
+ return snapshotEvidence();
125
+ },
126
+ step(dt = loop.snapshot().fixedDt) {
127
+ assertAlive("step");
128
+ stepCount += 1;
129
+ loop.step(Math.max(0, dt));
130
+ return snapshotEvidence();
131
+ },
132
+ resize(width, height, pixelRatio = 1) {
133
+ assertAlive("resize");
134
+ const safeWidth = Math.max(1, Math.floor(width));
135
+ const safeHeight = Math.max(1, Math.floor(height));
136
+ const safePixelRatio = Math.max(0.01, pixelRatio);
137
+ resizeCount += 1;
138
+ lastResize = {
139
+ width: safeWidth,
140
+ height: safeHeight,
141
+ pixelRatio: safePixelRatio
142
+ };
143
+ if (app.canvas) {
144
+ app.canvas.width = Math.max(1, Math.floor(safeWidth * safePixelRatio));
145
+ app.canvas.height = Math.max(1, Math.floor(safeHeight * safePixelRatio));
146
+ app.canvas.style.width = `${safeWidth}px`;
147
+ app.canvas.style.height = `${safeHeight}px`;
148
+ }
149
+ return snapshotEvidence();
150
+ },
151
+ onFrame(callback) {
152
+ assertAlive("onFrame");
153
+ frameCallbacks.add(callback);
154
+ return () => {
155
+ frameCallbacks.delete(callback);
156
+ };
157
+ },
158
+ offFrame(callback) {
159
+ frameCallbacks.delete(callback);
160
+ },
161
+ inputController(inputOptions) {
162
+ assertAlive("inputController");
163
+ return registerInput(inputOptions);
164
+ },
165
+ screenshot() {
166
+ assertAlive("screenshot");
167
+ return app.screenshot();
168
+ },
169
+ dispose() {
170
+ if (disposed)
171
+ return snapshotEvidence();
172
+ disposeCount += 1;
173
+ status = "disposed";
174
+ disposed = true;
175
+ loopFrameUnsubscribe();
176
+ internalFrameUnsubscribe();
177
+ frameCallbacks.clear();
178
+ for (const input of ownedInputs)
179
+ input.dispose();
180
+ loop.dispose();
181
+ app.dispose();
182
+ return snapshotEvidence();
183
+ }
184
+ };
185
+ if (options.autoStart !== false)
186
+ runtime.start();
187
+ return runtime;
188
+ }
189
+ //# sourceMappingURL=GameAppRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameAppRuntime.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/GameAppRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,279 @@
1
+ import type { AuraAssetRef, AuraVec3 } from "./index.js";
2
+ export declare const gameAssetValidationContractVersion: "aura-game-asset-validation/1.0.5";
3
+ export type GameAssetValidationContractVersion = typeof gameAssetValidationContractVersion;
4
+ export type GameAssetValidationSeverity = "info" | "warning" | "error";
5
+ export type GameAssetValidationStatus = "pass" | "warn" | "fail" | "missing";
6
+ export type GameAssetModelFormat = "glb" | "gltf";
7
+ export type GameAssetAxis = "x" | "y" | "z" | "-x" | "-y" | "-z";
8
+ export type GameAssetBoundsSource = "asset-metadata" | "inspector" | "manual" | "runtime";
9
+ export type GameAssetApprovalStatus = "draft" | "needs-review" | "approved" | "rejected";
10
+ export type GameAssetUsageKind = "fighter" | "npc" | "arena" | "prop" | "weapon" | "cartoon-character" | "product" | "environment";
11
+ export type GameAssetAnimationRole = "idle" | "walk" | "walk-forward" | "walk-back" | "run" | "jump" | "land" | "dash" | "guard" | "light" | "heavy" | "special" | "super" | "hit" | "stun" | "knockdown" | "win" | "lose" | "speak" | "emote";
12
+ export interface GameAssetValidationIssue {
13
+ readonly severity: GameAssetValidationSeverity;
14
+ readonly code: string;
15
+ readonly message: string;
16
+ readonly assetId?: string | undefined;
17
+ readonly path?: string | undefined;
18
+ readonly hint?: string | undefined;
19
+ }
20
+ export interface GameAssetValidationCheck {
21
+ readonly id: string;
22
+ readonly status: GameAssetValidationStatus;
23
+ readonly message: string;
24
+ readonly assetId?: string | undefined;
25
+ readonly metrics?: Record<string, number | string | boolean> | undefined;
26
+ }
27
+ export interface GameAssetBounds {
28
+ readonly center: AuraVec3;
29
+ readonly size: AuraVec3;
30
+ readonly min?: AuraVec3 | undefined;
31
+ readonly max?: AuraVec3 | undefined;
32
+ readonly radius?: number | undefined;
33
+ readonly source: GameAssetBoundsSource;
34
+ }
35
+ export interface GameAssetOrientation {
36
+ readonly upAxis: GameAssetAxis;
37
+ readonly forwardAxis: GameAssetAxis;
38
+ readonly unitScale?: number | undefined;
39
+ readonly pivot?: "center" | "feet" | "grounded" | "custom" | undefined;
40
+ readonly origin?: AuraVec3 | undefined;
41
+ readonly notes?: readonly string[] | undefined;
42
+ }
43
+ export interface GameAssetProvenance {
44
+ readonly title?: string | undefined;
45
+ readonly creator?: string | undefined;
46
+ readonly sourceName?: string | undefined;
47
+ readonly sourceUrl?: string | undefined;
48
+ readonly license?: string | undefined;
49
+ readonly licenseUrl?: string | undefined;
50
+ readonly attribution?: string | undefined;
51
+ readonly commercialUse?: boolean | undefined;
52
+ readonly modifications?: readonly string[] | undefined;
53
+ readonly fileHash?: string | undefined;
54
+ readonly approvalStatus?: GameAssetApprovalStatus | undefined;
55
+ readonly notes?: readonly string[] | undefined;
56
+ }
57
+ export interface GameAssetThumbnail {
58
+ readonly url?: string | undefined;
59
+ readonly path?: string | undefined;
60
+ readonly width?: number | undefined;
61
+ readonly height?: number | undefined;
62
+ readonly hash?: string | undefined;
63
+ }
64
+ export interface GameAssetSkeletonReadiness {
65
+ readonly present: boolean;
66
+ readonly joints?: number | undefined;
67
+ readonly rootJoint?: string | undefined;
68
+ readonly humanoid?: boolean | undefined;
69
+ readonly retargetable?: boolean | undefined;
70
+ readonly missingRequiredBones?: readonly string[] | undefined;
71
+ readonly notes?: readonly string[] | undefined;
72
+ }
73
+ export interface GameAssetAnimationEvent {
74
+ readonly name: string;
75
+ readonly time: number;
76
+ readonly frame?: number | undefined;
77
+ }
78
+ export interface GameAssetAnimationClipReadiness {
79
+ readonly name: string;
80
+ readonly role?: GameAssetAnimationRole | undefined;
81
+ readonly duration?: number | undefined;
82
+ readonly tracks?: number | undefined;
83
+ readonly frameRate?: number | undefined;
84
+ readonly loop?: boolean | undefined;
85
+ readonly retargetable?: boolean | undefined;
86
+ readonly events?: readonly GameAssetAnimationEvent[] | undefined;
87
+ readonly status?: GameAssetValidationStatus | undefined;
88
+ readonly notes?: readonly string[] | undefined;
89
+ }
90
+ export interface GameAssetMaterialReadiness {
91
+ readonly name: string;
92
+ readonly visible?: boolean | undefined;
93
+ readonly opacity?: number | undefined;
94
+ readonly baseColor?: string | undefined;
95
+ readonly emissive?: string | undefined;
96
+ readonly metallic?: number | undefined;
97
+ readonly roughness?: number | undefined;
98
+ readonly doubleSided?: boolean | undefined;
99
+ readonly textureSlots?: readonly string[] | undefined;
100
+ readonly readable?: boolean | undefined;
101
+ readonly notes?: readonly string[] | undefined;
102
+ }
103
+ export interface GameAssetTextureReadiness {
104
+ readonly name: string;
105
+ readonly uri?: string | undefined;
106
+ readonly width?: number | undefined;
107
+ readonly height?: number | undefined;
108
+ readonly format?: string | undefined;
109
+ readonly colorSpace?: "srgb" | "linear" | "unknown" | undefined;
110
+ readonly bytes?: number | undefined;
111
+ readonly embedded?: boolean | undefined;
112
+ }
113
+ export interface GameAssetIntendedUse {
114
+ readonly kind: GameAssetUsageKind;
115
+ readonly routes?: readonly string[] | undefined;
116
+ readonly runtimeMutable?: boolean | undefined;
117
+ readonly needsAnimations?: boolean | undefined;
118
+ readonly targetHeightMeters?: number | undefined;
119
+ readonly notes?: readonly string[] | undefined;
120
+ }
121
+ export interface GameAssetReadinessManifest<TAsset extends AuraAssetRef<"model"> = AuraAssetRef<"model">> {
122
+ readonly kind: "aura-game-asset-readiness-manifest";
123
+ readonly contractId: GameAssetValidationContractVersion | string;
124
+ readonly asset: TAsset;
125
+ readonly displayName?: string | undefined;
126
+ readonly file: {
127
+ readonly url: string;
128
+ readonly format: GameAssetModelFormat | string;
129
+ readonly sizeBytes?: number | undefined;
130
+ readonly hash?: string | undefined;
131
+ };
132
+ readonly provenance?: GameAssetProvenance | undefined;
133
+ readonly thumbnail?: GameAssetThumbnail | undefined;
134
+ readonly bounds?: GameAssetBounds | undefined;
135
+ readonly orientation?: GameAssetOrientation | undefined;
136
+ readonly skeleton?: GameAssetSkeletonReadiness | undefined;
137
+ readonly animations?: readonly GameAssetAnimationClipReadiness[] | undefined;
138
+ readonly morphTargets?: readonly string[] | undefined;
139
+ readonly materials?: readonly GameAssetMaterialReadiness[] | undefined;
140
+ readonly textures?: readonly GameAssetTextureReadiness[] | undefined;
141
+ readonly intendedUse?: GameAssetIntendedUse | undefined;
142
+ readonly notes?: readonly string[] | undefined;
143
+ readonly generatedAt?: string | undefined;
144
+ }
145
+ export interface CreateGameAssetReadinessManifestOptions {
146
+ readonly displayName?: string | undefined;
147
+ readonly file?: Partial<GameAssetReadinessManifest["file"]> | undefined;
148
+ readonly provenance?: GameAssetProvenance | undefined;
149
+ readonly thumbnail?: GameAssetThumbnail | undefined;
150
+ readonly bounds?: GameAssetBounds | AuraVec3 | undefined;
151
+ readonly orientation?: GameAssetOrientation | undefined;
152
+ readonly skeleton?: GameAssetSkeletonReadiness | undefined;
153
+ readonly animations?: readonly (GameAssetAnimationClipReadiness | string)[] | undefined;
154
+ readonly morphTargets?: readonly string[] | undefined;
155
+ readonly materials?: readonly (GameAssetMaterialReadiness | string)[] | undefined;
156
+ readonly textures?: readonly (GameAssetTextureReadiness | string)[] | undefined;
157
+ readonly intendedUse?: GameAssetIntendedUse | undefined;
158
+ readonly notes?: readonly string[] | undefined;
159
+ readonly generatedAt?: string | undefined;
160
+ }
161
+ export interface GameAssetBoundsPolicy {
162
+ readonly minWidth?: number | undefined;
163
+ readonly maxWidth?: number | undefined;
164
+ readonly minHeight?: number | undefined;
165
+ readonly maxHeight?: number | undefined;
166
+ readonly minDepth?: number | undefined;
167
+ readonly maxDepth?: number | undefined;
168
+ readonly maxDimension?: number | undefined;
169
+ readonly maxOriginOffset?: number | undefined;
170
+ readonly requireGroundedPivot?: boolean | undefined;
171
+ readonly groundTolerance?: number | undefined;
172
+ }
173
+ export interface GameAssetOrientationPolicy {
174
+ readonly upAxis?: GameAssetAxis | undefined;
175
+ readonly forwardAxis?: GameAssetAxis | readonly GameAssetAxis[] | undefined;
176
+ readonly pivot?: GameAssetOrientation["pivot"] | readonly NonNullable<GameAssetOrientation["pivot"]>[] | undefined;
177
+ readonly minUnitScale?: number | undefined;
178
+ readonly maxUnitScale?: number | undefined;
179
+ }
180
+ export interface GameAssetClipRequirement {
181
+ readonly role?: GameAssetAnimationRole | undefined;
182
+ readonly name?: string | undefined;
183
+ readonly minimumDuration?: number | undefined;
184
+ readonly requireEvents?: readonly string[] | undefined;
185
+ }
186
+ export interface GameAssetAnimationPolicy {
187
+ readonly requiredClips?: readonly (GameAssetAnimationRole | string | GameAssetClipRequirement)[] | undefined;
188
+ readonly requireNonEmptyClips?: boolean | undefined;
189
+ readonly minimumDuration?: number | undefined;
190
+ }
191
+ export interface GameAssetValidationPolicy {
192
+ readonly maxFileSizeBytes?: number | undefined;
193
+ readonly requireFileSize?: boolean | undefined;
194
+ readonly requireBounds?: boolean | undefined;
195
+ readonly requireOrientation?: boolean | undefined;
196
+ readonly requireSkeleton?: boolean | undefined;
197
+ readonly requireThumbnail?: boolean | undefined;
198
+ readonly requireProvenance?: boolean | undefined;
199
+ readonly requireIntendedUse?: boolean | undefined;
200
+ readonly requireReadableMaterials?: boolean | undefined;
201
+ readonly maxTextureDimension?: number | undefined;
202
+ readonly bounds?: GameAssetBoundsPolicy | undefined;
203
+ readonly orientation?: GameAssetOrientationPolicy | undefined;
204
+ readonly animation?: GameAssetAnimationPolicy | undefined;
205
+ }
206
+ export interface GameAssetValidationReport<TAsset extends AuraAssetRef<"model"> = AuraAssetRef<"model">> {
207
+ readonly kind: "aura-game-asset-validation-report";
208
+ readonly contractId: GameAssetValidationContractVersion | string;
209
+ readonly asset: TAsset;
210
+ readonly assetId: TAsset["id"];
211
+ readonly manifest: GameAssetReadinessManifest<TAsset>;
212
+ readonly ready: boolean;
213
+ readonly summary: {
214
+ readonly status: GameAssetValidationStatus;
215
+ readonly checks: number;
216
+ readonly errors: number;
217
+ readonly warnings: number;
218
+ readonly animationClips: number;
219
+ readonly materials: number;
220
+ readonly textures: number;
221
+ };
222
+ readonly checks: readonly GameAssetValidationCheck[];
223
+ readonly issues: readonly GameAssetValidationIssue[];
224
+ }
225
+ export declare const fightingGameAnimationRoles: readonly ["idle", "walk-forward", "walk-back", "jump", "land", "dash", "guard", "light", "heavy", "special", "hit", "stun", "knockdown", "win", "lose"];
226
+ export type QuaterniusGameReadyFighterSourceFamily = "quaternius";
227
+ export interface QuaterniusGameReadyFighterValidationContract {
228
+ readonly kind: "aura3d-quaternius-game-ready-fighter-validation-contract";
229
+ readonly contractId: GameAssetValidationContractVersion;
230
+ readonly sourceFamily: QuaterniusGameReadyFighterSourceFamily;
231
+ readonly intendedUse: "fighter";
232
+ readonly requiredChecks: readonly string[];
233
+ readonly requiredAnimationRoles: readonly GameAssetAnimationRole[];
234
+ readonly evidenceBoundary: string;
235
+ }
236
+ export declare const quaterniusGameReadyFighterValidationContract: {
237
+ readonly kind: "aura3d-quaternius-game-ready-fighter-validation-contract";
238
+ readonly contractId: "aura-game-asset-validation/1.0.5";
239
+ readonly sourceFamily: "quaternius";
240
+ readonly intendedUse: "fighter";
241
+ readonly requiredChecks: readonly ["typed Aura model asset reference", "Quaternius-derived provenance", "GLB or glTF model format", "browser-sized payload", "humanoid skeleton and retargetable rig metadata", "grounded pivot and fighting-game bounds", "forward-facing orientation before runtime mirroring", "readable visible materials", "texture dimension budget", "thumbnail or first-frame capture path", "named fighting animation clips with non-empty tracks", "clip events for attack active frames when events are required"];
242
+ readonly requiredAnimationRoles: readonly ["idle", "walk-forward", "walk-back", "jump", "land", "dash", "guard", "light", "heavy", "special", "hit", "stun", "knockdown", "win", "lose"];
243
+ readonly evidenceBoundary: "This is a source validation contract. A Quaternius-derived fighter is not evidence-ready until validate-game output, typed asset metadata, and retained runtime/browser evidence are archived.";
244
+ };
245
+ export declare function defineGameAssetReadinessManifest<const TManifest extends GameAssetReadinessManifest>(manifest: TManifest): TManifest;
246
+ export declare function createGameAssetReadinessManifest<TAsset extends AuraAssetRef<"model">>(asset: TAsset, options?: CreateGameAssetReadinessManifestOptions): GameAssetReadinessManifest<TAsset>;
247
+ export declare function validateGameAssetReadiness<TAsset extends AuraAssetRef<"model">>(manifest: GameAssetReadinessManifest<TAsset>, policy?: GameAssetValidationPolicy): GameAssetValidationReport<TAsset>;
248
+ export declare function createQuaterniusGameReadyFighterValidationPolicy(overrides?: GameAssetValidationPolicy): GameAssetValidationPolicy;
249
+ export declare function validateQuaterniusGameReadyFighterAsset<TAsset extends AuraAssetRef<"model">>(manifest: GameAssetReadinessManifest<TAsset>, policy?: GameAssetValidationPolicy): GameAssetValidationReport<TAsset>;
250
+ export declare function evaluateGameAssetBounds(manifest: GameAssetReadinessManifest, policy?: GameAssetBoundsPolicy, required?: boolean): readonly GameAssetValidationCheck[];
251
+ export declare function evaluateGameAssetOrientation(manifest: GameAssetReadinessManifest, policy?: GameAssetOrientationPolicy, required?: boolean): readonly GameAssetValidationCheck[];
252
+ export declare function evaluateGameAssetAnimationClips(manifest: GameAssetReadinessManifest, policy?: GameAssetAnimationPolicy): readonly GameAssetValidationCheck[];
253
+ export declare function createGameAssetValidationIssue(severity: GameAssetValidationSeverity, code: string, message: string, details?: Omit<GameAssetValidationIssue, "severity" | "code" | "message">): GameAssetValidationIssue;
254
+ export declare function isAuraGameModelAssetRef(value: unknown): value is AuraAssetRef<"model">;
255
+ export declare function gameAssetBoundsFromSize(size: AuraVec3, source?: GameAssetBoundsSource): GameAssetBounds;
256
+ export declare const gameAssetValidation: {
257
+ readonly contractVersion: "aura-game-asset-validation/1.0.5";
258
+ readonly defineManifest: typeof defineGameAssetReadinessManifest;
259
+ readonly createManifest: typeof createGameAssetReadinessManifest;
260
+ readonly validate: typeof validateGameAssetReadiness;
261
+ readonly quaterniusGameReadyFighter: {
262
+ readonly kind: "aura3d-quaternius-game-ready-fighter-validation-contract";
263
+ readonly contractId: "aura-game-asset-validation/1.0.5";
264
+ readonly sourceFamily: "quaternius";
265
+ readonly intendedUse: "fighter";
266
+ readonly requiredChecks: readonly ["typed Aura model asset reference", "Quaternius-derived provenance", "GLB or glTF model format", "browser-sized payload", "humanoid skeleton and retargetable rig metadata", "grounded pivot and fighting-game bounds", "forward-facing orientation before runtime mirroring", "readable visible materials", "texture dimension budget", "thumbnail or first-frame capture path", "named fighting animation clips with non-empty tracks", "clip events for attack active frames when events are required"];
267
+ readonly requiredAnimationRoles: readonly ["idle", "walk-forward", "walk-back", "jump", "land", "dash", "guard", "light", "heavy", "special", "hit", "stun", "knockdown", "win", "lose"];
268
+ readonly evidenceBoundary: "This is a source validation contract. A Quaternius-derived fighter is not evidence-ready until validate-game output, typed asset metadata, and retained runtime/browser evidence are archived.";
269
+ };
270
+ readonly createQuaterniusGameReadyFighterPolicy: typeof createQuaterniusGameReadyFighterValidationPolicy;
271
+ readonly validateQuaterniusGameReadyFighter: typeof validateQuaterniusGameReadyFighterAsset;
272
+ readonly evaluateBounds: typeof evaluateGameAssetBounds;
273
+ readonly evaluateOrientation: typeof evaluateGameAssetOrientation;
274
+ readonly evaluateAnimationClips: typeof evaluateGameAssetAnimationClips;
275
+ readonly boundsFromSize: typeof gameAssetBoundsFromSize;
276
+ readonly isModelAssetRef: typeof isAuraGameModelAssetRef;
277
+ readonly fightingAnimationRoles: readonly ["idle", "walk-forward", "walk-back", "jump", "land", "dash", "guard", "light", "heavy", "special", "hit", "stun", "knockdown", "win", "lose"];
278
+ };
279
+ //# sourceMappingURL=GameAssetValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameAssetValidation.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/GameAssetValidation.ts"],"names":[],"mappings":"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"}