@aura3d/engine 1.0.5 → 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 (37) hide show
  1. package/README.md +33 -11
  2. package/dist/animation/AnimationStateGraph.d.ts +2 -0
  3. package/dist/animation/AnimationStateGraph.d.ts.map +1 -0
  4. package/dist/animation/AnimationStateGraph.js +2 -0
  5. package/dist/animation/AnimationStateGraph.js.map +1 -0
  6. package/dist/animation/AnimationStateMachine.d.ts +16 -0
  7. package/dist/animation/AnimationStateMachine.d.ts.map +1 -1
  8. package/dist/animation/AnimationStateMachine.js +69 -7
  9. package/dist/animation/AnimationStateMachine.js.map +1 -1
  10. package/dist/animation/index.d.ts +1 -0
  11. package/dist/animation/index.d.ts.map +1 -1
  12. package/dist/animation/index.js +1 -0
  13. package/dist/animation/index.js.map +1 -1
  14. package/dist/aura3d-cli/cli.js +39 -8
  15. package/dist/aura3d-cli/cli.js.map +1 -1
  16. package/dist/aura3d-cli/index.d.ts +3 -0
  17. package/dist/aura3d-cli/index.d.ts.map +1 -1
  18. package/dist/aura3d-cli/index.js +145 -3
  19. package/dist/aura3d-cli/index.js.map +1 -1
  20. package/dist/aura3d-cli/pull-bridge.d.ts +14 -1
  21. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
  22. package/dist/aura3d-cli/pull-bridge.js +101 -15
  23. package/dist/aura3d-cli/pull-bridge.js.map +1 -1
  24. package/dist/engine/agent-api/GameAppRuntime.d.ts +62 -0
  25. package/dist/engine/agent-api/GameAppRuntime.d.ts.map +1 -0
  26. package/dist/engine/agent-api/GameAppRuntime.js +189 -0
  27. package/dist/engine/agent-api/GameAppRuntime.js.map +1 -0
  28. package/dist/engine/agent-api/index.d.ts +8 -0
  29. package/dist/engine/agent-api/index.d.ts.map +1 -1
  30. package/dist/engine/agent-api/index.js +12 -0
  31. package/dist/engine/agent-api/index.js.map +1 -1
  32. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  33. package/dist/physics/HitboxWorld.d.ts +22 -1
  34. package/dist/physics/HitboxWorld.d.ts.map +1 -1
  35. package/dist/physics/HitboxWorld.js +142 -11
  36. package/dist/physics/HitboxWorld.js.map +1 -1
  37. package/package.json +33 -22
@@ -20,7 +20,7 @@ import { tmpdir } from "node:os";
20
20
  import { join } from "node:path";
21
21
  import * as assetIndex from "../asset-index/index.js";
22
22
  import { addAsset } from "./index.js";
23
- const { FederatedResolver, defaultAdapters, isAutoPullable, } = assetIndex;
23
+ const { evaluateGameAssetProfile, FederatedResolver, defaultAdapters, isAutoPullable, } = assetIndex;
24
24
  function optionalFactory(name) {
25
25
  const candidate = assetIndex[name];
26
26
  return typeof candidate === "function" ? candidate : undefined;
@@ -73,18 +73,33 @@ export function buildDeepLinkAdapter() {
73
73
  /** Translate CLI flags into the index's ResolveConstraints shape. */
74
74
  export function toResolveConstraints(cli, redistributableOnly) {
75
75
  const constraints = {};
76
- if (cli.license && cli.license.length > 0)
77
- constraints.license = cli.license;
78
- if (typeof cli.maxTriangles === "number")
79
- constraints.maxTriangles = cli.maxTriangles;
80
- if (typeof cli.animated === "boolean")
81
- constraints.animated = cli.animated;
76
+ if (cli.profile === "fighting-character") {
77
+ constraints.license = cli.license && cli.license.length > 0 ? cli.license : ["CC0", "CC-BY"];
78
+ constraints.animated = true;
79
+ constraints.format = "glb";
80
+ constraints.maxTriangles = cli.maxTriangles ?? 200_000;
81
+ }
82
+ else {
83
+ if (cli.license && cli.license.length > 0)
84
+ constraints.license = cli.license;
85
+ if (typeof cli.maxTriangles === "number")
86
+ constraints.maxTriangles = cli.maxTriangles;
87
+ if (typeof cli.animated === "boolean")
88
+ constraints.animated = cli.animated;
89
+ }
82
90
  if (redistributableOnly)
83
91
  constraints.redistributableOnly = true;
84
92
  return constraints;
85
93
  }
86
- export function selectPullable(candidates) {
87
- const pullable = candidates.find((c) => isAutoPullable(c.asset));
94
+ export function selectPullable(candidates, options = {}) {
95
+ const profile = options.profile ?? "general";
96
+ const pullable = candidates.find((c) => {
97
+ if (!isAutoPullable(c.asset))
98
+ return false;
99
+ if (profile !== "fighting-character")
100
+ return true;
101
+ return evaluateGameAssetProfile(c.asset, "fighting-character").suitable;
102
+ });
88
103
  if (pullable)
89
104
  return { ok: true, candidate: pullable };
90
105
  if (candidates.length === 0) {
@@ -93,6 +108,22 @@ export function selectPullable(candidates) {
93
108
  reason: "No candidates matched the query. Try a broader query or relax constraints.",
94
109
  };
95
110
  }
111
+ if (profile === "fighting-character") {
112
+ const rejectedPullable = candidates.filter((c) => isAutoPullable(c.asset));
113
+ if (rejectedPullable.length > 0) {
114
+ return {
115
+ ok: false,
116
+ reason: "No auto-pullable candidate passed the fighting-character profile. " +
117
+ rejectedPullable.slice(0, 5).map((candidate) => {
118
+ const evaluation = evaluateGameAssetProfile(candidate.asset, "fighting-character");
119
+ const reasons = evaluation.rejectionReasons.length > 0
120
+ ? evaluation.rejectionReasons.join("; ")
121
+ : "profile did not report a concrete reason";
122
+ return `"${candidate.asset.title}" (${candidate.asset.id}): ${reasons}`;
123
+ }).join(" | "),
124
+ };
125
+ }
126
+ }
96
127
  const top = candidates[0].asset;
97
128
  return {
98
129
  ok: false,
@@ -124,7 +155,7 @@ export const defaultDownloadFile = async (url, destPath) => {
124
155
  }
125
156
  writeFileSync(destPath, buffer);
126
157
  };
127
- function toLine(candidate) {
158
+ function toLine(candidate, profile = "general") {
128
159
  const { asset } = candidate;
129
160
  const line = {
130
161
  id: asset.id,
@@ -136,6 +167,15 @@ function toLine(candidate) {
136
167
  };
137
168
  if (asset.sourcePage)
138
169
  line.sourcePage = asset.sourcePage;
170
+ if (profile === "fighting-character") {
171
+ const evaluation = evaluateGameAssetProfile(asset, "fighting-character");
172
+ line.profile = {
173
+ name: "fighting-character",
174
+ suitable: evaluation.suitable,
175
+ rejectionReasons: evaluation.rejectionReasons,
176
+ warnings: evaluation.warnings,
177
+ };
178
+ }
139
179
  return line;
140
180
  }
141
181
  function makeDefaultResolver(adapters, limit) {
@@ -150,13 +190,30 @@ export async function runSearch(options) {
150
190
  ? options.makeResolver(adapters)
151
191
  : makeDefaultResolver(adapters, limit);
152
192
  const constraints = toResolveConstraints(options.constraints ?? {}, false);
193
+ const profile = options.constraints?.profile ?? "general";
153
194
  const result = await resolver.resolve({
154
195
  text: options.query,
155
196
  constraints,
156
197
  });
157
- const candidates = result.candidates.map(toLine);
198
+ const rankedCandidates = rankForProfile(result.candidates, profile);
199
+ const candidateLines = rankedCandidates.map((candidate) => toLine(candidate, profile));
200
+ const candidates = profile === "fighting-character"
201
+ ? candidateLines.filter((candidate) => candidate.profile?.suitable === true)
202
+ : candidateLines;
203
+ const rejectedCandidates = profile === "fighting-character"
204
+ ? candidateLines.filter((candidate) => candidate.profile?.suitable !== true)
205
+ : [];
158
206
  const anyPullable = candidates.some((c) => c.autoPullable);
207
+ const anyProfileSuitable = profile === "general" || candidates.some((c) => c.profile?.suitable);
208
+ const anyProfilePullable = profile === "general" || candidates.some((c) => c.autoPullable && c.profile?.suitable);
159
209
  const warnings = [...result.warnings];
210
+ if (profile === "fighting-character") {
211
+ for (const candidate of candidateLines) {
212
+ for (const warning of candidate.profile?.warnings ?? []) {
213
+ warnings.push(`${candidate.id}: ${warning}`);
214
+ }
215
+ }
216
+ }
160
217
  let deepLinks = [];
161
218
  if (!anyPullable) {
162
219
  const deepLinkAdapter = buildDeepLinkAdapter();
@@ -171,14 +228,23 @@ export async function runSearch(options) {
171
228
  }
172
229
  }
173
230
  const messages = [];
174
- if (candidates.length === 0) {
231
+ if (candidateLines.length === 0) {
175
232
  messages.push(`No candidates found for "${options.query}".`);
176
233
  }
177
234
  else {
178
- messages.push(`${candidates.length} candidate(s) for "${options.query}".`);
235
+ messages.push(`${candidates.length} candidate(s) for "${options.query}" using ${profile} profile.`);
236
+ if (rejectedCandidates.length > 0) {
237
+ messages.push(`${rejectedCandidates.length} rejected candidate(s) moved to rejectedCandidates by the ${profile} profile.`);
238
+ }
179
239
  if (!anyPullable) {
180
240
  messages.push("No auto-pullable candidate. Listed assets need a manual license check before use.");
181
241
  }
242
+ if (profile === "fighting-character" && !anyProfileSuitable) {
243
+ messages.push("No fighting-character-ready candidate. Listed candidates were rejected by the game-asset profile; inspect rejectionReasons before resolving.");
244
+ }
245
+ else if (profile === "fighting-character" && !anyProfilePullable) {
246
+ messages.push("No auto-pullable fighting-character-ready candidate. Resolve will refuse until a downloadable licensed candidate also passes the profile.");
247
+ }
182
248
  }
183
249
  if (deepLinks.length > 0) {
184
250
  messages.push(`${deepLinks.length} marketplace deep-link(s) — manual download (license check required).`);
@@ -186,7 +252,9 @@ export async function runSearch(options) {
186
252
  return {
187
253
  ok: true,
188
254
  query: options.query,
255
+ profile,
189
256
  candidates,
257
+ rejectedCandidates,
190
258
  deepLinks,
191
259
  warnings,
192
260
  messages,
@@ -209,8 +277,9 @@ export async function runResolve(options) {
209
277
  // Constrain the resolve to redistributable, directly-downloadable assets up
210
278
  // front, then apply the pure selection seam as a belt-and-suspenders refusal.
211
279
  const constraints = toResolveConstraints(options.constraints ?? {}, true);
280
+ const profile = options.constraints?.profile ?? "general";
212
281
  const result = await resolver.resolve({ text: options.query, constraints });
213
- const selection = selectPullable(result.candidates);
282
+ const selection = selectPullable(rankForProfile(result.candidates, profile), { profile });
214
283
  if (!selection.ok) {
215
284
  throw new Error(`Aura3D resolve refused: ${selection.reason}`);
216
285
  }
@@ -225,6 +294,11 @@ export async function runResolve(options) {
225
294
  file: tempFile,
226
295
  name: options.name,
227
296
  ...(options.projectDir ? { projectDir: options.projectDir } : {}),
297
+ sourceUrl: asset.sourcePage ?? asset.url,
298
+ license: asset.license.spdx,
299
+ sourceFamily: asset.source,
300
+ attribution: asset.attribution,
301
+ author: asset.attribution,
228
302
  });
229
303
  const typedRef = `model(assets.${options.name})`;
230
304
  const messages = [...add.messages];
@@ -237,11 +311,23 @@ export async function runResolve(options) {
237
311
  messages.push(`Use the typed ref: ${typedRef}`);
238
312
  return {
239
313
  ok: add.ok,
314
+ profile,
240
315
  messages,
241
316
  warnings: result.warnings,
242
317
  typedRef,
243
- asset: toLine(selection.candidate),
318
+ asset: toLine(selection.candidate, profile),
244
319
  add,
245
320
  };
246
321
  }
322
+ function rankForProfile(candidates, profile) {
323
+ if (profile !== "fighting-character")
324
+ return candidates;
325
+ return [...candidates].sort((a, b) => {
326
+ const aEval = evaluateGameAssetProfile(a.asset, "fighting-character");
327
+ const bEval = evaluateGameAssetProfile(b.asset, "fighting-character");
328
+ return (Number(bEval.suitable) - Number(aEval.suitable) ||
329
+ (b.score + bEval.scoreBonus) - (a.score + aEval.scoreBonus) ||
330
+ a.asset.id.localeCompare(b.asset.id));
331
+ });
332
+ }
247
333
  //# sourceMappingURL=pull-bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pull-bridge.js","sourceRoot":"","sources":["../../../../packages/aura3d-cli/src/pull-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pull-bridge.js","sourceRoot":"","sources":["../../../../packages/aura3d-cli/src/pull-bridge.ts"],"names":[],"mappings":"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"}
@@ -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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"}
@@ -17,8 +17,10 @@ import { createCartoonDirectorPlan } from "./CartoonDirector";
17
17
  import { createCartoonPerformance } from "./CartoonPerformance";
18
18
  import { createCartoonRenderOutputPackageMetadata, createCartoonRenderQueue } from "./CartoonRenderQueue";
19
19
  import { collectPromptAnimationEvidence } from "./PromptAnimationEvidence";
20
+ import { type GameAppRuntime, type GameAppRuntimeOptions } from "./GameAppRuntime";
20
21
  export { Engine } from "@aura3d/core";
21
22
  export { asAuraAppHandle, isAuraAppHandle, type AuraAppFrame, type AuraAppFrameCallback, type AuraAppHandle, type AuraAppNodeRegistryLike, type AuraAppRuntimeState, type AuraAppScreenshot } from "./AuraAppHandle";
23
+ export { createGameAppRuntime, type GameAppRuntime, type GameAppRuntimeEvidence, type GameAppRuntimeLoopOptions, type GameAppRuntimeOptions, type GameAppRuntimeResize, type GameAppRuntimeStatus } from "./GameAppRuntime";
22
24
  export { FrameLoop, createFrameLoop, type FrameLoopCallback, type FrameLoopFrame, type FrameLoopOptions, type FrameLoopSnapshot, type FrameLoopSource } from "./FrameLoop";
23
25
  export { createCombatWorld, createGameCameraDirector, createGameEffects, applyGameCombatEventsToRuntime, createGameAccessibilityFocus, createGameAccessibilityLabel, createGameAccessibilityRuntimeSettings, createGameHighContrastSource, createGameHudBindings, createGameHudComboBinding, createGameHudDebugToggleBinding, createGameHudHealthBinding, createGameHudMeterBinding, createGameHudRoundBinding, createGameHudSnapshot, createGameHudTimerBinding, createGameBoxCollider, createGameCapsuleCollider, createGameColliderDebugGeometry, createGameCombatDebugGeometry, createGameDebugOverlayData, createGameDebugSceneNodes, createGameHitboxDebugGeometry, createGameInput, createGameInputReplay, createGameInputReplayDriver, createGameJumpAssist, createGameKinematicBody, createGamePauseControlsSource, createGameRectCollider, createGameReducedFlashSource, createGameReducedMotionSource, createGameSphereCollider, createGameTouchControlLayout, gameColliderAabb, gameColliders, gameInputReplayEventsAt, createGameLoopPlan, type GameAccessibilityFocusOptions, type GameAccessibilityLabelOptions, type GameAccessibilityPauseControlsOptions, type GameAccessibilityPreferenceOptions, type GameAccessibilityRuntimeSettings, type GameAccessibilityRuntimeSettingsOptions, type GameAccessibilitySource, type GameAccessibilitySourceKind, type GameAabb, type GameBounds3, type GameCameraDirector, type GameCameraDirectorOptions, type GameCameraSnapshot, type GameCameraTarget, type GameCollisionBox, type GameCombatActorOptions, type GameCombatActorSnapshot, type GameCombatActiveAttackSnapshot, type GameCombatEvent, type GameCombatEventRuntimeBridgeOptions, type GameCombatEventRuntimeBridgeResult, type GameCombatEventType, type GameCombatMove, type GameCombatWorld, type GameCombatWorldSnapshot, type GameBoxCollider, type GameBoxColliderOptions, type GameCapsuleCollider, type GameCapsuleColliderOptions, type GameCollider, type GameColliderAxis, type GameColliderBase, type GameColliderDimension, type GameColliderFactoryOptions, type GameColliderKind, type GameColliderPlane, type GameDebugGeometryNode, type GameDebugGeometryOptions, type GameDebugGeometryPrimitive, type GameDebugOverlayData, type GameDebugOverlayMetric, type GameDebugOverlayOptions, type GameDebugOverlaySection, type GameDebugSceneNode, type GameDebugSceneNodeOptions, type GameDebugScenePrimitive, type GameEffectInstance, type GameEffectAttachment, type GameEffectKind, type GameEffectOptions, type GameEffectsController, type GameEffectsSnapshot, type GameHudActorBindingOptions, type GameHudBinding, type GameHudBindingKind, type GameHudComboBindingOptions, type GameHudDebugToggleBindingOptions, type GameHudResolvedValue, type GameHudRoundBindingOptions, type GameHudSourceKind, type GameHudSnapshot, type GameHudSnapshotItem, type GameHudSnapshotOptions, type GameHudTimerBindingOptions, type GameHudValueFormat, type GameInputActionState, type GameInputAxisSettings, type GameInputAxisBinding, type GameInputController, type GameInputOptions, type GameInputReplayDriver, type GameInputReplayDriverSnapshot, type GameInputReplayEvent, type GameInputReplayOptions, type GameInputReplayPlan, type GameInputSnapshot, type GameJumpAssistController, type GameJumpAssistOptions, type GameJumpAssistSnapshot, type GameJumpAssistUpdate, type GameKinematicBody, type GameKinematicBodyOptions, type GameKinematicBodySnapshot, type GameLoopPlan, type GamePointerSnapshot, type GameRectCollider, type GameRectColliderOptions, type GameRuntimeSubsystemId, type GameRuntimeSubsystemOwnership, type GameSphereCollider, type GameSphereColliderOptions, type GameSubsystemOwner, type GameTouchControlAnchor, type GameTouchControlKind, type GameTouchControlLayout, type GameTouchControlLayoutOptions, type GameTouchControlRegion, type GameTouchControlRequest, type GameVec3, type GamepadSnapshot } from "./GameRuntime";
24
26
  export { collectGameSceneRuntimeNodes, createGameSceneBridge, createRuntimeNodeSpec, type GameSceneBridge, type GameSceneBridgeApp, type GameSceneBridgeBodyLike, type GameSceneBridgeEvidence, type GameSceneBridgeNodeHandle, type GameSceneRuntimeNode } from "./GameSceneBridge";
@@ -2043,6 +2045,11 @@ export interface AuraCreateAppOptions {
2043
2045
  readonly autoStart?: boolean;
2044
2046
  readonly resize?: boolean;
2045
2047
  }
2048
+ export interface AuraCreateGameAppOptions extends AuraCreateAppOptions {
2049
+ readonly loop?: GameAppRuntimeOptions["loop"];
2050
+ readonly input?: GameAppRuntimeOptions["input"];
2051
+ readonly runtimeEvidence?: GameAppRuntimeOptions["evidence"];
2052
+ }
2046
2053
  export interface AuraDiagnosticsOptions {
2047
2054
  readonly overlay?: boolean;
2048
2055
  readonly assetPanel?: boolean;
@@ -2060,6 +2067,7 @@ export declare class AuraRuntimeError extends Error {
2060
2067
  constructor(code: AuraRuntimeError["code"], message: string);
2061
2068
  }
2062
2069
  export declare function createAuraApp(target: AuraAppTarget, options: AuraCreateAppOptions): AuraApp;
2070
+ export declare function createGameApp(target: AuraAppTarget, options: AuraCreateGameAppOptions): GameAppRuntime<AuraApp>;
2063
2071
  export declare function createAuraRouteHealthSnapshot(app: AuraApp): {
2064
2072
  readonly status: "ready" | "error";
2065
2073
  readonly diagnostics: AuraDiagnostics;