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
@@ -0,0 +1,319 @@
1
+ export type ShowcaseSpecClaimLabel = "createAuraApp" | "prototype" | "roadmap";
2
+ export type ShowcaseSpecFinalStatus = "release-ready candidate" | "prototype-blocked" | "internal-diagnostic" | "removed-from-public-showcase";
3
+ export type ShowcaseSpecReplacementRequiredRole = "architecture" | "building" | "character" | "data-station" | "effect-core" | "environment" | "facility" | "industrial" | "level" | "platformer-world" | "stage" | "track" | "vehicle" | "world";
4
+ export interface ShowcaseSpecAssetPolicy {
5
+ readonly allowReplacement: boolean;
6
+ readonly replacementQuery?: string;
7
+ readonly requiredRole?: ShowcaseSpecReplacementRequiredRole;
8
+ readonly minQuality?: "candidate" | "release";
9
+ readonly requireRenderedProbe?: boolean;
10
+ readonly requireDeployPass?: boolean;
11
+ }
12
+ export interface ShowcaseSpecAsset {
13
+ readonly id: string;
14
+ readonly role: string;
15
+ readonly typedRef: string;
16
+ readonly quality: "release" | "candidate" | "prototype";
17
+ readonly hasDurableProvenance: boolean;
18
+ readonly hasRenderedProbe: boolean;
19
+ readonly hasOrientationEvidence: boolean;
20
+ readonly hasForegroundBounds: boolean;
21
+ readonly assetPolicy?: ShowcaseSpecAssetPolicy;
22
+ }
23
+ export interface ShowcaseSpecCapability {
24
+ readonly name: string;
25
+ readonly status: "root-proven" | "partial" | "internal-only" | "roadmap" | "unsupported";
26
+ readonly evidence?: string;
27
+ }
28
+ export type ShowcasePlatformerGameplayRequirement = "movement" | "jump" | "checkpoint" | "progression";
29
+ export type ShowcasePlatformerPlayableSurfaceSource = "asset-bound-playable-surfaces" | "asset-derived-playable-surfaces" | "authored-route-rectangles";
30
+ export type ShowcaseGeometryEvidenceSource = "asset-mesh-extracted" | "manifest-authored" | "manifest-authored-overlay-validated" | "compiler-authored" | "compiler-authored-overlay-validated";
31
+ export interface ShowcaseRacingTrackTopologyPoint {
32
+ readonly x: number;
33
+ readonly z: number;
34
+ readonly width?: number;
35
+ }
36
+ export interface ShowcaseRacingTrackTopologyCheckpoint {
37
+ readonly progress: number;
38
+ readonly width: number;
39
+ }
40
+ export interface ShowcaseGeometryEvidenceRef {
41
+ readonly sourceAsset: string;
42
+ readonly renderedProbe?: string;
43
+ readonly routeOverlay?: string;
44
+ readonly notes: string;
45
+ }
46
+ export interface ShowcaseGeometryModelBounds {
47
+ readonly min: readonly [number, number, number];
48
+ readonly max: readonly [number, number, number];
49
+ }
50
+ export interface ShowcaseRacingTopologyModelAlignment {
51
+ readonly source: ShowcaseGeometryEvidenceSource;
52
+ readonly modelBounds: ShowcaseGeometryModelBounds;
53
+ readonly modelPoint: readonly [number, number, number];
54
+ readonly gamePoint: {
55
+ readonly x: number;
56
+ readonly z: number;
57
+ };
58
+ readonly anchorPairs?: readonly {
59
+ readonly id: string;
60
+ readonly modelPoint: readonly [number, number, number];
61
+ readonly gamePoint: {
62
+ readonly x: number;
63
+ readonly z: number;
64
+ };
65
+ }[];
66
+ readonly evidence: {
67
+ readonly routeOverlay?: string;
68
+ readonly notes: string;
69
+ };
70
+ }
71
+ export interface ShowcasePlatformerSurfaceModelAlignment {
72
+ readonly source: ShowcaseGeometryEvidenceSource;
73
+ readonly modelBounds: ShowcaseGeometryModelBounds;
74
+ readonly modelPoint: readonly [number, number, number];
75
+ readonly gamePoint: {
76
+ readonly x: number;
77
+ readonly y: number;
78
+ };
79
+ readonly anchorPairs?: readonly {
80
+ readonly id: string;
81
+ readonly modelPoint: readonly [number, number, number];
82
+ readonly gamePoint: {
83
+ readonly x: number;
84
+ readonly y: number;
85
+ };
86
+ }[];
87
+ readonly evidence: {
88
+ readonly routeOverlay?: string;
89
+ readonly notes: string;
90
+ };
91
+ }
92
+ export type ShowcaseGameAssetPairEvidenceCategory = "racing" | "platformer";
93
+ export type ShowcaseGameAssetPairEvidenceVerdict = "pass" | "fail";
94
+ export type ShowcaseGameGeometryEvidenceKind = "racing-track-topology" | "platformer-playable-surface-map";
95
+ export interface ShowcaseGameGeometryEvidenceAsset {
96
+ readonly id: string;
97
+ readonly hash: string;
98
+ }
99
+ export interface ShowcaseGameGeometryEvidence {
100
+ readonly category: ShowcaseGameAssetPairEvidenceCategory;
101
+ readonly kind: ShowcaseGameGeometryEvidenceKind;
102
+ readonly source: ShowcaseGeometryEvidenceSource;
103
+ readonly report: string;
104
+ readonly screenshotEvidence: string;
105
+ readonly routePrimaryScreenshotSha256: string;
106
+ readonly assets: readonly ShowcaseGameGeometryEvidenceAsset[];
107
+ }
108
+ export interface ShowcaseGameAssetPairEvidence {
109
+ readonly category: ShowcaseGameAssetPairEvidenceCategory;
110
+ readonly assets: readonly string[];
111
+ readonly screenshotEvidence: string;
112
+ readonly routePrimaryProbe?: string;
113
+ readonly screenshotSha256?: string;
114
+ readonly geometryEvidence?: ShowcaseGameGeometryEvidence;
115
+ readonly verdict: ShowcaseGameAssetPairEvidenceVerdict;
116
+ readonly notes: string;
117
+ readonly blockers: readonly string[];
118
+ }
119
+ export interface ShowcaseRacingTrackTopology {
120
+ readonly assetId: string;
121
+ readonly assetHash: string;
122
+ readonly source: ShowcaseGeometryEvidenceSource;
123
+ readonly roadCenterline: readonly ShowcaseRacingTrackTopologyPoint[];
124
+ readonly checkpoints: readonly ShowcaseRacingTrackTopologyCheckpoint[];
125
+ readonly lapLengthMeters?: number;
126
+ readonly estimatedLapSeconds: number;
127
+ readonly confidence: number;
128
+ readonly modelAlignment: ShowcaseRacingTopologyModelAlignment;
129
+ readonly evidence: ShowcaseGeometryEvidenceRef;
130
+ }
131
+ export interface ShowcasePlatformerPlayableSurface {
132
+ readonly id: string;
133
+ readonly x: number;
134
+ readonly y: number;
135
+ readonly width: number;
136
+ readonly height: number;
137
+ readonly kind: "ground" | "platform" | "moving" | "hazard" | "checkpoint" | "finish";
138
+ }
139
+ export interface ShowcasePlatformerPlayableSurfaceMap {
140
+ readonly assetId: string;
141
+ readonly assetHash: string;
142
+ readonly source: ShowcaseGeometryEvidenceSource;
143
+ readonly surfaces: readonly ShowcasePlatformerPlayableSurface[];
144
+ readonly levelLength: number;
145
+ readonly estimatedCompletionSeconds: number;
146
+ readonly characterScaleRatio: number;
147
+ readonly confidence: number;
148
+ readonly modelAlignment: ShowcasePlatformerSurfaceModelAlignment;
149
+ readonly evidence: ShowcaseGeometryEvidenceRef;
150
+ }
151
+ export interface ShowcasePlatformerSpec {
152
+ readonly characterAsset: string;
153
+ readonly worldAssets: readonly string[];
154
+ readonly cameraIntent: "side-scroller";
155
+ readonly layoutConstraints: {
156
+ readonly keepCharacterReadable: boolean;
157
+ readonly uiAvoidsEvidenceArea: boolean;
158
+ };
159
+ readonly gameplayRequirements: readonly ShowcasePlatformerGameplayRequirement[];
160
+ readonly levelDesign: {
161
+ readonly minPlayableSeconds: number;
162
+ readonly minCheckpoints: number;
163
+ readonly requiresHazardRespawn: boolean;
164
+ readonly requiresFinish: boolean;
165
+ readonly authoredLevelFlow: boolean;
166
+ readonly playableSurfaceSource: ShowcasePlatformerPlayableSurfaceSource;
167
+ readonly playableSurfaceLayoutValidated: boolean;
168
+ readonly playableSurfaceEvidence?: string;
169
+ readonly playableSurfaceMap?: ShowcasePlatformerPlayableSurfaceMap;
170
+ readonly assetPairEvidence?: ShowcaseGameAssetPairEvidence;
171
+ readonly characterWorldScaleCompatible: boolean;
172
+ readonly styleCompatible: boolean;
173
+ readonly primitivePrimaryWorldRejected: boolean;
174
+ };
175
+ readonly releaseAssetRequirements: {
176
+ readonly characterRole: "character";
177
+ readonly worldRoles: readonly ("level" | "world" | "stage")[];
178
+ readonly requiresOrientationEvidence: boolean;
179
+ readonly requiresScaleNormalizationEvidence: boolean;
180
+ readonly requiresRenderedProbe: boolean;
181
+ readonly requiresDurableProvenance: boolean;
182
+ readonly requiresSuitabilityReason: boolean;
183
+ };
184
+ }
185
+ export type ShowcaseRacingGameplayRequirement = "throttle" | "steering" | "reset" | "checkpoint" | "lap" | "multi-lap";
186
+ export interface ShowcaseRacingSpec {
187
+ readonly vehicleAsset: string;
188
+ readonly trackAsset: string;
189
+ readonly cameraIntent: "track-overview";
190
+ readonly layoutConstraints: {
191
+ readonly keepVehicleReadable: boolean;
192
+ readonly keepTrackReadable: boolean;
193
+ readonly uiAvoidsEvidenceArea: boolean;
194
+ };
195
+ readonly gameplayRequirements: readonly ShowcaseRacingGameplayRequirement[];
196
+ readonly raceDesign: {
197
+ readonly minCheckpoints: number;
198
+ readonly minLaps: number;
199
+ readonly minLapSeconds: number;
200
+ readonly routeAlignedToTrackAsset: boolean;
201
+ readonly visibleTrackTopology: "asset-bound-road-topology" | "authored-route-over-visible-track" | "mesh-road-topology";
202
+ readonly trackTopologyEvidence?: string;
203
+ readonly trackTopology?: ShowcaseRacingTrackTopology;
204
+ readonly assetPairEvidence?: ShowcaseGameAssetPairEvidence;
205
+ readonly carTrackScaleCompatible: boolean;
206
+ readonly noDebugLocatorDisk: boolean;
207
+ };
208
+ readonly releaseAssetRequirements: {
209
+ readonly vehicleRole: "vehicle";
210
+ readonly trackRole: "track";
211
+ readonly requiresOrientationEvidence: boolean;
212
+ readonly requiresScaleNormalizationEvidence: boolean;
213
+ readonly requiresRenderedProbe: boolean;
214
+ readonly requiresDurableProvenance: boolean;
215
+ readonly requiresSuitabilityReason: boolean;
216
+ };
217
+ }
218
+ export type ShowcaseCategoryPlanKind = "architecture-environment" | "industrial-digital-twin" | "particle-diagnostic" | "data-diagnostic";
219
+ export type ShowcaseCategoryCameraIntent = "architecture-hero" | "industrial-overview" | "diagnostic-core" | "data-observatory";
220
+ export type ShowcaseCategoryBackendClaim = "webgl-particle" | "native-webgpu" | "fallback";
221
+ export interface ShowcaseCategoryPlan {
222
+ readonly kind: ShowcaseCategoryPlanKind;
223
+ readonly primaryAsset: string;
224
+ readonly cameraIntent: ShowcaseCategoryCameraIntent;
225
+ readonly backendClaim?: ShowcaseCategoryBackendClaim;
226
+ readonly layoutConstraints: {
227
+ readonly keepHeroReadable: boolean;
228
+ readonly uiAvoidsEvidenceArea: boolean;
229
+ };
230
+ readonly claims: {
231
+ readonly allowed: readonly string[];
232
+ readonly notAllowed: readonly string[];
233
+ };
234
+ }
235
+ export interface ShowcaseSpec {
236
+ readonly schema: "aura3d-showcase-spec/1.0";
237
+ readonly routeId: string;
238
+ readonly label: string;
239
+ readonly category: string;
240
+ readonly path: string;
241
+ readonly globalName: string;
242
+ readonly claimLabel: ShowcaseSpecClaimLabel;
243
+ readonly publicStatus: ShowcaseSpecFinalStatus;
244
+ readonly layout: {
245
+ readonly heroAsset: string;
246
+ readonly uiPlacement: "left-panel" | "right-panel" | "bottom-bar" | "none";
247
+ };
248
+ readonly platformer?: ShowcasePlatformerSpec;
249
+ readonly racing?: ShowcaseRacingSpec;
250
+ readonly categoryPlan?: ShowcaseCategoryPlan;
251
+ readonly primaryAssets: readonly ShowcaseSpecAsset[];
252
+ readonly evidence: {
253
+ readonly routePrimaryProbe: string;
254
+ readonly routePrimaryScreenshot: string;
255
+ readonly deployCommand: string;
256
+ readonly deployEvidence?: string;
257
+ readonly deployPassed: boolean;
258
+ readonly routePrimaryPassed: boolean;
259
+ readonly gameplayProof?: string;
260
+ readonly gameplayPassed?: boolean;
261
+ readonly releaseAssetProbes?: Readonly<Record<string, string>>;
262
+ };
263
+ readonly capabilities: readonly ShowcaseSpecCapability[];
264
+ }
265
+ export interface CompileShowcaseSpecOptions {
266
+ readonly outputDir: string;
267
+ readonly projectDir?: string;
268
+ }
269
+ export interface CompileShowcaseSpecFileOptions extends CompileShowcaseSpecOptions {
270
+ readonly specPath: string;
271
+ }
272
+ export interface CompileShowcaseSpecReport {
273
+ readonly ok: boolean;
274
+ readonly schema: "aura3d-showcase-spec-compile-report/1.0";
275
+ readonly routeId: string;
276
+ readonly finalStatus: ShowcaseSpecFinalStatus;
277
+ readonly generatedFiles: readonly string[];
278
+ readonly blockers: readonly string[];
279
+ readonly evidenceChecklistPath: string;
280
+ readonly routeGatePatchPath: string;
281
+ readonly rejectedAssets: readonly ShowcaseSpecRejectedAsset[];
282
+ readonly replacementCandidates: readonly ShowcaseSpecReplacementCandidate[];
283
+ readonly selectedReplacement?: ShowcaseSpecSelectedReplacement;
284
+ }
285
+ export interface ShowcaseSpecRejectedAsset {
286
+ readonly id: string;
287
+ readonly reason: "release-probe-blank" | "release-probe-failing" | "release-probe-missing" | "route-primary-clipped" | "route-primary-missing" | "route-primary-unreadable" | "game-asset-pair-failing";
288
+ readonly evidence: string;
289
+ readonly failures: readonly string[];
290
+ }
291
+ export interface ShowcaseSpecReplacementProvenance {
292
+ readonly sourcePage?: string;
293
+ readonly downloadUrl?: string;
294
+ readonly license?: string;
295
+ readonly licenseUrl?: string;
296
+ readonly author?: string;
297
+ readonly assetHash?: string;
298
+ }
299
+ export interface ShowcaseSpecReplacementCandidate {
300
+ readonly id: string;
301
+ readonly role: string;
302
+ readonly typedRef: string;
303
+ readonly score: number;
304
+ readonly reasons: readonly string[];
305
+ readonly penalties: readonly string[];
306
+ readonly provenance: ShowcaseSpecReplacementProvenance;
307
+ readonly evidence?: string;
308
+ readonly accepted: boolean;
309
+ readonly selected: boolean;
310
+ }
311
+ export interface ShowcaseSpecSelectedReplacement {
312
+ readonly replaces: string;
313
+ readonly id: string;
314
+ readonly role: string;
315
+ readonly score: number;
316
+ readonly reasons: readonly string[];
317
+ readonly provenance: ShowcaseSpecReplacementProvenance;
318
+ }
319
+ //# sourceMappingURL=showcase-spec-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-types.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=showcase-spec-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcase-spec-types.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/showcase-spec-types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,15 +1,18 @@
1
1
  {
2
2
  "name": "create-aura3d",
3
- "version": "1.3.3",
3
+ "version": "1.4.1",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "create-aura3d": "dist/cli.js"
7
7
  },
8
8
  "files": [
9
+ "README.md",
9
10
  "dist",
10
11
  "templates/product-viewer",
11
12
  "templates/cinematic-scene",
12
13
  "templates/mini-game",
14
+ "templates/racing-starter",
15
+ "templates/falling-blocks-starter",
13
16
  "templates/fighting-game",
14
17
  "templates/animation-channel",
15
18
  "templates/prompt-animation-channel",
@@ -23,7 +26,21 @@
23
26
  "templates/three-compat-character-viewer",
24
27
  "templates/three-compat-postprocess-scene",
25
28
  "templates/three-compat-custom-threejs-migration",
26
- "templates/three-compat-large-scene"
29
+ "templates/three-compat-large-scene",
30
+ "!templates/**/node_modules/**",
31
+ "!templates/**/node_modules.publish-aside/**",
32
+ "!templates/**/dist/**",
33
+ "!templates/**/.turbo/**",
34
+ "!templates/**/coverage/**",
35
+ "!templates/**/test-results/**",
36
+ "!templates/**/playwright-report/**",
37
+ "!templates/**/tests/reports/**",
38
+ "!templates/**/package-lock.json",
39
+ "!templates/**/.DS_Store",
40
+ "!templates/**/*.png",
41
+ "!templates/**/*.jpg",
42
+ "!templates/**/*.jpeg",
43
+ "!templates/**/*.csv"
27
44
  ],
28
45
  "publishConfig": {
29
46
  "access": "public"
@@ -36,26 +53,43 @@
36
53
  },
37
54
  "main": "./dist/index.js",
38
55
  "types": "./dist/index.d.ts",
39
- "description": "Scaffold Aura3D browser 3D apps for product viewers, cinematic scenes, mini-games, fighting-game runtimes, prompt-driven animation channels, animation studios, and episode builders.",
56
+ "dependencies": {
57
+ "@aura3d/asset-index": "1.4.1"
58
+ },
59
+ "description": "Scaffold Vite browser 3D apps with Aura3D, typed GLB/glTF assets, route-health tests, and screenshot-ready starter templates.",
40
60
  "keywords": [
41
61
  "create-aura3d",
42
62
  "vite",
63
+ "vite-template",
64
+ "3d",
43
65
  "3d-template",
66
+ "3d-starter",
67
+ "3d-scaffold",
44
68
  "browser-3d",
69
+ "web-3d",
70
+ "webgl",
71
+ "typescript",
72
+ "typescript-3d",
73
+ "ai-agents",
74
+ "coding-agents",
75
+ "prompt-to-3d",
76
+ "prompt-to-code",
77
+ "gltf",
78
+ "glb",
79
+ "typed-assets",
45
80
  "product-viewer",
81
+ "product-configurator",
82
+ "cinematic-scene",
83
+ "mini-game",
46
84
  "fighting-game",
85
+ "game-prototype",
47
86
  "prompt-animation-channel",
87
+ "animation-channel",
48
88
  "animation-studio",
49
89
  "episode-builder",
50
- "animation-animation",
51
- "prompt-to-video",
52
- "game-runtime",
53
- "gltf",
54
- "glb",
55
- "typescript",
56
- "ai-agents"
90
+ "prompt-to-video"
57
91
  ],
58
- "homepage": "https://github.com/auraoneai/aura3d#readme",
92
+ "homepage": "https://aura3d.auraone.ai",
59
93
  "repository": {
60
94
  "type": "git",
61
95
  "url": "git+https://github.com/auraoneai/aura3d.git",
@@ -12,7 +12,7 @@
12
12
  "test:negative-failed-puppets": "playwright test tests/concept-2-5d.spec.ts tests/puppet-2d.spec.ts tests/image-puppet.spec.ts tests/concept-2-5d-animation.spec.ts tests/puppet-2d-animation.spec.ts tests/image-puppet-animation.spec.ts --workers=1"
13
13
  },
14
14
  "dependencies": {
15
- "@aura3d/engine": "1.3.3"
15
+ "@aura3d/engine": "1.4.1"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@playwright/test": "^1.52.0",
@@ -16,11 +16,11 @@
16
16
  "preview": "vite preview --host 0.0.0.0"
17
17
  },
18
18
  "dependencies": {
19
- "@aura3d/animation": "1.3.2",
20
- "@aura3d/assets": "1.3.2",
21
- "@aura3d/core": "1.3.2",
22
- "@aura3d/engine": "1.3.3",
23
- "@aura3d/physics": "1.3.2",
19
+ "@aura3d/animation": "1.4.1",
20
+ "@aura3d/assets": "1.4.1",
21
+ "@aura3d/core": "1.4.1",
22
+ "@aura3d/engine": "1.4.1",
23
+ "@aura3d/physics": "1.4.1",
24
24
  "react": "^18.3.1",
25
25
  "react-dom": "^18.3.1",
26
26
  "sharp": "^0.33.5"
@@ -33,7 +33,7 @@ import { validateEpisodeDocument } from "../src/animation-episode-validator.js";
33
33
  import { addShot, clearProps, placeProp, removeDialogueLine, removeShot, retimeDialogue, retimeShot, setBlocking, setCamera, setCharacterScale, setDialogueLine, setGesture } from "../src/studio/scene-tools.js";
34
34
  import { compileEpisodeDocument } from "../src/director/compile-episode-document.js";
35
35
  import type { DirectorSceneInput } from "../src/director/director-heuristics.js";
36
- import { generateSceneFromPrompt } from "../src/director/prompt-to-scene.js";
36
+ import { generateSceneFromPrompt } from "../src/director/prompt-scene.js";
37
37
  import { SET_TEMPLATES, getSetTemplate, pickSetForPrompt } from "../src/set-templates.js";
38
38
  import { resolveAsset, resolveLocalGlb, type ResolvedAsset } from "./resolve-asset.js";
39
39
 
@@ -7,7 +7,7 @@
7
7
  import { writeFileSync } from "node:fs";
8
8
  import { resolve, dirname } from "node:path";
9
9
  import { fileURLToPath } from "node:url";
10
- import { generateSceneFromPrompt } from "../src/director/prompt-to-scene.js";
10
+ import { generateSceneFromPrompt } from "../src/director/prompt-scene.js";
11
11
  import { directScene } from "../src/director/director-heuristics.js";
12
12
  import { estimateSpeechDuration } from "../src/episode-document.js";
13
13
 
@@ -1480,7 +1480,7 @@ function main(): void {
1480
1480
  );
1481
1481
  }
1482
1482
  // The generator binds prompt casts to NEUTRAL copies (cast-a/cast-b) of the two leads
1483
- // (see src/director/prompt-to-scene.ts). Re-copy them byte-for-byte from the freshly
1483
+ // (see src/director/prompt-scene.ts). Re-copy them byte-for-byte from the freshly
1484
1484
  // textured leads so the default generated cast picks up the new bitmap textures too.
1485
1485
  if (!LOW_FI) {
1486
1486
  const COPIES: readonly { from: string; to: string }[] = [
@@ -409,7 +409,7 @@ const LOW_MOTION = new Set<PerformanceClip>(["idle", "talk"]);
409
409
  * (as speaker OR listener) — unless that character is explicitly `staged` (e.g. a
410
410
  * background extra the director deliberately froze).
411
411
  * It also flags the absence of any gesture or any listener reaction, which the
412
- * prompt-to-scene proof asserts must both be present.
412
+ * prompt-scene proof asserts must both be present.
413
413
  *
414
414
  * `stagedStatic` lists character ids that are *allowed* to be motionless on purpose.
415
415
  */
@@ -462,7 +462,7 @@ export function validateDirectedActing(
462
462
  }
463
463
  }
464
464
 
465
- // (3) Variety asserts the prompt-to-scene proof depends on.
465
+ // (3) Variety asserts the prompt-scene proof depends on.
466
466
  const GESTURE_INTENTS = new Set<PerformanceClip>(["gesture", "point", "nod"]);
467
467
  if (!beats.some((b) => GESTURE_INTENTS.has(b.speakingIntent))) {
468
468
  issues.push({ code: "NO_GESTURE", message: "No speaker ever gestures/points/nods — acting is all talk." });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * prompt-to-scene.ts — Phase F2: a FULL, deterministic prompt → EpisodeDocument generator
2
+ * prompt-scene.ts — Phase F2: a FULL, deterministic prompt → EpisodeDocument generator
3
3
  * with NO fallback to a content fixture (no Moon Garden, no hard-coded miko/luma cast).
4
4
  *
5
5
  * Given a free-text prompt this produces a *complete, renderable* EpisodeDocument whose
@@ -11,9 +11,9 @@
11
11
  "test": "playwright test tests/route-health.spec.ts tests/screenshot.spec.ts --workers=1"
12
12
  },
13
13
  "dependencies": {
14
- "@aura3d/animation": "1.3.2",
15
- "@aura3d/engine": "1.3.3",
16
- "@aura3d/physics": "1.3.2"
14
+ "@aura3d/animation": "1.4.1",
15
+ "@aura3d/engine": "1.4.1",
16
+ "@aura3d/physics": "1.4.1"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@playwright/test": "^1.52.0",
@@ -11,7 +11,7 @@
11
11
  "test": "playwright test tests/route-health.spec.ts tests/screenshot.spec.ts --workers=1"
12
12
  },
13
13
  "dependencies": {
14
- "@aura3d/engine": "1.3.3"
14
+ "@aura3d/engine": "1.4.1"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@playwright/test": "^1.52.0",
@@ -31,8 +31,8 @@ test("Aura3D cinematic scene screenshot shows the rainy neon hero prompt", async
31
31
  const luminance = r * 0.2126 + g * 0.7152 + b * 0.0722;
32
32
  if (luminance > 30) buckets.add(`${r >> 5}-${g >> 5}-${b >> 5}`);
33
33
  if (b > 110 && g > 90 && b > r * 1.22) cyanPixels += 1;
34
- if (r > 160 && g > 105 && b < 125) amberPixels += 1;
35
- if (r > 165 && g > 185 && b > 205) rainPixels += 1;
34
+ if (r > 145 && g > 105 && b < 180 && r >= g * 0.95 && g >= b * 0.65) amberPixels += 1;
35
+ if (r > 130 && g > 140 && b > 145 && Math.max(r, g, b) - Math.min(r, g, b) < 75) rainPixels += 1;
36
36
  if (y < target.height * 0.36 && ((b > 95 && g > 65 && b > r * 1.12) || (r > 105 && g > 62 && b < 95))) wetReflectionPixels += 1;
37
37
  if (x > target.width * 0.32 && x < target.width * 0.68 && y > target.height * 0.26 && y < target.height * 0.78 && luminance > 75) centerHeroPixels += 1;
38
38
  if (luminance > 8 && luminance < 36 && b >= r && x > target.width * 0.08 && x < target.width * 0.92) darkAlleyPixels += 1;
@@ -50,8 +50,6 @@ test("Aura3D cinematic scene screenshot shows the rainy neon hero prompt", async
50
50
  expect(profile.rainPixels).toBeGreaterThan(90);
51
51
  expect(profile.wetReflectionPixels).toBeGreaterThan(60);
52
52
  expect(profile.centerHeroPixels).toBeGreaterThan(600);
53
- // Measured 174 on 2026-06-10 after engine lighting/material updates (neutral-gray
54
- // default fallback, bloom retune) brightened the alley floor slightly.
55
53
  expect(profile.darkAlleyPixels).toBeGreaterThan(150);
56
54
  expect(profile.uniqueBuckets).toBeGreaterThan(22);
57
55
  expect(screenshot.byteLength).toBeGreaterThan(1000);
@@ -11,7 +11,7 @@
11
11
  "test": "playwright test tests/route-health.spec.ts tests/storyboard-playback.spec.ts --workers=1"
12
12
  },
13
13
  "dependencies": {
14
- "@aura3d/engine": "1.3.3"
14
+ "@aura3d/engine": "1.4.1"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@playwright/test": "^1.52.0",
@@ -0,0 +1,18 @@
1
+ # Aura3D Falling Blocks Starter
2
+
3
+ Keyboard-playable falling-block starter using only the public
4
+ `@aura3d/engine` API.
5
+
6
+ - The arcade cabinet is a typed GLB asset in `src/aura-assets.ts`.
7
+ - `game.fallingBlocks(...)` owns board state, movement, rotation, hold,
8
+ gravity, hard drop, line clear, score, replay, and checksum behavior.
9
+ - `tests/playable.spec.ts` drives keyboard input and verifies move, rotate,
10
+ hold, reset, and line clear behavior.
11
+
12
+ Run:
13
+
14
+ ```bash
15
+ npm install
16
+ npm run dev
17
+ npm test
18
+ ```
@@ -0,0 +1,23 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Aura3D Falling Blocks Starter</title>
7
+ <style>
8
+ html,
9
+ body,
10
+ #app {
11
+ width: 100%;
12
+ height: 100%;
13
+ margin: 0;
14
+ overflow: hidden;
15
+ background: #05070a;
16
+ }
17
+ </style>
18
+ </head>
19
+ <body>
20
+ <div id="app"></div>
21
+ <script type="module" src="./src/main.ts"></script>
22
+ </body>
23
+ </html>
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "aura3d-falling-blocks-starter",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite --host 127.0.0.1",
8
+ "typecheck": "tsc --noEmit",
9
+ "build": "npm run typecheck && vite build",
10
+ "preview": "vite preview --host 127.0.0.1",
11
+ "test": "playwright test tests/playable.spec.ts --workers=1"
12
+ },
13
+ "dependencies": {
14
+ "@aura3d/engine": "1.4.1"
15
+ },
16
+ "devDependencies": {
17
+ "@playwright/test": "^1.52.0",
18
+ "typescript": "^5.8.3",
19
+ "vite": "^7.3.2"
20
+ }
21
+ }