@aura3d/cli 3.0.1 → 4.0.2
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 +16 -15
- package/dist/admission/artDirection.d.ts +28 -0
- package/dist/admission/artDirection.d.ts.map +1 -0
- package/dist/admission/artDirection.js +47 -0
- package/dist/admission/artDirection.js.map +1 -0
- package/dist/admission/audio.d.ts +19 -0
- package/dist/admission/audio.d.ts.map +1 -0
- package/dist/admission/audio.js +31 -0
- package/dist/admission/audio.js.map +1 -0
- package/dist/admission/builder-patterns.d.ts +25 -0
- package/dist/admission/builder-patterns.d.ts.map +1 -0
- package/dist/admission/builder-patterns.js +40 -0
- package/dist/admission/builder-patterns.js.map +1 -0
- package/dist/admission/gates.d.ts +136 -0
- package/dist/admission/gates.d.ts.map +1 -0
- package/dist/admission/gates.js +335 -0
- package/dist/admission/gates.js.map +1 -0
- package/dist/admission/glb.d.ts +64 -0
- package/dist/admission/glb.d.ts.map +1 -0
- package/dist/admission/glb.js +128 -0
- package/dist/admission/glb.js.map +1 -0
- package/dist/admission/index.d.ts +8 -0
- package/dist/admission/index.d.ts.map +1 -0
- package/dist/admission/index.js +8 -0
- package/dist/admission/index.js.map +1 -0
- package/dist/admission/profiles.d.ts +52 -0
- package/dist/admission/profiles.d.ts.map +1 -0
- package/dist/admission/profiles.js +91 -0
- package/dist/admission/profiles.js.map +1 -0
- package/dist/admission/qrFlags.d.ts +12 -0
- package/dist/admission/qrFlags.d.ts.map +1 -0
- package/dist/admission/qrFlags.js +48 -0
- package/dist/admission/qrFlags.js.map +1 -0
- package/dist/admission/routeGates.d.ts +36 -0
- package/dist/admission/routeGates.d.ts.map +1 -0
- package/dist/admission/routeGates.js +144 -0
- package/dist/admission/routeGates.js.map +1 -0
- package/dist/admission/texel.d.ts +50 -0
- package/dist/admission/texel.d.ts.map +1 -0
- package/dist/admission/texel.js +177 -0
- package/dist/admission/texel.js.map +1 -0
- package/dist/admission/textureStats.d.ts +45 -0
- package/dist/admission/textureStats.d.ts.map +1 -0
- package/dist/admission/textureStats.js +201 -0
- package/dist/admission/textureStats.js.map +1 -0
- package/dist/animation-asset-validator.d.ts +44 -0
- package/dist/animation-asset-validator.d.ts.map +1 -1
- package/dist/animation-asset-validator.js +80 -1
- package/dist/animation-asset-validator.js.map +1 -1
- package/dist/asset-core-types.d.ts +100 -4
- package/dist/asset-core-types.d.ts.map +1 -1
- package/dist/asset-inspection-types.d.ts +9 -0
- package/dist/asset-inspection-types.d.ts.map +1 -1
- package/dist/asset-manifest.d.ts +1 -0
- package/dist/asset-manifest.d.ts.map +1 -1
- package/dist/asset-manifest.js +17 -5
- package/dist/asset-manifest.js.map +1 -1
- package/dist/asset-route-typegen.d.ts +37 -0
- package/dist/asset-route-typegen.d.ts.map +1 -0
- package/dist/asset-route-typegen.js +179 -0
- package/dist/asset-route-typegen.js.map +1 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +9 -4
- package/dist/cli-help.js.map +1 -1
- package/dist/cli-options.d.ts +7 -0
- package/dist/cli-options.d.ts.map +1 -1
- package/dist/cli-options.js +33 -2
- package/dist/cli-options.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +126 -11
- package/dist/cli.js.map +1 -1
- package/dist/codemods/engine-entry-imports.d.ts +22 -0
- package/dist/codemods/engine-entry-imports.d.ts.map +1 -0
- package/dist/codemods/engine-entry-imports.js +159 -0
- package/dist/codemods/engine-entry-imports.js.map +1 -0
- package/dist/codemods/lean-imports.d.ts +40 -0
- package/dist/codemods/lean-imports.d.ts.map +1 -0
- package/dist/codemods/lean-imports.js +175 -0
- package/dist/codemods/lean-imports.js.map +1 -0
- package/dist/codemods/renderer-imports.d.ts +36 -0
- package/dist/codemods/renderer-imports.d.ts.map +1 -0
- package/dist/codemods/renderer-imports.js +364 -0
- package/dist/codemods/renderer-imports.js.map +1 -0
- package/dist/codemods/renderer-mode.d.ts +38 -0
- package/dist/codemods/renderer-mode.d.ts.map +1 -0
- package/dist/codemods/renderer-mode.js +130 -0
- package/dist/codemods/renderer-mode.js.map +1 -0
- package/dist/commands/prd01/index.d.ts +8 -0
- package/dist/commands/prd01/index.d.ts.map +1 -0
- package/dist/commands/prd01/index.js +39 -0
- package/dist/commands/prd01/index.js.map +1 -0
- package/dist/commands/prd02/environmentsBake.d.ts +6 -0
- package/dist/commands/prd02/environmentsBake.d.ts.map +1 -0
- package/dist/commands/prd02/environmentsBake.js +174 -0
- package/dist/commands/prd02/environmentsBake.js.map +1 -0
- package/dist/commands/prd02/index.d.ts +2 -0
- package/dist/commands/prd02/index.d.ts.map +1 -0
- package/dist/commands/prd02/index.js +26 -0
- package/dist/commands/prd02/index.js.map +1 -0
- package/dist/commands/prd02/migrateLighting.d.ts +17 -0
- package/dist/commands/prd02/migrateLighting.d.ts.map +1 -0
- package/dist/commands/prd02/migrateLighting.js +86 -0
- package/dist/commands/prd02/migrateLighting.js.map +1 -0
- package/dist/commands/prd02/migrateLightingSweep.d.ts +20 -0
- package/dist/commands/prd02/migrateLightingSweep.d.ts.map +1 -0
- package/dist/commands/prd02/migrateLightingSweep.js +105 -0
- package/dist/commands/prd02/migrateLightingSweep.js.map +1 -0
- package/dist/commands/prd03/index.d.ts +7 -0
- package/dist/commands/prd03/index.d.ts.map +1 -0
- package/dist/commands/prd03/index.js +9 -0
- package/dist/commands/prd03/index.js.map +1 -0
- package/dist/commands/prd04/index.d.ts +10 -0
- package/dist/commands/prd04/index.d.ts.map +1 -0
- package/dist/commands/prd04/index.js +10 -0
- package/dist/commands/prd04/index.js.map +1 -0
- package/dist/commands/prd04/modelTintReport.d.ts +16 -0
- package/dist/commands/prd04/modelTintReport.d.ts.map +1 -0
- package/dist/commands/prd04/modelTintReport.js +114 -0
- package/dist/commands/prd04/modelTintReport.js.map +1 -0
- package/dist/commands/prd04/pinEmissiveDefaults.d.ts +3 -0
- package/dist/commands/prd04/pinEmissiveDefaults.d.ts.map +1 -0
- package/dist/commands/prd04/pinEmissiveDefaults.js +36 -0
- package/dist/commands/prd04/pinEmissiveDefaults.js.map +1 -0
- package/dist/commands/prd05/admit.d.ts +54 -0
- package/dist/commands/prd05/admit.d.ts.map +1 -0
- package/dist/commands/prd05/admit.js +153 -0
- package/dist/commands/prd05/admit.js.map +1 -0
- package/dist/commands/prd05/codemods/assetsRouteModules.d.ts +3 -0
- package/dist/commands/prd05/codemods/assetsRouteModules.d.ts.map +1 -0
- package/dist/commands/prd05/codemods/assetsRouteModules.js +92 -0
- package/dist/commands/prd05/codemods/assetsRouteModules.js.map +1 -0
- package/dist/commands/prd05/index.d.ts +9 -0
- package/dist/commands/prd05/index.d.ts.map +1 -0
- package/dist/commands/prd05/index.js +171 -0
- package/dist/commands/prd05/index.js.map +1 -0
- package/dist/commands/prd05/library.d.ts +23 -0
- package/dist/commands/prd05/library.d.ts.map +1 -0
- package/dist/commands/prd05/library.js +245 -0
- package/dist/commands/prd05/library.js.map +1 -0
- package/dist/commands/prd05/lookdev.d.ts +14 -0
- package/dist/commands/prd05/lookdev.d.ts.map +1 -0
- package/dist/commands/prd05/lookdev.js +68 -0
- package/dist/commands/prd05/lookdev.js.map +1 -0
- package/dist/commands/prd05/optimize.d.ts +16 -0
- package/dist/commands/prd05/optimize.d.ts.map +1 -0
- package/dist/commands/prd05/optimize.js +55 -0
- package/dist/commands/prd05/optimize.js.map +1 -0
- package/dist/commands/prd05/prune.d.ts +26 -0
- package/dist/commands/prd05/prune.d.ts.map +1 -0
- package/dist/commands/prd05/prune.js +104 -0
- package/dist/commands/prd05/prune.js.map +1 -0
- package/dist/commands/prd05/review.d.ts +24 -0
- package/dist/commands/prd05/review.d.ts.map +1 -0
- package/dist/commands/prd05/review.js +40 -0
- package/dist/commands/prd05/review.js.map +1 -0
- package/dist/commands/prd06/index.d.ts +6 -0
- package/dist/commands/prd06/index.d.ts.map +1 -0
- package/dist/commands/prd06/index.js +86 -0
- package/dist/commands/prd06/index.js.map +1 -0
- package/dist/commands/prd06/inspectAnimationClips.d.ts +86 -0
- package/dist/commands/prd06/inspectAnimationClips.d.ts.map +1 -0
- package/dist/commands/prd06/inspectAnimationClips.js +168 -0
- package/dist/commands/prd06/inspectAnimationClips.js.map +1 -0
- package/dist/commands/prd06/validateHero.d.ts +18 -0
- package/dist/commands/prd06/validateHero.d.ts.map +1 -0
- package/dist/commands/prd06/validateHero.js +91 -0
- package/dist/commands/prd06/validateHero.js.map +1 -0
- package/dist/commands/prd07/codemods.d.ts +28 -0
- package/dist/commands/prd07/codemods.d.ts.map +1 -0
- package/dist/commands/prd07/codemods.js +155 -0
- package/dist/commands/prd07/codemods.js.map +1 -0
- package/dist/commands/prd07/index.d.ts +2 -0
- package/dist/commands/prd07/index.d.ts.map +1 -0
- package/dist/commands/prd07/index.js +151 -0
- package/dist/commands/prd07/index.js.map +1 -0
- package/dist/commands/prd08/feelLint.d.ts +13 -0
- package/dist/commands/prd08/feelLint.d.ts.map +1 -0
- package/dist/commands/prd08/feelLint.js +32 -0
- package/dist/commands/prd08/feelLint.js.map +1 -0
- package/dist/commands/prd08/index.d.ts +2 -0
- package/dist/commands/prd08/index.d.ts.map +1 -0
- package/dist/commands/prd08/index.js +16 -0
- package/dist/commands/prd08/index.js.map +1 -0
- package/dist/commands/prd08/motionReport.d.ts +94 -0
- package/dist/commands/prd08/motionReport.d.ts.map +1 -0
- package/dist/commands/prd08/motionReport.js +197 -0
- package/dist/commands/prd08/motionReport.js.map +1 -0
- package/dist/commands/prd09/codemods/audio-wrapper.d.ts +9 -0
- package/dist/commands/prd09/codemods/audio-wrapper.d.ts.map +1 -0
- package/dist/commands/prd09/codemods/audio-wrapper.js +30 -0
- package/dist/commands/prd09/codemods/audio-wrapper.js.map +1 -0
- package/dist/commands/prd09/codemods/capture-branches.d.ts +10 -0
- package/dist/commands/prd09/codemods/capture-branches.d.ts.map +1 -0
- package/dist/commands/prd09/codemods/capture-branches.js +54 -0
- package/dist/commands/prd09/codemods/capture-branches.js.map +1 -0
- package/dist/commands/prd09/codemods/evidence-globals.d.ts +8 -0
- package/dist/commands/prd09/codemods/evidence-globals.d.ts.map +1 -0
- package/dist/commands/prd09/codemods/evidence-globals.js +19 -0
- package/dist/commands/prd09/codemods/evidence-globals.js.map +1 -0
- package/dist/commands/prd09/codemods/perf-script.d.ts +8 -0
- package/dist/commands/prd09/codemods/perf-script.d.ts.map +1 -0
- package/dist/commands/prd09/codemods/perf-script.js +24 -0
- package/dist/commands/prd09/codemods/perf-script.js.map +1 -0
- package/dist/commands/prd09/index.d.ts +8 -0
- package/dist/commands/prd09/index.d.ts.map +1 -0
- package/dist/commands/prd09/index.js +19 -0
- package/dist/commands/prd09/index.js.map +1 -0
- package/dist/commands/prd09/perf-report.d.ts +56 -0
- package/dist/commands/prd09/perf-report.d.ts.map +1 -0
- package/dist/commands/prd09/perf-report.js +118 -0
- package/dist/commands/prd09/perf-report.js.map +1 -0
- package/dist/commands/prd09/sfx-admit.d.ts +18 -0
- package/dist/commands/prd09/sfx-admit.d.ts.map +1 -0
- package/dist/commands/prd09/sfx-admit.js +120 -0
- package/dist/commands/prd09/sfx-admit.js.map +1 -0
- package/dist/commands/prd10/index.d.ts +2 -0
- package/dist/commands/prd10/index.d.ts.map +1 -0
- package/dist/commands/prd10/index.js +109 -0
- package/dist/commands/prd10/index.js.map +1 -0
- package/dist/commands/prd11/batchOptout.d.ts +35 -0
- package/dist/commands/prd11/batchOptout.d.ts.map +1 -0
- package/dist/commands/prd11/batchOptout.js +155 -0
- package/dist/commands/prd11/batchOptout.js.map +1 -0
- package/dist/commands/prd11/index.d.ts +2 -0
- package/dist/commands/prd11/index.d.ts.map +1 -0
- package/dist/commands/prd11/index.js +13 -0
- package/dist/commands/prd11/index.js.map +1 -0
- package/dist/commands/prd11/perfGate.d.ts +15 -0
- package/dist/commands/prd11/perfGate.d.ts.map +1 -0
- package/dist/commands/prd11/perfGate.js +98 -0
- package/dist/commands/prd11/perfGate.js.map +1 -0
- package/dist/commands/prd13/index.d.ts +15 -0
- package/dist/commands/prd13/index.d.ts.map +1 -0
- package/dist/commands/prd13/index.js +26 -0
- package/dist/commands/prd13/index.js.map +1 -0
- package/dist/commands/prd13/run.d.ts +10 -0
- package/dist/commands/prd13/run.d.ts.map +1 -0
- package/dist/commands/prd13/run.js +29 -0
- package/dist/commands/prd13/run.js.map +1 -0
- package/dist/commands/prd14/index.d.ts +6 -0
- package/dist/commands/prd14/index.d.ts.map +1 -0
- package/dist/commands/prd14/index.js +6 -0
- package/dist/commands/prd14/index.js.map +1 -0
- package/dist/commands/prd15/index.d.ts +8 -0
- package/dist/commands/prd15/index.d.ts.map +1 -0
- package/dist/commands/prd15/index.js +152 -0
- package/dist/commands/prd15/index.js.map +1 -0
- package/dist/commands/registry.d.ts +19 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +19 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/contracts/assetManifest.d.ts +80 -0
- package/dist/contracts/assetManifest.d.ts.map +1 -0
- package/dist/contracts/assetManifest.js +9 -0
- package/dist/contracts/assetManifest.js.map +1 -0
- package/dist/contracts/commands.d.ts +53 -0
- package/dist/contracts/commands.d.ts.map +1 -0
- package/dist/contracts/commands.js +37 -0
- package/dist/contracts/commands.js.map +1 -0
- package/dist/index.d.ts +17 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +297 -73
- package/dist/index.js.map +1 -1
- package/dist/library-manifest.d.ts +86 -0
- package/dist/library-manifest.d.ts.map +1 -0
- package/dist/library-manifest.js +95 -0
- package/dist/library-manifest.js.map +1 -0
- package/dist/look/capture.d.ts +51 -0
- package/dist/look/capture.d.ts.map +1 -0
- package/dist/look/capture.js +229 -0
- package/dist/look/capture.js.map +1 -0
- package/dist/look/judge.d.ts +24 -0
- package/dist/look/judge.d.ts.map +1 -0
- package/dist/look/judge.js +151 -0
- package/dist/look/judge.js.map +1 -0
- package/dist/look/lint-static.d.ts +45 -0
- package/dist/look/lint-static.d.ts.map +1 -0
- package/dist/look/lint-static.js +241 -0
- package/dist/look/lint-static.js.map +1 -0
- package/dist/look/rubric.d.ts +70 -0
- package/dist/look/rubric.d.ts.map +1 -0
- package/dist/look/rubric.js +169 -0
- package/dist/look/rubric.js.map +1 -0
- package/dist/meshy/admission.d.ts.map +1 -1
- package/dist/meshy/admission.js +32 -7
- package/dist/meshy/admission.js.map +1 -1
- package/dist/meshy/import.d.ts +7 -1
- package/dist/meshy/import.d.ts.map +1 -1
- package/dist/meshy/import.js +84 -6
- package/dist/meshy/import.js.map +1 -1
- package/dist/migrate-three/CompatibilityWarnings.d.ts +6 -0
- package/dist/migrate-three/CompatibilityWarnings.d.ts.map +1 -0
- package/dist/migrate-three/CompatibilityWarnings.js +24 -0
- package/dist/migrate-three/CompatibilityWarnings.js.map +1 -0
- package/dist/migrate-three/ImportMap.d.ts +19 -0
- package/dist/migrate-three/ImportMap.d.ts.map +1 -0
- package/dist/migrate-three/ImportMap.js +35 -0
- package/dist/migrate-three/ImportMap.js.map +1 -0
- package/dist/migrate-three/R3fMigration.d.ts +32 -0
- package/dist/migrate-three/R3fMigration.d.ts.map +1 -0
- package/dist/migrate-three/R3fMigration.js +70 -0
- package/dist/migrate-three/R3fMigration.js.map +1 -0
- package/dist/migrate-three/ThreeToA3DAdapter.d.ts +8 -0
- package/dist/migrate-three/ThreeToA3DAdapter.d.ts.map +1 -0
- package/dist/migrate-three/ThreeToA3DAdapter.js +20 -0
- package/dist/migrate-three/ThreeToA3DAdapter.js.map +1 -0
- package/dist/migrate-three/emit.d.ts +21 -0
- package/dist/migrate-three/emit.d.ts.map +1 -0
- package/dist/migrate-three/emit.js +117 -0
- package/dist/migrate-three/emit.js.map +1 -0
- package/dist/migrate-three/mappings.d.ts +21 -0
- package/dist/migrate-three/mappings.d.ts.map +1 -0
- package/dist/migrate-three/mappings.js +42 -0
- package/dist/migrate-three/mappings.js.map +1 -0
- package/dist/migrate-three/parse.d.ts +20 -0
- package/dist/migrate-three/parse.d.ts.map +1 -0
- package/dist/migrate-three/parse.js +56 -0
- package/dist/migrate-three/parse.js.map +1 -0
- package/dist/migrate-three/report.d.ts +18 -0
- package/dist/migrate-three/report.d.ts.map +1 -0
- package/dist/migrate-three/report.js +16 -0
- package/dist/migrate-three/report.js.map +1 -0
- package/dist/pull-bridge/adapters.d.ts +1 -1
- package/dist/pull-bridge/adapters.d.ts.map +1 -1
- package/dist/pull-bridge/adapters.js +17 -4
- package/dist/pull-bridge/adapters.js.map +1 -1
- package/dist/pull-bridge/provenance.d.ts.map +1 -1
- package/dist/pull-bridge/provenance.js +3 -2
- package/dist/pull-bridge/provenance.js.map +1 -1
- package/dist/pull-bridge/pullable.d.ts.map +1 -1
- package/dist/pull-bridge/pullable.js +14 -3
- package/dist/pull-bridge/pullable.js.map +1 -1
- package/dist/pull-bridge/scoring.d.ts +36 -8
- package/dist/pull-bridge/scoring.d.ts.map +1 -1
- package/dist/pull-bridge/scoring.js +143 -47
- package/dist/pull-bridge/scoring.js.map +1 -1
- package/dist/pull-bridge/search.d.ts +2 -0
- package/dist/pull-bridge/search.d.ts.map +1 -1
- package/dist/pull-bridge/search.js +17 -10
- package/dist/pull-bridge/search.js.map +1 -1
- package/dist/pull-bridge.d.ts +2 -2
- package/dist/pull-bridge.d.ts.map +1 -1
- package/dist/pull-bridge.js +24 -8
- package/dist/pull-bridge.js.map +1 -1
- package/package.json +6 -3
- package/skills/agent-files/AGENTS.md +3 -0
- package/skills/aura3d-animation-studio/SKILL.md +153 -0
- package/skills/aura3d-animation-studio/references/shot-looks.md +26 -0
- package/skills/aura3d-art-direction/SKILL.md +84 -0
- package/skills/aura3d-art-direction/references/failure-gallery.md +64 -0
- package/skills/aura3d-art-direction/references/framing-and-shots.md +45 -0
- package/skills/aura3d-art-direction/references/look-recipes.md +32 -0
- package/skills/aura3d-art-direction/references/quality-bar.md +103 -0
- package/skills/aura3d-art-direction/references/reference-frames.md +82 -0
- package/skills/aura3d-assets/SKILL.md +151 -0
- package/skills/aura3d-assets/references/preview-under-look.md +26 -0
- package/skills/aura3d-browser-game/SKILL.md +149 -0
- package/skills/aura3d-browser-game/references/genre-looks.md +52 -0
- package/skills/aura3d-character-animation/SKILL.md +129 -0
- package/skills/aura3d-character-animation/references/stage-and-lighting.md +31 -0
- package/skills/aura3d-core/SKILL.md +143 -0
- package/skills/aura3d-core/references/boundaries.md +91 -0
- package/skills/aura3d-evidence-review/SKILL.md +106 -0
- package/skills/aura3d-game-art/SKILL.md +118 -0
- package/skills/aura3d-game-art/references/sheet-check.mjs +58 -0
- package/skills/aura3d-game-art/references/sprite-palettes.md +25 -0
- package/skills/aura3d-materials-environments/SKILL.md +139 -0
- package/skills/aura3d-performance/SKILL.md +97 -0
- package/skills/aura3d-retexture/SKILL.md +115 -0
- package/skills/aura3d-retexture/references/geometry-hash.mjs +89 -0
- package/skills/aura3d-scene-authoring/SKILL.md +132 -0
- package/skills/aura3d-scene-authoring/references/look-by-family.md +28 -0
- package/skills/aura3d-threejs-migration/SKILL.md +125 -0
- package/skills/aura3d-threejs-migration/references/look-mapping.md +27 -0
- package/skills/llms.txt +147 -0
- package/skills/manifest.json +163 -0
- package/skills/meshy-cli/SKILL.md +148 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aura3d-character-animation
|
|
3
|
+
description: Drives rigged Aura3D characters from inspected clip, skeleton, and morph metadata with an animation controller, clip events, runtime pose and morph state, and voice-bridge visemes, then proves motion in character-region pixels. Use when animating a humanoid or creature, using `AnimationController`, `createAnimationController`, or `animation.sampleAuraVoiceBridgeAtTime`, setting morph targets or visemes, or running `assets inspect --animation`, `assets validate-animation`, or `assets assemble-character`.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Aura3D character animation
|
|
7
|
+
|
|
8
|
+
Clip, bone, and morph names come from the asset, never from memory. Controller
|
|
9
|
+
state is source evidence; a visible animation claim needs pixel deltas on the
|
|
10
|
+
character. Shared rules (claim labels, forbidden patterns, typed assets,
|
|
11
|
+
benchmark mode) are in [boundaries](../aura3d-core/references/boundaries.md).
|
|
12
|
+
|
|
13
|
+
## Look target
|
|
14
|
+
|
|
15
|
+
A character reads through its silhouette and rim: `character-showcase` (or the
|
|
16
|
+
genre recipe's look) supplies the 3/4-front key plus rim that makes locomotion,
|
|
17
|
+
poses and morphs visible. Judge animation under that look — a clip that reads
|
|
18
|
+
in flat light can vanish inside night-city shadow pools or golden-hour haze.
|
|
19
|
+
|
|
20
|
+
## Establish the contract
|
|
21
|
+
|
|
22
|
+
1. Run `npx @aura3d/cli@latest --help` and use only the `assets inspect`,
|
|
23
|
+
`assets validate-animation`, and `assets assemble-character` flags it prints.
|
|
24
|
+
2. Read `src/aura-assets.ts` and `aura.assets.json`. The character must be a
|
|
25
|
+
typed key with role `character`. No key: load `aura3d-assets` first.
|
|
26
|
+
3. Inspect the rig and record the real names:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx @aura3d/cli@latest assets inspect ./public/aura-assets/hero.glb --animation --skeleton --morphs
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Read the JSON fields "animations", "skeleton.skins[].joints", and
|
|
33
|
+
"morphTargets.targetNames".
|
|
34
|
+
`"No morph target metadata detected."` means no morph or viseme work on
|
|
35
|
+
this asset.
|
|
36
|
+
4. Decide the mode. Benchmark mode: `npm install && npm run build`, then stop.
|
|
37
|
+
|
|
38
|
+
## Procedure
|
|
39
|
+
|
|
40
|
+
1. Map gameplay actions to real clip names and fail fast on gaps:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npx @aura3d/cli@latest assets validate-animation --clips idle,walk,sprint,jump \
|
|
44
|
+
--map idle=idle,walk=walk,run=sprint --require idle,walk,run --require-rig
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Pass `--clips` from the inspection output. `"ok": false` with a
|
|
48
|
+
`missingActions` entry means the rig cannot play that action.
|
|
49
|
+
2. Multi-part characters: build the assembly from typed keys first.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx @aura3d/cli@latest assets assemble-character --name hero --body heroBody --part hair=heroHair
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
3. Create one controller per character from typed clip metadata, bind it to a
|
|
56
|
+
runtime node, and update it once per frame:
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import { createAnimationController, createAuraApp, game, lights, model, scene } from "@aura3d/engine";
|
|
60
|
+
import { assets } from "./aura-assets";
|
|
61
|
+
|
|
62
|
+
const app = createAuraApp("#app", {
|
|
63
|
+
scene: scene()
|
|
64
|
+
.add(model(assets.hero).runtime(game.runtimeNode("hero", { tags: ["player"] })))
|
|
65
|
+
.add(lights.studio())
|
|
66
|
+
});
|
|
67
|
+
const hero = app.nodes.require("hero");
|
|
68
|
+
const controller = createAnimationController({
|
|
69
|
+
id: "hero-animation",
|
|
70
|
+
clipRegistry: assets.hero,
|
|
71
|
+
requiredClips: ["idle", "walk", "sprint"],
|
|
72
|
+
suppressRootMotion: true
|
|
73
|
+
});
|
|
74
|
+
controller.bindRuntimeNode(hero, { id: "hero-binding", defaultClipId: "idle" });
|
|
75
|
+
|
|
76
|
+
let moving = false; // set from your input or kinematic body each frame
|
|
77
|
+
app.onFrame(({ dt }) => {
|
|
78
|
+
controller.crossFade(moving ? "walk" : "idle", 0.12);
|
|
79
|
+
controller.update(dt);
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
4. Clip-local gameplay events (event names such as "hitbox.open", "sfx", "vfx",
|
|
84
|
+
"camera.impulse", "caption", "viseme") go through the controller's event subscription. Bridge
|
|
85
|
+
them into public systems such as `game.combatWorld`; never call private
|
|
86
|
+
hitbox or renderer internals.
|
|
87
|
+
5. Pose and morph state go through the runtime node handle (its animation-pose
|
|
88
|
+
and morph-target setters). App code never reaches into renderer skinning.
|
|
89
|
+
6. Voice sync: sample the bridge package at the frame time and apply the
|
|
90
|
+
viseme weights to the node's morph targets, using only morph names the
|
|
91
|
+
inspection reported.
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
import { animation } from "@aura3d/engine";
|
|
95
|
+
|
|
96
|
+
app.onFrame(({ time }) => {
|
|
97
|
+
const sample = animation.sampleAuraVoiceBridgeAtTime(bridgePackage, time, "host");
|
|
98
|
+
app.nodes.require("host").setMorphTargets(sample.viseme?.blendshapeWeights ?? {});
|
|
99
|
+
});
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
7. Retargeting is explicit and selected-roster only. Use an explicit humanoid
|
|
103
|
+
map; do not claim arbitrary-rig retargeting or full-body IK.
|
|
104
|
+
8. Normal mode: `npm run build` locally. Browser proof (deterministic capture
|
|
105
|
+
times inside the clip's keyframe range, stable camera, character-region
|
|
106
|
+
pixel delta, backend and fallback named) runs remotely via the template
|
|
107
|
+
`npm run test` or CI. Hand results to `aura3d-evidence-review`.
|
|
108
|
+
|
|
109
|
+
## Stop and report
|
|
110
|
+
|
|
111
|
+
- A clip, bone, or morph you need is absent from the inspection output: stop
|
|
112
|
+
and report it. Do not rename clips in code or guess names.
|
|
113
|
+
- `assets validate-animation` returns `"ok": false`: the action map is
|
|
114
|
+
`blocked` until a rig with the clip is admitted.
|
|
115
|
+
- A clip is a static pose (zero channel motion): it cannot satisfy an
|
|
116
|
+
animation row; pick a clip with real motion or label `prototype`.
|
|
117
|
+
- The claim is "visible skinning, morphs, or visemes" and you only have
|
|
118
|
+
controller snapshots or clip lists: label it `prototype`.
|
|
119
|
+
- Only the certified roster in the skinning doc may be called certified.
|
|
120
|
+
|
|
121
|
+
## References
|
|
122
|
+
|
|
123
|
+
- [Shared boundaries](../aura3d-core/references/boundaries.md)
|
|
124
|
+
- [Skinning and morphs](https://github.com/auraoneai/aura3d/blob/main/docs/rendering/skinning-and-morphs.md)
|
|
125
|
+
- [Animation, retargeting, IK](https://github.com/auraoneai/aura3d/blob/main/docs/rendering/animation.md)
|
|
126
|
+
- [Animation runtime events](https://github.com/auraoneai/aura3d/blob/main/docs/api/animation-runtime-events.md)
|
|
127
|
+
- [Animation runtime support](https://github.com/auraoneai/aura3d/blob/main/docs/animation/runtime-support.md)
|
|
128
|
+
- [Agent guide llms.txt](https://github.com/auraoneai/aura3d/blob/main/llms.txt)
|
|
129
|
+
- [Character staging and lighting](references/stage-and-lighting.md)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Character staging and lighting
|
|
2
|
+
|
|
3
|
+
How to stage a rigged character so the animation itself is what a reviewer
|
|
4
|
+
sees.
|
|
5
|
+
|
|
6
|
+
## Stage
|
|
7
|
+
|
|
8
|
+
| Setup | When | Look | Frame |
|
|
9
|
+
| --- | --- | --- | --- |
|
|
10
|
+
| Showcase plinth | clip demos, locomotion cycles | `character-showcase` | full body, 60–70% of frame height |
|
|
11
|
+
| Walk path | locomotion proof | `outdoor-day` | character 25–40%, path leads forward |
|
|
12
|
+
| Fight pair | combat clips | `arena-fight` | both fighters inside spotlight pools |
|
|
13
|
+
| Interior | dialogue, visemes | `interior-warm` | head-and-torso, catchlights visible |
|
|
14
|
+
|
|
15
|
+
## Lighting reads for motion
|
|
16
|
+
|
|
17
|
+
- Rim light is what separates a moving silhouette from the backdrop — under
|
|
18
|
+
`night-city` or `arena-fight` the rim does more work than the key.
|
|
19
|
+
- Ground contact shadow sells weight: feet must plant inside the shadow blob,
|
|
20
|
+
not beside it (floating feet = `weak-shadow` / grounding lint).
|
|
21
|
+
- Golden-hour key gives long dramatic shadows for walk cycles; overcast gives
|
|
22
|
+
even exposure for cloth and morph inspection.
|
|
23
|
+
- Keep the palette quiet — one accent (cloth or trim) plus neutral stage
|
|
24
|
+
colors, so motion draws the eye instead of props.
|
|
25
|
+
|
|
26
|
+
## Camera for animation proof
|
|
27
|
+
|
|
28
|
+
- `follow` rig for locomotion (side-on for gait, 3/4 for turn animations).
|
|
29
|
+
- `orbit` for pose/morph inspection on a plinth.
|
|
30
|
+
- Cut between a wide framing (whole body, 60–70%) and a close framing
|
|
31
|
+
(head/visemes, 40%) — never mid-body crops that amputate feet.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aura3d-core
|
|
3
|
+
description: Orients an agent in Aura3D, maps three.js habits to `@aura3d/engine` APIs, routes visual work to art direction first, and sets claim labels. Use when starting any Aura3D task, scaffolding with `create-aura3d`, writing `createAuraApp` code, or before writing public examples, README text, or release claims.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Aura3D core
|
|
7
|
+
|
|
8
|
+
Aura3D is a TypeScript engine API, an asset CLI, templates, diagnostics, and a
|
|
9
|
+
deploy checker. You are not writing three.js; `createAuraApp(...)` owns the
|
|
10
|
+
renderer, scene graph, camera, and frame loop. Every scene gets a look — a
|
|
11
|
+
preset that owns environment light, key shadow, fog, background and grade.
|
|
12
|
+
Shared rules (claim labels, forbidden patterns, catalog-first, typed assets,
|
|
13
|
+
paid generation, benchmark mode) live once in
|
|
14
|
+
[references/boundaries.md](references/boundaries.md).
|
|
15
|
+
|
|
16
|
+
## Look target
|
|
17
|
+
|
|
18
|
+
Before any code, pick the look: read `aura3d-art-direction`'s recipe row for
|
|
19
|
+
the genre, note the look id, the post preset and the palette accent. A scene
|
|
20
|
+
without a look ships flat shading, void background and floating props.
|
|
21
|
+
|
|
22
|
+
## Establish the contract
|
|
23
|
+
|
|
24
|
+
1. Run `npx @aura3d/cli@latest --help` (or `pnpm exec aura3d --help` inside the
|
|
25
|
+
monorepo) and use only the commands and flags it prints.
|
|
26
|
+
2. Check the installed engine version in `package.json`. Do not name an export
|
|
27
|
+
you have not seen in the installed package's type declarations.
|
|
28
|
+
3. Read `src/aura-assets.ts` and `aura.assets.json` before writing scene code.
|
|
29
|
+
Asset keys come from that generated file, never from memory.
|
|
30
|
+
4. Decide the mode. Benchmark mode means `npm install && npm run build`, then
|
|
31
|
+
stop (run the look-dev loop instead when `aura3d look capture` exists).
|
|
32
|
+
|
|
33
|
+
## Procedure
|
|
34
|
+
|
|
35
|
+
1. Pick the starting point in this order: a template (`npx create-aura3d@latest
|
|
36
|
+
<dir> --template <name>`), then `sceneKits.*`, then `prefabs.*`, and use
|
|
37
|
+
`primitives.*` last, for set dressing only.
|
|
38
|
+
2. Add the look first — it supplies the sky/environment light, the key shadow,
|
|
39
|
+
fog, background and the post grade as one unit:
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import { createAuraApp, looks, model, scene } from "@aura3d/engine";
|
|
43
|
+
import { assets } from "./aura-assets";
|
|
44
|
+
|
|
45
|
+
createAuraApp("#app", {
|
|
46
|
+
scene: scene().add(looks.preset("product-studio")).add(model(assets.robot)),
|
|
47
|
+
...looks.appOptions("product-studio")
|
|
48
|
+
});
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
3. Translate any three.js instinct with this table:
|
|
52
|
+
|
|
53
|
+
| three.js habit | Aura3D |
|
|
54
|
+
| --- | --- |
|
|
55
|
+
| `Mesh` plus a glTF loader | `model(assets.x)` (typed asset) |
|
|
56
|
+
| `new Scene()` | `scene()` |
|
|
57
|
+
| `PerspectiveCamera` | `camera.perspective(...)`, `camera.rigs.*` |
|
|
58
|
+
| `AmbientLight` | `lights.hemisphere(...)` or the look fill |
|
|
59
|
+
| `DirectionalLight`/`PointLight` | the look's key/rim slots, `lights.*` |
|
|
60
|
+
| `scene.environment` + PMREM | `environments.studio`/`hdri`, `world.biome` |
|
|
61
|
+
| `toneMapping`, exposure | `output.preset`, the look's grade |
|
|
62
|
+
| `setPixelRatio` | `quality: "auto"` via `looks.appOptions` |
|
|
63
|
+
| `castShadow` | `shadow: true` |
|
|
64
|
+
| `EffectComposer` passes | `output.preset` + `effects.*` |
|
|
65
|
+
| `AnimationMixer` | `AnimationController` |
|
|
66
|
+
| OrbitControls | `interactions.orbit(...)` |
|
|
67
|
+
|
|
68
|
+
4. If the prompt names a real object, resolve it through the catalog before
|
|
69
|
+
writing model code (load `aura3d-assets`).
|
|
70
|
+
5. Load the next skill from the routing table below. Load more than one when
|
|
71
|
+
the task spans them.
|
|
72
|
+
6. Never assemble characters, athletes, enemies, vehicles, aircraft, trees, or
|
|
73
|
+
architectural landmarks out of `primitives.box`, `primitives.sphere`, or
|
|
74
|
+
`primitives.cylinder` (keep every silhouette, look, and style readable):
|
|
75
|
+
every hero subject, lighting, and shadow requires a real 3D GLB via
|
|
76
|
+
`model(assets.<name>, { targetMaxDimension, role })` from `src/aura-assets.ts`
|
|
77
|
+
(use `targetHeight` only for upright humanoids and `targetMaxDimension` for
|
|
78
|
+
vehicles, rackets, weapons, barriers, and wide props so aspect ratios and
|
|
79
|
+
silhouettes stay proportional). Drive rigged characters (`skins > 0`) with
|
|
80
|
+
`handle.setAnimation({ clip, loop: true, speed })` so limbs articulate under
|
|
81
|
+
the key light and shadow rather than sliding as rigid statues.
|
|
82
|
+
7. For interactive and game routes, gate Frame 1 on `await app.ready()` before
|
|
83
|
+
fading `#boot-gate` so lighting, shadow, and GLB silhouettes are fully
|
|
84
|
+
mounted; default `autopilot` to `false` (manual control on Frame 1) unless
|
|
85
|
+
`?autoplay=1` / `?demo=1` is in the URL or the user clicks the HUD `Auto`
|
|
86
|
+
button (with `button.blur()` for clean framing). Pass
|
|
87
|
+
`qualityRebuild: { flags: ["game", "-compiler", "-post", "-vfxFog"] }` when
|
|
88
|
+
fast arcade contrast and frame pacing are required, decimate Meshy GLBs
|
|
89
|
+
(`<= 20,000` vertices, `<= 2 MB`, 16-bit indices, `<= 1024x1024` textures for
|
|
90
|
+
sharp reflection and palette), keep canonical `sha256-...` `hash` provenance
|
|
91
|
+
in `defineAuraAssets(...)` for clean look and silhouette, and mutate runtime
|
|
92
|
+
node handles (`app.nodes.require(...)`) instead of calling `app.setScene()`
|
|
93
|
+
on same-stage restarts so lighting, shadow, and postprocess grade never drop.
|
|
94
|
+
|
|
95
|
+
## Routing table
|
|
96
|
+
|
|
97
|
+
| Task signal | Load |
|
|
98
|
+
| --- | --- |
|
|
99
|
+
| Any visual task, screenshot looks flat/dark/empty, starting or finishing a scene | `aura3d-art-direction` (first) |
|
|
100
|
+
| Prompt to scene or route, scene kits, `definePromptPlan` | `aura3d-scene-authoring` |
|
|
101
|
+
| Named real object, user GLB, `assets search/resolve/add` | `aura3d-assets` |
|
|
102
|
+
| Done, public, shippable, screenshots, claims, `check-deploy` | `aura3d-evidence-review` |
|
|
103
|
+
| `mini-game`, `racing-starter`, `falling-blocks-starter`, `fighting-game`, `character-controller` | `aura3d-browser-game` |
|
|
104
|
+
| Rigged humanoids, clips, locomotion, morphs, visemes | `aura3d-character-animation` |
|
|
105
|
+
| `animation-studio` template, `aura3d animation scene`, episodes | `aura3d-animation-studio` |
|
|
106
|
+
| Porting three.js code, migration templates (formerly `three-compat-*`) | `aura3d-threejs-migration` |
|
|
107
|
+
| Materials, textures, HDRI, skies, water, weather | `aura3d-materials-environments` |
|
|
108
|
+
| Flipbook VFX sheets, HUD icons, UI sprites | `aura3d-game-art` |
|
|
109
|
+
| Restyling a finished mesh without touching geometry | `aura3d-retexture` |
|
|
110
|
+
| Frame time, bundle size, KTX2, LOD, instancing | `aura3d-performance` |
|
|
111
|
+
| No clean catalog candidate, Meshy generation or import | `meshy-cli` |
|
|
112
|
+
|
|
113
|
+
A listed skill that is not installed in this project is a gap to report, not
|
|
114
|
+
permission to improvise its procedure.
|
|
115
|
+
|
|
116
|
+
## Look-dev loop
|
|
117
|
+
|
|
118
|
+
Capture the route with `aura3d look capture`, judge each frame against the
|
|
119
|
+
quality-bar rubric, fix the single highest-leverage issue (lint codes first),
|
|
120
|
+
and repeat until every category reads 7+ or the loop exits flat. The full loop
|
|
121
|
+
spec lives in `aura3d-art-direction`.
|
|
122
|
+
|
|
123
|
+
## Stop and report
|
|
124
|
+
|
|
125
|
+
- The CLI help does not list a command you need: stop, name the missing
|
|
126
|
+
command, and label the work `blocked`.
|
|
127
|
+
- A required asset key is missing from `src/aura-assets.ts`: stop and fix the
|
|
128
|
+
import. Do not substitute a string id, URL, or primitive.
|
|
129
|
+
- The claim you are about to write has no matching browser evidence: lower it
|
|
130
|
+
to `prototype` or `roadmap` per boundaries.md — claim labels are a one-line
|
|
131
|
+
link, not a restatement.
|
|
132
|
+
- The task needs paid generation and no approval exists: stop at the dry run.
|
|
133
|
+
- Benchmark mode: after `npm install && npm run build`, stop and report the
|
|
134
|
+
runner-owned launch and capture command.
|
|
135
|
+
|
|
136
|
+
## References
|
|
137
|
+
|
|
138
|
+
- [Shared boundaries](references/boundaries.md)
|
|
139
|
+
- [Agent guide llms.txt](https://github.com/auraoneai/aura3d/blob/main/llms.txt)
|
|
140
|
+
- [Claims and boundaries](https://github.com/auraoneai/aura3d/blob/main/docs/agents/claims-and-boundaries.md)
|
|
141
|
+
- [No hackjob rules](https://github.com/auraoneai/aura3d/blob/main/docs/agents/no-hackjob-rules.md)
|
|
142
|
+
- [Anti-hallucination rules](https://github.com/auraoneai/aura3d/blob/main/docs/agents/anti-hallucination-rules.md)
|
|
143
|
+
- [Agent quickstart](https://aura3d.auraone.ai/docs/agent-quickstart.html)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Aura3D shared boundaries
|
|
2
|
+
|
|
3
|
+
Every Aura3D skill links here instead of restating these rules. The full
|
|
4
|
+
policy is in [claims and boundaries](https://github.com/auraoneai/aura3d/blob/main/docs/agents/claims-and-boundaries.md)
|
|
5
|
+
and the [agent guide](https://github.com/auraoneai/aura3d/blob/main/llms.txt).
|
|
6
|
+
|
|
7
|
+
## Claim labels
|
|
8
|
+
|
|
9
|
+
Label every capability with exactly one of these:
|
|
10
|
+
|
|
11
|
+
| Label | Meaning | Minimum evidence |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| `createAuraApp` root safe API | A browser route imports only `@aura3d/engine` and mounts through `createAuraApp(...)`. | Build, route-health or equivalent diagnostics, typed asset manifest, browser screenshot, claim-specific pixel or runtime assertion. |
|
|
14
|
+
| `production-runtime` | Exists in production-runtime packages or adapters, not necessarily root APIs. | Package or browser tests for that package, worded without implying root support. |
|
|
15
|
+
| `rendering` package | Exists in the lower-level `@aura3d/rendering` package. | Package exports plus renderer unit or browser evidence, worded at package level. |
|
|
16
|
+
| CLI asset pipeline | Asset search, add, resolve, validation, provenance, typegen, thumbnails, deploy checks. | CLI output, `aura.assets.json`, `src/aura-assets.ts`, license metadata, validation reports. |
|
|
17
|
+
| Template-only scaffold | A template starts a project; it does not prove production capability. | Template generation smoke test and honest scaffold wording. |
|
|
18
|
+
| `prototype` | Illustrates direction without release-quality evidence. | Prototype label and no flagship or production wording. |
|
|
19
|
+
| `roadmap` | Planned, not implemented or not public. | Future tense and a linked issue or PRD item. |
|
|
20
|
+
|
|
21
|
+
When evidence is missing, use `prototype` or `roadmap`. A route that loads,
|
|
22
|
+
compiles, or produces a large screenshot is not proof.
|
|
23
|
+
|
|
24
|
+
## Forbidden patterns
|
|
25
|
+
|
|
26
|
+
- no raw string asset IDs, raw GLB/glTF URLs, `unsafeModelUrl(...)`, `three` imports, or `GLTFLoader` in public examples;
|
|
27
|
+
- no primary character, vehicle, product, weapon, creature, world, or hero environment made only from primitives unless the route is explicitly abstract visualization;
|
|
28
|
+
- no CSS/DOM particle implementation for examples claiming Aura3D particle rendering;
|
|
29
|
+
- no WebGPU, PBR, postprocess, skinned animation, morph, or game-runtime claim without matching browser evidence;
|
|
30
|
+
- no public showcase or README claim that exceeds detected capability, route-health evidence, or screenshots.
|
|
31
|
+
|
|
32
|
+
Related prohibitions from the same sources: no hand-wired renderer, scene, or
|
|
33
|
+
camera loop; no memorized or guessed model URLs (they are hallucinated
|
|
34
|
+
provenance); no `createAuraApp()` call per frame; no CSS, DOM, or canvas
|
|
35
|
+
overlay standing in for 3D effects, labels on models, or renderer output.
|
|
36
|
+
|
|
37
|
+
## Catalog-first rule
|
|
38
|
+
|
|
39
|
+
A prompt that names a real object resolves through the asset catalog before
|
|
40
|
+
any model code: `npx @aura3d/cli@latest assets search "<descriptive phrase>"`,
|
|
41
|
+
then `assets resolve "<phrase>" --name <key>` for an auto-pullable candidate.
|
|
42
|
+
Auto-pullable means verified, redistributable (CC0 or CC-BY), and
|
|
43
|
+
direct-download. Marketplace and deep-link results are user-handled: the user
|
|
44
|
+
downloads and licenses them, then admits the file with `assets add`.
|
|
45
|
+
Primitives are set dressing around a resolved asset, never the named subject.
|
|
46
|
+
|
|
47
|
+
## Typed-asset rule
|
|
48
|
+
|
|
49
|
+
1. Admit every file through the CLI (`assets add`, `assets resolve`, or
|
|
50
|
+
`assets import-meshy`) so it is hashed, inspected, and recorded in
|
|
51
|
+
`aura.assets.json`.
|
|
52
|
+
2. Read the generated `src/aura-assets.ts` and import `assets` from
|
|
53
|
+
`./aura-assets`.
|
|
54
|
+
3. Render with `model(assets.<key>)` or a kit such as
|
|
55
|
+
`sceneKits.productViewer(assets.<key>)`, using the exact generated key.
|
|
56
|
+
4. Place with render-normalized helpers such as
|
|
57
|
+
`groundedRenderedAssetPlacement(...)`, not raw bounds math.
|
|
58
|
+
|
|
59
|
+
If the key you need is missing, fix the import. Never fall back to a string
|
|
60
|
+
id, a URL, a copied GLB, or a draft artifact path.
|
|
61
|
+
|
|
62
|
+
## Paid generation controls (Meshy)
|
|
63
|
+
|
|
64
|
+
- Catalog first. Generation is a fallback after a reported catalog rejection.
|
|
65
|
+
- Run `meshy make ... --dry-run` and show the plan before any paid call.
|
|
66
|
+
- Get explicit user approval for the displayed maximum, then pass
|
|
67
|
+
`--max-credits <approved>` on the paid command. Prices are never assumed.
|
|
68
|
+
- Resume recorded task IDs. Do not repeat paid work that already succeeded.
|
|
69
|
+
- Download immediately with `-o artifacts/meshy/<asset>/`. Provider retention
|
|
70
|
+
is short and signed URLs expire.
|
|
71
|
+
- Keep credentials out of arguments, prompts, logs, commits, and output.
|
|
72
|
+
- Admit through `assets import-meshy` with rights evidence. Import defaults to
|
|
73
|
+
`candidate` quality and never certifies release quality.
|
|
74
|
+
|
|
75
|
+
## Benchmark mode versus normal mode
|
|
76
|
+
|
|
77
|
+
| | Benchmark mode | Normal mode |
|
|
78
|
+
| --- | --- | --- |
|
|
79
|
+
| Starting point | `sceneKits.<name>()` first, `prefabs.*` if needed, primitives only for small additions | Template, kit, prefab, primitives last |
|
|
80
|
+
| Commands | `npm install && npm run build`, then stop | `npm run build`, `npm run test`, asset validation, `check-deploy` |
|
|
81
|
+
| Forbidden in the agent process | `npm run dev`, `npm run preview`, Playwright, screenshot capture, manual visual review | Nothing extra; heavy browser suites still run in CI or a remote runner |
|
|
82
|
+
| Report | Build output and the runner-owned capture command | Evidence bundle and a claim label |
|
|
83
|
+
|
|
84
|
+
A nonblank screenshot is not enough in either mode. The image must visibly
|
|
85
|
+
match the prompt.
|
|
86
|
+
|
|
87
|
+
## Evidence language
|
|
88
|
+
|
|
89
|
+
Say `reported` for another agent's claim, `recorded` for a manifest or board
|
|
90
|
+
entry, `verified` only for something you opened or ran (and state the scope),
|
|
91
|
+
and `unknown` when you cannot establish current state.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aura3d-evidence-review
|
|
3
|
+
description: Reviews Aura3D work before it is called done, public, or shippable by collecting route-health, screenshots, visual QA, asset release checks, and `check-deploy` output, then choosing a claim label through a capped critique loop. Use when finishing a route or template, writing README or showcase claims, comparing catalog versus Meshy candidates, capturing thumbnails or posters with `assets thumbnail`, or running `assets validate --release` and `check-deploy`.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Aura3D evidence review
|
|
7
|
+
|
|
8
|
+
A compiling route is not proof. This skill turns a finished change into an
|
|
9
|
+
evidence bundle and one claim label — claim labels live here only; other
|
|
10
|
+
skills link to them, never restate or reinterpret them. Label meanings and the
|
|
11
|
+
benchmark exception are in [boundaries](../aura3d-core/references/boundaries.md).
|
|
12
|
+
|
|
13
|
+
## Establish the contract
|
|
14
|
+
|
|
15
|
+
1. Run `npx @aura3d/cli@latest --help` and confirm `assets validate`,
|
|
16
|
+
`assets thumbnail`, and `check-deploy` are listed.
|
|
17
|
+
2. Read `package.json` scripts. Templates gate on `npm run build` and
|
|
18
|
+
`npm run test` (route-health and screenshot specs under `tests/`).
|
|
19
|
+
3. Read `aura.assets.json` and `src/aura-assets.ts` so you know which typed
|
|
20
|
+
assets the route claims.
|
|
21
|
+
4. Decide the mode. Benchmark mode: run `npm install && npm run build`, report
|
|
22
|
+
the output and the runner-owned capture command, then stop. Skip every
|
|
23
|
+
step below.
|
|
24
|
+
|
|
25
|
+
## Procedure
|
|
26
|
+
|
|
27
|
+
1. Pre-register the rubric before looking at output. Write 3 to 6 checks
|
|
28
|
+
taken from the prompt and the claim you intend to make, for example
|
|
29
|
+
"product centered and seated", "studio lighting visible", "metal and rubber
|
|
30
|
+
read differently". Add the role evidence from `aura3d-assets`.
|
|
31
|
+
2. Run the local finite gates.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm run build
|
|
35
|
+
npx @aura3d/cli@latest assets validate --source --no-placeholders --require-license
|
|
36
|
+
npx @aura3d/cli@latest assets validate --release
|
|
37
|
+
npx @aura3d/cli@latest check-deploy --dist dist --release
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Read `failures` in the JSON, not only the exit code. Keep the reports.
|
|
41
|
+
3. Run the browser gate (`npm run test`) in CI or a remote runner, not in the
|
|
42
|
+
local agent process. It writes route-health output and
|
|
43
|
+
`tests/reports/screenshot.png` plus pixel metrics. Capture desktop and
|
|
44
|
+
mobile viewports and retain the PNGs with hashes.
|
|
45
|
+
4. For kit-based or prompt-plan scenes, collect structured evidence:
|
|
46
|
+
`collectAuraSceneEvidence(scene)` for bodies, cameras, clips, and asset
|
|
47
|
+
provenance; `app.diagnostics().look` (resolved look, expansion, lint
|
|
48
|
+
findings); and `compilePromptPlan(plan).report.repairHints`. Structural
|
|
49
|
+
name heuristics exist under `structuralQA.*` — they are diagnostics, never
|
|
50
|
+
acceptance evidence.
|
|
51
|
+
5. Open the screenshots yourself and grade each rubric item `pass`, `warn`,
|
|
52
|
+
or `fail` in one batch. Every verdict cites a file: a PNG, a report field,
|
|
53
|
+
or a validation failure line.
|
|
54
|
+
6. Critique loop, at most 6 rounds for visual findings (the look-dev loop).
|
|
55
|
+
For each `fail`, apply the highest-leverage fix — lint codes first, then
|
|
56
|
+
the lowest rubric category (a repair hint, the matching scene kit, a better
|
|
57
|
+
typed asset), rerun only the affected gates, and regrade. Do not change
|
|
58
|
+
labels, rubric items, or thresholds to make a round pass.
|
|
59
|
+
7. Grade cinematic scenes on the ladder: L0 text only, L1 primitive sketch,
|
|
60
|
+
L2 asset-backed draft, L3 realtime cinematic scene, L4 production handoff.
|
|
61
|
+
Only L3 or better is public product proof.
|
|
62
|
+
8. Bake-offs: when comparing a catalog candidate against a Meshy candidate,
|
|
63
|
+
use one brief, one rubric, one camera and lighting setup, and the same
|
|
64
|
+
gates for both. Report both verdict sets and pick on evidence, not source.
|
|
65
|
+
9. Thumbnails and posters: run `npx @aura3d/cli@latest assets thumbnail` for
|
|
66
|
+
manifest thumbnails, and use the screenshot spec output as the poster.
|
|
67
|
+
Marketing previews use a static approved poster unless the live embed
|
|
68
|
+
passes the same gates as the route.
|
|
69
|
+
10. Choose the label and write the claim at exactly that strength. Record
|
|
70
|
+
the prompt, typed asset keys, screenshot paths, route-health report,
|
|
71
|
+
verdicts, label, and next action.
|
|
72
|
+
|
|
73
|
+
## What does not count
|
|
74
|
+
|
|
75
|
+
- blank, cropped, tiny, or unreadable screenshots, or PNG size alone;
|
|
76
|
+
- renderer-internal imports offered as root API proof;
|
|
77
|
+
- CSS, DOM, or canvas stand-ins for particles, bloom, lighting, or labels;
|
|
78
|
+
- stale route-health that names assets the source no longer uses;
|
|
79
|
+
- `structuralQA`/`visualQA` name-heuristic output as acceptance evidence — it
|
|
80
|
+
diagnoses, it does not prove pixels;
|
|
81
|
+
- an in-repo scorer as release proof (use a neutral human or opposite-vendor
|
|
82
|
+
model reviewer);
|
|
83
|
+
- a report generated with missing evidence inputs, even when it exits 0.
|
|
84
|
+
|
|
85
|
+
## Stop and report
|
|
86
|
+
|
|
87
|
+
- A gate command is missing from the installed CLI or scripts: label the
|
|
88
|
+
work `blocked`, name the missing gate, and do not substitute a weaker check.
|
|
89
|
+
- `assets validate --release` lists provenance failures: label `prototype`
|
|
90
|
+
until durable evidence exists.
|
|
91
|
+
- After 6 critique rounds any rubric item still fails: stop, report the
|
|
92
|
+
failing items with their evidence, and label `prototype`.
|
|
93
|
+
- Browser evidence could not be captured (no capture runner available): the
|
|
94
|
+
claim stays `prototype` AND the report names which look-dev loop step
|
|
95
|
+
failed (capture, judge, or lint); do not describe visual results you did
|
|
96
|
+
not see.
|
|
97
|
+
- The claim needs WebGPU, PBR, postprocess, skinned animation, morph, or game
|
|
98
|
+
runtime proof and the pixels do not show it: remove the claim.
|
|
99
|
+
|
|
100
|
+
## References
|
|
101
|
+
|
|
102
|
+
- [Boundaries](../aura3d-core/references/boundaries.md)
|
|
103
|
+
- [Verification](https://github.com/auraoneai/aura3d/blob/main/docs/agents/verification.md)
|
|
104
|
+
- [Rendering proof required](https://github.com/auraoneai/aura3d/blob/main/docs/agents/rendering-proof-required.md)
|
|
105
|
+
- [Cinematic scene quality](https://github.com/auraoneai/aura3d/blob/main/docs/agents/cinematic-scene-quality.md)
|
|
106
|
+
- [Deployment](https://aura3d.auraone.ai/docs/deployment.html)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aura3d-game-art
|
|
3
|
+
description: Produces 2D game art that a real Aura3D consumer uses: flipbook VFX sprite sheets for `effects.flipbook` (the `flipbook-sprite` effect with `spriteColumns` / `spriteRows`) and HUD icons or UI sprites for DOM overlays, each admitted as a typed texture asset. Use when a game template (`mini-game`, `racing-starter`, `falling-blocks-starter`, `fighting-game`) needs explosion, muzzle-flash, or hit VFX sheets, HUD icons, score or health sprites, or a style-consistent batch of UI art.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Aura3D game art (flipbook VFX and HUD sprites)
|
|
7
|
+
|
|
8
|
+
Only two consumers exist, so only two kinds of art are produced: flipbook
|
|
9
|
+
sheets for the `flipbook-sprite` effect and icons for the DOM HUD. Tilesets
|
|
10
|
+
are out of scope: no 2D tile runtime consumes them, so 3D levels come from
|
|
11
|
+
`aura3d-browser-game` and `aura3d-assets`. Shared rules (claim labels, typed
|
|
12
|
+
assets, CSS/DOM is UI only, benchmark mode) are in
|
|
13
|
+
[../aura3d-core/references/boundaries.md](../aura3d-core/references/boundaries.md).
|
|
14
|
+
|
|
15
|
+
## Look target
|
|
16
|
+
|
|
17
|
+
Sprites live or die by the route's look: a flipbook explosion pops against a
|
|
18
|
+
night-city grade and washes out under `product-studio` key light. Design the
|
|
19
|
+
sheet against the genre recipe palette (see
|
|
20
|
+
`aura3d-art-direction/references/look-recipes.md`) — emissive colors 3–5×
|
|
21
|
+
background luminance read as glow through bloom; flat fills read as UI, not
|
|
22
|
+
VFX. Keep alpha edges clean: the frame's fog and grade will expose halos the
|
|
23
|
+
texture viewer hides.
|
|
24
|
+
|
|
25
|
+
## Establish the contract
|
|
26
|
+
|
|
27
|
+
1. Run `npx @aura3d/cli@latest --help` and read the `assets add` line.
|
|
28
|
+
2. Read `src/aura-assets.ts` and `aura.assets.json`, and find the consumer
|
|
29
|
+
first: the `effects.flipbook(...)` call, or the HUD element in `src/main.ts`
|
|
30
|
+
(the `mini-game` HUD is a DOM `aside`). No consumer means no art.
|
|
31
|
+
3. Know the flipbook state. `effects.flipbook` records validated sheet
|
|
32
|
+
geometry (`spriteColumns`, `spriteRows`, `frameRate`) but the root renderer
|
|
33
|
+
has no sprite-sheet sampler yet and submits no flipbook pass.
|
|
34
|
+
`renderer.diagnostics(scene)` reports the warning "flipbook-sprite is
|
|
35
|
+
recorded but withheld". Any route relying on it is `prototype` for that
|
|
36
|
+
effect.
|
|
37
|
+
4. Benchmark mode: `npm install && npm run build`, then stop.
|
|
38
|
+
|
|
39
|
+
## Procedure
|
|
40
|
+
|
|
41
|
+
Flipbook VFX sheets:
|
|
42
|
+
|
|
43
|
+
1. Fix the grid before producing art: columns, rows, frame count, and cell
|
|
44
|
+
size (for example 8 x 4 at 64 px per cell makes a 512 x 256 sheet with up
|
|
45
|
+
to 32 frames). Frames run left to right, top row first; that is the order
|
|
46
|
+
`resolveFlipbookUv(frame, columns, rows)` in `@aura3d/rendering` maps to
|
|
47
|
+
UVs.
|
|
48
|
+
2. Author every frame in its own cell with the effect centered, a
|
|
49
|
+
transparent background, and no bleed across cell edges. Keep a frame
|
|
50
|
+
inventory (index to description) next to the file.
|
|
51
|
+
3. Pre-flight the file with the bundled checker:
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
node .agents/skills/aura3d-game-art/references/sheet-check.mjs ./art/explosion.png --columns 8 --rows 4 --frames 30
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
(Adjust the path to wherever your agent client installed this skill.) It
|
|
58
|
+
fails when the width or height does not divide by the grid, when the frame
|
|
59
|
+
count exceeds the grid, or when the PNG has no alpha channel. It does not
|
|
60
|
+
inspect pixels, so review the transparent background and edges visually.
|
|
61
|
+
4. Admit it as a typed texture with provenance:
|
|
62
|
+
|
|
63
|
+
```sh
|
|
64
|
+
npx @aura3d/cli@latest assets add ./art/explosion.png --name explosionSheet --type texture --license CC0-1.0 --author "<author>" --quality candidate
|
|
65
|
+
npx @aura3d/cli@latest assets typegen
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
5. Declare the effect with the same grid:
|
|
69
|
+
`effects.flipbook({ spriteColumns: 8, spriteRows: 4, frameRate: 24 })`.
|
|
70
|
+
Mismatched or non-integer values throw a `RangeError` (fail loud); never
|
|
71
|
+
catch and ignore it. The effect has no texture slot today, so the sheet is
|
|
72
|
+
ready for the sampler but not yet drawn.
|
|
73
|
+
|
|
74
|
+
HUD icons and UI sprites:
|
|
75
|
+
|
|
76
|
+
6. Produce PNG or WebP icons (SVG is not an accepted asset format) at 1x and
|
|
77
|
+
2x, on a transparent background, sized to the HUD slot.
|
|
78
|
+
7. Admit each with `assets add ... --type texture`, then reference the
|
|
79
|
+
typed URL in DOM markup, for example an `<img>` whose `src` is
|
|
80
|
+
`assets.hudHeart.url`, mounted with `ui.html(...)` or the template's HUD
|
|
81
|
+
element. Give every icon a text alternative (`alt`, or `aria-label` on the
|
|
82
|
+
control).
|
|
83
|
+
8. DOM and CSS are allowed for UI only. Never use them for particles,
|
|
84
|
+
explosions, hit sparks, or anything claimed as rendered 3D VFX.
|
|
85
|
+
|
|
86
|
+
Style-consistent batches:
|
|
87
|
+
|
|
88
|
+
9. Write one style sheet before the batch: palette (hex values), outline
|
|
89
|
+
weight, light direction, and cell or icon size. Produce every item against
|
|
90
|
+
it, then review the batch side by side and redo outliers instead of
|
|
91
|
+
shipping a mixed set.
|
|
92
|
+
10. Generated images (from an image skill outside Aura3D) are candidates:
|
|
93
|
+
keep them under `artifacts/`, admit them with `--quality candidate`, and
|
|
94
|
+
run the same checks.
|
|
95
|
+
11. Normal mode: capture the HUD on desktop and mobile through `npm run test`
|
|
96
|
+
on CI or a remote worker, then hand claim wording to
|
|
97
|
+
`aura3d-evidence-review`.
|
|
98
|
+
|
|
99
|
+
## Stop and report
|
|
100
|
+
|
|
101
|
+
- The sheet fails `sheet-check.mjs`, or frames bleed across cells: fix the
|
|
102
|
+
sheet; do not change the grid in code to paper over it.
|
|
103
|
+
- The route's VFX depends on flipbook pixels: label that effect `prototype`
|
|
104
|
+
and quote the withheld warning. Do not fake it with CSS, a DOM overlay, or
|
|
105
|
+
an animated `<img>` on top of the canvas.
|
|
106
|
+
- Someone asks for a tileset: decline it and route level work to
|
|
107
|
+
`aura3d-browser-game`.
|
|
108
|
+
- A file has no license or author: do not admit it.
|
|
109
|
+
|
|
110
|
+
## References
|
|
111
|
+
|
|
112
|
+
- [Flipbook UV math (`@aura3d/rendering`)](https://github.com/auraoneai/aura3d/blob/main/packages/rendering/src/SpriteFlipbook.ts)
|
|
113
|
+
- [Flipbook and beam root builder test](https://github.com/auraoneai/aura3d/blob/main/tests/unit/engine/phase2-root-bridge.test.ts)
|
|
114
|
+
- [Flipbook browser harness](https://github.com/auraoneai/aura3d/blob/main/tests/browser/d4-flipbook-beam-harness.ts)
|
|
115
|
+
- [Mini-game template HUD](https://github.com/auraoneai/aura3d/blob/main/packages/create-aura3d/templates/mini-game/src/main.ts)
|
|
116
|
+
- [Build a browser game guide](https://github.com/auraoneai/aura3d/blob/main/docs/guides/build-a-browser-game.md)
|
|
117
|
+
- [Sheet checker](references/sheet-check.mjs)
|
|
118
|
+
- [Sprite and flipbook palettes](references/sprite-palettes.md)
|