create-aura3d 1.3.3 → 1.4.1

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 (166) hide show
  1. package/README.md +113 -0
  2. package/dist/cli.js +10 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +3 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/showcase-spec-artifacts.d.ts +105 -0
  9. package/dist/showcase-spec-artifacts.d.ts.map +1 -0
  10. package/dist/showcase-spec-artifacts.js +143 -0
  11. package/dist/showcase-spec-artifacts.js.map +1 -0
  12. package/dist/showcase-spec-category-plan.d.ts +15 -0
  13. package/dist/showcase-spec-category-plan.d.ts.map +1 -0
  14. package/dist/showcase-spec-category-plan.js +45 -0
  15. package/dist/showcase-spec-category-plan.js.map +1 -0
  16. package/dist/showcase-spec-compiler.d.ts +5 -0
  17. package/dist/showcase-spec-compiler.d.ts.map +1 -0
  18. package/dist/showcase-spec-compiler.js +240 -0
  19. package/dist/showcase-spec-compiler.js.map +1 -0
  20. package/dist/showcase-spec-evidence.d.ts +7 -0
  21. package/dist/showcase-spec-evidence.d.ts.map +1 -0
  22. package/dist/showcase-spec-evidence.js +881 -0
  23. package/dist/showcase-spec-evidence.js.map +1 -0
  24. package/dist/showcase-spec-game-geometry-extractor.d.ts +21 -0
  25. package/dist/showcase-spec-game-geometry-extractor.d.ts.map +1 -0
  26. package/dist/showcase-spec-game-geometry-extractor.js +725 -0
  27. package/dist/showcase-spec-game-geometry-extractor.js.map +1 -0
  28. package/dist/showcase-spec-game-replacement-evidence.d.ts +14 -0
  29. package/dist/showcase-spec-game-replacement-evidence.d.ts.map +1 -0
  30. package/dist/showcase-spec-game-replacement-evidence.js +219 -0
  31. package/dist/showcase-spec-game-replacement-evidence.js.map +1 -0
  32. package/dist/showcase-spec-game-template-evidence.d.ts +72 -0
  33. package/dist/showcase-spec-game-template-evidence.d.ts.map +1 -0
  34. package/dist/showcase-spec-game-template-evidence.js +435 -0
  35. package/dist/showcase-spec-game-template-evidence.js.map +1 -0
  36. package/dist/showcase-spec-gameplay-evidence.d.ts +3 -0
  37. package/dist/showcase-spec-gameplay-evidence.d.ts.map +1 -0
  38. package/dist/showcase-spec-gameplay-evidence.js +108 -0
  39. package/dist/showcase-spec-gameplay-evidence.js.map +1 -0
  40. package/dist/showcase-spec-parser.d.ts +3 -0
  41. package/dist/showcase-spec-parser.d.ts.map +1 -0
  42. package/dist/showcase-spec-parser.js +690 -0
  43. package/dist/showcase-spec-parser.js.map +1 -0
  44. package/dist/showcase-spec-platformer-artifacts.d.ts +3 -0
  45. package/dist/showcase-spec-platformer-artifacts.d.ts.map +1 -0
  46. package/dist/showcase-spec-platformer-artifacts.js +274 -0
  47. package/dist/showcase-spec-platformer-artifacts.js.map +1 -0
  48. package/dist/showcase-spec-racing-artifacts.d.ts +3 -0
  49. package/dist/showcase-spec-racing-artifacts.d.ts.map +1 -0
  50. package/dist/showcase-spec-racing-artifacts.js +273 -0
  51. package/dist/showcase-spec-racing-artifacts.js.map +1 -0
  52. package/dist/showcase-spec-replacement-apply.d.ts +10 -0
  53. package/dist/showcase-spec-replacement-apply.d.ts.map +1 -0
  54. package/dist/showcase-spec-replacement-apply.js +166 -0
  55. package/dist/showcase-spec-replacement-apply.js.map +1 -0
  56. package/dist/showcase-spec-replacement-candidates.d.ts +16 -0
  57. package/dist/showcase-spec-replacement-candidates.d.ts.map +1 -0
  58. package/dist/showcase-spec-replacement-candidates.js +244 -0
  59. package/dist/showcase-spec-replacement-candidates.js.map +1 -0
  60. package/dist/showcase-spec-replacement-game-geometry.d.ts +4 -0
  61. package/dist/showcase-spec-replacement-game-geometry.d.ts.map +1 -0
  62. package/dist/showcase-spec-replacement-game-geometry.js +175 -0
  63. package/dist/showcase-spec-replacement-game-geometry.js.map +1 -0
  64. package/dist/showcase-spec-replacement-manifest.d.ts +41 -0
  65. package/dist/showcase-spec-replacement-manifest.d.ts.map +1 -0
  66. package/dist/showcase-spec-replacement-manifest.js +62 -0
  67. package/dist/showcase-spec-replacement-manifest.js.map +1 -0
  68. package/dist/showcase-spec-replacement-values.d.ts +9 -0
  69. package/dist/showcase-spec-replacement-values.d.ts.map +1 -0
  70. package/dist/showcase-spec-replacement-values.js +41 -0
  71. package/dist/showcase-spec-replacement-values.js.map +1 -0
  72. package/dist/showcase-spec-replacement.d.ts +13 -0
  73. package/dist/showcase-spec-replacement.d.ts.map +1 -0
  74. package/dist/showcase-spec-replacement.js +144 -0
  75. package/dist/showcase-spec-replacement.js.map +1 -0
  76. package/dist/showcase-spec-types.d.ts +319 -0
  77. package/dist/showcase-spec-types.d.ts.map +1 -0
  78. package/dist/showcase-spec-types.js +2 -0
  79. package/dist/showcase-spec-types.js.map +1 -0
  80. package/package.json +45 -11
  81. package/templates/animation-channel/package.json +1 -1
  82. package/templates/animation-studio/package.json +5 -5
  83. package/templates/animation-studio/scripts/animation-scene.ts +1 -1
  84. package/templates/animation-studio/scripts/author-office-scene.ts +1 -1
  85. package/templates/animation-studio/scripts/build-characters.ts +1 -1
  86. package/templates/animation-studio/src/director/director-heuristics.ts +2 -2
  87. package/templates/animation-studio/src/director/{prompt-to-scene.ts → prompt-scene.ts} +1 -1
  88. package/templates/character-controller/package.json +3 -3
  89. package/templates/cinematic-scene/package.json +1 -1
  90. package/templates/cinematic-scene/tests/screenshot.spec.ts +2 -4
  91. package/templates/episode-builder/package.json +1 -1
  92. package/templates/falling-blocks-starter/README.md +18 -0
  93. package/templates/falling-blocks-starter/index.html +23 -0
  94. package/templates/falling-blocks-starter/package.json +21 -0
  95. package/templates/falling-blocks-starter/playwright.config.ts +12 -0
  96. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.679d52fe.glb +0 -0
  97. package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.thumb.svg +1 -0
  98. package/templates/falling-blocks-starter/src/aura-assets.ts +20 -0
  99. package/templates/falling-blocks-starter/src/main.ts +358 -0
  100. package/templates/falling-blocks-starter/tests/playable.spec.ts +85 -0
  101. package/templates/falling-blocks-starter/tests/route-health.spec.ts +34 -0
  102. package/templates/falling-blocks-starter/tsconfig.json +13 -0
  103. package/templates/fighting-game/package.json +1 -1
  104. package/templates/mini-game/README.md +13 -0
  105. package/templates/mini-game/index.html +1 -1
  106. package/templates/mini-game/package.json +2 -2
  107. package/templates/mini-game/src/main.ts +251 -21
  108. package/templates/mini-game/tests/playable.spec.ts +49 -0
  109. package/templates/mini-game/tests/screenshot.spec.ts +37 -32
  110. package/templates/product-viewer/package.json +1 -1
  111. package/templates/product-viewer/tests/screenshot.spec.ts +3 -5
  112. package/templates/prompt-animation-channel/package.json +1 -1
  113. package/templates/racing-starter/README.md +27 -0
  114. package/templates/racing-starter/index.html +23 -0
  115. package/templates/racing-starter/package.json +21 -0
  116. package/templates/racing-starter/playwright.config.ts +12 -0
  117. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.1c69283f.glb +0 -0
  118. package/templates/racing-starter/public/aura-assets/showcaseCleanSportsCar.thumb.svg +1 -0
  119. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.5cbb912e.glb +0 -0
  120. package/templates/racing-starter/public/aura-assets/showcaseReadableKartCircuit.thumb.svg +1 -0
  121. package/templates/racing-starter/src/aura-assets.ts +36 -0
  122. package/templates/racing-starter/src/main.ts +280 -0
  123. package/templates/racing-starter/tests/playable.spec.ts +93 -0
  124. package/templates/racing-starter/tests/route-health.spec.ts +40 -0
  125. package/templates/racing-starter/tsconfig.json +13 -0
  126. package/templates/three-compat-architecture-interior/package.json +1 -1
  127. package/templates/three-compat-asset-inspector/package.json +1 -1
  128. package/templates/three-compat-character-viewer/package.json +1 -1
  129. package/templates/three-compat-custom-threejs-migration/package.json +1 -1
  130. package/templates/three-compat-large-scene/package.json +1 -1
  131. package/templates/three-compat-material-authoring/package.json +1 -1
  132. package/templates/three-compat-postprocess-scene/package.json +1 -1
  133. package/templates/three-compat-premium-product-viewer/package.json +1 -1
  134. package/templates/animation-channel/public/aura-assets/moon-garden-feature-frame.png +0 -0
  135. package/templates/animation-channel/test-results/.last-run.json +0 -4
  136. package/templates/animation-channel/tests/reports/prompt-animation/cartoon-sample-episode.png +0 -0
  137. package/templates/animation-studio/dist/episodes/prompt-to-scene-proof/two-robots-fixing-a-car.document.json +0 -680
  138. package/templates/animation-studio/dist/episodes/scene/episode-3d.webm +0 -0
  139. package/templates/animation-studio/dist/episodes/scene/frames/action.png +0 -0
  140. package/templates/animation-studio/dist/episodes/scene/frames/dialogue.png +0 -0
  141. package/templates/animation-studio/dist/episodes/scene/frames/final.png +0 -0
  142. package/templates/animation-studio/dist/episodes/scene/frames/first.png +0 -0
  143. package/templates/animation-studio/dist/episodes/scene/frames/mouth-closed.png +0 -0
  144. package/templates/animation-studio/dist/episodes/scene/frames/mouth-open.png +0 -0
  145. package/templates/animation-studio/dist/episodes/scene/render-live-summary.json +0 -9763
  146. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/broken.png +0 -0
  147. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/chefs.png +0 -0
  148. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/customer.png +0 -0
  149. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/friend-1.png +0 -0
  150. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/friend-2.png +0 -0
  151. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-1.png +0 -0
  152. package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-2.png +0 -0
  153. package/templates/animation-studio/dist/generated/second-scene.document.json +0 -1210
  154. package/templates/animation-studio/dist/generated/studio-edited.document.json +0 -1196
  155. package/templates/animation-studio/dist/scene/inshader-accept.document.json +0 -1
  156. package/templates/animation-studio/dist/scene/inshader-test.document.json +0 -1
  157. package/templates/animation-studio/dist/scene/integ.document.json +0 -1
  158. package/templates/animation-studio/dist/scene/working.document.json +0 -673
  159. package/templates/animation-studio/dist/scene/working.history.json +0 -1
  160. package/templates/animation-studio/node_modules.publish-aside/.vite/deps/_metadata.json +0 -8
  161. package/templates/animation-studio/node_modules.publish-aside/.vite/deps/package.json +0 -3
  162. package/templates/animation-studio/package-lock.json +0 -3503
  163. package/templates/animation-studio/studio/dist/assets/index-C7f8tHfi.css +0 -1
  164. package/templates/animation-studio/studio/dist/assets/index-CLo3GXyN.js +0 -43
  165. package/templates/animation-studio/studio/dist/index.html +0 -19
  166. package/templates/animation-studio/tests/reports/animation-studio/hifi-cast-validation.json +0 -938
package/README.md ADDED
@@ -0,0 +1,113 @@
1
+ # create-aura3d
2
+
3
+ Scaffold Vite browser 3D apps with Aura3D, typed GLB/glTF assets, route-health
4
+ tests, and screenshot-ready starter templates.
5
+
6
+ ```bash
7
+ npx create-aura3d@latest my-scene --template product-viewer
8
+ cd my-scene
9
+ npm run dev
10
+ ```
11
+
12
+ ## What It Creates
13
+
14
+ `create-aura3d` copies a complete starter project that uses public
15
+ `@aura3d/engine` imports, generated typed assets from `src/aura-assets.ts`,
16
+ browser route-health tests, and template-local project files. Most public
17
+ starter templates also include a route README or template notes when the
18
+ template needs extra operating guidance.
19
+
20
+ Use it for:
21
+
22
+ - GLB/glTF product viewers and product configurators;
23
+ - cinematic browser 3D scenes;
24
+ - browser-native game prototype routes with input, HUD state, tests, and reset;
25
+ - prompt-animation and episode-builder scaffolds;
26
+ - animation-studio projects for scene, cast, shot, and render-package workflows.
27
+
28
+ Aura3D starter templates are source projects. You keep normal TypeScript,
29
+ Vite, Playwright tests, and asset manifests after generation.
30
+
31
+ ## Templates
32
+
33
+ ```bash
34
+ npx create-aura3d@latest my-product --template product-viewer
35
+ npx create-aura3d@latest my-scene --template cinematic-scene
36
+ npx create-aura3d@latest my-game --template mini-game
37
+ npx create-aura3d@latest my-racer --template racing-starter
38
+ npx create-aura3d@latest my-blocks --template falling-blocks-starter
39
+ npx create-aura3d@latest my-fighter --template fighting-game
40
+ npx create-aura3d@latest my-channel --template animation-channel
41
+ npx create-aura3d@latest my-episode --template prompt-animation-channel
42
+ npx create-aura3d@latest my-studio --template animation-studio
43
+ npx create-aura3d@latest my-builder --template episode-builder
44
+ npx create-aura3d@latest my-character --template character-controller
45
+ ```
46
+
47
+ Additional three-compat templates are available for explicit migration and
48
+ compatibility work:
49
+
50
+ ```bash
51
+ npx create-aura3d@latest my-migration --template three-compat-custom-threejs-migration
52
+ ```
53
+
54
+ Run `npx create-aura3d@latest --help` for the full template list shipped by
55
+ your installed version.
56
+
57
+ ## Typed Assets
58
+
59
+ Public Aura3D examples should render typed assets, not guessed URLs or raw
60
+ model IDs.
61
+
62
+ Add a local model:
63
+
64
+ ```bash
65
+ npx @aura3d/cli@latest assets add ./assets/robot.glb --name robot
66
+ ```
67
+
68
+ Or resolve a catalog asset:
69
+
70
+ ```bash
71
+ npx @aura3d/cli@latest assets search "battle-worn knight helmet"
72
+ npx @aura3d/cli@latest assets resolve "battle-worn knight helmet" --name helmet
73
+ ```
74
+
75
+ Then use the generated asset reference:
76
+
77
+ ```ts
78
+ import { createAuraApp, lights, model, scene } from "@aura3d/engine";
79
+ import { assets } from "./aura-assets";
80
+
81
+ createAuraApp("#app", {
82
+ scene: scene().add(model(assets.helmet)).add(lights.studio())
83
+ });
84
+ ```
85
+
86
+ ## Template Checks
87
+
88
+ Most templates include:
89
+
90
+ - `npm run dev` for local Vite development;
91
+ - `npm run build` for static output;
92
+ - `npm run test` for route-health, screenshot, or gameplay checks;
93
+ - `tests/route-health.spec.ts` for browser evidence;
94
+ - typed asset guidance in the generated README.
95
+
96
+ ## Public Claim Boundary
97
+
98
+ The scaffold package is a template and CLI surface. It does not by itself prove
99
+ production renderer parity, native WebGPU rendering, full PBR material parity,
100
+ postprocess, skinned animation, morph targets, or production-quality game kits.
101
+ Only claim those capabilities when the generated route has matching browser
102
+ evidence for the exact API path being used.
103
+
104
+ For public examples, avoid raw `.glb` or `.gltf` URLs, direct `three` imports,
105
+ `GLTFLoader`, primitive-only primary subjects for named objects, and CSS or DOM
106
+ effects that stand in for rendered Aura3D scene output.
107
+
108
+ ## Links
109
+
110
+ - Website: https://aura3d.auraone.ai
111
+ - Repository: https://github.com/auraoneai/aura3d
112
+ - Template docs: https://github.com/auraoneai/aura3d/blob/main/docs/templates/create-aura3d-templates.md
113
+ - Engine package: https://www.npmjs.com/package/@aura3d/engine
package/dist/cli.js CHANGED
@@ -1,11 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { CREATE_AURA3D_TEMPLATES, createA3DProject } from "./index.js";
3
+ import { compileShowcaseSpecFile } from "./showcase-spec-compiler.js";
3
4
  const args = process.argv.slice(2);
4
5
  if (args.includes("--help") || args.includes("-h")) {
5
6
  console.log(`create-aura3d
6
7
 
7
8
  Usage:
8
9
  create-aura3d demo --template product-viewer
10
+ create-aura3d apps/showcase-demo --spec showcase-spec.json
9
11
 
10
12
  Templates:
11
13
  ${CREATE_AURA3D_TEMPLATES.join("\n ")}
@@ -13,6 +15,14 @@ Templates:
13
15
  process.exit(0);
14
16
  }
15
17
  const targetDir = args.find((arg) => !arg.startsWith("-")) ?? "aura3d-app";
18
+ const specPath = readOption("--spec");
19
+ if (specPath) {
20
+ const result = compileShowcaseSpecFile({ outputDir: targetDir, specPath });
21
+ console.log(JSON.stringify(result, null, 2));
22
+ if (!result.ok)
23
+ process.exitCode = 1;
24
+ process.exit();
25
+ }
16
26
  const template = readOption("--template") ?? "product-viewer";
17
27
  if (!CREATE_AURA3D_TEMPLATES.includes(template)) {
18
28
  console.error(`Unknown template "${template}". Available templates: ${CREATE_AURA3D_TEMPLATES.join(", ")}`);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AAE/F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC;;;;;;IAMV,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;CACvC,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC;AAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAC;AAC9D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAA6B,CAAC,EAAE,CAAC;IACrE,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,2BAA2B,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAA6B,EAAE,CAAC,CAAC;AACxF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE7C,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC;;;;;;;IAOV,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;CACvC,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC;AAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AACtC,IAAI,QAAQ,EAAE,CAAC;IACb,MAAM,MAAM,GAAG,uBAAuB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AACD,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAC;AAC9D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAA6B,CAAC,EAAE,CAAC;IACrE,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,2BAA2B,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAA6B,EAAE,CAAC,CAAC;AACxF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE7C,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const CREATE_AURA3D_TEMPLATES: readonly ["product-viewer", "cinematic-scene", "mini-game", "fighting-game", "animation-channel", "prompt-animation-channel", "animation-studio", "episode-builder", "character-controller", "three-compat-premium-product-viewer", "three-compat-architecture-interior", "three-compat-material-authoring", "three-compat-asset-inspector", "three-compat-character-viewer", "three-compat-postprocess-scene", "three-compat-custom-threejs-migration", "three-compat-large-scene"];
1
+ export declare const CREATE_AURA3D_TEMPLATES: readonly ["product-viewer", "cinematic-scene", "mini-game", "racing-starter", "falling-blocks-starter", "fighting-game", "animation-channel", "prompt-animation-channel", "animation-studio", "episode-builder", "character-controller", "three-compat-premium-product-viewer", "three-compat-architecture-interior", "three-compat-material-authoring", "three-compat-asset-inspector", "three-compat-character-viewer", "three-compat-postprocess-scene", "three-compat-custom-threejs-migration", "three-compat-large-scene"];
2
2
  export type CreateA3DTemplate = (typeof CREATE_AURA3D_TEMPLATES)[number];
3
3
  export interface CreateA3DProjectOptions {
4
4
  readonly targetDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,sdAkB1B,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,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;CAC3B;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;CACnC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CA6BzF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAGvF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,kgBAoB1B,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,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;CAC3B;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;CACnC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CA6BzF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAGvF"}
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@ export const CREATE_AURA3D_TEMPLATES = [
5
5
  "product-viewer",
6
6
  "cinematic-scene",
7
7
  "mini-game",
8
+ "racing-starter",
9
+ "falling-blocks-starter",
8
10
  "fighting-game",
9
11
  "animation-channel",
10
12
  "prompt-animation-channel",
@@ -39,7 +41,7 @@ export function createA3DProject(options) {
39
41
  const packageJson = JSON.parse(readFileSync(packagePath, "utf8"));
40
42
  packageJson.dependencies = {
41
43
  ...(packageJson.dependencies ?? {}),
42
- "@aura3d/engine": options.packageVersion ?? packageJson.dependencies?.["@aura3d/engine"] ?? "1.3.3"
44
+ "@aura3d/engine": options.packageVersion ?? packageJson.dependencies?.["@aura3d/engine"] ?? "1.4.1"
43
45
  };
44
46
  writeFileSync(packagePath, `${JSON.stringify(packageJson, null, 2)}\n`);
45
47
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;IACX,eAAe;IACf,mBAAmB;IACnB,0BAA0B;IAC1B,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,qCAAqC;IACrC,oCAAoC;IACpC,iCAAiC;IACjC,8BAA8B;IAC9B,+BAA+B;IAC/B,gCAAgC;IAChC,uCAAuC;IACvC,0BAA0B;CAClB,CAAC;AAgBX,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,gBAAgB,CAAC;IACtD,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,0BAA0B,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7H,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,uBAAuB,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;IAC7F,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE;QAC7B,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,cAAc,CAAC;KACxJ,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAG/D,CAAC;IACF,WAAW,CAAC,YAAY,GAAG;QACzB,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;QACnC,gBAAgB,EAAE,OAAO,CAAC,cAAc,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAC,IAAI,OAAO;KACpG,CAAC;IACF,aAAa,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACxE,OAAO;QACL,SAAS;QACT,QAAQ;QACR,KAAK,EAAE,iBAAiB,CAAC,SAAS,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,MAA8B;IAC/E,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAE,EAAE;QAClC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC;;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,SAAS,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,uBAAuB;IAC9B,IAAI,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC;QACrH,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,OAAO;YAAE,MAAM;QAC5B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import type { ShowcaseCategoryPlan, ShowcaseSpec, ShowcaseSpecFinalStatus } from "./showcase-spec-types.js";
2
+ export declare function createRouteSource(spec: ShowcaseSpec): string;
3
+ export declare function createReadme(spec: ShowcaseSpec, finalStatus: ShowcaseSpecFinalStatus, blockers: readonly string[]): string;
4
+ export declare function createRouteHealth(spec: ShowcaseSpec, finalStatus: ShowcaseSpecFinalStatus, blockers: readonly string[]): {
5
+ categoryPlan?: ShowcaseCategoryPlan | undefined;
6
+ racing?: import("./showcase-spec-types.js").ShowcaseRacingSpec | undefined;
7
+ platformer?: import("./showcase-spec-types.js").ShowcasePlatformerSpec | undefined;
8
+ gameAssetPairEvidence?: {
9
+ category: import("./showcase-spec-types.js").ShowcaseGameAssetPairEvidenceCategory;
10
+ assets: readonly string[];
11
+ screenshotEvidence: string;
12
+ routePrimaryProbe: string | undefined;
13
+ screenshotSha256: string | undefined;
14
+ geometryEvidence: import("./showcase-spec-types.js").ShowcaseGameGeometryEvidence | undefined;
15
+ verdict: import("./showcase-spec-types.js").ShowcaseGameAssetPairEvidenceVerdict;
16
+ notes: string;
17
+ blockers: readonly string[];
18
+ } | undefined;
19
+ schema: string;
20
+ appId: string;
21
+ route: string;
22
+ classification: ShowcaseSpecFinalStatus;
23
+ publicShowcase: boolean;
24
+ promotionStatus: string;
25
+ renderer: {
26
+ path: string;
27
+ mode: string;
28
+ nativeWebGPU: boolean;
29
+ productionRuntime: boolean;
30
+ };
31
+ primaryAssets: {
32
+ typedRef: string;
33
+ role: string;
34
+ status: string;
35
+ quality: "candidate" | "prototype" | "release";
36
+ }[];
37
+ primitiveStatus: {
38
+ sourceOccurrences: number;
39
+ primitiveBudget: number;
40
+ role: string;
41
+ status: string;
42
+ };
43
+ claimStatus: {
44
+ status: ShowcaseSpecFinalStatus;
45
+ label: import("./showcase-spec-types.js").ShowcaseSpecClaimLabel;
46
+ allowed: string[];
47
+ notAllowed: string[];
48
+ };
49
+ blockers: readonly string[];
50
+ evidence: {
51
+ releaseAssetProbes?: Readonly<Record<string, string>> | undefined;
52
+ gameplayPassed?: boolean | undefined;
53
+ gameplayProof?: string | undefined;
54
+ global: string;
55
+ sourceReview: string;
56
+ routePrimaryProbe: string;
57
+ routePrimaryScreenshot: string;
58
+ desktopScreenshot: string;
59
+ mobileScreenshot: string;
60
+ deployCommand: string;
61
+ deployPassed: boolean;
62
+ routePrimaryPassed: boolean;
63
+ };
64
+ };
65
+ export declare function createRouteGatePatch(spec: ShowcaseSpec, finalStatus: ShowcaseSpecFinalStatus): {
66
+ schema: string;
67
+ route: {
68
+ id: string;
69
+ label: string;
70
+ path: string;
71
+ globalName: string;
72
+ published: boolean;
73
+ primaryAssets: string[];
74
+ primaryAssetRoles: {
75
+ [k: string]: string;
76
+ };
77
+ routePrimaryHeroAsset: string;
78
+ secondaryPrimaryAssets: string[];
79
+ primitiveBudget: number;
80
+ requiresTypedPrimaryAssets: boolean;
81
+ };
82
+ };
83
+ export declare function createEvidenceChecklist(spec: ShowcaseSpec, finalStatus: ShowcaseSpecFinalStatus, blockers: readonly string[]): {
84
+ blockers: readonly string[];
85
+ categoryPlan?: ShowcaseCategoryPlan | undefined;
86
+ racing?: import("./showcase-spec-types.js").ShowcaseRacingSpec | undefined;
87
+ platformer?: import("./showcase-spec-types.js").ShowcasePlatformerSpec | undefined;
88
+ schema: string;
89
+ routeId: string;
90
+ finalStatus: ShowcaseSpecFinalStatus;
91
+ requiredCommands: string[];
92
+ evidence: {
93
+ readonly routePrimaryProbe: string;
94
+ readonly routePrimaryScreenshot: string;
95
+ readonly deployCommand: string;
96
+ readonly deployEvidence?: string;
97
+ readonly deployPassed: boolean;
98
+ readonly routePrimaryPassed: boolean;
99
+ readonly gameplayProof?: string;
100
+ readonly gameplayPassed?: boolean;
101
+ readonly releaseAssetProbes?: Readonly<Record<string, string>>;
102
+ };
103
+ capabilities: readonly import("./showcase-spec-types.js").ShowcaseSpecCapability[];
104
+ };
105
+ //# sourceMappingURL=showcase-spec-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-artifacts.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-artifacts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EAEZ,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAM5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE1H;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CtH;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB;;;;;;;;;;;;;;;;;EAiB5F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;EAa5H"}
@@ -0,0 +1,143 @@
1
+ import { cameraForCategoryPlan } from "./showcase-spec-category-plan.js";
2
+ import { createPlatformerRouteSource } from "./showcase-spec-platformer-artifacts.js";
3
+ import { createRacingRouteSource } from "./showcase-spec-racing-artifacts.js";
4
+ export function createRouteSource(spec) {
5
+ if (spec.platformer)
6
+ return createPlatformerRouteSource(spec, spec.platformer);
7
+ if (spec.racing)
8
+ return createRacingRouteSource(spec, spec.racing);
9
+ if (spec.categoryPlan)
10
+ return createCategoryRouteSource(spec, spec.categoryPlan);
11
+ const heroAsset = requireAsset(spec, spec.layout.heroAsset);
12
+ return createBasicRouteSource(spec, heroAsset);
13
+ }
14
+ export function createReadme(spec, finalStatus, blockers) {
15
+ return `# ${spec.label}\n\nStatus: ${finalStatus}\n\nClaim label: ${spec.claimLabel}\n\nPrimary asset: ${spec.layout.heroAsset}\n\n${blockers.length === 0 ? "Release evidence is present for this bounded generated route." : `Blocked by:\n${blockers.map((blocker) => `- ${blocker}`).join("\n")}`}\n`;
16
+ }
17
+ export function createRouteHealth(spec, finalStatus, blockers) {
18
+ const gameAssetPairEvidence = createGameAssetPairRouteHealth(spec);
19
+ return {
20
+ schema: "aura3d-route-health/1.0",
21
+ appId: spec.routeId,
22
+ route: spec.path,
23
+ classification: finalStatus,
24
+ publicShowcase: finalStatus === "release-ready candidate",
25
+ promotionStatus: blockers.length === 0 ? "evidence-backed-by-showcase-spec-compiler" : "blocked-by-showcase-spec-compiler",
26
+ renderer: {
27
+ path: "createAuraApp root safe API",
28
+ mode: "safe-basic",
29
+ nativeWebGPU: false,
30
+ productionRuntime: false
31
+ },
32
+ primaryAssets: spec.primaryAssets.map((asset) => ({
33
+ typedRef: asset.typedRef,
34
+ role: asset.role,
35
+ status: "typed-primary-asset",
36
+ quality: asset.quality
37
+ })),
38
+ primitiveStatus: {
39
+ sourceOccurrences: 0,
40
+ primitiveBudget: 0,
41
+ role: "none",
42
+ status: "no-primitive-primary-subjects-generated"
43
+ },
44
+ claimStatus: {
45
+ status: finalStatus,
46
+ label: spec.claimLabel,
47
+ allowed: spec.capabilities
48
+ .filter((capability) => capability.status === "root-proven")
49
+ .map((capability) => capability.evidence ? `${capability.name}: ${capability.evidence}` : capability.name),
50
+ notAllowed: [
51
+ ...spec.capabilities
52
+ .filter((capability) => capability.status !== "root-proven")
53
+ .map((capability) => `${capability.name}: ${capability.status}`),
54
+ ...blockers
55
+ ]
56
+ },
57
+ blockers,
58
+ evidence: createRouteHealthEvidence(spec),
59
+ ...(gameAssetPairEvidence ? { gameAssetPairEvidence } : {}),
60
+ ...(spec.platformer ? { platformer: spec.platformer } : {}),
61
+ ...(spec.racing ? { racing: spec.racing } : {}),
62
+ ...(spec.categoryPlan ? { categoryPlan: spec.categoryPlan } : {})
63
+ };
64
+ }
65
+ export function createRouteGatePatch(spec, finalStatus) {
66
+ return {
67
+ schema: "aura3d-showcase-route-gate-patch/1.0",
68
+ route: {
69
+ id: spec.routeId,
70
+ label: spec.label,
71
+ path: spec.path,
72
+ globalName: spec.globalName,
73
+ published: finalStatus === "release-ready candidate",
74
+ primaryAssets: spec.primaryAssets.map((asset) => asset.id),
75
+ primaryAssetRoles: Object.fromEntries(spec.primaryAssets.map((asset) => [asset.id, asset.role])),
76
+ routePrimaryHeroAsset: spec.layout.heroAsset,
77
+ secondaryPrimaryAssets: spec.primaryAssets.map((asset) => asset.id).filter((id) => id !== spec.layout.heroAsset),
78
+ primitiveBudget: 0,
79
+ requiresTypedPrimaryAssets: true
80
+ }
81
+ };
82
+ }
83
+ export function createEvidenceChecklist(spec, finalStatus, blockers) {
84
+ return {
85
+ schema: "aura3d-showcase-evidence-checklist/1.0",
86
+ routeId: spec.routeId,
87
+ finalStatus,
88
+ requiredCommands: [spec.evidence.deployCommand, "pnpm exec playwright test tests/browser/showcase-route-primary-probes.spec.ts --reporter=line"],
89
+ evidence: spec.evidence,
90
+ capabilities: spec.capabilities,
91
+ ...(spec.platformer ? { platformer: spec.platformer } : {}),
92
+ ...(spec.racing ? { racing: spec.racing } : {}),
93
+ ...(spec.categoryPlan ? { categoryPlan: spec.categoryPlan } : {}),
94
+ blockers
95
+ };
96
+ }
97
+ function createRouteHealthEvidence(spec) {
98
+ return {
99
+ global: `window.${spec.globalName}`,
100
+ sourceReview: `apps/${spec.routeId}/src/main.ts`,
101
+ routePrimaryProbe: spec.evidence.routePrimaryProbe,
102
+ routePrimaryScreenshot: spec.evidence.routePrimaryScreenshot,
103
+ desktopScreenshot: spec.evidence.routePrimaryScreenshot,
104
+ mobileScreenshot: spec.evidence.routePrimaryScreenshot,
105
+ deployCommand: spec.evidence.deployCommand,
106
+ deployPassed: spec.evidence.deployPassed,
107
+ routePrimaryPassed: spec.evidence.routePrimaryPassed,
108
+ ...("gameplayProof" in spec.evidence ? { gameplayProof: spec.evidence.gameplayProof } : {}),
109
+ ...("gameplayPassed" in spec.evidence ? { gameplayPassed: spec.evidence.gameplayPassed } : {}),
110
+ ...("releaseAssetProbes" in spec.evidence ? { releaseAssetProbes: spec.evidence.releaseAssetProbes } : {})
111
+ };
112
+ }
113
+ function createGameAssetPairRouteHealth(spec) {
114
+ const assetPairEvidence = spec.racing?.raceDesign.assetPairEvidence ?? spec.platformer?.levelDesign.assetPairEvidence;
115
+ if (!assetPairEvidence)
116
+ return undefined;
117
+ return {
118
+ category: assetPairEvidence.category,
119
+ assets: assetPairEvidence.assets,
120
+ screenshotEvidence: assetPairEvidence.screenshotEvidence,
121
+ routePrimaryProbe: assetPairEvidence.routePrimaryProbe,
122
+ screenshotSha256: assetPairEvidence.screenshotSha256,
123
+ geometryEvidence: assetPairEvidence.geometryEvidence,
124
+ verdict: assetPairEvidence.verdict,
125
+ notes: assetPairEvidence.notes,
126
+ blockers: assetPairEvidence.blockers
127
+ };
128
+ }
129
+ function createBasicRouteSource(spec, heroAsset) {
130
+ return `import { camera, createAuraApp, lights, model, scene } from "@aura3d/engine";\nimport { assets } from "../../../src/aura-assets";\n\nconst app = createAuraApp("#app", {\n scene: scene()\n .add(model(${heroAsset.typedRef}))\n .add(lights.studio())\n .add(camera.perspective({ position: [0, 1.4, 4], target: [0, 1, 0] }))\n});\n\nconst mountedEvidence = {\n schema: "aura3d-showcase-compiled-route/1.0",\n appId: "${spec.routeId}",\n status: "ready",\n diagnostics: app.diagnostics()\n};\nObject.defineProperty(window, "${spec.globalName}", {\n value: mountedEvidence,\n configurable: true,\n writable: true\n});\n`;
131
+ }
132
+ function createCategoryRouteSource(spec, categoryPlan) {
133
+ const heroAsset = requireAsset(spec, categoryPlan.primaryAsset);
134
+ const cameraSpec = cameraForCategoryPlan(categoryPlan);
135
+ return `import { camera, createAuraApp, lights, model, scene } from "@aura3d/engine";\nimport { assets } from "../../../src/aura-assets";\n\nconst routeFrame = {\n cameraIntent: "${categoryPlan.cameraIntent}",\n evidenceMargin: ${cameraSpec.evidenceMargin},\n position: [0, ${cameraSpec.y}, ${cameraSpec.z}],\n targetMaxDimension: ${cameraSpec.targetMaxDimension},\n cameraPosition: ${cameraSpec.position},\n cameraTarget: ${cameraSpec.target},\n fov: ${cameraSpec.fov}\n};\n\nconst app = createAuraApp("#app", {\n diagnostics: { overlay: false, performancePanel: false },\n scene: scene()\n .add(model(${heroAsset.typedRef}, {\n name: "${categoryPlan.kind}-primary",\n role: "routePrimary",\n scaleMode: "fit",\n targetMaxDimension: routeFrame.targetMaxDimension\n }).position(routeFrame.position[0], routeFrame.position[1], routeFrame.position[2]))\n .add(lights.studio())\n .camera(camera.perspective({ position: routeFrame.cameraPosition, target: routeFrame.cameraTarget, fov: routeFrame.fov }))\n});\n\nconst mountedEvidence = {\n schema: "aura3d-showcase-compiled-non-game-route/1.0",\n appId: "${spec.routeId}",\n status: "ready",\n categoryPlan: ${JSON.stringify(categoryPlan, null, 2)},\n routeFrame,\n primaryAssets: [${spec.primaryAssets.map((asset) => `"${asset.id}"`).join(", ")}],\n diagnostics: app.diagnostics()\n};\nObject.defineProperty(window, "${spec.globalName}", {\n value: mountedEvidence,\n configurable: true,\n writable: true\n});\n`;
136
+ }
137
+ function requireAsset(spec, assetId) {
138
+ const asset = spec.primaryAssets.find((candidate) => candidate.id === assetId);
139
+ if (!asset)
140
+ throw new Error(`missing primary asset ${assetId}`);
141
+ return asset;
142
+ }
143
+ //# sourceMappingURL=showcase-spec-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-artifacts.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ShowcaseCategoryPlan, ShowcaseCategoryPlanKind, ShowcaseSpec } from "./showcase-spec-types.js";
2
+ interface CategoryCameraSpec {
3
+ readonly position: string;
4
+ readonly target: string;
5
+ readonly fov: number;
6
+ readonly targetMaxDimension: number;
7
+ readonly evidenceMargin: number;
8
+ readonly y: number;
9
+ readonly z: number;
10
+ }
11
+ export declare function compileCategoryPlanBlockers(spec: ShowcaseSpec): readonly string[];
12
+ export declare function isSupportedCategoryPlanKind(value: string): value is ShowcaseCategoryPlanKind;
13
+ export declare function cameraForCategoryPlan(plan: ShowcaseCategoryPlan): CategoryCameraSpec;
14
+ export {};
15
+ //# sourceMappingURL=showcase-spec-category-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-category-plan.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-category-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7G,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAYjF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,wBAAwB,CAK5F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,kBAAkB,CAapF"}
@@ -0,0 +1,45 @@
1
+ export function compileCategoryPlanBlockers(spec) {
2
+ const plan = spec.categoryPlan;
3
+ if (!plan)
4
+ return [];
5
+ const blockers = [];
6
+ if (!spec.primaryAssets.some((asset) => asset.id === plan.primaryAsset))
7
+ blockers.push(`category:${plan.kind}:primary-missing:${plan.primaryAsset}`);
8
+ if (plan.primaryAsset !== spec.layout.heroAsset)
9
+ blockers.push(`category:${plan.kind}:hero-mismatch`);
10
+ if (!plan.layoutConstraints.keepHeroReadable)
11
+ blockers.push(`category:${plan.kind}:hero-readability-not-required`);
12
+ if (!plan.layoutConstraints.uiAvoidsEvidenceArea)
13
+ blockers.push(`category:${plan.kind}:ui-can-occlude-evidence`);
14
+ if (plan.kind === "particle-diagnostic" && hasUnsupportedCapability(spec, "native-webgpu")) {
15
+ blockers.push("diagnostic:native-webgpu-unproven");
16
+ }
17
+ return blockers;
18
+ }
19
+ export function isSupportedCategoryPlanKind(value) {
20
+ return value === "architecture-environment" ||
21
+ value === "industrial-digital-twin" ||
22
+ value === "particle-diagnostic" ||
23
+ value === "data-diagnostic";
24
+ }
25
+ export function cameraForCategoryPlan(plan) {
26
+ switch (plan.cameraIntent) {
27
+ case "architecture-hero":
28
+ return { position: "[0, 1.55, 5.8]", target: "[0, 0.9, -0.6]", fov: 30, targetMaxDimension: 2.2, evidenceMargin: 0.18, y: 0.2, z: -0.6 };
29
+ case "industrial-overview":
30
+ return { position: "[2.25, 2.1, 4.9]", target: "[-0.25, 0.82, -0.45]", fov: 35, targetMaxDimension: 1.6, evidenceMargin: 0.16, y: 0.12, z: -0.45 };
31
+ case "diagnostic-core":
32
+ return { position: "[0, 1.12, 4.8]", target: "[0, 0.52, -0.72]", fov: 30, targetMaxDimension: 1.45, evidenceMargin: 0.2, y: 0.2, z: -0.72 };
33
+ case "data-observatory":
34
+ return { position: "[0.16, 1.22, 4.75]", target: "[0, 0.54, -0.2]", fov: 32, targetMaxDimension: 1.55, evidenceMargin: 0.22, y: 0.18, z: -0.2 };
35
+ default:
36
+ return assertNever(plan.cameraIntent);
37
+ }
38
+ }
39
+ function hasUnsupportedCapability(spec, name) {
40
+ return spec.capabilities.some((capability) => capability.name === name && capability.status === "unsupported");
41
+ }
42
+ function assertNever(value) {
43
+ throw new Error(`unsupported category camera intent ${value}`);
44
+ }
45
+ //# sourceMappingURL=showcase-spec-category-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-category-plan.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-category-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { CompileShowcaseSpecFileOptions, CompileShowcaseSpecOptions, CompileShowcaseSpecReport } from "./showcase-spec-types.js";
2
+ export type { CompileShowcaseSpecFileOptions, CompileShowcaseSpecOptions, CompileShowcaseSpecReport, ShowcaseCategoryBackendClaim, ShowcaseCategoryCameraIntent, ShowcaseCategoryPlan, ShowcaseCategoryPlanKind, ShowcaseSpec, ShowcaseSpecAsset, ShowcaseSpecAssetPolicy, ShowcaseSpecCapability, ShowcaseSpecClaimLabel, ShowcaseSpecFinalStatus, ShowcaseSpecRejectedAsset, ShowcaseSpecReplacementCandidate, ShowcaseSpecReplacementRequiredRole, ShowcaseSpecSelectedReplacement, ShowcasePlatformerGameplayRequirement, ShowcasePlatformerSpec, ShowcaseRacingGameplayRequirement, ShowcaseRacingSpec } from "./showcase-spec-types.js";
3
+ export declare function compileShowcaseSpecFile(options: CompileShowcaseSpecFileOptions): CompileShowcaseSpecReport;
4
+ export declare function compileShowcaseSpec(input: unknown, options: CompileShowcaseSpecOptions): CompileShowcaseSpecReport;
5
+ //# sourceMappingURL=showcase-spec-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-compiler.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-compiler.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EAK1B,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,EAC/B,qCAAqC,EACrC,sBAAsB,EACtB,iCAAiC,EACjC,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,yBAAyB,CAG1G;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,GAAG,yBAAyB,CAsClH"}