@aura3d/engine 4.3.5 → 4.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,19 +5,25 @@
5
5
  [![license: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://opensource.org/licenses/MIT)
6
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-browser%203D-3178c6.svg)](https://www.typescriptlang.org/)
7
7
 
8
- **A TypeScript SDK for agent-written browser 3D apps and games.** You describe a scene with typed, declarative nodes; the toolchain brings typed assets, checks and deploy gates. The current version is in [`CHANGELOG.md`](./CHANGELOG.md).
8
+ **The TypeScript 3D engine that ships the whole stack.** Aura3D is a browser 3D engine with its own renderer, plus the toolchain around it: typed and licensed assets, lighting looks, a game kit and deploy checks. It is built for agent-written browser 3D, and people who write it by hand use the same API. The current version is in [`CHANGELOG.md`](./CHANGELOG.md).
9
+
10
+ A lit, shadowed, framed product with orbit controls, in 10 lines:
9
11
 
10
12
  ```ts
11
- import { createAuraApp, looks, model, scene } from "@aura3d/engine";
13
+ import { camera, createAuraApp, interactions, looks, model, scene } from "@aura3d/engine";
12
14
  import { assets } from "./aura-assets";
13
15
 
14
16
  createAuraApp("#app", {
15
- scene: scene().add(looks.preset("product-studio")).add(model(assets.robot)),
17
+ scene: scene()
18
+ .add(looks.preset("product-studio"))
19
+ .add(model(assets.product, { name: "product", targetHeight: 1.6, castShadow: true }))
20
+ .add(interactions.orbit({ target: "product" }))
21
+ .camera(camera.frameAsset(assets.product, { targetHeight: 1.6 })),
16
22
  ...looks.appOptions("product-studio")
17
23
  });
18
24
  ```
19
25
 
20
- A `looks.preset` supplies image-based light, a shadow-casting key, fog, background and a post grade as one unit. `model(assets.robot)` is a typed asset generated by the CLI, never a raw URL.
26
+ A `looks.preset` supplies image-based light, a shadow-casting key, fog, background and a post grade as one unit. `model(assets.product)` is a typed asset generated by the CLI, never a raw URL. The same scene in three.js is 38 lines before orbit controls ([tagline check](./evidence/vs-threejs/tagline-check/); line counts include imports and skip blank and comment lines).
21
27
 
22
28
  ## Start in five commands
23
29
 
@@ -29,7 +35,7 @@ npx @aura3d/cli@latest assets resolve "robot" --name robot # assets add also w
29
35
  npm run build && npx @aura3d/cli@latest check-deploy --dist dist
30
36
  ```
31
37
 
32
- Templates: `product-viewer` (default), `cinematic-scene`, `mini-game`, `racing-starter`, `falling-blocks-starter`, `fighting-game`, `character-controller`, `arena-shooter` and more (`npx create-aura3d@latest --help`). Known issue: a stock `vite build` of 4.1.2 fails on a Node-only import in the engine graph; the fix ships in 4.1.3.
38
+ Templates: `product-viewer` (default), `cinematic-scene`, `mini-game`, `racing-starter`, `falling-blocks-starter`, `fighting-game`, `character-controller`, `arena-shooter` and more (`npx create-aura3d@latest --help`).
33
39
 
34
40
  ## If you are an AI agent
35
41
 
@@ -50,9 +56,16 @@ Kit documentation: [`docs/api/game-kit.md`](./docs/api/game-kit.md), [`qa-kit.md
50
56
 
51
57
  The [showcase index](https://aura3d.auraone.ai/apps/showcase-index/) has 25 playable games across racing, sports, action, platformers and arcade, including Aura Slam 3D (tennis, with a deterministic replay gate), Apex Overdrive (racing), Glint Courier (maze chase) and Craterline GP (bike racing). Each page states its limits; the games are independent work, not affiliated with any other game or studio. Games are checked on software WebGL2 in remote runs; real-GPU confirmation is partial and tracked in [`evidence/`](./evidence/).
52
58
 
53
- ## Compared with three.js
59
+ ## Why Aura3D instead of three.js
60
+
61
+ three.js gives you a renderer. Aura3D is a complete TypeScript 3D engine and toolchain with its own renderer, so the parts three.js leaves to you come built in:
62
+
63
+ - **A lit, shadowed, framed product in 10 lines.** The same scene in three.js is 38 lines before orbit controls ([tagline check](./evidence/vs-threejs/tagline-check/)). In our five-scene benchmark, a PBR viewer with HDR lighting, shadow, bloom and orbit controls is 24 lines instead of 49, with 1 import instead of 8 ([results](./evidence/vs-threejs/RESULTS.md)).
64
+ - **Assets you can trust.** Every model is typed, hashed and licensed; in production an unverified model doesn't draw.
65
+ - **The game stack included.** HUD, touch controls, audio cues, a fixed-step loop, seeded replay, a safety net and smooth motion on 120 and 144 Hz displays.
66
+ - **Built for AI coding agents.** `llms.txt`, 14 skills and compiled recipes ship with every new project.
54
67
 
55
- Aura3D wraps a three.js-compatible renderer lineage and adds the authoring, asset, game and check layers above it. A measured comparison exists, with limits: five small scenes, one author, software WebGL2 (not a GPU), three.js 0.185.1 against Aura3D 4.1.2. In it, Aura3D scene source was shorter in four of five scenes and needed one import instead of up to eight; three.js had the smaller bundle (about 7.7 times smaller for a one-cube app), the faster first frame in four of five scenes, lower frame cost, and a stock build that worked without configuration. Full tables, failure modes and caveats: [`evidence/vs-threejs/RESULTS.md`](./evidence/vs-threejs/RESULTS.md); plan to close the gaps: [`docs/workflows/aura3d-vs-threejs-analysis-and-plan.md`](./docs/workflows/aura3d-vs-threejs-analysis-and-plan.md). Choose three.js when you need WebGPU-first rendering, the widest loader and post-processing set, or its ecosystem.
68
+ Porting an existing three.js project: [`docs/migration/from-threejs.md`](./docs/migration/from-threejs.md).
56
69
 
57
70
  ## Packages
58
71
 
@@ -67,7 +80,7 @@ Public packages (all at the same version; `@aura3d/engine` is the root of this r
67
80
  | `@aura3d/rendering` | Render device, WebGL2 backend, materials, passes |
68
81
  | `@aura3d/assets`, `@aura3d/asset-index` | Asset loading and caching; asset search across public sources |
69
82
  | `@aura3d/animation`, `@aura3d/audio`, `@aura3d/input`, `@aura3d/controls` | Clips and state machines, audio buses, input, camera controls |
70
- | `@aura3d/physics`, `@aura3d/physics-rapier`, `@aura3d/navigation-recast` | Deterministic physics and optional adapters |
83
+ | `@aura3d/physics`, `@aura3d/physics-rapier`, `@aura3d/navigation-recast` | Physics, with optional Rapier and navigation adapters |
71
84
  | `@aura3d/ecs`, `@aura3d/scripting` | ECS and behaviour graphs |
72
85
  | `@aura3d/debug` | Diagnostics and the runtime safety net |
73
86
  | `@aura3d/product-studio`, `@aura3d/apps`, `@aura3d/workflows`, `@aura3d/react`, `@aura3d/editor-runtime` | Product viewers, app presets, workflows, React host, editor runtime |
@@ -76,14 +89,14 @@ Public packages (all at the same version; `@aura3d/engine` is the root of this r
76
89
 
77
90
  ## Claims and verification
78
91
 
79
- Every public claim follows [`docs/agents/claims-and-boundaries.md`](./docs/agents/claims-and-boundaries.md): label the capability, and claim only what a judged capture or retained evidence shows. Published gates include route health, typed provenance, public-API surface checks, package-size checks and `check-deploy`. Known gaps are listed per release in [`CHANGELOG.md`](./CHANGELOG.md) and in [`docs/workflows/threejs-parity-gaps.md`](./docs/workflows/threejs-parity-gaps.md).
92
+ Every public claim follows [`docs/agents/claims-and-boundaries.md`](./docs/agents/claims-and-boundaries.md): label the capability, and claim only what a judged capture or retained evidence shows. Published gates include route health, typed provenance, public-API surface checks, package-size checks and `check-deploy`. Release notes are in [`CHANGELOG.md`](./CHANGELOG.md).
80
93
 
81
94
  ## Documentation
82
95
 
83
96
  - [`docs/index.md`](./docs/index.md): hub for humans and agents
84
97
  - [`docs/agents/README.md`](./docs/agents/README.md): agent docs index
85
98
  - [`docs/api/public-api.md`](./docs/api/public-api.md): public API
86
- - [`docs/whats-new-4.1.md`](./docs/whats-new-4.1.md) and [`docs/migration/4.0-to-4.1.md`](./docs/migration/4.0-to-4.1.md): what changed in 4.1
99
+ - [`docs/aura3d-vs-threejs.md`](./docs/aura3d-vs-threejs.md) and [`docs/migration/from-threejs.md`](./docs/migration/from-threejs.md): why Aura3D over three.js, and how to port
87
100
  - [`docs/workflows/game-conversion-playbook.md`](./docs/workflows/game-conversion-playbook.md): turning a browser game into an Aura3D game
88
101
  - Site: https://aura3d.auraone.ai
89
102
 
@@ -75,7 +75,7 @@ export function createA3DProject(options) {
75
75
  const dependencies = { ...(packageJson.dependencies ?? {}) };
76
76
  const auraDependencies = Object.keys(dependencies).filter((name) => name.startsWith("@aura3d/"));
77
77
  if (auraDependencies.length === 0) {
78
- dependencies["@aura3d/engine"] = options.packageVersion ?? "4.3.5";
78
+ dependencies["@aura3d/engine"] = options.packageVersion ?? "4.3.6";
79
79
  }
80
80
  else if (options.packageVersion) {
81
81
  for (const dependency of auraDependencies)
@@ -104,7 +104,7 @@ export { isTextureBinding, TextureBinding } from "./TextureBinding.js";
104
104
  * `AnimationMixerThreeCompat`, `SkeletonThreeCompat` and `MorphTargetMixerThreeCompat`, the symbols WS-1.6
105
105
  * found the parity generator was failing to grep. Only the rendering one was fabricated.
106
106
  *
107
- * Retrievable from git history; recorded in `docs/architecture/2.0-removals.md`.
107
+ * Retrievable from git history; recorded in `docs/archive/docs/architecture/2.0-removals.md`.
108
108
  */
109
109
  export { ProductionWebGL2Renderer, ProductionRuntimeRenderer, ProductionWebGPURenderer, analyzePixels, bindTransmissionBackdropCapture, createSceneColorMipLevels, createTransmissionBackdropSource, createContactShadowPass, createProductionOrbitControlPreset, createDualProbeEnvironmentLightingResources, createProductionEnvironmentLightingResources, createProductionPbrHdrPipelineFromRadiance, createProductionToneMappingPolicy, createProductionWebGPUReport, describeWebGPULostDevice, resolveProductionRuntimeRendererBackend, screenWebGPURenderBundlePrototype, WEBGPU_PARITY_PLAN, loadProductionHdrEnvironmentFile, loadProductionHdrEnvironment, normalizeTransmissionBackdropCapture, parseProductionRadianceHDR, rendererFeatureReport, rendererInteractiveFeatureReport, rendererProofCapture, rendererShadowReport, validateProductionRendererInput, summarizeProductionAnimationWorkflow, summarizeProductionProductionProof, summarizeProductionWebGL2Proof } from "./production-runtime/index.js";
110
110
  export { ShaderModule } from "./ShaderModule.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aura3d/engine",
3
- "version": "4.3.5",
3
+ "version": "4.3.6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "files": [
@@ -149,31 +149,31 @@
149
149
  "vite": "^7.3.2",
150
150
  "vitest": "^3.1.3",
151
151
  "recast-navigation": "0.43.1",
152
- "@aura3d/animation": "4.3.5",
153
- "@aura3d/apps": "4.3.5",
154
- "@aura3d/asset-index": "4.3.5",
155
- "@aura3d/audio": "4.3.5",
156
- "@aura3d/assets": "4.3.5",
157
- "@aura3d/cli": "4.3.5",
158
- "@aura3d/controls": "4.3.5",
159
- "@aura3d/core": "4.3.5",
160
- "@aura3d/ecs": "4.3.5",
161
- "@aura3d/debug": "4.3.5",
162
- "@aura3d/editor-runtime": "4.3.5",
163
- "@aura3d/engine-runtime": "4.3.5",
152
+ "@aura3d/animation": "4.3.6",
153
+ "@aura3d/apps": "4.3.6",
154
+ "@aura3d/audio": "4.3.6",
155
+ "@aura3d/cli": "4.3.6",
156
+ "@aura3d/asset-index": "4.3.6",
157
+ "@aura3d/controls": "4.3.6",
158
+ "@aura3d/assets": "4.3.6",
159
+ "@aura3d/core": "4.3.6",
160
+ "@aura3d/debug": "4.3.6",
161
+ "@aura3d/ecs": "4.3.6",
164
162
  "@aura3d/game": "4.0.7",
165
- "@aura3d/math": "4.3.5",
166
- "@aura3d/input": "4.3.5",
167
- "@aura3d/navigation-recast": "4.3.5",
168
- "@aura3d/physics": "4.3.5",
169
- "@aura3d/product-studio": "4.3.5",
170
- "@aura3d/physics-rapier": "4.3.5",
171
- "@aura3d/react": "4.3.5",
172
- "@aura3d/rendering": "4.3.5",
173
- "@aura3d/scene": "4.3.5",
174
- "@aura3d/scripting": "4.3.5",
175
- "@aura3d/workflows": "4.3.5",
176
- "create-aura3d": "4.3.5"
163
+ "@aura3d/engine-runtime": "4.3.6",
164
+ "@aura3d/input": "4.3.6",
165
+ "@aura3d/navigation-recast": "4.3.6",
166
+ "@aura3d/math": "4.3.6",
167
+ "@aura3d/physics": "4.3.6",
168
+ "@aura3d/physics-rapier": "4.3.6",
169
+ "@aura3d/product-studio": "4.3.6",
170
+ "@aura3d/react": "4.3.6",
171
+ "@aura3d/rendering": "4.3.6",
172
+ "@aura3d/editor-runtime": "4.3.6",
173
+ "@aura3d/scene": "4.3.6",
174
+ "@aura3d/scripting": "4.3.6",
175
+ "@aura3d/workflows": "4.3.6",
176
+ "create-aura3d": "4.3.6"
177
177
  },
178
178
  "dependencies": {
179
179
  "@gltf-transform/core": "4.5.1",
@@ -12,8 +12,8 @@
12
12
  "test:browser": "playwright test tests/route-health.spec.ts tests/screenshot.spec.ts --workers=1"
13
13
  },
14
14
  "dependencies": {
15
- "@aura3d/engine": "4.3.5",
16
- "@aura3d/assets": "4.3.5"
15
+ "@aura3d/engine": "4.3.6",
16
+ "@aura3d/assets": "4.3.6"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@playwright/test": "1.59.1",
@@ -12,8 +12,8 @@
12
12
  "test:browser": "playwright test tests/route-health.spec.ts tests/playable.spec.ts tests/screenshot.spec.ts tests/certified-rig.spec.ts --workers=1"
13
13
  },
14
14
  "dependencies": {
15
- "@aura3d/engine": "4.3.5",
16
- "@aura3d/assets": "4.3.5"
15
+ "@aura3d/engine": "4.3.6",
16
+ "@aura3d/assets": "4.3.6"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@playwright/test": "1.59.1",
@@ -12,8 +12,8 @@
12
12
  "test:browser": "playwright test tests/route-health.spec.ts tests/screenshot.spec.ts --workers=1"
13
13
  },
14
14
  "dependencies": {
15
- "@aura3d/engine": "4.3.5",
16
- "@aura3d/assets": "4.3.5"
15
+ "@aura3d/engine": "4.3.6",
16
+ "@aura3d/assets": "4.3.6"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@playwright/test": "1.59.1",
@@ -8,7 +8,7 @@
8
8
  "preview": "vite preview --host 127.0.0.1"
9
9
  },
10
10
  "dependencies": {
11
- "@aura3d/engine": "4.3.5"
11
+ "@aura3d/engine": "4.3.6"
12
12
  },
13
13
  "devDependencies": {
14
14
  "typescript": "^5.9.3",
@@ -8,7 +8,7 @@
8
8
  "preview": "vite preview --host 127.0.0.1"
9
9
  },
10
10
  "dependencies": {
11
- "@aura3d/engine": "4.3.5"
11
+ "@aura3d/engine": "4.3.6"
12
12
  },
13
13
  "devDependencies": {
14
14
  "typescript": "^5.9.3",
@@ -8,7 +8,7 @@
8
8
  "preview": "vite preview --host 127.0.0.1"
9
9
  },
10
10
  "dependencies": {
11
- "@aura3d/engine": "4.3.5"
11
+ "@aura3d/engine": "4.3.6"
12
12
  },
13
13
  "devDependencies": {
14
14
  "typescript": "^5.9.3",
@@ -8,7 +8,7 @@
8
8
  "preview": "vite preview --host 127.0.0.1"
9
9
  },
10
10
  "dependencies": {
11
- "@aura3d/engine": "4.3.5"
11
+ "@aura3d/engine": "4.3.6"
12
12
  },
13
13
  "devDependencies": {
14
14
  "typescript": "^5.9.3",