@aura3d/engine 4.0.0 → 4.0.3

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 (272) hide show
  1. package/README.md +286 -382
  2. package/dist/animation/AnimationController.d.ts +8 -0
  3. package/dist/animation/AnimationController.d.ts.map +1 -1
  4. package/dist/animation/AnimationController.js.map +1 -1
  5. package/dist/aura3d-cli/asset-core-types.d.ts +1 -0
  6. package/dist/aura3d-cli/asset-core-types.d.ts.map +1 -1
  7. package/dist/aura3d-cli/asset-inspection-types.d.ts +1 -0
  8. package/dist/aura3d-cli/asset-inspection-types.d.ts.map +1 -1
  9. package/dist/aura3d-cli/asset-manifest.d.ts.map +1 -1
  10. package/dist/aura3d-cli/asset-manifest.js +4 -1
  11. package/dist/aura3d-cli/asset-manifest.js.map +1 -1
  12. package/dist/aura3d-cli/index.d.ts.map +1 -1
  13. package/dist/aura3d-cli/index.js +27 -3
  14. package/dist/aura3d-cli/index.js.map +1 -1
  15. package/dist/aura3d-cli/meshy/admission.d.ts.map +1 -1
  16. package/dist/aura3d-cli/meshy/admission.js +32 -7
  17. package/dist/aura3d-cli/meshy/admission.js.map +1 -1
  18. package/dist/aura3d-cli/meshy/import.d.ts.map +1 -1
  19. package/dist/aura3d-cli/meshy/import.js +4 -0
  20. package/dist/aura3d-cli/meshy/import.js.map +1 -1
  21. package/dist/create-aura3d/index.js +1 -1
  22. package/dist/engine/agent-api/GameGenreKits.d.ts +16 -0
  23. package/dist/engine/agent-api/GameGenreKits.d.ts.map +1 -1
  24. package/dist/engine/agent-api/GameGenreKits.js +33 -4
  25. package/dist/engine/agent-api/GameGenreKits.js.map +1 -1
  26. package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
  27. package/dist/engine/agent-api/GameRuntime.js +29 -6
  28. package/dist/engine/agent-api/GameRuntime.js.map +1 -1
  29. package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -1
  30. package/dist/engine/agent-api/TouchControlBinding.js +14 -2
  31. package/dist/engine/agent-api/TouchControlBinding.js.map +1 -1
  32. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +44 -0
  33. package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
  34. package/dist/engine/agent-api/app/actorAnimationHandle.js +98 -0
  35. package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
  36. package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
  37. package/dist/engine/agent-api/app/createAuraApp.js +1 -1
  38. package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
  39. package/dist/engine/agent-api/app/frameLoop.d.ts +3 -1
  40. package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
  41. package/dist/engine/agent-api/app/frameLoop.js +19 -1
  42. package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
  43. package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
  44. package/dist/engine/agent-api/app/runtimeNodes.js +1 -0
  45. package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
  46. package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
  47. package/dist/engine/agent-api/compiler/animation.js +8 -1
  48. package/dist/engine/agent-api/compiler/animation.js.map +1 -1
  49. package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
  50. package/dist/engine/agent-api/compiler/observations.js +3 -1
  51. package/dist/engine/agent-api/compiler/observations.js.map +1 -1
  52. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  53. package/dist/engine/agent-api/compiler/primitives.js +10 -2
  54. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  55. package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
  56. package/dist/engine/agent-api/compiler/renderInput.js +35 -7
  57. package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
  58. package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
  59. package/dist/engine/agent-api/compiler/renderer.js +8 -4
  60. package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
  61. package/dist/engine/agent-api/diagnostics.d.ts +5 -0
  62. package/dist/engine/agent-api/diagnostics.d.ts.map +1 -1
  63. package/dist/engine/agent-api/diagnostics.js +18 -5
  64. package/dist/engine/agent-api/diagnostics.js.map +1 -1
  65. package/dist/engine/agent-api/game-kits/arcadeKart.d.ts +118 -0
  66. package/dist/engine/agent-api/game-kits/arcadeKart.d.ts.map +1 -0
  67. package/dist/engine/agent-api/game-kits/arcadeKart.js +468 -0
  68. package/dist/engine/agent-api/game-kits/arcadeKart.js.map +1 -0
  69. package/dist/engine/agent-api/game-kits/carSoccer.d.ts +95 -0
  70. package/dist/engine/agent-api/game-kits/carSoccer.d.ts.map +1 -0
  71. package/dist/engine/agent-api/game-kits/carSoccer.js +717 -0
  72. package/dist/engine/agent-api/game-kits/carSoccer.js.map +1 -0
  73. package/dist/engine/agent-api/game-kits/index.d.ts +20 -0
  74. package/dist/engine/agent-api/game-kits/index.d.ts.map +1 -1
  75. package/dist/engine/agent-api/game-kits/index.js +10 -1
  76. package/dist/engine/agent-api/game-kits/index.js.map +1 -1
  77. package/dist/engine/agent-api/game-kits/racketSports.d.ts +64 -0
  78. package/dist/engine/agent-api/game-kits/racketSports.d.ts.map +1 -0
  79. package/dist/engine/agent-api/game-kits/racketSports.js +146 -0
  80. package/dist/engine/agent-api/game-kits/racketSports.js.map +1 -0
  81. package/dist/engine/agent-api/index.d.ts +4 -1
  82. package/dist/engine/agent-api/index.d.ts.map +1 -1
  83. package/dist/engine/agent-api/index.js +3 -0
  84. package/dist/engine/agent-api/index.js.map +1 -1
  85. package/dist/engine/agent-api/looks/generatedCodeWarnings.d.ts.map +1 -1
  86. package/dist/engine/agent-api/looks/generatedCodeWarnings.js +16 -2
  87. package/dist/engine/agent-api/looks/generatedCodeWarnings.js.map +1 -1
  88. package/dist/engine/agent-api/nodes/assets.d.ts.map +1 -1
  89. package/dist/engine/agent-api/nodes/assets.js +7 -0
  90. package/dist/engine/agent-api/nodes/assets.js.map +1 -1
  91. package/dist/engine/agent-api/nodes/game/index.d.ts +8 -0
  92. package/dist/engine/agent-api/nodes/game/index.d.ts.map +1 -1
  93. package/dist/engine/agent-api/nodes/game/index.js +8 -0
  94. package/dist/engine/agent-api/nodes/game/index.js.map +1 -1
  95. package/dist/engine/agent-api/nodes/model.d.ts.map +1 -1
  96. package/dist/engine/agent-api/nodes/model.js +2 -0
  97. package/dist/engine/agent-api/nodes/model.js.map +1 -1
  98. package/dist/engine/agent-api/nodes/shadows.d.ts.map +1 -1
  99. package/dist/engine/agent-api/nodes/shadows.js +14 -10
  100. package/dist/engine/agent-api/nodes/shadows.js.map +1 -1
  101. package/dist/engine/agent-api/nodes/types.d.ts +14 -6
  102. package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
  103. package/dist/engine/agent-api/publishedUnion.d.ts +1 -1
  104. package/dist/engine/agent-api/publishedUnion.d.ts.map +1 -1
  105. package/dist/engine/agent-api/runtimeEvidence.d.ts.map +1 -1
  106. package/dist/engine/agent-api/runtimeEvidence.js +2 -1
  107. package/dist/engine/agent-api/runtimeEvidence.js.map +1 -1
  108. package/dist/engine/agent-api/sceneMath.d.ts.map +1 -1
  109. package/dist/engine/agent-api/sceneMath.js +20 -1
  110. package/dist/engine/agent-api/sceneMath.js.map +1 -1
  111. package/dist/engine/contracts/animation.d.ts +18 -0
  112. package/dist/engine/contracts/animation.d.ts.map +1 -1
  113. package/dist/engine/contracts/animation.js +4 -1
  114. package/dist/engine/contracts/animation.js.map +1 -1
  115. package/dist/engine/lanes/prd06.d.ts.map +1 -1
  116. package/dist/engine/lanes/prd06.js +21 -2
  117. package/dist/engine/lanes/prd06.js.map +1 -1
  118. package/dist/engine/production-runtime/effects/EffectNodeLowering.js +1 -1
  119. package/dist/engine/production-runtime/effects/EffectNodeLowering.js.map +1 -1
  120. package/dist/engine/public/index.d.ts +3 -1
  121. package/dist/engine/public/index.d.ts.map +1 -1
  122. package/dist/engine/public/index.js +1 -0
  123. package/dist/engine/public/index.js.map +1 -1
  124. package/dist/engine/threejs-example-parity/index.d.ts.map +1 -1
  125. package/dist/engine/threejs-example-parity/index.js +52 -22
  126. package/dist/engine/threejs-example-parity/index.js.map +1 -1
  127. package/dist/rendering/Renderer.d.ts.map +1 -1
  128. package/dist/rendering/Renderer.js +15 -4
  129. package/dist/rendering/Renderer.js.map +1 -1
  130. package/dist/rendering/WebGL2Device.d.ts +1 -0
  131. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  132. package/dist/rendering/WebGL2Device.js +12 -0
  133. package/dist/rendering/WebGL2Device.js.map +1 -1
  134. package/dist/rendering/effects/ResidentGPUParticleRenderer.d.ts.map +1 -1
  135. package/dist/rendering/effects/ResidentGPUParticleRenderer.js +10 -5
  136. package/dist/rendering/effects/ResidentGPUParticleRenderer.js.map +1 -1
  137. package/dist/rendering/post/PostResources.d.ts.map +1 -1
  138. package/dist/rendering/post/PostResources.js +17 -12
  139. package/dist/rendering/post/PostResources.js.map +1 -1
  140. package/dist/rendering/post/v2Stages.js +2 -2
  141. package/dist/rendering/post/v2Stages.js.map +1 -1
  142. package/dist/rendering/production-runtime/passes/ContactShadowPass.d.ts.map +1 -1
  143. package/dist/rendering/production-runtime/passes/ContactShadowPass.js +14 -13
  144. package/dist/rendering/production-runtime/passes/ContactShadowPass.js.map +1 -1
  145. package/dist/rendering/reference/PostProcessPass.d.ts.map +1 -1
  146. package/dist/rendering/reference/PostProcessPass.js +4 -1
  147. package/dist/rendering/reference/PostProcessPass.js.map +1 -1
  148. package/dist/rendering/renderer/PostprocessExecution.d.ts.map +1 -1
  149. package/dist/rendering/renderer/PostprocessExecution.js +4 -0
  150. package/dist/rendering/renderer/PostprocessExecution.js.map +1 -1
  151. package/dist/rendering/resources/RenderTargetPool.d.ts.map +1 -1
  152. package/dist/rendering/resources/RenderTargetPool.js +13 -4
  153. package/dist/rendering/resources/RenderTargetPool.js.map +1 -1
  154. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  155. package/dist/rendering/webgl2/LegacyPost.js +5 -2
  156. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  157. package/dist/rendering/webgl2/Probe.d.ts.map +1 -1
  158. package/dist/rendering/webgl2/Probe.js +27 -1
  159. package/dist/rendering/webgl2/Probe.js.map +1 -1
  160. package/package.json +30 -28
  161. package/templates/cinematic-scene/index.html +28 -2
  162. package/templates/cinematic-scene/package.json +1 -1
  163. package/templates/cinematic-scene/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  164. package/templates/cinematic-scene/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  165. package/templates/cinematic-scene/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  166. package/templates/mini-game/index.html +27 -1
  167. package/templates/mini-game/package.json +1 -1
  168. package/templates/mini-game/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  169. package/templates/mini-game/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  170. package/templates/mini-game/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  171. package/templates/mini-game/src/main.ts +1 -1
  172. package/templates/product-viewer/index.html +27 -2
  173. package/templates/product-viewer/package.json +1 -1
  174. package/templates/product-viewer/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  175. package/templates/product-viewer/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  176. package/templates/product-viewer/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  177. package/templates/production-asset-inspector/index.html +1 -1
  178. package/templates/production-asset-inspector/package.json +1 -1
  179. package/templates/production-asset-inspector/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  180. package/templates/production-asset-inspector/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  181. package/templates/production-asset-inspector/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  182. package/templates/production-material-studio/index.html +1 -1
  183. package/templates/production-material-studio/package.json +1 -1
  184. package/templates/production-material-studio/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  185. package/templates/production-material-studio/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  186. package/templates/production-material-studio/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  187. package/templates/production-product-configurator/index.html +1 -1
  188. package/templates/production-product-configurator/package.json +1 -1
  189. package/templates/production-product-configurator/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  190. package/templates/production-product-configurator/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  191. package/templates/production-product-configurator/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  192. package/templates/production-product-viewer/index.html +6 -1
  193. package/templates/production-product-viewer/package.json +1 -1
  194. package/templates/production-product-viewer/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  195. package/templates/production-product-viewer/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  196. package/templates/production-product-viewer/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
  197. package/dist/animation/CrowdAnimation.d.ts +0 -13
  198. package/dist/animation/CrowdAnimation.d.ts.map +0 -1
  199. package/dist/animation/CrowdAnimation.js +0 -14
  200. package/dist/animation/CrowdAnimation.js.map +0 -1
  201. package/dist/engine/agent-api/lean-game.d.ts +0 -3
  202. package/dist/engine/agent-api/lean-game.d.ts.map +0 -1
  203. package/dist/engine/agent-api/lean-game.js +0 -3
  204. package/dist/engine/agent-api/lean-game.js.map +0 -1
  205. package/dist/engine/agent-api/lean-product.d.ts +0 -3
  206. package/dist/engine/agent-api/lean-product.d.ts.map +0 -1
  207. package/dist/engine/agent-api/lean-product.js +0 -3
  208. package/dist/engine/agent-api/lean-product.js.map +0 -1
  209. package/dist/engine/agent-api/lean.d.ts +0 -3
  210. package/dist/engine/agent-api/lean.d.ts.map +0 -1
  211. package/dist/engine/agent-api/lean.js +0 -3
  212. package/dist/engine/agent-api/lean.js.map +0 -1
  213. package/dist/engine/threejs-example-parity/FlagshipFoundation.d.ts +0 -158
  214. package/dist/engine/threejs-example-parity/FlagshipFoundation.d.ts.map +0 -1
  215. package/dist/engine/threejs-example-parity/FlagshipFoundation.js +0 -332
  216. package/dist/engine/threejs-example-parity/FlagshipFoundation.js.map +0 -1
  217. package/dist/rendering/ArchitecturalMaterialCatalog.d.ts +0 -30
  218. package/dist/rendering/ArchitecturalMaterialCatalog.d.ts.map +0 -1
  219. package/dist/rendering/ArchitecturalMaterialCatalog.js +0 -90
  220. package/dist/rendering/ArchitecturalMaterialCatalog.js.map +0 -1
  221. package/dist/rendering/LeanWebGL2Device.d.ts +0 -265
  222. package/dist/rendering/LeanWebGL2Device.d.ts.map +0 -1
  223. package/dist/rendering/LeanWebGL2Device.js +0 -4001
  224. package/dist/rendering/LeanWebGL2Device.js.map +0 -1
  225. package/dist/rendering/advanced-runtime/AdvancedRenderer.d.ts +0 -23
  226. package/dist/rendering/advanced-runtime/AdvancedRenderer.d.ts.map +0 -1
  227. package/dist/rendering/advanced-runtime/AdvancedRenderer.js +0 -45
  228. package/dist/rendering/advanced-runtime/AdvancedRenderer.js.map +0 -1
  229. package/dist/rendering/animation/AnimationMaterialStyle.d.ts +0 -19
  230. package/dist/rendering/animation/AnimationMaterialStyle.d.ts.map +0 -1
  231. package/dist/rendering/animation/AnimationMaterialStyle.js +0 -13
  232. package/dist/rendering/animation/AnimationMaterialStyle.js.map +0 -1
  233. package/dist/rendering/cinematic/CinematicMaterialPresets.d.ts +0 -16
  234. package/dist/rendering/cinematic/CinematicMaterialPresets.d.ts.map +0 -1
  235. package/dist/rendering/cinematic/CinematicMaterialPresets.js +0 -114
  236. package/dist/rendering/cinematic/CinematicMaterialPresets.js.map +0 -1
  237. package/dist/rendering/lean/LeanProductRenderer.d.ts +0 -29
  238. package/dist/rendering/lean/LeanProductRenderer.d.ts.map +0 -1
  239. package/dist/rendering/lean/LeanProductRenderer.js +0 -38
  240. package/dist/rendering/lean/LeanProductRenderer.js.map +0 -1
  241. package/dist/rendering/lean/LeanProductionRenderer.d.ts +0 -38
  242. package/dist/rendering/lean/LeanProductionRenderer.d.ts.map +0 -1
  243. package/dist/rendering/lean/LeanProductionRenderer.js +0 -88
  244. package/dist/rendering/lean/LeanProductionRenderer.js.map +0 -1
  245. package/dist/rendering/lean-core-runtime.d.ts +0 -13
  246. package/dist/rendering/lean-core-runtime.d.ts.map +0 -1
  247. package/dist/rendering/lean-core-runtime.js +0 -10
  248. package/dist/rendering/lean-core-runtime.js.map +0 -1
  249. package/dist/rendering/lean-runtime.d.ts +0 -18
  250. package/dist/rendering/lean-runtime.d.ts.map +0 -1
  251. package/dist/rendering/lean-runtime.js +0 -13
  252. package/dist/rendering/lean-runtime.js.map +0 -1
  253. package/dist/rendering/materials/TransmissionPass.d.ts +0 -16
  254. package/dist/rendering/materials/TransmissionPass.d.ts.map +0 -1
  255. package/dist/rendering/materials/TransmissionPass.js +0 -30
  256. package/dist/rendering/materials/TransmissionPass.js.map +0 -1
  257. package/dist/rendering/production-runtime/ProductionEffectsPipeline.d.ts +0 -20
  258. package/dist/rendering/production-runtime/ProductionEffectsPipeline.d.ts.map +0 -1
  259. package/dist/rendering/production-runtime/ProductionEffectsPipeline.js +0 -65
  260. package/dist/rendering/production-runtime/ProductionEffectsPipeline.js.map +0 -1
  261. package/dist/rendering/production-runtime/ProductionRuntimeRenderer.d.ts +0 -44
  262. package/dist/rendering/production-runtime/ProductionRuntimeRenderer.d.ts.map +0 -1
  263. package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js +0 -179
  264. package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js.map +0 -1
  265. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts +0 -65
  266. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts.map +0 -1
  267. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js +0 -305
  268. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js.map +0 -1
  269. package/dist/rendering/threejs-example-parity/index.d.ts +0 -57
  270. package/dist/rendering/threejs-example-parity/index.d.ts.map +0 -1
  271. package/dist/rendering/threejs-example-parity/index.js +0 -139
  272. package/dist/rendering/threejs-example-parity/index.js.map +0 -1
package/README.md CHANGED
@@ -1,31 +1,181 @@
1
- # Aura3D
1
+ # Aura3D 4.0.1
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@aura3d/engine.svg)](https://www.npmjs.com/package/@aura3d/engine)
4
4
  [![npm downloads](https://img.shields.io/npm/dm/@aura3d/engine.svg)](https://www.npmjs.com/package/@aura3d/engine)
5
5
  [![license: MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
6
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-browser%203D-3178c6.svg)](https://www.typescriptlang.org/)
7
7
 
8
- Build browser 3D apps from prompts, assets, and TypeScript.
8
+ **The batteries-included, agent-native 3D engine & game platform for the web.**
9
9
 
10
- Aura3D is the developer SDK for AI-authored, agent-written browser 3D software: product viewers,
11
- interactive scenes, cinematic pages, prototype game routes, animation tools,
12
- and deployable Vite apps. It gives coding agents and developers a real 3D app
13
- surface instead of a pile of renderer glue: typed GLB/glTF assets, scene kits,
14
- starter templates, route-health checks, screenshots, and static deploy proof.
10
+ Licensed under MIT, `@aura3d/engine@4.0.1` unifies declarative scene authoring (`scene()`, `model()`, `primitives`, `lights`, `effects`, `camera`), deterministic Rapier 3D physics (`game.collisionWorld`), genre game kits (`game.platformer`, `game.racing`, `game.arcadeKart`, `game.grandPrixRoad`, `game.carSoccer`, `game.carSoccerPitch`, `game.racketSports`, `game.fallingBlocks`, `game.fighting`, `game.input`, `game.hud`), automatic glTF skeletal skinning & foot-planting IK, SHA-256 typed asset provenance (`src/aura-assets.ts` + Meshy 3D CLI pipeline), and automated release certification (`check-deploy`) in **one cohesive TypeScript SDK**.
15
11
 
16
12
  Describe the scene. Keep the code. Ship the app.
17
13
 
14
+ ---
15
+
16
+ ## Why Teams Choose Aura3D Over Raw Three.js
17
+
18
+ **Three.js gives you a low-level scene graph and leaves you to assemble 15 incompatible libraries.** To ship a real 3D game or interactive product in raw Three.js, you have to wire your own WebGL/WebGPU render loop, hunt down a physics wrapper, manually configure shadow frustums and post-processing passes (`postprocessing` / `EffectComposer`), write custom glTF skinning/animation state machines, guess why untyped `/models/foo.glb` URLs 404 in production, and debug memory leaks when switching scenes.
19
+
20
+ **Aura3D 4.0.1 gives developers and AI coding agents a complete 3D application and game platform out of the box.** Instead of stitching together imperative renderer plumbing, you author compact, deterministic TypeScript against one unified `@aura3d/engine@4.0.1` package—backed by 800,000+ searchable catalog models, Meshy 3D PBR asset admission, built-in Rapier 3D physics, Recast crowd navigation, 28+ `effects.*` post-processing and atmospheric builders, and fail-closed deployment checks.
21
+
22
+ See the full architectural breakdown in [`docs/aura3d-vs-threejs.md`](docs/aura3d-vs-threejs.md).
23
+
24
+ ### 10-Way Architectural Comparison: `Aura3D 4.0.1` vs. `Raw Three.js`
25
+
26
+ | Architectural Layer | Raw Three.js (`three@0.185.1` + DIY Stack) | Aura3D 4.0.1 (`@aura3d/engine@4.0.1`) |
27
+ | --- | --- | --- |
28
+ | **1. Scene & Render Loop** | Manual `requestAnimationFrame`, window resize listeners, `devicePixelRatio` clamping, and manual GPU geometry/material/texture disposal. | Zero-boilerplate `createAuraApp` / `createGameApp` with automatic resource lifecycle, resize handling, and deterministic `stepAsync`. |
29
+ | **2. Asset Pipeline & Type Safety** | Untyped string URLs (`"/foo.glb"`) that fail silently at runtime; manual bounding-box scale and pivot guessing. | Compile-time typed `assets.heroModel` with SHA-256 hash verification, auto-normalized `scaleMode: "fit"`, and built-in Meshy 3D + catalog CLI. |
30
+ | **3. Physics & Gameplay Kits** | None built-in; requires stitching external Rapier, Ammo, or Cannon WASM glue and writing custom character movement loops. | Built-in deterministic Rapier 3D physics (`game.collisionWorld`), CCD, character controllers, and genre kits for racing, platformers, fighters, and falling-blocks. |
31
+ | **4. Skeletal Animation & IK** | Manual `THREE.AnimationMixer` update loops, manual root-motion math, and no built-in foot-planting IK. | Declarative `animation.clip()`, crossfade state machines, root-motion extraction, spring-bone secondary dynamics, and automatic terrain foot-planting IK. |
32
+ | **5. Post-Processing & Lighting** | Separate `EffectComposer` packages, shader chunk version conflicts, and manual HDRI `PMREMGenerator` setup. | First-class `effects.bloom()`, `ambientOcclusion()`, `screenSpaceReflections()`, temporal AA, volumetric fog, and 1-line HDRI studio presets. |
33
+ | **6. Production Verification** | Zero built-in visual or asset verification; broken asset paths or shader errors cause silent black screens in prod. | Built-in `aura3d check-deploy`, route-health probes, and automated GPU visual & gameplay evidence gates. |
34
+ | **7. Navigation & Crowd AI** | No pathfinding or navmesh runtime; requires custom Recast/Detour WASM bindings and manual agent steering loops. | Built-in Recast/Detour navmesh generation, pathfinding queries, and multi-agent local-avoidance crowd simulation (`@aura3d/navigation`). |
35
+ | **8. Spatial Audio & Voice Sync** | Basic WebAudio wrapper nodes; no procedural game synth cues, audio stem manifests, or lip-sync viseme tracks. | Integrated spatial WebAudio buses, procedural synth cues, and AuraVoice viseme/caption synchronization (`createAuraVoiceBridgePackage`). |
36
+ | **9. AI Coding Agent Ergonomics** | Imperative mutation soup where LLMs hallucinate removed APIs, invent missing `.glb` URLs, or leak GPU memory on reload. | Declarative nouns & verbs, `llms.txt` agent context, 800,000+ searchable catalog assets (`aura3d assets resolve`), and fail-closed diagnostics. |
37
+ | **10. Ecosystem & Migration** | Fragmented third-party libraries that break across `three` minor releases. | Single `@aura3d/engine@4.0.1` entrypoint across 24 version-locked npm packages, plus the `aura3d migrate three` codemod. |
38
+
39
+ ### Side-by-Side Code Comparison: ~120 Lines of Fragile Three.js Boilerplate vs. 18 Lines of `@aura3d/engine@4.0.1`
40
+
41
+ Shipping a lit, post-processed, animated 3D hero scene with orbit controls and clean teardown in **raw Three.js** requires ~120 lines of manual imperative plumbing across multiple packages:
42
+
43
+ ```ts
44
+ // ❌ Raw Three.js (~120 lines of manual boilerplate & external glue)
45
+ import * as THREE from "three";
46
+ import { OrbitControls } from "three/addons/controls/OrbitControls.js";
47
+ import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
48
+ import { DRACOLoader } from "three/addons/loaders/DRACOLoader.js";
49
+ import { RGBELoader } from "three/addons/loaders/RGBELoader.js";
50
+ import { EffectComposer } from "three/addons/postprocessing/EffectComposer.js";
51
+ import { RenderPass } from "three/addons/postprocessing/RenderPass.js";
52
+ import { UnrealBloomPass } from "three/addons/postprocessing/UnrealBloomPass.js";
53
+
54
+ const container = document.querySelector<HTMLElement>("#app")!;
55
+ const scene = new THREE.Scene();
56
+ scene.background = new THREE.Color("#07080a");
57
+ scene.fog = new THREE.FogExp2("#07080a", 0.025);
58
+
59
+ const camera = new THREE.PerspectiveCamera(45, container.clientWidth / container.clientHeight, 0.1, 200);
60
+ camera.position.set(0, 1.8, 4.2);
61
+
62
+ const renderer = new THREE.WebGLRenderer({ antialias: false, powerPreference: "high-performance" });
63
+ renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
64
+ renderer.setSize(container.clientWidth, container.clientHeight);
65
+ renderer.toneMapping = THREE.ACESFilmicToneMapping;
66
+ renderer.toneMappingExposure = 1.05;
67
+ renderer.shadowMap.enabled = true;
68
+ renderer.shadowMap.type = THREE.PCFSoftShadowMap;
69
+ container.appendChild(renderer.domElement);
70
+
71
+ const pmrem = new THREE.PMREMGenerator(renderer);
72
+ pmrem.compileEquirectangularShader();
73
+ new RGBELoader().load("/envs/studio_small.hdr", (hdr) => {
74
+ scene.environment = pmrem.fromEquirectangular(hdr).texture;
75
+ hdr.dispose();
76
+ pmrem.dispose();
77
+ });
78
+
79
+ const keyLight = new THREE.DirectionalLight(0xffffff, 2.4);
80
+ keyLight.position.set(4, 8, 5);
81
+ keyLight.castShadow = true;
82
+ keyLight.shadow.mapSize.set(2048, 2048);
83
+ scene.add(keyLight, new THREE.AmbientLight(0x404060, 0.7));
84
+
85
+ const controls = new OrbitControls(camera, renderer.domElement);
86
+ controls.enableDamping = true;
87
+ controls.target.set(0, 0.9, 0);
88
+
89
+ const composer = new EffectComposer(renderer);
90
+ composer.addPass(new RenderPass(scene, camera));
91
+ composer.addPass(
92
+ new UnrealBloomPass(new THREE.Vector2(container.clientWidth, container.clientHeight), 0.32, 0.4, 0.72)
93
+ );
94
+
95
+ const draco = new DRACOLoader();
96
+ draco.setDecoderPath("/draco/");
97
+ const loader = new GLTFLoader();
98
+ loader.setDRACOLoader(draco);
99
+
100
+ let mixer: THREE.AnimationMixer | undefined;
101
+ // Untyped URL string: no compile-time check, no SHA-256 verification, manual scale guessing
102
+ loader.load("/models/hero-mech.glb", (gltf) => {
103
+ const root = gltf.scene;
104
+ const box = new THREE.Box3().setFromObject(root);
105
+ const size = box.getSize(new THREE.Vector3());
106
+ const scale = 2.0 / Math.max(size.x, size.y, size.z, 0.001);
107
+ root.scale.setScalar(scale);
108
+ root.traverse((node) => {
109
+ if ((node as THREE.Mesh).isMesh) {
110
+ node.castShadow = true;
111
+ node.receiveShadow = true;
112
+ }
113
+ });
114
+ scene.add(root);
115
+ if (gltf.animations[0]) {
116
+ mixer = new THREE.AnimationMixer(root);
117
+ mixer.clipAction(gltf.animations[0]).play();
118
+ }
119
+ });
120
+
121
+ const clock = new THREE.Clock();
122
+ let rafId = 0;
123
+ function onResize() {
124
+ camera.aspect = container.clientWidth / container.clientHeight;
125
+ camera.updateProjectionMatrix();
126
+ renderer.setSize(container.clientWidth, container.clientHeight);
127
+ composer.setSize(container.clientWidth, container.clientHeight);
128
+ }
129
+ window.addEventListener("resize", onResize);
130
+ function animate() {
131
+ rafId = requestAnimationFrame(animate);
132
+ const dt = Math.min(clock.getDelta(), 0.1);
133
+ mixer?.update(dt);
134
+ controls.update();
135
+ composer.render();
136
+ }
137
+ animate();
138
+ // Plus 25+ lines of manual geometry/material/texture/RT disposal to avoid GPU memory leaks...
139
+ ```
140
+
141
+ In **Aura3D 4.0.1**, the entire scene—with SHA-256 verified typed assets, auto-normalized scale, studio IBL + cascaded shadows, skeletal animation playback, HDR bloom + ambient occlusion, orbit camera, and automatic lifecycle cleanup—is **18 lines of declarative TypeScript**:
142
+
143
+ ```ts
144
+ // ✅ Aura3D 4.0.1 (18 lines — declarative, type-safe, verified)
145
+ import { camera, createAuraApp, effects, environments, lights, model, scene, shadows } from "@aura3d/engine";
146
+ import { assets } from "./aura-assets";
147
+
148
+ createAuraApp("#app", {
149
+ scene: scene({ background: "#07080a" })
150
+ .add(model(assets.heroMech, { scaleMode: "fit", targetSize: 2.0, clip: "Idle" }))
151
+ .add(environments.studio({ intensity: 1.15 }))
152
+ .add(lights.studio())
153
+ .add(shadows.cascaded({ cascades: 3, mapSize: 2048, contactHardening: true }))
154
+ .camera(camera.orbit({ distance: 4.2, target: [0, 0.9, 0], damping: true }))
155
+ .add(effects.bloom({ intensity: 0.32, threshold: 0.72, radius: 0.4, antiBlowout: true }))
156
+ .add(effects.ambientOcclusion({ intensity: 0.45, radius: 0.7 }))
157
+ .add(effects.volumetricFog({ density: 0.018, color: "#07080a" }))
158
+ });
159
+ ```
160
+
161
+ ---
162
+
18
163
  ## Start In One Command
19
164
 
165
+ Scaffold a new Aura3D 4.0.1 project using `npm create aura3d@4.0.0` or `npx create-aura3d`:
166
+
20
167
  ```bash
168
+ npm create aura3d@4.0.0 my-product -- --template product-viewer
21
169
  npx create-aura3d@latest my-product --template product-viewer
22
170
  cd my-product
23
171
  npm run dev
24
172
  ```
25
173
 
26
- Add a real model and keep it typed:
174
+ Resolve an asset from the 800,000+ model catalog or add a local GLB and keep it typed:
27
175
 
28
176
  ```bash
177
+ npx @aura3d/cli@4.0.1 assets resolve "battle-worn knight helmet" --name sneaker
178
+ npx @aura3d/cli@4.0.1 assets add ./assets/sneaker.glb --name sneaker
29
179
  npx @aura3d/cli@latest assets add ./assets/sneaker.glb --name sneaker
30
180
  ```
31
181
 
@@ -40,76 +190,65 @@ createAuraApp("#app", {
40
190
  });
41
191
  ```
42
192
 
193
+ Verify static deployment output before shipping:
194
+
195
+ ```bash
196
+ npx @aura3d/cli@4.0.1 check-deploy --dist dist
197
+ ```
198
+
43
199
  ## Why Developers Install It
44
200
 
45
- - **Prompt-to-code, not prompt-to-mystery.** Aura3D turns AI-generated 3D work
46
- into editable TypeScript projects you can inspect, test, and ship.
47
- - **Real assets by default.** The CLI tracks GLB/glTF source, license,
48
- metadata, hashes, and generated `assets.name` imports.
49
- - **Templates that start as apps.** Product viewers, cinematic scenes,
50
- mini-games, fighting-game prototypes, animation channels, episode builders,
51
- character controllers, and Three.js migration starters all scaffold as Vite
52
- projects.
53
- - **Built-in proof.** Route-health checks, screenshots, package smoke tests,
54
- and deploy checks are part of the workflow instead of an afterthought.
55
- - **Designed for coding agents.** Codex, Claude, Cursor, and other agents get
56
- a stable API, typed assets, and guardrails that keep generated scenes in real
57
- source code.
201
+ - **Prompt-to-code, not prompt-to-mystery.** Aura3D turns AI-generated 3D work into editable TypeScript projects you can inspect, test, and ship.
202
+ - **Real assets by default.** The CLI tracks GLB/glTF source, license, metadata, SHA-256 hashes, and generated `assets.name` imports.
203
+ - **Templates that start as apps.** Scaffolds include `product-viewer`, `cinematic-scene`, `mini-game`, `fighting-game`, `racing-starter`, `falling-blocks-starter`, `prompt-animation-channel`, `animation-studio`, `character-controller`, and specialized showcase patterns such as `portal-worlds` and `gaussian-splat-viewer`.
204
+ - **Built-in proof.** Route-health checks, screenshots, package smoke tests, and deploy checks (`npx @aura3d/cli@4.0.1 check-deploy`) are part of the workflow instead of an afterthought.
205
+ - **Designed for coding agents.** Codex, Claude, Cursor, and other agents get a stable API, typed assets, and guardrails that keep generated scenes in real source code.
58
206
 
59
207
  ## What You Can Build
60
208
 
61
209
  ```bash
62
210
  npx create-aura3d@latest shoe-launch --template product-viewer
63
211
  npx create-aura3d@latest launch-film --template cinematic-scene
212
+ npx create-aura3d@latest arcade-run --template mini-game
64
213
  npx create-aura3d@latest arena --template fighting-game
65
214
  npx create-aura3d@latest episode --template prompt-animation-channel
66
215
  npx create-aura3d@latest studio --template animation-studio
67
216
  ```
68
217
 
69
- Aura3D is especially useful when the output needs to be more than a demo:
70
- typed assets, browser tests, screenshots, deploy checks, and source code that a
71
- developer can keep owning after the AI has written the first pass.
218
+ Aura3D is especially useful when the output needs to be more than a demo: typed assets, browser tests, screenshots, deploy checks, and source code that a developer can keep owning after the AI has written the first pass.
72
219
 
73
220
  ## Packages
74
221
 
75
- - `@aura3d/engine`: public TypeScript runtime for browser 3D scenes and apps
76
- (4.0.0 removed the `@aura3d/lean` compatibility package; its `.` entry now
77
- serves the same core path through code-split internals).
78
- - `create-aura3d`: one-command Vite scaffolds for Aura3D projects.
79
- - `@aura3d/cli`: typed GLB/glTF asset workflow, catalog search, look presets
80
- and the look-dev loop (`aura3d look capture`), validation, diagnostics, and
81
- deploy checks.
82
- - Package modules for animation, rendering, scene, physics, materials, React,
83
- product-studio, workflows, controls, environments, and Three.js migration.
222
+ - `@aura3d/engine`: public TypeScript runtime for browser 3D scenes and apps (4.0.0 removed the `@aura3d/lean` compatibility package; its `.` entry now serves the same core path through code-split internals).
223
+ - `create-aura3d`: one-command Vite scaffolds for Aura3D projects (`npm create aura3d@4.0.0`).
224
+ - `@aura3d/cli`: typed GLB/glTF asset workflow (`npx @aura3d/cli@4.0.1 assets resolve`, `npx @aura3d/cli@4.0.1 assets add`), catalog search, look presets and the look-dev loop (`aura3d look capture`), validation, diagnostics, and deploy checks (`npx @aura3d/cli@4.0.1 check-deploy`).
225
+ - Package modules for animation, rendering, scene, physics, materials, React, product-studio, workflows, controls, environments, and Three.js migration.
84
226
 
85
227
  ## Proof-Oriented By Design
86
228
 
87
- Aura3D is built for public, inspectable software. Generated projects keep their
88
- TypeScript source, asset manifest, tests, screenshots, and deploy checks in the
89
- repo. The claim-boundary and release evidence docs live under `docs/` for teams
90
- that need strict publication review, but the developer path starts here: create
91
- an app, add typed assets, run it, test it, deploy it.
229
+ Aura3D is built for public, inspectable software. Generated projects keep their TypeScript source, asset manifest, tests, screenshots, and deploy checks in the repo. The claim-boundary and release evidence docs live under `docs/` for teams that need strict publication review, but the developer path starts here: create an app, add typed assets, run it, test it, deploy it.
92
230
 
93
231
  ## Current Release 4.0.0
94
232
 
95
- Aura3D 4.0.0 is published across all **24 active public packages** on npm (all pre-4.0 versions `< 4.0.0` and the 5 retired pre-4.0 compatibility packages `@aura3d/lean`, `@aura3d/three-compat`, `@aura3d/materials`, `@aura3d/environments`, and `@aura3d/editor` are deprecated in full on npm in favor of `@aura3d/engine@4.0.0`). See the
96
- [GitHub release](https://github.com/auraoneai/aura3d/releases/tag/v4.0.0) for
97
- release assets and package details, and [`docs/MIGRATION-4.0.md`](docs/MIGRATION-4.0.md)
98
- for the 4.0 consolidation guide.
233
+ Aura3D 4.0.1 is published across all **24 active public packages** on npm (all pre-4.0 versions `< 4.0.0` and the 5 retired pre-4.0 compatibility packages `@aura3d/lean`, `@aura3d/three-compat`, `@aura3d/materials`, `@aura3d/environments`, and `@aura3d/editor` are deprecated in full on npm in favor of `@aura3d/engine@4.0.1`). See the [GitHub release](https://github.com/auraoneai/aura3d/releases/tag/v4.0.1) for release assets and package details, and [`docs/migration-4.0.md`](docs/migration-4.0.md) for the 4.0 consolidation guide.
99
234
 
100
- Aura3D 4.0.0 is the consolidated browser 3D engine release for the agent era — prompt it, prove it, ship it. It unifies the public runtime surface on `@aura3d/engine@4.0.0`, upgrades all 19 browser 3D games and showcases with custom Meshy PBR GLB assets and interactive gameplay loops, ships the full post-processing, atmospheric, particle, weather, ribbon, and game-feel effects suite (`effects.*`), exports the resident WebGPU compute particle pipeline alongside the WebGL2 runtime, and carries forward the 3.0.1 and 2.0.4 evidence foundation. Claims remain scoped to the public API and evidence described in the release documentation.
235
+ Aura3D 4.0.1 is the consolidated browser 3D engine release for the agent era — prompt it, prove it, ship it. It unifies the public runtime surface on `@aura3d/engine@4.0.1`, upgrades all 19 browser 3D games and showcases with custom Meshy PBR GLB assets and interactive gameplay loops, ships the full post-processing, atmospheric, particle, weather, ribbon, and game-feel effects suite (`effects.*`), and exports the resident WebGPU compute particle pipeline alongside the WebGL2 runtime. Claims remain scoped to the public API and evidence described in the release documentation.
101
236
 
102
237
  ### What ships in 4.0.0
103
238
 
104
- - **Single Public Entrypoint (`@aura3d/engine@4.0.0`).** Consolidated public runtime surface (`createAuraApp`, `model(assets.x)`, `scene`, `camera`, `lights`, `effects`, `atmosphere`, `environments`, `shadows`, `game.*`, `sceneKits.*`, `prefabs.*`, `primitives.*`, `animation`, `createPhysicsRuntime`) with pre-4.0 versions (`< 4.0.0`) and retired compatibility packages (`@aura3d/lean`, `@aura3d/three-compat`, `@aura3d/materials`, `@aura3d/environments`, `@aura3d/editor`) deprecated in full on npm.
239
+ - **Single Public Entrypoint (`@aura3d/engine@4.0.1`).** Consolidated public runtime surface (`createAuraApp`, `model(assets.x)`, `scene`, `camera`, `lights`, `effects`, `atmosphere`, `environments`, `shadows`, `game.*`, `sceneKits.*`, `prefabs.*`, `primitives.*`, `animation`, `createPhysicsRuntime`) with pre-4.0 versions (`< 4.0.0`) and retired compatibility packages (`@aura3d/lean`, `@aura3d/three-compat`, `@aura3d/materials`, `@aura3d/environments`, `@aura3d/editor`) deprecated in full on npm.
105
240
  - **Complete Effects, Post-Processing, Atmospherics & VFX Suite (`effects.*`).** Built-in scene-graph effect builders covering HDR bloom (`effects.bloom`, `effects.neonBloom`, `effects.cinematicBloom`), screen-space & contact occlusion (`effects.ambientOcclusion`, `effects.contactOcclusion`, `effects.contactShadows`), screen-space reflections (`effects.screenSpaceReflections`), physical depth of field (`effects.depthOfField`), camera/object motion blur (`effects.motionBlur`), ACES/AgX color grading & finishing (`effects.colorGrade`, `effects.vignette`, `effects.filmGrain`, `effects.chromaticAberration`, `effects.antiAlias`, `effects.outline`), volumetric & height fog (`effects.fog`, `effects.depthFog`, `effects.volumetricFog`, `effects.fogVolume`, `effects.lightCone`, `effects.auroraRibbon`), GPU & CPU particle/weather systems (`effects.particles`, `effects.meshParticles`, `effects.rain`, `effects.snow`, `effects.flipbook`, `effects.trail`), physical sky/wetness (`atmosphere.setSky`, `atmosphere.setWetness`), resident WebGPU compute particles (`ResidentGPUParticleRenderer`), and combat game-feel triggers (`game.feel` / `app.feel`).
106
- - **19 Upgraded 3D Browser Games & Showcases.** Upgraded with 38+ custom Meshy 3D PBR GLB hero vehicles, rigged/posed characters, architectural setpieces, and deep interactive gameplay loops (`Aura Clash Arena` development showcase, `Neon Corridor Strike`, `Turbo Drift Circuit`, `Rooftop Buckets`, `Vault Breakers`, `Mech Hangar`, `Patrol Wing`, `Deep Recovery`, `Aurora Lander`, `Gallery Shift`, `Siege Golf`, `Skyline Runner`, `Gravity Post`, `Neon Swarm`, `Bank Shot`, `Blockfall Reactor`, `Orbital Defense`, `Pulse Tunnel`, `Courier Rush`), backed by same-origin fixture and asset delivery.
107
- - **WebGPU Compute + WebGL2 Parity Runtime.** Resident GPU compute particle simulation (`ResidentGPUParticleRenderer`), physical PBR materials (clearcoat, sheen, transmission, anisotropy, iridescence), HDR/IBL environment lighting, and deterministic fixed-step game simulation.
108
- - **Agent-First Authoring & Typed Asset Pipeline.** `create-aura3d@4.0.0`, `aura3d assets add/resolve/import-meshy/validate/typegen`, and `aura3d check-deploy`.
241
+ - **Aura3D 3D Browser Games & Interactive Showcases.** Upgraded with custom Meshy 3D PBR GLB hero models, architectural setpieces, and responsive user-controlled gameplay loops (`Aura Clash Arena` development showcase, `Neon Corridor Strike`, `Blockfall Reactor`, `Siege Golf`, `Bank Shot`, `Vault Breakers`, and `Mech Hangar`, alongside `Product Configurator`, `Smart City Control`, `Cinematic Architecture`, and `Digital Twin Operations`), backed by same-origin fixture and asset delivery.
242
+ - **WebGPU Compute + WebGL2 Runtime.** Resident GPU compute particle simulation (`ResidentGPUParticleRenderer`), physical materials (sheen, anisotropy, iridescence, plus clearcoat and transmission with route-scoped evidence), HDR/IBL environment lighting, and deterministic fixed-step game simulation.
243
+ - **Agent-First Authoring & Typed Asset Pipeline.** `npm create aura3d@4.0.0`, `npx @aura3d/cli@4.0.1 assets resolve`, `npx @aura3d/cli@4.0.1 assets add`, `import-meshy`, `validate`, `typegen`, and `npx @aura3d/cli@4.0.1 check-deploy`.
244
+
245
+ ### 2.0.4 history & 3.0.1 release lineage
246
+
247
+ Earlier milestones (`### 2.0.4 history` for the Meshy CLI candidate asset pipeline and `## Current Release 3.0.1` for the r185 baseline verification) are preserved in [`CHANGELOG.md`](CHANGELOG.md) and consolidated into `@aura3d/engine@4.0.1`.
109
248
 
110
249
  ## Effects, Post-Processing, Atmospherics & VFX (`effects.*`)
111
250
 
112
- Aura3D 4.0.0 ships a unified, declarative `effects.*` builder surface in `@aura3d/engine` that attaches directly to `scene()` alongside `atmosphere.*`, `environments.*`, `shadows.*`, and runtime `game.feel` triggers:
251
+ Aura3D 4.0.1 ships a unified, declarative `effects.*` builder surface in `@aura3d/engine` that attaches directly to `scene()` alongside `atmosphere.*`, `environments.*`, `shadows.*`, and runtime `game.feel` triggers:
113
252
 
114
253
  ```ts
115
254
  import {
@@ -201,7 +340,7 @@ atmosphere.setSky(app, { mode: "preetham", turbidity: 2.4, rayleigh: 1.8, sunEle
201
340
  atmosphere.setWetness(app, { wetness: 0.65, puddleCoverage: 0.45, puddleRoughness: 0.06, rippleIntensity: 0.5 });
202
341
  ```
203
342
 
204
- ### Complete Effects Reference (`@aura3d/engine@4.0.0`)
343
+ ### Complete Effects Reference (`@aura3d/engine@4.0.1`)
205
344
 
206
345
  | Category | Builder / API | Key Options & Capabilities |
207
346
  | --- | --- | --- |
@@ -213,284 +352,68 @@ atmosphere.setWetness(app, { wetness: 0.65, puddleCoverage: 0.45, puddleRoughnes
213
352
  | **Particles, Weather & VFX** | `effects.particles(opts)` / `effects.meshParticles(opts)` / `effects.rain(opts)` / `effects.snow(opts)` / `effects.flipbook(opts)` / `effects.trail(opts)` / `effects.beam(opts)` / `ResidentGPUParticleRenderer` | Presets (`"fountain"`, `"swirl"`, `"ambient"`, `"additive-glow"`, `"soft-alpha"`, `"smoke"`, `"star"`, `"sparks"`, `"embers"`), `lifetimeColorRamp`, `sizeOverLife`, `alphaOverLife`, `turbulence`, `groundCollision`, instanced 3D debris (`meshParticles`), weather (`rain` with splashes/mist, `snow`), sprite-sheet `flipbook`, node/bone ribbon `trail`, energy `beam`, and WebGPU compute `ResidentGPUParticleRenderer`. |
214
353
  | **Game-Feel & Combat Juice** | `game.feel` / `gameFeel` / `app.feel` | Frame-accurate `hitStop`, `slowMo`, `damageFlash`, `speedLines`, `landingDust`, trauma-based camera shake, and combat impact triggers (`"hit-spark"`, `"impact-flash"`, `"dash-trail"`, `"ground-dust"`). |
215
354
 
216
- ### What shipped in 3.0.1
217
-
218
- - **Agent-era API surface.** Prompt→game and prompt→animation builders, game-feel triggers, follow/chase/platformer camera rigs, vehicle chassis + driver AI, GPU particles, SDF text, navmesh crowds, visual-scripting catalog, bounded editor surface — each `createAuraApp`-claimed only where root browser evidence exists.
219
- - **Rendering proofs.** Native fused LDR postprocess, multi-mip bloom with presets, exact sRGB output, anisotropic-GGX, cascaded shadows, GGX PMREM IBL, with shader-reference vectors pinning the math.
220
- - **Bounded three.js comparison.** Repository-locked `three@0.185.1` head-to-head reports only; no universal superiority claim.
221
- - **2.0.4 carried forward.** Candidate-only `assets import-meshy`, fail-closed admission, profile diagnostics, spend/secret controls, and the relic `prototype` pilot, unchanged. See the [3.0.1 release notes](docs/project/aura3d-301-release-notes.md) and [GitHub release](https://github.com/auraoneai/aura3d/releases/tag/v3.0.1).
222
-
223
- See [the Meshy CLI guide](docs/meshy-cli.md) for the current asset workflow.
224
-
225
- ### What shipped in 2.0.4 (history)
226
-
227
- - **Candidate-only Meshy import.** `assets import-meshy` reuses Aura3D's existing add, inspect, hash, manifest, and type-generation path. Import cannot certify release quality.
228
- - **Fail-closed admission.** Ambiguous or invalid GLBs, unsafe metadata, missing required rights evidence, out-of-root paths, and attempts to request release quality during import are rejected.
229
- - **Profile diagnostics.** Prop, environment, vehicle, and humanoid candidates receive bounded profile-specific checks and next actions. Missing measurements remain unproven rather than passing.
230
- - **Spend and secret controls.** Repository setup and agent-launcher flows pin `@meshy-ai/cli@0.2.0`, require a dry run and an explicitly approved maximum for documented paid workflows, preserve resumable task state, and keep credentials out of arguments and committed files.
231
- - **Optional MCP setup.** The pinned Meshy MCP server is optional and receives its API key only when its process starts. It is not a browser or engine dependency.
232
- - **Bounded pilot.** The relic pilot proves typed candidate use, visible browser rendering, keyboard collection, score/reset state, and desktop/mobile route evidence. It remains a `prototype`; its route-local distance threshold is not collision-system proof.
233
- - **Claim boundary unchanged.** Meshy is an upstream asset-generation tool, not an Aura3D renderer, Prism model, or game-runtime API. This release does not broaden renderer, PBR, WebGPU, animation, physics, or universal Three.js claims.
234
-
235
- See [the Meshy CLI guide](docs/meshy-cli.md).
236
-
237
- ### Consolidated 2.0 outcomes
238
-
239
- Earlier minor-release implementation notes have been consolidated into the 2.0 architecture, migration, API, and evidence documentation. Git history retains the original release narratives.
240
-
241
- ### Measured
242
-
243
- - **149 of 149** source-template checks and **149 of 149** clean exact-tarball
244
- lifecycle checks pass across all **19** public scaffolds. Each lifecycle proves
245
- install, typecheck, production build, browser load, meaningful interaction,
246
- static preview, screenshot, route health, and deploy behavior against the packed
247
- 2.0.0 dependency graph. Source: `tests/reports/agent-templates.json` and
248
- `tests/reports/installed-template-lifecycle.json`.
249
- - **15 of 15** bounded same-workload comparisons pass from freshly packed and
250
- installed Aura3D 2.0.0 tarballs against repository-locked `three@0.185.1`.
251
- Individual visual differences and capability boundaries remain part of the
252
- result; this is not a universal ecosystem-parity claim. The exact migration
253
- consumer is recorded in `tests/reports/packed-migration-consumer.json`.
254
- - The retained package, architecture, route-health, parity, superiority, and
255
- documentation gates pass individually; the two required final serial release
256
- runs remain pending until the human visual-review gate is recorded.
257
- - Clean-room projects against the public surface only: **137 / 142 / 122 / 99** authored
258
- lines against budgets of 200 / 200 / 300 / 300; one package imported each; **zero**
259
- private imports.
260
- - Route-local magic-geometry findings in published routes: **47 → 7**.
261
-
262
- ### Scoped Three.js comparisons
263
-
264
- #### Measured 3.0.1 outcomes
265
-
266
- Measured win: the `@aura3d/engine` core primitive critical path compresses to `77458` gzip bytes against its 80,000-byte budget, from `tests/reports/bundle-size.json`.
267
-
268
- Measured loss: the compatibility-root observation bundle is over budget at `575343` gzip bytes against the same 80,000-byte budget, from `tests/reports/bundle-size.json`.
269
-
270
- Both figures are measured on the exact 3.0.1 packages and bound by SHA-256 to the L01 package receipt `tests/reports/muse3jsparity/l01/f4049f235500c8a98f7bc0a86ecf9f1a9d8cbe68/l01.receipt.json`; they establish bundle-size facts only, not a universal performance ranking.
271
-
272
- #### Why Aura3D can beat Three.js in scoped workflows
273
-
274
- Aura3D can reduce authoring and packaging work in selected, reproducible
275
- workflows where its typed assets, narrow entries, scaffolds, and integrated
276
- evidence pipeline replace manual renderer glue. That is a scoped result, not a
277
- claim of universal visual, performance, or ecosystem superiority. The current
278
- 15-workload comparison records every observed loss and remains incomplete until
279
- the independent same-scene gallery review is approved. See
280
- `tests/reports/superiority/claim-defense.json` and
281
- `docs/project/threejs-superiority-status.md` for the generated verdict and its
282
- claim boundaries.
283
-
284
- ### What is still not resolved
285
-
286
- Stated because a release note that omits this is not useful:
287
-
288
- - **Five example routes were unhealthy in the retained tier-12 audit** (`tests/reports/tier12-route-health/report.json`,
289
- generated 2026-09-03): `custom-material-lab`, `neon-corridor-strike`, `raycast-ccd-lab`, `recast-crowd-lab`, and
290
- `rendering-large-scene` each stayed status-unknown past the 10 s readiness budget (four by under one second, a
291
- load-flake signature under the documented host load; two also lacked measurable canvas evidence). They are
292
- disclosed here rather than left out, and the audit is re-run before release so this list tracks current truth.
293
-
294
- - **The recommended narrow entries now meet all three comparative bundle budgets.** Measured
295
- 2026-08-08 by `tools/bundle-scenarios` against real Three.js builds of the same scene, through
296
- one shared bundler config. The compatibility-heavy root still exists for upgrades and is not
297
- presented as the smallest new-app import:
298
-
299
- | Scenario | Aura3D | Three.js | Ratio | Budget |
300
- | --- | --- | --- | --- | --- |
301
- | Core primitive scene (one cube) | 69,024 B | 118,603 B | **0.582x** | 1.25x |
302
- | Product viewer (glTF, PBR, orbit, IBL) | 182,144 B | 145,978 B | **1.248x** | 1.25x |
303
- | Game runtime (input, physics, loop) | 118,765 B | 142,809 B | **0.832x** | 1.50x |
304
-
305
- These historical budgets were derived from the measured `three@0.165.0`
306
- equivalents. Browser proof executes the core, real-GLB product, and input + shared
307
- production-physics game paths through `tests/browser/lean-entry-runtime.spec.ts`.
308
- - **Where Aura3D won in the frozen `three@0.165.0` scenarios:** authored lines
309
- **9 / 14 / 19** against Three.js's **15 / 27 / 40**, and one install instead of two for
310
- a game runtime. Across seven product workflows the gap is wider — 15 vs 74 lines for a
311
- product configurator, 10 vs 68 for glTF asset review. TypeScript compile time is
312
- effectively tied or faster in the current three-process median measurement
313
- (653 vs 651 ms; 628 vs 676 ms; 642 vs 662 ms). Runtime construction through
314
- the first verified non-blank browser frame measured **24.1 ms vs 33.8 ms**, excluding download
315
- and module evaluation. Isolated install-to-verified-cube medians were slower for Aura3D:
316
- **6,638.6 vs 5,047.9 ms cold** and **3,199.5 vs 2,297.7 ms warm**, across three fresh projects per
317
- engine and cache state. Full raw samples and methodology:
318
- `tests/reports/developer-friction.json`.
319
- - `showcase-blockfall-reactor`, `showcase-skyline-runner`, and
320
- `showcase-turbo-drift-circuit` have materially rebuilt gameplay and current
321
- automated route evidence, but remain **promotion-blocked pending independent
322
- review of the exact final artifacts**. None of that review converts Turbo's
323
- authored-unit arcade contract into physical tyre or vehicle-dynamics proof.
324
- - `aura-clash-showcase` is **not in the route-gate registry**, so showcase-wide gates do
325
- not cover it. It carries its own 23-spec suite.
326
- - `@aura3d/engine`'s `.` entry re-exports the remaining 64 deprecated union names
327
- that other lanes still consume (arch-gates `export-budget`; they leave "." in the
328
- next minor per §6.6 step 3); `unique-ownership` reports 0 exported
329
- symbol names with more than one owning package.
330
- - The current public `examples/` inventory contains **13 retained routes** after
331
- duplicate, contract-only, or visually rejected hosts were internalized. The
332
- clean 2026-08-09 source/canvas/full-page audit passed all 13 with no filtered
333
- failure list; material, postprocess, and large-scene differences remain
334
- disclosed rather than being converted into a blanket parity claim.
335
- - The historical `three@0.165.0` comparisons cover **54 selected example-level rows**, all
336
- matched by the generated inventory with **0 high-priority rows open**. This is a
337
- bounded compatibility and migration result, not a claim that Aura3D universally
338
- replaces the Three.js ecosystem or that every feature is exposed through the root
339
- safe API. See `docs/project/threejs-superiority-status.md` and the generated
340
- `tests/reports/superiority/claim-defense.json` decision.
341
-
342
- ### Why Aura3D can beat Three.js in scoped workflows
343
-
344
- Aura3D's historical measured advantage is the integrated product workflow: the frozen `three@0.165.0` bundle and
345
- developer-friction scenarios above use fewer authored lines, fewer direct dependencies,
346
- and narrower entry points while retaining browser-rendered evidence. Visual quality,
347
- animation, physics, lifecycle, and migration conclusions remain limited to the named
348
- fixtures, routes, assets, browsers, and thresholds in those reports. Universal engine or
349
- ecosystem superiority is not claimed.
350
-
351
- The current product boundary and evidence are documented in
352
- `docs/project/status/current-state.md` and
353
- `docs/project/verification-evidence.md`.
354
-
355
- Install the current release:
355
+ ## 24 Active Public Packages (`4.0.0`)
356
+
357
+ All 24 active Aura3D packages are published at `4.0.0` on npm (with all `< 4.0.0` versions and the 5 retired pre-4.0 compatibility packages `@aura3d/lean`, `@aura3d/three-compat`, `@aura3d/materials`, `@aura3d/environments`, and `@aura3d/editor` deprecated in full on npm in favor of `@aura3d/engine@4.0.1`):
358
+
359
+ | Package | Version | Role |
360
+ | --- | --- | --- |
361
+ | `@aura3d/engine` | `4.0.0` | Unified public TypeScript runtime: `createAuraApp`, `scene`, `model(assets.x)`, `camera`, `lights`, `effects.*`, `looks.*`, `atmosphere`, `environments`, `shadows`, `game.*`, `games.*`, `sceneKits.*`, `prefabs.*`, `primitives.*`, `animation`, `createPhysicsRuntime`, `ResidentGPUParticleRenderer`. |
362
+ | `create-aura3d` | `4.0.0` | One-command Vite project scaffolder (`npm create aura3d@4.0.0` / `npx create-aura3d@4.0.1 <dir> --template <name>`). |
363
+ | `@aura3d/cli` | `4.0.0` | Typed GLB/glTF asset workflow (`assets add`, `assets search`, `assets resolve`, `assets import-meshy`, `assets validate`, `assets typegen`), `look capture`, and `check-deploy`. |
364
+ | `@aura3d/core` | `4.0.0` | Core math, transforms, colors, events, and lifecycle primitives. |
365
+ | `@aura3d/scene` | `4.0.0` | Scene graph, spatial hierarchy, cameras, lights, and bounds. |
366
+ | `@aura3d/rendering` | `4.0.0` | WebGL2 + WebGPU rendering backend, PBR materials, IBL, cascaded shadows, and multi-pass post-processing. |
367
+ | `@aura3d/animation` | `4.0.0` | Skeletal clip playback, cross-fades, procedural locomotion, and AuraVoice viseme/caption synchronization. |
368
+ | `@aura3d/physics` | `4.0.0` | Rigid-body, collider, raycast, and Rapier-backed deterministic simulation. |
369
+ | `@aura3d/navigation` | `4.0.0` | NavMesh pathfinding, crowd steering, and Recast navigation helpers. |
370
+ | `@aura3d/character` | `4.0.0` | Kinematic character controller, grounded step/slope response, and camera rigs. |
371
+ | `@aura3d/ecs` | `4.0.0` | Entity-component-system queries, archetypes, and deterministic system scheduling. |
372
+ | `@aura3d/scripting` | `4.0.0` | Runtime behavior graphs and node scripting catalog. |
373
+ | `@aura3d/controls` | `4.0.0` | Orbit, trackball, fly, pointer-lock, and touch camera controls. |
374
+ | `@aura3d/loaders` | `4.0.0` | GLB/glTF 2.0, KHR material variants, Draco/Meshopt, OBJ, and HDR environment loaders. |
375
+ | `@aura3d/postprocessing` | `4.0.0` | Modular HDR bloom, SSAO, SSR, DOF, motion blur, outline, and tonemapping pass graph. |
376
+ | `@aura3d/particles` | `4.0.0` | CPU & WebGPU compute particle emitters, weather, trails, and sprite-sheet flipbooks. |
377
+ | `@aura3d/terrain` | `4.0.0` | Heightfield terrain generation, LOD tiling, and material splatting. |
378
+ | `@aura3d/audio` | `4.0.0` | Spatial 3D WebAudio synthesis, cues, and procedural game soundscapes. |
379
+ | `@aura3d/xr` | `4.0.0` | WebXR session management, controller rays, and hand/pose tracking. |
380
+ | `@aura3d/devtools` | `4.0.0` | Frame-timing diagnostics, route-health telemetry, and debug overlays. |
381
+ | `@aura3d/testing` | `4.0.0` | Deterministic frame stepping, input replay, and visual/evidence assertions. |
382
+ | `@aura3d/react` | `4.0.0` | Declarative React host and hooks for `@aura3d/engine` apps. |
383
+ | `@aura3d/product-studio` | `4.0.0` | Studio turntables, variant switchers, dimension callouts, and hero lighting rigs. |
384
+ | `@aura3d/workflows` | `4.0.0` | Prompt-driven scene, game, and animation compilation pipelines. |
385
+
386
+ Install the current 4.0.0 release:
356
387
 
357
388
  ```bash
358
- npm install @aura3d/engine@4.0.0
359
- # or scaffold an app
360
- npx create-aura3d@4.0.0 my-product --template product-viewer
389
+ npm install @aura3d/engine@4.0.1
390
+ # or scaffold a new app
391
+ npx create-aura3d@4.0.1 my-product --template product-viewer
361
392
  ```
362
393
 
363
- The 4.0.0 release is available from
364
- [GitHub Releases](https://github.com/auraoneai/aura3d/releases/tag/v4.0.0),
365
- with the removal surface in [`docs/MIGRATION-4.0.md`](docs/MIGRATION-4.0.md), the 3.0.1 release at [v3.0.1](https://github.com/auraoneai/aura3d/releases/tag/v3.0.1), and the archived 2.0 guide in [`docs/migration/2.0.md`](docs/migration/2.0.md)
366
- and retained claim boundaries and release evidence under `docs/project/`.
367
-
368
- ## Aura3D 2.0 asset catalog
394
+ ## Typed Asset Catalog & Meshy CLI (`4.0.0`)
369
395
 
370
- Aura3D 2.0 includes the catalog-first asset workflow for AI coding agents. When a prompt names a real object, agents should search the hosted Aura3D catalog before writing scene code:
396
+ Aura3D 4.0.1 includes a catalog-first and Meshy-assisted asset workflow for AI coding agents. When a prompt names a real 3D object, vehicle, character, or architectural prop, search the catalog or import a validated Meshy GLB before writing scene code:
371
397
 
372
398
  ```bash
373
399
  npx @aura3d/cli@latest assets search "battle-worn knight helmet"
400
+ npx @aura3d/cli@4.0.1 assets resolve "battle-worn knight helmet" --name helmet
374
401
  npx @aura3d/cli@latest assets resolve "battle-worn knight helmet" --name helmet
375
402
  ```
376
403
 
377
- The resolver pulls only verified auto-pullable candidates into the existing typed asset pipeline, then scene code uses `model(assets.helmet)`. Unverified or marketplace candidates stay as deep-links until the user approves and supplies the asset.
404
+ The resolver pulls verified redistributable candidates into the typed asset pipeline (`aura.assets.json` + `src/aura-assets.ts`), and scene code uses `model(assets.helmet)`.
378
405
 
379
- For game characters, use the catalog profile so the CLI filters toward animated redistributable GLB candidates and preserves catalog provenance when it registers the typed asset:
406
+ For game characters and genre kits:
380
407
 
381
408
  ```bash
382
409
  npx @aura3d/cli@latest assets search "animated humanoid fighting character" --profile fighting-character --json
383
410
  npx @aura3d/cli@latest assets resolve "animated humanoid fighting character" --name fighter --profile fighting-character
384
- npx @aura3d/cli@latest assets validate-game --profile fighting-character --asset fighter --no-placeholders --require-license
385
- ```
386
-
387
- `--profile fighting-character` requires animated GLB candidates from verified CC0/CC-BY sources, applies a browser-sized triangle budget, and writes source URL, license, author/attribution, and source family into `aura.assets.json` during `assets resolve`.
388
- ## Aura3D 2.0 runtime launch track
389
-
390
- Aura3D 2.0 introduced the runtime and animation evidence foundation; 4.0.0 (succeeding 3.0.0 and 3.0.1) is
391
- the published package train that carries it forward:
392
-
393
- - `game runtime`: mutable runtime nodes, app-owned frame loops, input, kinematic bodies, hitboxes, combat events, camera direction, effects, and evidence for browser-native game prototypes.
394
- - `fighting-game template`: `npx create-aura3d@latest my-fighter --template fighting-game` scaffolds a public-API playable starter using typed assets, `app.input(...)`, `app.onFrame(...)`, `game.kinematicBody(...)`, `game.combatWorld(...)`, and `app.evidence(...)`.
395
- - `prompt animation`: `npx create-aura3d@latest my-episode --template prompt-animation-channel` scaffolds structured episode plans, storyboards, shot timelines, captions, visemes, render queues, and evidence for prompt-authored animation/video workflows. The shorter `animation-channel` template name remains supported.
396
- - `AuraVoice bridge`: AuraVoice owns script/audio/caption/viseme timing; Aura3D owns typed scene generation, character performance, camera choreography, rendering, screenshots, and visual evidence.
397
-
398
- Aura Clash remains a development showcase pending exact-artifact approval, not
399
- an automatically approved polished flagship claim.
400
- Historical runtime, screenshot, route, GLB, package-smoke, and deployment
401
- receipts do not replace current gameplay, visual, asset, audio, performance,
402
- and documentation gates.
403
-
404
- ## Install
405
-
406
- Scaffold a browser 3D app:
407
-
408
- ```bash
409
- npx create-aura3d@latest my-scene --template product-viewer
410
- cd my-scene
411
- npm run dev
412
- ```
413
-
414
- Install the engine directly:
415
-
416
- ```bash
417
- npm install @aura3d/engine
411
+ npx @aura3d/cli@latest assets validate-game --profile fighting-character --asset fighter --require-license
418
412
  ```
419
413
 
420
- Add a typed GLB/glTF asset when the prompt includes a real model:
414
+ When the catalog has no matching model, generate or refine a 3D PBR GLB with the Meshy workflow and admit it through `assets import-meshy` (see [`docs/meshy-cli.md`](docs/meshy-cli.md)).
421
415
 
422
- ```bash
423
- npx @aura3d/cli@latest assets add ./assets/robot.glb --name robot
424
- ```
425
-
426
- Then use the public developer API:
427
-
428
- ```ts
429
- import { createAuraApp, sceneKits } from "@aura3d/engine";
430
- ```
431
-
432
- ## Use Aura3D for
433
-
434
- - AI-generated 3D scenes that remain editable TypeScript.
435
- - Browser 3D apps built with a stable SDK instead of improvised renderer glue.
436
- - Typed GLB/glTF product viewers, product configurators, and model showcases.
437
- - Browser-native game prototypes with playable routes, HUDs, input, evidence, tests, and deploy-ready output. Public racing/platformer examples require the certified game-geometry layer described in `docs/project/aura3d-game-layer-rebuild-plan.md`.
438
- - Prompt-to-3D workflows for AI coding agents, Cursor, Claude, Codex, and other assistants.
439
- - WebGL examples plus bounded WebGPU package/diagnostic routes whose backend and
440
- device evidence is named explicitly.
441
- - Vite 3D starter apps with route health, screenshot tests, and deploy checks.
442
- - Static-deployed 3D websites where proof, screenshots, and reliability matter.
443
-
444
- ## Aura Clash development showcase
445
-
446
- Aura Clash Arena is the active Aura3D game-runtime proof target: a 1v1 browser arena-fighter development showcase built with `@aura3d/engine` public APIs.
447
-
448
- The showcase exercises scoped Aura3D runtime, animation, and combat packages on
449
- a deterministic route. Because it imports advanced-runtime,
450
- production-runtime, rendering, scene, and animation subpaths in addition to the
451
- root package, it is not blanket proof of root `createAuraApp` capability.
452
-
453
- The showcase currently targets:
454
-
455
- - typed or validated stylized fighter assets;
456
- - typed asset members from `src/aura-assets.ts`;
457
- - `model(assets.x)` runtime usage;
458
- - arena composition, lighting, effects, camera framing, and material polish;
459
- - arcade movement, hitboxes, guard state, meter, AI pressure, and results;
460
- - evidence routes, accessibility settings, poster capture, Playwright contracts, sitemap and robots integration, and marketing homepage placement.
461
-
462
- Open the source route at `apps/aura-clash-showcase/`. Treat the current route as
463
- a development showcase until the current 2.0 gameplay, visual, asset, audio,
464
- performance, deployment, docs-claim, and independent-review gates pass.
465
-
466
- ## Animation Studio — prompt → rendered short
467
-
468
- The **Animation Studio** turns a natural-language prompt into a deterministic, rendered animated short. Scene intelligence lives in a generated, validated **EpisodeDocument** (cast, set, dialogue, blocking, camera); a generic player renders it with zero per-scene code. The director is **your own coding agent** (Claude Code / Codex / Cursor) driving a validated **Scene-Tool CLI** — no bundled LLM, no API key.
469
-
470
- ```bash
471
- npx create-aura3d@latest my-studio --template animation-studio
472
- cd my-studio && pnpm install
473
- pnpm scene new --prompt "two office workers arguing about a deadline" --full
474
- AURA_QUALITY=final pnpm episode:render-3d # → a silent 1080p .webm
475
- ```
476
-
477
- A prompt drives the whole document: cast (parsed from the prompt, bound to curated A-grade humanoid rigs), set (keyword-routed interiors/outdoors — **never a moon-garden default**), dialogue (agent-authored or synthesized, timed by speech duration), camera, and blocking with velocity-gated locomotion (legs cycle only while actually moving). A web studio (`apps/animation-studio-web`) gives the agent a 3-pane NLE shell + live previews and runs real validated Scene-Tool commands.
478
-
479
- Audio boundary (firm): Aura3D renders **silent video by design** and never does TTS — it emits the timed dialogue/caption/viseme track, and **AuraVoice** owns the script, narration, TTS, and voice mux. The commercial wedge is **repeatable family-safe short episodes from a cast + set library**; see `docs/project/go-to-market-strategy.md`.
480
-
481
- Built for fast, repeatable, agent-directed shorts — a proven, deterministic pipeline with prompt-specific scenes, a clean stylized look out of the box, and the upgrade path to photoreal characters via your own rigged GLB (`cast add --file`). Integrity is built in: a still image with CSS wobble/pan/subtitles is not Aura3D animation, and the quality suite rejects stiff or lip-only output.
482
-
483
- See:
484
-
485
- - [`docs/animation-studio/quickstart.md`](docs/animation-studio/quickstart.md) — 5-minute prompt → render → edit
486
- - [`docs/animation-studio/README.md`](docs/animation-studio/README.md) — overview + architecture
487
- - [`docs/animation-studio/guide.md`](docs/animation-studio/guide.md) — CLI, EpisodeDocument, motion, dialogue, rendering
488
- - [`docs/animation-studio/studio-app.md`](docs/animation-studio/studio-app.md) — the web studio app
489
- - [`docs/animation-studio/quality-and-limitations.md`](docs/animation-studio/quality-and-limitations.md) — quality gates + the honest ceiling
490
- - [`docs/api/auravoice-bridge.md`](docs/api/auravoice-bridge.md) — the voice/timing handoff
491
- - `docs/project/go-to-market-strategy.md` — use cases + monetization
492
-
493
- ## 30-second product viewer
416
+ ## 30-Second Product Viewer
494
417
 
495
418
  ```ts
496
419
  import { createAuraApp, lights, model, scene } from "@aura3d/engine";
@@ -504,18 +427,26 @@ createAuraApp("#app", {
504
427
  });
505
428
  ```
506
429
 
507
- The safe API uses generated refs such as `assets.robot`. Do not write `model("robot")`, hand-written GLB URLs, or invented asset ids.
430
+ The public API uses generated references such as `assets.robot`. Never pass raw string IDs or unvalidated paths to `model(...)`.
508
431
 
509
- ## Aura3D 2.0 game runtime example
432
+ ## Browser Game Runtime & Playable Showcases (`4.0.0`)
510
433
 
511
- Add typed assets before writing model code:
434
+ Aura3D 4.0.1 ships a complete browser game runtime (`game.*`, `games.*`, `looks.*`, `effects.*`, `app.feel`) with first-class genre kits (`game.platformer`, `game.racing`, `game.arcadeKart`, `game.grandPrixRoad`, `game.carSoccer`, `game.carSoccerPitch`, `game.racketSports`, `game.fallingBlocks`, `game.fighting`) powering the 9 flagship playable 3D games and interactive showcases with custom Meshy PBR 3D characters, vehicles, and architectural props:
435
+
436
+ - **Arena Combat & Knockout Action**: `Aura Clash Arena` (`apps/aura-clash-showcase` development showcase), `Bean Brawl Race` (`apps/showcase-bean-brawl-race`), `Neon Corridor Strike` (`examples/neon-corridor-strike`)
437
+ - **Vehicular Soccer, Karting & Flight**: `Turbo Ball` (`apps/showcase-turbo-ball`, powered by `game.carSoccer` & `game.carSoccerPitch`), `Kart Havoc` (`apps/showcase-kart-havoc`, powered by `game.arcadeKart` & `game.grandPrixRoad`), `Aurora Lander` (`apps/showcase-aurora-lander`)
438
+ - **Racket Sports, Billiards, Pinball & Puzzle**: `Top Tennis 3D` (`apps/showcase-top-tennis`, powered by `game.racketSports`), `Bank Shot Billiards` (`apps/showcase-bank-shot`), `Vault Breakers Pinball` (`apps/showcase-vault-breakers`), `Blockfall Reactor` (`apps/showcase-blockfall-reactor`, powered by `game.fallingBlocks`)
439
+ - **Non-Game 4.0.0 Showcases & Engine Labs**: `Product Configurator Studio` (`apps/showcase-product-configurator`), `Smart City Control Room` (`apps/showcase-smart-city-control`), `Cinematic Architecture Tour` (`apps/showcase-cinematic-architecture`), `Digital Twin Operations Center` (`apps/showcase-digital-twin-ops`), `AI Data Galaxy Studio` (`apps/showcase-data-galaxy`), `Accelerated Particle Lab` (`apps/showcase-webgpu-particle-lab`), `Advanced Examples Gallery` (`apps/advanced-examples-gallery`), 9 focused engine evidence routes (`loader-gltf-variants`, `loader-obj`, `texture-anisotropy`, `postprocessing-depth-outline`, `controls-trackball`, `geometry-drawrange`, `interactive-picking`, `camera-multiple-views`, `webxr-interactions`), and 8 visual & asset labs (`wow-*`).
440
+
441
+ Add typed assets before writing game code:
512
442
 
513
443
  ```bash
444
+ npx @aura3d/cli@4.0.1 assets add ./assets/fighter.glb --name fighter
514
445
  npx @aura3d/cli@latest assets add ./assets/fighter.glb --name fighter
515
446
  npx @aura3d/cli@latest assets add ./assets/opponent.glb --name opponent
516
447
  ```
517
448
 
518
- Then use the public game facade and stage builders:
449
+ Then use the public `game` and `games` facades:
519
450
 
520
451
  ```ts
521
452
  import {
@@ -631,9 +562,18 @@ const evidence = app.evidence({
631
562
  console.log(touchLayout.controls.length, replayDriver.snapshot(), overlay.sections, evidence.systems);
632
563
  ```
633
564
 
634
- ## Aura3D 2.0 prompt-animation and AuraVoice example
565
+ ## Animation Studio & AuraVoice Bridge (`4.0.0`)
566
+
567
+ The **Animation Studio** turns a natural-language prompt into a deterministic, rendered animated short. Scene structure lives in a validated **EpisodeDocument** (cast, set, dialogue, blocking, camera) driven by your coding agent:
568
+
569
+ ```bash
570
+ npx create-aura3d@latest my-studio --template animation-studio
571
+ cd my-studio && pnpm install
572
+ pnpm scene new --prompt "two office workers arguing about a deadline" --full
573
+ AURA_QUALITY=final pnpm episode:render-3d
574
+ ```
635
575
 
636
- Prompt-animation routes use typed assets, contract artifacts, shot playback, captions, visemes, and AuraVoice timing packages.
576
+ Aura3D emits the timed dialogue, caption, and viseme tracks while **AuraVoice** owns TTS narration and audio muxing:
637
577
 
638
578
  ```ts
639
579
  import {
@@ -767,11 +707,9 @@ const readiness = evaluatePromptAnimationPublishReadiness(evidence);
767
707
  console.log(bridgeIssues, evidence.publishReady, readiness.ready);
768
708
  ```
769
709
 
770
- Do not publish placeholder screenshot hashes. Deterministic render output must replace the placeholder before a prompt-animation or AuraVoice route is called publish-ready.
710
+ ## Prompt-to-3D Scene Kits
771
711
 
772
- ## Prompt-to-3D scene kits
773
-
774
- Use scene kits when an AI prompt asks for generated 3D systems rather than a supplied model.
712
+ Use scene kits when an AI prompt asks for generated 3D systems alongside or instead of a supplied model:
775
713
 
776
714
  ```ts
777
715
  import { createAuraApp, sceneKits } from "@aura3d/engine";
@@ -783,84 +721,50 @@ console.log(kit.diagnostics, kit.evidence);
783
721
 
784
722
  Maintained scene-kit families include physics playgrounds, particle fountains, solar systems, neon tunnels, 3D data visualizations, mini golf, material labs, city blocks, humanoid walks, and typed product viewers.
785
723
 
786
- ## Why developers use Aura3D
787
-
788
- - `AI-native`: prompt-to-code scenes start from maintained systems instead of empty renderer setup.
789
- - `TypeScript-first`: the output is normal source code developers can inspect, edit, and ship.
790
- - `Typed assets`: GLB/glTF files become generated imports, so agents do not invent string asset IDs.
791
- - `Browser-ready`: Vite templates, route health, screenshot tests, and static deploy checks are part of the workflow.
792
- - `Production-oriented`: product viewers, material labs, particles, physics scenes, data worlds, cities, and interactive examples are covered by documented scene kits.
793
- - `Agent-safe`: docs tell coding agents which public APIs to use and which claims not to make.
794
-
795
- ## Packages
796
-
797
- - `@aura3d/engine`: public TypeScript browser 3D SDK for AI-generated scenes, runtime helpers, and typed GLB/glTF assets.
798
- - `@aura3d/cli`: typed GLB/glTF asset workflow, diagnostics, and deploy checks.
799
- - `@aura3d/react`: optional thin React adapter.
800
- - `create-aura3d`: Vite templates for product viewers, cinematic scenes, and mini-games.
801
-
802
- ## Production browser 3D workflow
803
-
804
- Aura3D is built for the AI-assisted browser 3D era. It gives teams a source-code-first TypeScript workflow where agents generate maintainable scenes, game prototypes, product viewers, and deployable interactive websites.
805
-
806
- Aura3D combines scene kits, GLB/glTF asset typing, product viewers, browser-game runtime helpers, a believable-motion animation engine, physics scenes, particles, material labs, data worlds, route diagnostics, screenshot workflows, and static deployment into one agent-ready SDK. Route-level game proofs are not public-quality game examples until visual review and game-geometry evidence pass.
807
-
808
724
  ## Documentation
809
725
 
810
- - **Build a browser game (end-to-end guide):** [docs/guides/build-a-browser-game.md](docs/guides/build-a-browser-game.md) — ties together scaffolding, typed assets, runtime nodes, input, movement, combat, the full 1.3 animation stack, camera/effects/HUD/audio/a11y, evidence, and deploy in one walkthrough.
811
- - Agent manual: [docs/agents/README.md](docs/agents/README.md)
812
- - Agent quickstart: [docs/agents/agent-quickstart.md](docs/agents/agent-quickstart.md)
813
- - Prompt-to-3D workflow: [docs/agents/prompt-to-3d-workflow.md](docs/agents/prompt-to-3d-workflow.md)
814
- - Asset workflow: [docs/agents/asset-workflow.md](docs/agents/asset-workflow.md)
815
- - Game runtime API reference: [docs/api/game-runtime.md](docs/api/game-runtime.md)
816
- - Believable-motion (1.3) animation runtimes: [docs/animation/believable-motion.md](docs/animation/believable-motion.md)
817
- - Prompt recipes: [docs/agents/benchmark-recipes.md](docs/agents/benchmark-recipes.md)
818
- - Public API: [docs/api/public-api.md](docs/api/public-api.md)
726
+ - **Documentation Hub:** [`docs/index.md`](docs/index.md)
727
+ - **Quickstart Guide:** [`docs/quickstart.md`](docs/quickstart.md)
728
+ - **Why Teams Choose Aura3D Over Raw Three.js:** [`docs/aura3d-vs-threejs.md`](docs/aura3d-vs-threejs.md)
729
+ - **Starter Templates (`product-viewer`, `cinematic-scene`, `mini-game`, `portal-worlds`, `gaussian-splat-viewer`):** [`docs/templates.md`](docs/templates.md), [`docs/agents/templates.md`](docs/agents/templates.md)
730
+ - **Typed Asset Pipeline:** [`docs/assets.md`](docs/assets.md), [`docs/agents/asset-workflow.md`](docs/agents/asset-workflow.md)
731
+ - **Aura Clash Showcase Evidence:** [`docs/aura-clash-showcase.md`](docs/aura-clash-showcase.md), [`docs/examples/aura-clash.md`](docs/examples/aura-clash.md)
732
+ - **Troubleshooting & Diagnostics:** [`docs/troubleshooting.md`](docs/troubleshooting.md), [`docs/agents/troubleshooting.md`](docs/agents/troubleshooting.md)
733
+ - **4.0.0 Migration & Consolidation Guide:** [`docs/migration-4.0.md`](docs/migration-4.0.md)
734
+ - **4.0.0 Release Notes:** [`docs/project/aura3d-400-release-notes.md`](docs/project/aura3d-400-release-notes.md)
735
+ - **Build a Browser Game (End-to-End Guide):** [`docs/guides/build-a-browser-game.md`](docs/guides/build-a-browser-game.md)
736
+ - **Public API Reference:** [`docs/api/public-api.md`](docs/api/public-api.md)
737
+ - **Game Runtime API Reference:** [`docs/api/game-runtime.md`](docs/api/game-runtime.md)
738
+ - **Believable-Motion Animation Runtime:** [`docs/animation/believable-motion.md`](docs/animation/believable-motion.md)
739
+ - **Animation Studio Quickstart:** [`docs/animation-studio/quickstart.md`](docs/animation-studio/quickstart.md)
740
+ - **AuraVoice Bridge Reference:** [`docs/api/auravoice-bridge.md`](docs/api/auravoice-bridge.md)
741
+ - **Meshy CLI Asset Guide:** [`docs/meshy-cli.md`](docs/meshy-cli.md)
742
+ - **Agent Manual & Quickstart:** [`docs/agents/README.md`](docs/agents/README.md), [`docs/agents/agent-quickstart.md`](docs/agents/agent-quickstart.md)
819
743
 
820
744
  ## Verification
821
745
 
822
746
  ```bash
823
747
  pnpm run check:release
824
- ```
825
-
826
- Use release checks to confirm package integrity, generated assets, examples, and static deployment output before shipping.
827
-
828
- Aura3D 2.0 route-specific readiness commands:
829
-
830
- ```bash
831
748
  npx @aura3d/cli@latest assets validate-game
832
749
  npx @aura3d/cli@latest assets validate-animation
750
+ npx @aura3d/cli@4.0.1 check-deploy --dist dist
833
751
  npx @aura3d/cli@latest check-deploy --dist dist
834
- pnpm game-runtime:docs
835
- pnpm game-runtime:template
836
- pnpm game-runtime:package
837
- pnpm game-runtime:release
838
- pnpm prompt-animation:docs
839
- pnpm prompt-animation:template
840
- pnpm prompt-animation:package
841
- pnpm prompt-animation:release
842
752
  ```
843
753
 
844
- Do not mark a game, prompt-animation, or AuraVoice route launch-ready from source evidence alone. Asset readiness, package smoke, browser route health, deterministic screenshots, visual review, accessibility proof, and deployment checks must also pass.
754
+ ## What Is Still Not Resolved & Claim Boundaries
845
755
 
846
- Aura3D 2.0 game-engine/showcase readiness is stricter:
756
+ Aura3D 4.0.1 is scoped to the 15 measured r185 comparison workloads and 50 live routes; this is not a universal parity claim across the entire Three.js ecosystem. Retained lab routes that remain bounded to diagnostic or readiness budgets (`custom-material-lab`, `neon-corridor-strike`, `raycast-ccd-lab`, `recast-crowd-lab`, and `rendering-large-scene`) are tracked separately in the route-health reports rather than promoted as unrestricted showcase launches.
847
757
 
848
- ```bash
849
- pnpm aura3d110:readiness
850
- ```
758
+ ## Contributing
851
759
 
852
- Retained 3.0.0 release context — The package train carries the
853
- playable-route, catalog, and documentation corrections described in its release notes. The
854
- historical exact-installed 2.0.0 comparison against
855
- `three@0.185.1` passes its bounded local checks across 15 workloads. That
856
- comparison is not a universal parity claim: clean-machine,
857
- repeated-performance, independent-human, publication, and production-origin
858
- gates remain open. Blockfall Reactor, Turbo Drift Circuit, and
859
- Skyline Runner remain `prototype-blocked`; their typed assets, mounted gameplay,
860
- and bounded route evidence are technical proof, not promotion. Aura Clash is
861
- tracked separately as a development showcase. The former `three@0.165.0`
862
- comparison is historical only; no broad parity or replacement claim is made.
760
+ Star the repo if you build AI-native browser 3D software in TypeScript across WebGL2 and WebGPU. Open issues with the prompt, package version (`4.0.0`), asset source or license, commands run, route-health output, screenshots, and deploy context.
863
761
 
864
- ## Contributing
762
+ ## SEO pass — 2026-10-20
763
+
764
+ Fleet-standard SEO pass on the marketing/docs static site (`marketing/`, deployed surface = `marketing/dist` at the placeholder origin `https://aura3d.auraone.ai`):
865
765
 
866
- Star the repo if you want AI-native browser 3D tooling for TypeScript, WebGL, WebGPU, GLB/glTF assets, product viewers, prompt-to-3D scenes, and deployable 3D websites. Open issues with the prompt, package version, asset source or license, commands run, route-health output, screenshots, and deploy context.
766
+ - **robots.txt**: regenerated with 14 named AI-crawler Allow groups (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, …) plus `*`, each repeating the real defensive disallows (`/node_modules/`, `/src/`, `/*.map$`); absolute Host + Sitemap; placeholder-domain swap-note. Generated identically for the marketing entry and the repo-root entry.
767
+ - **sitemap.xml**: exact bijection of the committed 36-route public manifest (home + 13 docs + 20 active showcase apps + the 2 wow example apps) with per-route `lastmod` derived from real git history. The old hand-maintained sitemap was stale in both directions: retired showcase prototypes (`showcase-turbo-drift-circuit`, `showcase-skyline-runner`) were still listed; `/showcase/aura-clash/*` was listed although the builder now writes redirect stubs to `/apps/showcase-index/` for the retired Aura Clash showcase; 4 more `/showcase/aura-clash/*` subroutes and 6 `/apps/*` gallery/wow routes are not produced by the current build (owner follow-up if any should return as real content); and the 20 active showcase apps were missing. `docs/index.html` (301 → `/`) and the canonicalized duplicate `docs/aura-clash.html` are deliberately not listed.
768
+ - **Generator + drift guard**: `marketing/scripts/gen-seo.mjs` (`npm run seo:gen` in `marketing/`) emits robots/sitemap/llms for both entries from one manifest; `--check` (wired into `npm run build`) fails the build if any manifest route loses its source file, the docs family drifts from `marketing/docs/*.html`, or a route is missing from `dist/` after the build.
769
+ - **llms.txt**: now a standard LLM-crawler map — honest frozen summary, Facts block (release pinned to the repo manifest, the same source the version guard uses), every public route linked with its real title/description, git-derived Last updated, placeholder-domain swap-note — with the long-form agent guide preserved verbatim below a marker. The stale "Current release: 4.0.1" line was corrected to 4.0.3 (repo manifest).
770
+ - **Per-page meta**: the brand pass `8ec1bf3` had already landed unique titles, absolute canonicals, and OG/Twitter brand renders across the home and all docs pages (verified; `docs/aura-clash.html` correctly canonicalizes onto `aura-clash-showcase.html`). This pass closed the remaining gaps: canonical + OG/Twitter brand renders wired into all 20 active showcase app sources (`apps/showcase-*/index.html`); three v1/v2 title collisions disambiguated (Aura Slam 3D, Apex Overdrive, THERMAL DRIFT) and the stale `Aura3D 4.0.1` tag in the teleoperator-v2 title corrected to 4.0.3; the two wow example apps' `og:image` fixed from a relative `/og/aura3d-og.png` that exists nowhere in the repo to the committed absolute brand render, plus twitter cards added.