@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.
- package/README.md +286 -382
- package/dist/animation/AnimationController.d.ts +8 -0
- package/dist/animation/AnimationController.d.ts.map +1 -1
- package/dist/animation/AnimationController.js.map +1 -1
- package/dist/aura3d-cli/asset-core-types.d.ts +1 -0
- package/dist/aura3d-cli/asset-core-types.d.ts.map +1 -1
- package/dist/aura3d-cli/asset-inspection-types.d.ts +1 -0
- package/dist/aura3d-cli/asset-inspection-types.d.ts.map +1 -1
- package/dist/aura3d-cli/asset-manifest.d.ts.map +1 -1
- package/dist/aura3d-cli/asset-manifest.js +4 -1
- package/dist/aura3d-cli/asset-manifest.js.map +1 -1
- package/dist/aura3d-cli/index.d.ts.map +1 -1
- package/dist/aura3d-cli/index.js +27 -3
- package/dist/aura3d-cli/index.js.map +1 -1
- package/dist/aura3d-cli/meshy/admission.d.ts.map +1 -1
- package/dist/aura3d-cli/meshy/admission.js +32 -7
- package/dist/aura3d-cli/meshy/admission.js.map +1 -1
- package/dist/aura3d-cli/meshy/import.d.ts.map +1 -1
- package/dist/aura3d-cli/meshy/import.js +4 -0
- package/dist/aura3d-cli/meshy/import.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/engine/agent-api/GameGenreKits.d.ts +16 -0
- package/dist/engine/agent-api/GameGenreKits.d.ts.map +1 -1
- package/dist/engine/agent-api/GameGenreKits.js +33 -4
- package/dist/engine/agent-api/GameGenreKits.js.map +1 -1
- package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/GameRuntime.js +29 -6
- package/dist/engine/agent-api/GameRuntime.js.map +1 -1
- package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -1
- package/dist/engine/agent-api/TouchControlBinding.js +14 -2
- package/dist/engine/agent-api/TouchControlBinding.js.map +1 -1
- package/dist/engine/agent-api/app/actorAnimationHandle.d.ts +44 -0
- package/dist/engine/agent-api/app/actorAnimationHandle.d.ts.map +1 -1
- package/dist/engine/agent-api/app/actorAnimationHandle.js +98 -0
- package/dist/engine/agent-api/app/actorAnimationHandle.js.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.d.ts.map +1 -1
- package/dist/engine/agent-api/app/createAuraApp.js +1 -1
- package/dist/engine/agent-api/app/createAuraApp.js.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.d.ts +3 -1
- package/dist/engine/agent-api/app/frameLoop.d.ts.map +1 -1
- package/dist/engine/agent-api/app/frameLoop.js +19 -1
- package/dist/engine/agent-api/app/frameLoop.js.map +1 -1
- package/dist/engine/agent-api/app/runtimeNodes.d.ts.map +1 -1
- package/dist/engine/agent-api/app/runtimeNodes.js +1 -0
- package/dist/engine/agent-api/app/runtimeNodes.js.map +1 -1
- package/dist/engine/agent-api/compiler/animation.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/animation.js +8 -1
- package/dist/engine/agent-api/compiler/animation.js.map +1 -1
- package/dist/engine/agent-api/compiler/observations.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/observations.js +3 -1
- package/dist/engine/agent-api/compiler/observations.js.map +1 -1
- package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/primitives.js +10 -2
- package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
- package/dist/engine/agent-api/compiler/renderInput.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/renderInput.js +35 -7
- package/dist/engine/agent-api/compiler/renderInput.js.map +1 -1
- package/dist/engine/agent-api/compiler/renderer.d.ts.map +1 -1
- package/dist/engine/agent-api/compiler/renderer.js +8 -4
- package/dist/engine/agent-api/compiler/renderer.js.map +1 -1
- package/dist/engine/agent-api/diagnostics.d.ts +5 -0
- package/dist/engine/agent-api/diagnostics.d.ts.map +1 -1
- package/dist/engine/agent-api/diagnostics.js +18 -5
- package/dist/engine/agent-api/diagnostics.js.map +1 -1
- package/dist/engine/agent-api/game-kits/arcadeKart.d.ts +118 -0
- package/dist/engine/agent-api/game-kits/arcadeKart.d.ts.map +1 -0
- package/dist/engine/agent-api/game-kits/arcadeKart.js +468 -0
- package/dist/engine/agent-api/game-kits/arcadeKart.js.map +1 -0
- package/dist/engine/agent-api/game-kits/carSoccer.d.ts +95 -0
- package/dist/engine/agent-api/game-kits/carSoccer.d.ts.map +1 -0
- package/dist/engine/agent-api/game-kits/carSoccer.js +717 -0
- package/dist/engine/agent-api/game-kits/carSoccer.js.map +1 -0
- package/dist/engine/agent-api/game-kits/index.d.ts +20 -0
- package/dist/engine/agent-api/game-kits/index.d.ts.map +1 -1
- package/dist/engine/agent-api/game-kits/index.js +10 -1
- package/dist/engine/agent-api/game-kits/index.js.map +1 -1
- package/dist/engine/agent-api/game-kits/racketSports.d.ts +64 -0
- package/dist/engine/agent-api/game-kits/racketSports.d.ts.map +1 -0
- package/dist/engine/agent-api/game-kits/racketSports.js +146 -0
- package/dist/engine/agent-api/game-kits/racketSports.js.map +1 -0
- package/dist/engine/agent-api/index.d.ts +4 -1
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +3 -0
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/looks/generatedCodeWarnings.d.ts.map +1 -1
- package/dist/engine/agent-api/looks/generatedCodeWarnings.js +16 -2
- package/dist/engine/agent-api/looks/generatedCodeWarnings.js.map +1 -1
- package/dist/engine/agent-api/nodes/assets.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/assets.js +7 -0
- package/dist/engine/agent-api/nodes/assets.js.map +1 -1
- package/dist/engine/agent-api/nodes/game/index.d.ts +8 -0
- package/dist/engine/agent-api/nodes/game/index.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/game/index.js +8 -0
- package/dist/engine/agent-api/nodes/game/index.js.map +1 -1
- package/dist/engine/agent-api/nodes/model.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/model.js +2 -0
- package/dist/engine/agent-api/nodes/model.js.map +1 -1
- package/dist/engine/agent-api/nodes/shadows.d.ts.map +1 -1
- package/dist/engine/agent-api/nodes/shadows.js +14 -10
- package/dist/engine/agent-api/nodes/shadows.js.map +1 -1
- package/dist/engine/agent-api/nodes/types.d.ts +14 -6
- package/dist/engine/agent-api/nodes/types.d.ts.map +1 -1
- package/dist/engine/agent-api/publishedUnion.d.ts +1 -1
- package/dist/engine/agent-api/publishedUnion.d.ts.map +1 -1
- package/dist/engine/agent-api/runtimeEvidence.d.ts.map +1 -1
- package/dist/engine/agent-api/runtimeEvidence.js +2 -1
- package/dist/engine/agent-api/runtimeEvidence.js.map +1 -1
- package/dist/engine/agent-api/sceneMath.d.ts.map +1 -1
- package/dist/engine/agent-api/sceneMath.js +20 -1
- package/dist/engine/agent-api/sceneMath.js.map +1 -1
- package/dist/engine/contracts/animation.d.ts +18 -0
- package/dist/engine/contracts/animation.d.ts.map +1 -1
- package/dist/engine/contracts/animation.js +4 -1
- package/dist/engine/contracts/animation.js.map +1 -1
- package/dist/engine/lanes/prd06.d.ts.map +1 -1
- package/dist/engine/lanes/prd06.js +21 -2
- package/dist/engine/lanes/prd06.js.map +1 -1
- package/dist/engine/production-runtime/effects/EffectNodeLowering.js +1 -1
- package/dist/engine/production-runtime/effects/EffectNodeLowering.js.map +1 -1
- package/dist/engine/public/index.d.ts +3 -1
- package/dist/engine/public/index.d.ts.map +1 -1
- package/dist/engine/public/index.js +1 -0
- package/dist/engine/public/index.js.map +1 -1
- package/dist/engine/threejs-example-parity/index.d.ts.map +1 -1
- package/dist/engine/threejs-example-parity/index.js +52 -22
- package/dist/engine/threejs-example-parity/index.js.map +1 -1
- package/dist/rendering/Renderer.d.ts.map +1 -1
- package/dist/rendering/Renderer.js +15 -4
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/WebGL2Device.d.ts +1 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +12 -0
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/effects/ResidentGPUParticleRenderer.d.ts.map +1 -1
- package/dist/rendering/effects/ResidentGPUParticleRenderer.js +10 -5
- package/dist/rendering/effects/ResidentGPUParticleRenderer.js.map +1 -1
- package/dist/rendering/post/PostResources.d.ts.map +1 -1
- package/dist/rendering/post/PostResources.js +17 -12
- package/dist/rendering/post/PostResources.js.map +1 -1
- package/dist/rendering/post/v2Stages.js +2 -2
- package/dist/rendering/post/v2Stages.js.map +1 -1
- package/dist/rendering/production-runtime/passes/ContactShadowPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/ContactShadowPass.js +14 -13
- package/dist/rendering/production-runtime/passes/ContactShadowPass.js.map +1 -1
- package/dist/rendering/reference/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/reference/PostProcessPass.js +4 -1
- package/dist/rendering/reference/PostProcessPass.js.map +1 -1
- package/dist/rendering/renderer/PostprocessExecution.d.ts.map +1 -1
- package/dist/rendering/renderer/PostprocessExecution.js +4 -0
- package/dist/rendering/renderer/PostprocessExecution.js.map +1 -1
- package/dist/rendering/resources/RenderTargetPool.d.ts.map +1 -1
- package/dist/rendering/resources/RenderTargetPool.js +13 -4
- package/dist/rendering/resources/RenderTargetPool.js.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
- package/dist/rendering/webgl2/LegacyPost.js +5 -2
- package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
- package/dist/rendering/webgl2/Probe.d.ts.map +1 -1
- package/dist/rendering/webgl2/Probe.js +27 -1
- package/dist/rendering/webgl2/Probe.js.map +1 -1
- package/package.json +30 -28
- package/templates/cinematic-scene/index.html +28 -2
- package/templates/cinematic-scene/package.json +1 -1
- package/templates/cinematic-scene/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/cinematic-scene/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/cinematic-scene/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
- package/templates/mini-game/index.html +27 -1
- package/templates/mini-game/package.json +1 -1
- package/templates/mini-game/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/mini-game/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/mini-game/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
- package/templates/mini-game/src/main.ts +1 -1
- package/templates/product-viewer/index.html +27 -2
- package/templates/product-viewer/package.json +1 -1
- package/templates/product-viewer/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/product-viewer/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/product-viewer/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
- package/templates/production-asset-inspector/index.html +1 -1
- package/templates/production-asset-inspector/package.json +1 -1
- package/templates/production-asset-inspector/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/production-asset-inspector/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/production-asset-inspector/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
- package/templates/production-material-studio/index.html +1 -1
- package/templates/production-material-studio/package.json +1 -1
- package/templates/production-material-studio/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/production-material-studio/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/production-material-studio/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
- package/templates/production-product-configurator/index.html +1 -1
- package/templates/production-product-configurator/package.json +1 -1
- package/templates/production-product-configurator/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/production-product-configurator/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/production-product-configurator/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
- package/templates/production-product-viewer/index.html +6 -1
- package/templates/production-product-viewer/package.json +1 -1
- package/templates/production-product-viewer/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
- package/templates/production-product-viewer/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
- package/templates/production-product-viewer/public/fonts/graphik/Graphik-RegularItalic-Web.woff2 +0 -0
- package/dist/animation/CrowdAnimation.d.ts +0 -13
- package/dist/animation/CrowdAnimation.d.ts.map +0 -1
- package/dist/animation/CrowdAnimation.js +0 -14
- package/dist/animation/CrowdAnimation.js.map +0 -1
- package/dist/engine/agent-api/lean-game.d.ts +0 -3
- package/dist/engine/agent-api/lean-game.d.ts.map +0 -1
- package/dist/engine/agent-api/lean-game.js +0 -3
- package/dist/engine/agent-api/lean-game.js.map +0 -1
- package/dist/engine/agent-api/lean-product.d.ts +0 -3
- package/dist/engine/agent-api/lean-product.d.ts.map +0 -1
- package/dist/engine/agent-api/lean-product.js +0 -3
- package/dist/engine/agent-api/lean-product.js.map +0 -1
- package/dist/engine/agent-api/lean.d.ts +0 -3
- package/dist/engine/agent-api/lean.d.ts.map +0 -1
- package/dist/engine/agent-api/lean.js +0 -3
- package/dist/engine/agent-api/lean.js.map +0 -1
- package/dist/engine/threejs-example-parity/FlagshipFoundation.d.ts +0 -158
- package/dist/engine/threejs-example-parity/FlagshipFoundation.d.ts.map +0 -1
- package/dist/engine/threejs-example-parity/FlagshipFoundation.js +0 -332
- package/dist/engine/threejs-example-parity/FlagshipFoundation.js.map +0 -1
- package/dist/rendering/ArchitecturalMaterialCatalog.d.ts +0 -30
- package/dist/rendering/ArchitecturalMaterialCatalog.d.ts.map +0 -1
- package/dist/rendering/ArchitecturalMaterialCatalog.js +0 -90
- package/dist/rendering/ArchitecturalMaterialCatalog.js.map +0 -1
- package/dist/rendering/LeanWebGL2Device.d.ts +0 -265
- package/dist/rendering/LeanWebGL2Device.d.ts.map +0 -1
- package/dist/rendering/LeanWebGL2Device.js +0 -4001
- package/dist/rendering/LeanWebGL2Device.js.map +0 -1
- package/dist/rendering/advanced-runtime/AdvancedRenderer.d.ts +0 -23
- package/dist/rendering/advanced-runtime/AdvancedRenderer.d.ts.map +0 -1
- package/dist/rendering/advanced-runtime/AdvancedRenderer.js +0 -45
- package/dist/rendering/advanced-runtime/AdvancedRenderer.js.map +0 -1
- package/dist/rendering/animation/AnimationMaterialStyle.d.ts +0 -19
- package/dist/rendering/animation/AnimationMaterialStyle.d.ts.map +0 -1
- package/dist/rendering/animation/AnimationMaterialStyle.js +0 -13
- package/dist/rendering/animation/AnimationMaterialStyle.js.map +0 -1
- package/dist/rendering/cinematic/CinematicMaterialPresets.d.ts +0 -16
- package/dist/rendering/cinematic/CinematicMaterialPresets.d.ts.map +0 -1
- package/dist/rendering/cinematic/CinematicMaterialPresets.js +0 -114
- package/dist/rendering/cinematic/CinematicMaterialPresets.js.map +0 -1
- package/dist/rendering/lean/LeanProductRenderer.d.ts +0 -29
- package/dist/rendering/lean/LeanProductRenderer.d.ts.map +0 -1
- package/dist/rendering/lean/LeanProductRenderer.js +0 -38
- package/dist/rendering/lean/LeanProductRenderer.js.map +0 -1
- package/dist/rendering/lean/LeanProductionRenderer.d.ts +0 -38
- package/dist/rendering/lean/LeanProductionRenderer.d.ts.map +0 -1
- package/dist/rendering/lean/LeanProductionRenderer.js +0 -88
- package/dist/rendering/lean/LeanProductionRenderer.js.map +0 -1
- package/dist/rendering/lean-core-runtime.d.ts +0 -13
- package/dist/rendering/lean-core-runtime.d.ts.map +0 -1
- package/dist/rendering/lean-core-runtime.js +0 -10
- package/dist/rendering/lean-core-runtime.js.map +0 -1
- package/dist/rendering/lean-runtime.d.ts +0 -18
- package/dist/rendering/lean-runtime.d.ts.map +0 -1
- package/dist/rendering/lean-runtime.js +0 -13
- package/dist/rendering/lean-runtime.js.map +0 -1
- package/dist/rendering/materials/TransmissionPass.d.ts +0 -16
- package/dist/rendering/materials/TransmissionPass.d.ts.map +0 -1
- package/dist/rendering/materials/TransmissionPass.js +0 -30
- package/dist/rendering/materials/TransmissionPass.js.map +0 -1
- package/dist/rendering/production-runtime/ProductionEffectsPipeline.d.ts +0 -20
- package/dist/rendering/production-runtime/ProductionEffectsPipeline.d.ts.map +0 -1
- package/dist/rendering/production-runtime/ProductionEffectsPipeline.js +0 -65
- package/dist/rendering/production-runtime/ProductionEffectsPipeline.js.map +0 -1
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.d.ts +0 -44
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.d.ts.map +0 -1
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js +0 -179
- package/dist/rendering/production-runtime/ProductionRuntimeRenderer.js.map +0 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts +0 -65
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts.map +0 -1
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js +0 -305
- package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js.map +0 -1
- package/dist/rendering/threejs-example-parity/index.d.ts +0 -57
- package/dist/rendering/threejs-example-parity/index.d.ts.map +0 -1
- package/dist/rendering/threejs-example-parity/index.js +0 -139
- 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
|
[](https://www.npmjs.com/package/@aura3d/engine)
|
|
4
4
|
[](https://www.npmjs.com/package/@aura3d/engine)
|
|
5
5
|
[](./LICENSE)
|
|
6
6
|
[](https://www.typescriptlang.org/)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
**The batteries-included, agent-native 3D engine & game platform for the web.**
|
|
9
9
|
|
|
10
|
-
|
|
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
|
-
|
|
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
|
-
|
|
47
|
-
- **
|
|
48
|
-
|
|
49
|
-
- **
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
- **
|
|
107
|
-
- **WebGPU Compute + WebGL2
|
|
108
|
-
- **Agent-First Authoring & Typed Asset Pipeline.** `create
|
|
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.
|
|
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.
|
|
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
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
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.
|
|
359
|
-
# or scaffold
|
|
360
|
-
npx create-aura3d@4.0.
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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 --
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
430
|
+
The public API uses generated references such as `assets.robot`. Never pass raw string IDs or unvalidated paths to `model(...)`.
|
|
508
431
|
|
|
509
|
-
##
|
|
432
|
+
## Browser Game Runtime & Playable Showcases (`4.0.0`)
|
|
510
433
|
|
|
511
|
-
|
|
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
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
710
|
+
## Prompt-to-3D Scene Kits
|
|
771
711
|
|
|
772
|
-
|
|
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
|
-
- **
|
|
811
|
-
-
|
|
812
|
-
-
|
|
813
|
-
-
|
|
814
|
-
- Asset
|
|
815
|
-
-
|
|
816
|
-
-
|
|
817
|
-
-
|
|
818
|
-
-
|
|
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
|
-
|
|
754
|
+
## What Is Still Not Resolved & Claim Boundaries
|
|
845
755
|
|
|
846
|
-
Aura3D
|
|
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
|
-
|
|
849
|
-
pnpm aura3d110:readiness
|
|
850
|
-
```
|
|
758
|
+
## Contributing
|
|
851
759
|
|
|
852
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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.
|