create-aura3d 3.0.0 → 4.0.0
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 +1 -1
- package/dist/agent-skills.d.ts +38 -0
- package/dist/agent-skills.d.ts.map +1 -0
- package/dist/agent-skills.js +103 -0
- package/dist/agent-skills.js.map +1 -0
- package/dist/cli.js +32 -5
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +32 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -10
- package/dist/index.js.map +1 -1
- package/dist/showcase-spec-artifacts.d.ts +1 -1
- package/dist/showcase-spec-game-geometry-extractor.js +8 -11
- package/dist/showcase-spec-game-geometry-extractor.js.map +1 -1
- package/dist/template-hdri.d.ts +12 -0
- package/dist/template-hdri.d.ts.map +1 -0
- package/dist/template-hdri.js +49 -0
- package/dist/template-hdri.js.map +1 -0
- package/hdri/ATTRIBUTION.md +8 -0
- package/hdri/autumn_field_puresky_1k.hdr +0 -0
- package/hdri/kloppenheim_06_puresky_1k.hdr +0 -0
- package/hdri/night-2k.hdr +0 -0
- package/hdri/studio_small_08_1k.hdr +0 -0
- package/package.json +14 -10
- 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 +132 -0
- package/skills/aura3d-assets/references/preview-under-look.md +26 -0
- package/skills/aura3d-browser-game/SKILL.md +127 -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 +121 -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 +117 -0
- package/skills/manifest.json +163 -0
- package/skills/meshy-cli/SKILL.md +133 -0
- package/templates/animation-channel/.claude/CLAUDE.md +3 -0
- package/templates/animation-channel/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/animation-channel/AGENTS.md +3 -0
- package/templates/animation-channel/package.json +4 -3
- package/templates/animation-channel/src/main.ts +5 -6
- package/templates/animation-channel/src/render-plan.ts +5 -3
- package/templates/animation-channel/tests/look-floor.ts +270 -0
- package/templates/animation-channel/tests/route-health.spec.ts +13 -0
- package/templates/animation-channel/tests/screenshot.spec.ts +10 -5
- package/templates/animation-channel/vite.config.ts +7 -0
- package/templates/animation-studio/.claude/CLAUDE.md +3 -0
- package/templates/animation-studio/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/animation-studio/AGENTS.md +2 -70
- package/templates/animation-studio/package.json +5 -4
- package/templates/animation-studio/public/aura-assets/luma.thumb.svg +1 -1
- package/templates/animation-studio/public/aura-assets/miko.thumb.svg +1 -1
- package/templates/{falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.thumb.svg → animation-studio/public/aura-assets/moonGarden.thumb.svg} +1 -1
- package/templates/animation-studio/scripts/build-clip-library.ts +6 -5
- package/templates/animation-studio/scripts/resolve-asset.ts +7 -4
- package/templates/animation-studio/src/asset-contract.ts +19 -0
- package/templates/animation-studio/src/aura-assets.ts +651 -54
- package/templates/animation-studio/src/scene-player.ts +6 -6
- package/templates/animation-studio/src/set-templates.ts +13 -9
- package/templates/animation-studio/tests/look-floor.ts +270 -0
- package/templates/animation-studio/tests/route-health.spec.ts +2 -2
- package/templates/animation-studio/tests/screenshot.spec.ts +18 -10
- package/templates/animation-studio/vite.config.ts +2 -0
- package/templates/architecture-interior/.claude/CLAUDE.md +3 -0
- package/templates/architecture-interior/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/architecture-interior/AGENTS.md +3 -0
- package/templates/architecture-interior/README.md +16 -0
- package/templates/architecture-interior/aura.assets.json +24 -0
- package/templates/architecture-interior/package.json +24 -0
- package/templates/architecture-interior/public/aura-assets/kenneyModularDungeonRoomSmall.a7e74a5f.glb +0 -0
- package/templates/architecture-interior/src/aura-assets.ts +16 -0
- package/templates/architecture-interior/src/main.ts +23 -0
- package/templates/architecture-interior/tests/look-floor.ts +270 -0
- package/templates/{three-compat-architecture-interior → architecture-interior}/tests/route-health.spec.ts +3 -3
- package/templates/architecture-interior/tests/screenshot.spec.ts +21 -0
- package/templates/architecture-interior/vite.config.ts +7 -0
- package/templates/arena-shooter/.claude/CLAUDE.md +3 -0
- package/templates/arena-shooter/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/arena-shooter/AGENTS.md +3 -0
- package/templates/arena-shooter/README.md +45 -0
- package/templates/arena-shooter/aura.assets.json +62 -0
- package/templates/arena-shooter/index.html +32 -0
- package/templates/arena-shooter/package.json +23 -0
- package/templates/arena-shooter/playwright.config.ts +15 -0
- package/templates/arena-shooter/public/aura-assets/craft_miner.de323205.glb +0 -0
- package/templates/arena-shooter/public/aura-assets/craft_racer.bce8cb3d.glb +0 -0
- package/templates/arena-shooter/public/aura-assets/meteor_detailed.f30379ab.glb +0 -0
- package/templates/arena-shooter/src/aura-assets.ts +56 -0
- package/templates/arena-shooter/src/main.ts +616 -0
- package/templates/arena-shooter/tests/look-floor.ts +270 -0
- package/templates/arena-shooter/tests/playable.spec.ts +56 -0
- package/templates/arena-shooter/tests/route-health.spec.ts +87 -0
- package/templates/arena-shooter/tests/screenshot.spec.ts +22 -0
- package/templates/arena-shooter/tsconfig.json +15 -0
- package/templates/arena-shooter/vite.config.ts +7 -0
- package/templates/asset-inspector/.claude/CLAUDE.md +3 -0
- package/templates/asset-inspector/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/asset-inspector/AGENTS.md +3 -0
- package/templates/asset-inspector/README.md +13 -0
- package/templates/asset-inspector/aura.assets.json +24 -0
- package/templates/{three-compat-custom-threejs-migration → asset-inspector}/package.json +6 -4
- package/templates/asset-inspector/public/aura-assets/kenneyCarKitSedanSports.2889c428.glb +0 -0
- package/templates/asset-inspector/src/aura-assets.ts +16 -0
- package/templates/asset-inspector/src/main.ts +23 -0
- package/templates/asset-inspector/tests/look-floor.ts +270 -0
- package/templates/{three-compat-character-viewer → asset-inspector}/tests/route-health.spec.ts +3 -3
- package/templates/asset-inspector/tests/screenshot.spec.ts +21 -0
- package/templates/asset-inspector/vite.config.ts +7 -0
- package/templates/character-controller/.claude/CLAUDE.md +3 -0
- package/templates/character-controller/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/character-controller/AGENTS.md +3 -0
- package/templates/character-controller/README.md +7 -1
- package/templates/character-controller/aura.assets.json +29 -22
- package/templates/character-controller/index.html +4 -5
- package/templates/character-controller/package.json +6 -5
- package/templates/character-controller/playwright.config.ts +1 -0
- package/templates/character-controller/public/aura-assets/auraclash-player-rig.glb +0 -0
- package/templates/character-controller/src/aura-assets.ts +25 -7
- package/templates/character-controller/src/main.ts +190 -47
- package/templates/character-controller/tests/certified-rig.spec.ts +2 -2
- package/templates/character-controller/tests/look-floor.ts +270 -0
- package/templates/character-controller/tests/route-health.spec.ts +49 -4
- package/templates/character-controller/tests/screenshot.spec.ts +17 -5
- package/templates/character-controller/vite.config.ts +7 -0
- package/templates/character-viewer/.claude/CLAUDE.md +3 -0
- package/templates/character-viewer/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/character-viewer/AGENTS.md +3 -0
- package/templates/character-viewer/README.md +13 -0
- package/templates/character-viewer/aura.assets.json +24 -0
- package/templates/{three-compat-asset-inspector → character-viewer}/package.json +6 -4
- package/templates/character-viewer/public/aura-assets/kenneyMiniForestCharacterArcher.0fd0f92e.glb +0 -0
- package/templates/character-viewer/src/aura-assets.ts +16 -0
- package/templates/character-viewer/src/main.ts +21 -0
- package/templates/character-viewer/tests/look-floor.ts +270 -0
- package/templates/{three-compat-custom-threejs-migration → character-viewer}/tests/route-health.spec.ts +3 -3
- package/templates/character-viewer/tests/screenshot.spec.ts +21 -0
- package/templates/character-viewer/vite.config.ts +7 -0
- package/templates/cinematic-scene/.claude/CLAUDE.md +3 -0
- package/templates/cinematic-scene/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/cinematic-scene/AGENTS.md +3 -0
- package/templates/cinematic-scene/README.md +11 -2
- package/templates/cinematic-scene/package.json +4 -3
- package/templates/cinematic-scene/src/main.ts +46 -11
- package/templates/cinematic-scene/tests/look-floor.ts +270 -0
- package/templates/cinematic-scene/tests/route-health.spec.ts +31 -3
- package/templates/cinematic-scene/tests/screenshot.spec.ts +34 -45
- package/templates/cinematic-scene/vite.config.ts +7 -0
- package/templates/custom-scene/.claude/CLAUDE.md +3 -0
- package/templates/custom-scene/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/custom-scene/AGENTS.md +3 -0
- package/templates/custom-scene/README.md +13 -0
- package/templates/custom-scene/aura.assets.json +24 -0
- package/templates/{three-compat-character-viewer → custom-scene}/package.json +6 -4
- package/templates/custom-scene/public/aura-assets/kenneyPirateKitShipMedium.279ea019.glb +0 -0
- package/templates/custom-scene/src/aura-assets.ts +16 -0
- package/templates/custom-scene/src/main.ts +23 -0
- package/templates/custom-scene/tests/look-floor.ts +270 -0
- package/templates/{three-compat-asset-inspector → custom-scene}/tests/route-health.spec.ts +3 -3
- package/templates/custom-scene/tests/screenshot.spec.ts +21 -0
- package/templates/custom-scene/vite.config.ts +7 -0
- package/templates/episode-builder/.claude/CLAUDE.md +3 -0
- package/templates/episode-builder/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/episode-builder/AGENTS.md +3 -0
- package/templates/episode-builder/package.json +4 -3
- package/templates/episode-builder/src/main.ts +5 -3
- package/templates/episode-builder/src/render-plan.ts +5 -3
- package/templates/episode-builder/tests/look-floor.ts +270 -0
- package/templates/episode-builder/tests/route-health.spec.ts +11 -0
- package/templates/episode-builder/tests/screenshot.spec.ts +10 -4
- package/templates/episode-builder/vite.config.ts +7 -0
- package/templates/falling-blocks-starter/.claude/CLAUDE.md +3 -0
- package/templates/falling-blocks-starter/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/falling-blocks-starter/AGENTS.md +3 -0
- package/templates/falling-blocks-starter/README.md +10 -1
- package/templates/falling-blocks-starter/aura.assets.json +40 -23
- package/templates/falling-blocks-starter/package.json +4 -3
- package/templates/falling-blocks-starter/public/aura-assets/quaternius-cube-crate.glb +0 -0
- package/templates/falling-blocks-starter/public/aura-assets/quaternius-wall-modular.glb +0 -0
- package/templates/falling-blocks-starter/src/aura-assets.ts +33 -10
- package/templates/falling-blocks-starter/src/main.ts +317 -96
- package/templates/falling-blocks-starter/tests/look-floor.ts +270 -0
- package/templates/falling-blocks-starter/tests/playable.spec.ts +51 -18
- package/templates/falling-blocks-starter/tests/route-health.spec.ts +17 -7
- package/templates/falling-blocks-starter/tests/screenshot.spec.ts +21 -0
- package/templates/falling-blocks-starter/vite.config.ts +7 -0
- package/templates/fighting-game/.claude/CLAUDE.md +3 -0
- package/templates/fighting-game/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/fighting-game/AGENTS.md +3 -0
- package/templates/fighting-game/README.md +2 -0
- package/templates/fighting-game/aura.assets.json +56 -46
- package/templates/fighting-game/package.json +5 -3
- package/templates/fighting-game/public/aura-assets/auraclash-player-rig.glb +0 -0
- package/templates/fighting-game/public/aura-assets/auraclash-rival-rig.glb +0 -0
- package/templates/fighting-game/src/aura-assets.ts +54 -20
- package/templates/fighting-game/src/game/fighters.ts +57 -12
- package/templates/fighting-game/src/main.ts +135 -53
- package/templates/fighting-game/tests/certified-rig.spec.ts +1 -1
- package/templates/fighting-game/tests/gameplay-smoke.spec.ts +25 -33
- package/templates/fighting-game/tests/look-floor.ts +270 -0
- package/templates/fighting-game/tests/route-health.spec.ts +23 -4
- package/templates/fighting-game/tests/screenshot.spec.ts +10 -4
- package/templates/fighting-game/vite.config.ts +7 -0
- package/templates/large-scene/.claude/CLAUDE.md +3 -0
- package/templates/large-scene/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/large-scene/AGENTS.md +3 -0
- package/templates/large-scene/README.md +13 -0
- package/templates/large-scene/aura.assets.json +40 -0
- package/templates/{three-compat-architecture-interior → large-scene}/package.json +6 -4
- package/templates/large-scene/public/aura-assets/kenneyMiniForestRocksHigh.226728a0.glb +0 -0
- package/templates/large-scene/public/aura-assets/kenneyMiniForestTree.0075d505.glb +0 -0
- package/templates/large-scene/src/aura-assets.ts +28 -0
- package/templates/large-scene/src/main.ts +43 -0
- package/templates/large-scene/tests/look-floor.ts +270 -0
- package/templates/large-scene/tests/route-health.spec.ts +16 -0
- package/templates/large-scene/tests/screenshot.spec.ts +21 -0
- package/templates/large-scene/vite.config.ts +7 -0
- package/templates/material-authoring/.claude/CLAUDE.md +3 -0
- package/templates/material-authoring/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/material-authoring/AGENTS.md +3 -0
- package/templates/material-authoring/README.md +15 -0
- package/templates/material-authoring/aura.assets.json +24 -0
- package/templates/material-authoring/package.json +24 -0
- package/templates/material-authoring/public/aura-assets/kenneyCarKitSedanSports.2889c428.glb +0 -0
- package/templates/material-authoring/src/aura-assets.ts +16 -0
- package/templates/material-authoring/src/main.ts +78 -0
- package/templates/material-authoring/tests/look-floor.ts +270 -0
- package/templates/material-authoring/tests/route-health.spec.ts +16 -0
- package/templates/material-authoring/tests/screenshot.spec.ts +21 -0
- package/templates/material-authoring/vite.config.ts +7 -0
- package/templates/mini-game/.claude/CLAUDE.md +3 -0
- package/templates/mini-game/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/mini-game/AGENTS.md +3 -0
- package/templates/mini-game/README.md +9 -6
- package/templates/mini-game/aura.assets.json +177 -36
- package/templates/mini-game/package.json +4 -2
- package/templates/mini-game/public/aura-assets/kaykit-barbarian.glb +0 -0
- package/templates/mini-game/public/aura-assets/kenneyPlatformerKitKey.2e930961.glb +0 -0
- package/templates/mini-game/public/aura-assets/kenneyPlatformerKitStar.a102a1b9.glb +0 -0
- package/templates/mini-game/public/aura-assets/quaternius-crate.glb +0 -0
- package/templates/mini-game/public/aura-assets/quaternius-cube-crate.glb +0 -0
- package/templates/mini-game/src/aura-assets.ts +140 -32
- package/templates/mini-game/src/main.ts +204 -71
- package/templates/mini-game/tests/certified-rig.spec.ts +2 -2
- package/templates/mini-game/tests/look-floor.ts +270 -0
- package/templates/mini-game/tests/playable.spec.ts +23 -2
- package/templates/mini-game/tests/route-health.spec.ts +2 -2
- package/templates/mini-game/tests/screenshot.spec.ts +44 -53
- package/templates/mini-game/vite.config.ts +7 -0
- package/templates/postprocess-scene/.claude/CLAUDE.md +3 -0
- package/templates/postprocess-scene/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/postprocess-scene/AGENTS.md +3 -0
- package/templates/postprocess-scene/README.md +17 -0
- package/templates/postprocess-scene/aura.assets.json +38 -0
- package/templates/postprocess-scene/package.json +24 -0
- package/templates/postprocess-scene/public/aura-assets/showcaseLuma.ef389217.glb +0 -0
- package/templates/postprocess-scene/public/aura-assets/showcaseMiko.fcdc2b75.glb +0 -0
- package/templates/postprocess-scene/src/aura-assets.ts +28 -0
- package/templates/postprocess-scene/src/main.ts +29 -0
- package/templates/postprocess-scene/tests/look-floor.ts +270 -0
- package/templates/postprocess-scene/tests/route-health.spec.ts +16 -0
- package/templates/postprocess-scene/tests/screenshot.spec.ts +21 -0
- package/templates/postprocess-scene/vite.config.ts +7 -0
- package/templates/premium-product-viewer/.claude/CLAUDE.md +3 -0
- package/templates/premium-product-viewer/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/premium-product-viewer/AGENTS.md +3 -0
- package/templates/premium-product-viewer/README.md +18 -0
- package/templates/premium-product-viewer/aura.assets.json +24 -0
- package/templates/premium-product-viewer/package.json +24 -0
- package/templates/premium-product-viewer/public/aura-assets/khronosToyCar.01a60862.glb +0 -0
- package/templates/premium-product-viewer/src/aura-assets.ts +16 -0
- package/templates/premium-product-viewer/src/main.ts +33 -0
- package/templates/premium-product-viewer/tests/look-floor.ts +270 -0
- package/templates/premium-product-viewer/tests/route-health.spec.ts +16 -0
- package/templates/premium-product-viewer/tests/screenshot.spec.ts +21 -0
- package/templates/premium-product-viewer/vite.config.ts +7 -0
- package/templates/product-viewer/.claude/CLAUDE.md +3 -0
- package/templates/product-viewer/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/product-viewer/AGENTS.md +3 -0
- package/templates/product-viewer/README.md +10 -8
- package/templates/product-viewer/package.json +4 -2
- package/templates/product-viewer/src/aura-assets.ts +1 -1
- package/templates/product-viewer/src/main.ts +78 -19
- package/templates/product-viewer/tests/look-floor.ts +270 -0
- package/templates/product-viewer/tests/route-health.spec.ts +19 -1
- package/templates/product-viewer/tests/screenshot.spec.ts +35 -41
- package/templates/product-viewer/vite.config.ts +7 -0
- package/templates/prompt-animation-channel/.claude/CLAUDE.md +3 -0
- package/templates/prompt-animation-channel/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/prompt-animation-channel/AGENTS.md +3 -0
- package/templates/prompt-animation-channel/package.json +4 -3
- package/templates/prompt-animation-channel/src/main.ts +5 -3
- package/templates/prompt-animation-channel/src/render-plan.ts +5 -3
- package/templates/prompt-animation-channel/tests/look-floor.ts +270 -0
- package/templates/prompt-animation-channel/tests/route-health.spec.ts +12 -1
- package/templates/prompt-animation-channel/tests/screenshot.spec.ts +10 -4
- package/templates/prompt-animation-channel/tests/storyboard-playback.spec.ts +1 -1
- package/templates/prompt-animation-channel/vite.config.ts +7 -0
- package/templates/racing-starter/.claude/CLAUDE.md +3 -0
- package/templates/racing-starter/.github/workflows/aura3d-lookdev.yml +67 -0
- package/templates/racing-starter/AGENTS.md +3 -0
- package/templates/racing-starter/README.md +8 -6
- package/templates/racing-starter/package.json +4 -3
- package/templates/racing-starter/src/main.ts +169 -123
- package/templates/racing-starter/tests/geometry-certification.json +34 -0
- package/templates/racing-starter/tests/look-floor.ts +270 -0
- package/templates/racing-starter/tests/playable.spec.ts +63 -80
- package/templates/racing-starter/tests/route-health.spec.ts +14 -12
- package/templates/racing-starter/tests/screenshot.spec.ts +21 -0
- package/templates/racing-starter/vite.config.ts +7 -0
- package/templates/character-controller/public/aura-assets/showcaseWalkAnimatedGirl.93872fc2.glb +0 -0
- package/templates/character-controller/public/aura-assets/showcaseWalkAnimatedGirl.thumb.svg +0 -1
- package/templates/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.679d52fe.glb +0 -0
- package/templates/fighting-game/public/aura-assets/showcaseRunnerRobot.252b3a16.glb +0 -0
- package/templates/fighting-game/public/aura-assets/showcaseRunnerRobot.thumb.svg +0 -1
- package/templates/fighting-game/public/aura-assets/showcaseWalkAnimatedGirl.93872fc2.glb +0 -0
- package/templates/fighting-game/public/aura-assets/showcaseWalkAnimatedGirl.thumb.svg +0 -1
- package/templates/mini-game/public/aura-assets/showcaseKenneyOobiPlatformerHero.3f821141.glb +0 -0
- package/templates/mini-game/public/aura-assets/showcaseKenneyOobiPlatformerHero.thumb.svg +0 -1
- package/templates/three-compat-architecture-interior/aura.assets.json +0 -7
- package/templates/three-compat-architecture-interior/src/aura-assets.ts +0 -3
- package/templates/three-compat-architecture-interior/src/main.ts +0 -27
- package/templates/three-compat-architecture-interior/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-asset-inspector/aura.assets.json +0 -7
- package/templates/three-compat-asset-inspector/src/aura-assets.ts +0 -3
- package/templates/three-compat-asset-inspector/src/main.ts +0 -17
- package/templates/three-compat-asset-inspector/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-character-viewer/aura.assets.json +0 -7
- package/templates/three-compat-character-viewer/src/aura-assets.ts +0 -3
- package/templates/three-compat-character-viewer/src/main.ts +0 -17
- package/templates/three-compat-character-viewer/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-custom-threejs-migration/aura.assets.json +0 -7
- package/templates/three-compat-custom-threejs-migration/src/aura-assets.ts +0 -3
- package/templates/three-compat-custom-threejs-migration/src/main.ts +0 -16
- package/templates/three-compat-custom-threejs-migration/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-large-scene/aura.assets.json +0 -7
- package/templates/three-compat-large-scene/package.json +0 -22
- package/templates/three-compat-large-scene/src/aura-assets.ts +0 -3
- package/templates/three-compat-large-scene/src/main.ts +0 -31
- package/templates/three-compat-large-scene/tests/route-health.spec.ts +0 -16
- package/templates/three-compat-large-scene/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-material-authoring/aura.assets.json +0 -7
- package/templates/three-compat-material-authoring/package.json +0 -22
- package/templates/three-compat-material-authoring/src/aura-assets.ts +0 -3
- package/templates/three-compat-material-authoring/src/main.ts +0 -33
- package/templates/three-compat-material-authoring/tests/route-health.spec.ts +0 -16
- package/templates/three-compat-material-authoring/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-postprocess-scene/aura.assets.json +0 -7
- package/templates/three-compat-postprocess-scene/package.json +0 -22
- package/templates/three-compat-postprocess-scene/src/aura-assets.ts +0 -3
- package/templates/three-compat-postprocess-scene/src/main.ts +0 -17
- package/templates/three-compat-postprocess-scene/tests/route-health.spec.ts +0 -16
- package/templates/three-compat-postprocess-scene/tests/screenshot.spec.ts +0 -15
- package/templates/three-compat-premium-product-viewer/aura.assets.json +0 -7
- package/templates/three-compat-premium-product-viewer/package.json +0 -22
- package/templates/three-compat-premium-product-viewer/src/aura-assets.ts +0 -3
- package/templates/three-compat-premium-product-viewer/src/main.ts +0 -18
- package/templates/three-compat-premium-product-viewer/tests/route-health.spec.ts +0 -16
- package/templates/three-compat-premium-product-viewer/tests/screenshot.spec.ts +0 -15
- /package/templates/{three-compat-architecture-interior → architecture-interior}/index.html +0 -0
- /package/templates/{three-compat-architecture-interior → architecture-interior}/playwright.config.ts +0 -0
- /package/templates/{three-compat-architecture-interior → architecture-interior}/tsconfig.json +0 -0
- /package/templates/{three-compat-asset-inspector → asset-inspector}/index.html +0 -0
- /package/templates/{three-compat-asset-inspector → asset-inspector}/playwright.config.ts +0 -0
- /package/templates/{three-compat-asset-inspector → asset-inspector}/tsconfig.json +0 -0
- /package/templates/{three-compat-character-viewer → character-viewer}/index.html +0 -0
- /package/templates/{three-compat-character-viewer → character-viewer}/playwright.config.ts +0 -0
- /package/templates/{three-compat-character-viewer → character-viewer}/tsconfig.json +0 -0
- /package/templates/{three-compat-custom-threejs-migration → custom-scene}/index.html +0 -0
- /package/templates/{three-compat-custom-threejs-migration → custom-scene}/playwright.config.ts +0 -0
- /package/templates/{three-compat-custom-threejs-migration → custom-scene}/tsconfig.json +0 -0
- /package/templates/{three-compat-large-scene → large-scene}/index.html +0 -0
- /package/templates/{three-compat-large-scene → large-scene}/playwright.config.ts +0 -0
- /package/templates/{three-compat-large-scene → large-scene}/tsconfig.json +0 -0
- /package/templates/{three-compat-material-authoring → material-authoring}/index.html +0 -0
- /package/templates/{three-compat-material-authoring → material-authoring}/playwright.config.ts +0 -0
- /package/templates/{three-compat-material-authoring → material-authoring}/tsconfig.json +0 -0
- /package/templates/{three-compat-postprocess-scene → postprocess-scene}/index.html +0 -0
- /package/templates/{three-compat-postprocess-scene → postprocess-scene}/playwright.config.ts +0 -0
- /package/templates/{three-compat-postprocess-scene → postprocess-scene}/tsconfig.json +0 -0
- /package/templates/{three-compat-premium-product-viewer → premium-product-viewer}/index.html +0 -0
- /package/templates/{three-compat-premium-product-viewer → premium-product-viewer}/playwright.config.ts +0 -0
- /package/templates/{three-compat-premium-product-viewer → premium-product-viewer}/tsconfig.json +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aura3d-assets
|
|
3
|
+
description: Finds, admits, inspects, validates, and types GLB/glTF, texture, environment, and audio assets through the Aura3D CLI so scenes use `model(assets.x)`. Use when a prompt names a real object, the user brings a GLB, or the task touches `assets search`, `assets resolve`, `assets add`, `assets inspect`, `assets validate`, `assets typegen`, `aura.assets.json`, or `src/aura-assets.ts`.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Aura3D assets
|
|
7
|
+
|
|
8
|
+
The CLI is the only path from a file or catalog hit to a typed `assets.<key>`.
|
|
9
|
+
Shared rules (catalog-first, typed assets, paid generation) are in
|
|
10
|
+
[boundaries](../aura3d-core/references/boundaries.md).
|
|
11
|
+
|
|
12
|
+
## Look target
|
|
13
|
+
|
|
14
|
+
Preview candidates under the target look, not a neutral stage: a GLB that
|
|
15
|
+
reads clean under `product-studio` softboxes can disappear into `night-city`
|
|
16
|
+
shadow pools or bloom out under `neon-arcade`. The route's recipe row sets the
|
|
17
|
+
lighting you evaluate materials and silhouettes against.
|
|
18
|
+
|
|
19
|
+
## Establish the contract
|
|
20
|
+
|
|
21
|
+
1. Run `npx @aura3d/cli@latest --help` and `npx @aura3d/cli@latest assets add
|
|
22
|
+
--help`. Use only the flags they print; `--profile` values for search and
|
|
23
|
+
resolve come from the usage line, not memory.
|
|
24
|
+
2. Read `aura.assets.json` and `src/aura-assets.ts`. Reuse an existing key
|
|
25
|
+
before adding a duplicate.
|
|
26
|
+
3. Note each asset's role: `character`, `vehicle`, `world`, `environment`,
|
|
27
|
+
`track`, `product`, `weapon`, `prop`, `set-dressing`, `debug`, `abstract`,
|
|
28
|
+
or `unknown`. Role decides the evidence you need later.
|
|
29
|
+
|
|
30
|
+
## Procedure
|
|
31
|
+
|
|
32
|
+
1. User supplied a file: skip search and admit it with provenance.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx @aura3d/cli@latest assets add ./assets/robot.glb --name robot \
|
|
36
|
+
--type model --role character --quality candidate \
|
|
37
|
+
--license CC0-1.0 --license-url <url> --source-page <url> \
|
|
38
|
+
--author "<name>" --retrieved-at <ISO-8601>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Use `--type texture|environment|audio|navigation` for non-model files, and
|
|
42
|
+
`--public-path /cdn/aura-assets/` when assets are served from a CDN.
|
|
43
|
+
2. Prompt names a real object: search with a descriptive phrase.
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npx @aura3d/cli@latest assets search "battle-worn knight helmet" --json
|
|
47
|
+
npx @aura3d/cli@latest assets search "animated humanoid fighting character" \
|
|
48
|
+
--profile fighting-character --json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Narrow with `--license cc0|cc-by`, `--max-tris N`, or `--animated`.
|
|
52
|
+
3. Read the result. Only auto-pullable candidates may be pulled. Marketplace
|
|
53
|
+
deep-links and `manual license check required` rows are user-handled: hand
|
|
54
|
+
the link to the user and admit their download with `assets add`.
|
|
55
|
+
4. Pull the chosen candidate into a typed key.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx @aura3d/cli@latest assets resolve "battle-worn knight helmet" --name helmet
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Pick a non-top candidate with `--index N` or `--candidate-id ID`, and repeat
|
|
62
|
+
the same `--profile` you searched with.
|
|
63
|
+
5. Inspect before naming clips, joints, morphs, or materials in code.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npx @aura3d/cli@latest assets inspect public/aura-assets/<file>.glb \
|
|
67
|
+
--animation --humanoid --skeleton --morphs --license
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Treat `"ok": false` warnings (for example missing orientation metadata) as
|
|
71
|
+
facts to record, not noise.
|
|
72
|
+
6. Regenerate types and validate the shipping set.
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npx @aura3d/cli@latest assets typegen
|
|
76
|
+
npx @aura3d/cli@latest assets validate --asset helmet --source
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`--source` scans `src` for raw ids, URLs, and loader code, and lists
|
|
80
|
+
`typedAssetUsages`. Add `--no-placeholders --require-license` for anything
|
|
81
|
+
public. Refresh stale manifest bounds by re-adding the file.
|
|
82
|
+
7. Use the key exactly as generated.
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
import { createAuraApp, groundedRenderedAssetPlacement, looks, model, scene } from "@aura3d/engine";
|
|
86
|
+
import { assets } from "./aura-assets";
|
|
87
|
+
|
|
88
|
+
const place = groundedRenderedAssetPlacement(assets.helmet, { targetMaxDimension: 1.2, floorY: 0 });
|
|
89
|
+
createAuraApp("#app", {
|
|
90
|
+
scene: scene()
|
|
91
|
+
.add(looks.preset("product-studio"))
|
|
92
|
+
.add(model(assets.helmet).position(...place.position).scale(place.scale)),
|
|
93
|
+
...looks.appOptions("product-studio")
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
8. Hand off: fighters and games to `aura3d-browser-game`
|
|
98
|
+
(`assets validate-game`), rigs and clips to `aura3d-character-animation`
|
|
99
|
+
(`assets validate-animation`), release checks to `aura3d-evidence-review`.
|
|
100
|
+
|
|
101
|
+
## Reject a candidate when
|
|
102
|
+
|
|
103
|
+
- license, source page, author, or acquisition time is missing or temp-only
|
|
104
|
+
(for example a `/var/folders/.../aura3d-resolve-*` source);
|
|
105
|
+
- no material or texture evidence exists where the role expects texture;
|
|
106
|
+
- a character route claims animation but inspection shows no usable clips;
|
|
107
|
+
- bounds are extreme, pivot is bad, or orientation is unknown and public APIs
|
|
108
|
+
cannot correct it;
|
|
109
|
+
- the hash duplicates another asset without an explanation;
|
|
110
|
+
- it is placeholder-like, or only a generated thumbnail proves it is readable.
|
|
111
|
+
|
|
112
|
+
## Stop and report
|
|
113
|
+
|
|
114
|
+
- Search returns no auto-pullable candidate, or every candidate fails the
|
|
115
|
+
reject list: stop, list the query, profile, and rejection reasons, and offer
|
|
116
|
+
two options: a user-supplied licensed file, or Meshy generation (load
|
|
117
|
+
`meshy-cli`, dry run first). Do not model the subject from primitives.
|
|
118
|
+
- Search prints a catalog fetch warning (for example an HTTP 404 from the
|
|
119
|
+
index): report it verbatim, label asset-dependent work `blocked`, and do not
|
|
120
|
+
treat fallback deep-links as auto-pullable.
|
|
121
|
+
- `assets validate --release` fails on provenance: keep the route `prototype`
|
|
122
|
+
until durable evidence is added; never weaken the check.
|
|
123
|
+
- A needed key is absent from `src/aura-assets.ts` after typegen: stop and fix
|
|
124
|
+
the admission.
|
|
125
|
+
|
|
126
|
+
## References
|
|
127
|
+
|
|
128
|
+
- [Boundaries](../aura3d-core/references/boundaries.md)
|
|
129
|
+
- [Asset workflow](https://github.com/auraoneai/aura3d/blob/main/docs/agents/asset-workflow.md)
|
|
130
|
+
- [Asset selection](https://github.com/auraoneai/aura3d/blob/main/docs/agents/asset-selection.md)
|
|
131
|
+
- [Assets docs](https://aura3d.auraone.ai/docs/assets.html)
|
|
132
|
+
- [Previewing assets under a look](references/preview-under-look.md)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Previewing assets under a look
|
|
2
|
+
|
|
3
|
+
A GLB that survives a neutral viewer can still fail the real scene's lighting.
|
|
4
|
+
Evaluate candidates under the route's look preset.
|
|
5
|
+
|
|
6
|
+
| Look | What it exposes | Reject signal |
|
|
7
|
+
| --- | --- | --- |
|
|
8
|
+
| `product-studio` | material honesty, silhouette edge quality | faceted normals, muddy PBR, bad pivot on plinth |
|
|
9
|
+
| `golden-hour` | warm key + teal shadow separation | specular wash, albedo too dark to read at dusk |
|
|
10
|
+
| `night-city` | neon rim, wet reflections, dark pools | silhouette disappears into shadow, emissive bloom-out |
|
|
11
|
+
| `outdoor-day` | full daylight exposure, horizon fog | washed-out albedo, no AO at contact points |
|
|
12
|
+
| `interior-warm` | warm pools, wood/fabric pairing | cold grey materials fight the grade |
|
|
13
|
+
| `space` | single hard key, black void | anything mid-grey vanishes; no fill light forgiving |
|
|
14
|
+
| `underwater` | teal volume, caustic shimmer | high-contrast speculars shimmer to noise |
|
|
15
|
+
| `arena-fight` | top spot + rim, dark crowd | midtones crush to black outside the pool |
|
|
16
|
+
|
|
17
|
+
## Checks at preview time
|
|
18
|
+
|
|
19
|
+
1. Spin the model `orbit` once under the look — a silhouette that dies at
|
|
20
|
+
three-quarter back is a bad candidate.
|
|
21
|
+
2. Contact: feet/wheels/anchor inside the look's ground shadow, not beside it.
|
|
22
|
+
3. Emissive parts bloom only where the grade expects glow (pickups, signage);
|
|
23
|
+
an unbounded emissive channel reads as a bug.
|
|
24
|
+
4. Palette: the asset's dominant hue must sit inside the genre palette or be
|
|
25
|
+
the declared accent — clashing saturation reads as wrong-asset even when
|
|
26
|
+
the mesh is fine.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aura3d-browser-game
|
|
3
|
+
description: Builds a playable Aura3D browser game route on the public genre kits with typed assets, deterministic input, reset, an objective, and a genre look recipe driven through the look-dev loop. Use when working in the `mini-game`, `racing-starter`, `falling-blocks-starter`, `fighting-game`, or `character-controller` templates, calling `game.platformer`, `game.racing`, `game.fallingBlocks`, `game.fighting`, or `game.evidence`, or running `assets validate-game` or `assets certify-game-geometry`.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Aura3D browser game
|
|
7
|
+
|
|
8
|
+
A route with a scene and a key listener is not a game — and a playable scene
|
|
9
|
+
with flat lighting is not a finished game. A public game proves input, reset,
|
|
10
|
+
an objective and a progression loop in the browser AND looks like its genre.
|
|
11
|
+
Shared rules (claim labels, forbidden patterns, typed assets, benchmark mode)
|
|
12
|
+
are in [boundaries](../aura3d-core/references/boundaries.md).
|
|
13
|
+
|
|
14
|
+
## Look target
|
|
15
|
+
|
|
16
|
+
Genre → recipe row (full table: `../aura3d-art-direction/references/look-recipes.md`):
|
|
17
|
+
|
|
18
|
+
| Template | Look | Camera | Frame mood |
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
|
+
| `mini-game` | `outdoor-day` | `follow` (side-on) fov 50 | saturated greens, sky blue, warm wood + coin gold; fog 0.0025; `daylight-outdoor` post; coin sparkle + land dust |
|
|
21
|
+
| `racing-starter` | `golden-hour` | `chase` fov 60 | warm asphalt, burnt orange, charcoal + headlight amber; low sun haze; `cinematic-film` post; brake glow |
|
|
22
|
+
| `falling-blocks-starter` | `neon-arcade` | `orthographic` (top-down) fov 45 | neon palette per piece colour, dark glossy board + accent rim; `neon-night` post; line-clear flash |
|
|
23
|
+
| `fighting-game` | `arena-fight` | `follow` (side-on) fov 45 | arena dark, rope colour, crowd shadow + spotlight rim; haze cone; `arena-fight` post; hit sparks |
|
|
24
|
+
| `character-controller` | `outdoor-day` | `shoulder` fov 55 | open world greens + cloth accent; fog to horizon; `daylight-outdoor` post |
|
|
25
|
+
|
|
26
|
+
## Establish the contract
|
|
27
|
+
|
|
28
|
+
1. Run `npx @aura3d/cli@latest --help`. Use only the commands and flags it
|
|
29
|
+
prints; `--category` accepts only `racing` or `platformer`.
|
|
30
|
+
2. Read `src/aura-assets.ts` and `aura.assets.json`. Player, vehicle, track,
|
|
31
|
+
and world must be typed keys with a role (`character`, `vehicle`, `track`,
|
|
32
|
+
`world`). Missing keys: load `aura3d-assets` first.
|
|
33
|
+
3. Read the template `package.json` so you know what `npm run test` runs.
|
|
34
|
+
4. Decide the mode. Benchmark mode: if `aura3d look capture` is available, run
|
|
35
|
+
the look-dev loop; otherwise build and stop, label `prototype`.
|
|
36
|
+
|
|
37
|
+
## Procedure
|
|
38
|
+
|
|
39
|
+
1. Scaffold the matching template, then add the genre look before any props:
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import { createAuraApp, game, looks, model, scene } from "@aura3d/engine";
|
|
43
|
+
import { assets } from "./aura-assets";
|
|
44
|
+
|
|
45
|
+
const app = createAuraApp("#app", {
|
|
46
|
+
scene: scene()
|
|
47
|
+
.add(looks.preset("outdoor-day"))
|
|
48
|
+
.add(model(assets.hero).runtime(game.runtimeNode("player", { tags: ["player"] }))),
|
|
49
|
+
...looks.appOptions("outdoor-day")
|
|
50
|
+
});
|
|
51
|
+
const player = app.nodes.require("player");
|
|
52
|
+
const input = app.input({
|
|
53
|
+
actions: { left: ["KeyA", "ArrowLeft"], right: ["KeyD", "ArrowRight"], jump: ["Space"], restart: ["KeyR"] },
|
|
54
|
+
axes: { moveX: { negative: "left", positive: "right" } },
|
|
55
|
+
bufferMs: 120
|
|
56
|
+
});
|
|
57
|
+
const level = game.platformer({
|
|
58
|
+
start: { x: 0, y: 0.35 },
|
|
59
|
+
finish: { x: 12, y: 0.35 },
|
|
60
|
+
platforms: [{ id: "ground", x: -1, y: 0, width: 14, height: 0.35 }]
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
app.onFrame(({ dt }) => {
|
|
64
|
+
input.update(dt);
|
|
65
|
+
const state = level.step(dt, { moveX: input.axis("moveX"), jumpPressed: input.buffered("jump") });
|
|
66
|
+
player.setPosition(state.player.x, state.player.y, 0);
|
|
67
|
+
});
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
2. The look supplies the sky light, key shadow, fog and grade — do not add
|
|
71
|
+
`lights.studio()` or `lights.ambient()` on top.
|
|
72
|
+
3. Typed models at real scale for hero/collectibles (emissive 3–5 on pickups
|
|
73
|
+
reads as sparkle under the post grade); platforms/track from the best
|
|
74
|
+
typed catalog kit.
|
|
75
|
+
4. Camera state drives `app.camera` every frame (rig from the genre row) —
|
|
76
|
+
never write camera position into evidence fields.
|
|
77
|
+
5. Wire HUD and events through `game.eventLog` and `game.hud.*` — DOM HUD only,
|
|
78
|
+
no in-world counters, no debug overlay in shipped frames.
|
|
79
|
+
6. Make reset real: restart after normal play and after win or fail returns
|
|
80
|
+
score, timer, bodies, input, and animation to baseline.
|
|
81
|
+
7. Genre gates (mechanics, from the game example standards):
|
|
82
|
+
|
|
83
|
+
| Genre | Must have |
|
|
84
|
+
| --- | --- |
|
|
85
|
+
| racing | throttle, brake, steer, ordered checkpoints, lap or finish, penalty or timeout |
|
|
86
|
+
| platformer | move, jump, fall, collision matching visible ledges, collectibles, hazards, camera keeps player visible |
|
|
87
|
+
| falling blocks | move, rotate, soft + hard drop, lock, line clear, scoring, levels, game over |
|
|
88
|
+
| fighting | strikes/blocks, hit reactions, round + KO state, both fighters readable |
|
|
89
|
+
| character controller | walk/run/jump clips playing, camera shoulder follow, locomotion direction matches travel |
|
|
90
|
+
|
|
91
|
+
Plan for 60 seconds of meaningful play.
|
|
92
|
+
|
|
93
|
+
8. `npx @aura3d/cli@latest assets validate --no-placeholders --require-license`
|
|
94
|
+
and `assets validate-game`; racing/platformer also
|
|
95
|
+
`assets certify-game-geometry --asset track --category racing`.
|
|
96
|
+
9. Runtime evidence: pause, step one frame, then `game.evidence` over input,
|
|
97
|
+
bodies, events, HUD, app state — see `aura3d-evidence-review` (one link).
|
|
98
|
+
|
|
99
|
+
## Look-dev loop
|
|
100
|
+
|
|
101
|
+
Run the `aura3d look capture` → judge → iterate loop from
|
|
102
|
+
`aura3d-art-direction`: lint first (`aura3d look lint`), then the weakest
|
|
103
|
+
rubric category; one change per round until every category reads 7+, 6
|
|
104
|
+
rounds, or 2 flat rounds.
|
|
105
|
+
|
|
106
|
+
## Stop and report
|
|
107
|
+
|
|
108
|
+
- `assets certify-game-geometry` returns `"ok": false` or a blocker such as
|
|
109
|
+
`racing-road-mesh-not-found`: label `prototype`; never hide the gap with
|
|
110
|
+
primitive ledges or road strips.
|
|
111
|
+
- Manual input cannot complete the route while a proof replay can: `prototype`.
|
|
112
|
+
- The primary player, vehicle, or world is a primitive stand-in: `prototype`.
|
|
113
|
+
- `assets validate-game` crashes or fails: report the exact message, label
|
|
114
|
+
`blocked` for public claims.
|
|
115
|
+
- A kit is missing a needed rule (fail state, collision semantics, path
|
|
116
|
+
alignment): write it route-local, say so, file a library gap.
|
|
117
|
+
- Benchmark mode without `look capture`: build, stop, label `prototype`.
|
|
118
|
+
|
|
119
|
+
## References
|
|
120
|
+
|
|
121
|
+
- [Shared boundaries](../aura3d-core/references/boundaries.md)
|
|
122
|
+
- [Look recipes](../aura3d-art-direction/references/look-recipes.md)
|
|
123
|
+
- [Quality bar](../aura3d-art-direction/references/quality-bar.md)
|
|
124
|
+
- [Build a browser game](https://github.com/auraoneai/aura3d/blob/main/docs/guides/build-a-browser-game.md)
|
|
125
|
+
- [Game example standards](https://github.com/auraoneai/aura3d/blob/main/docs/agents/game-example-standards.md)
|
|
126
|
+
- [Game runtime API](https://github.com/auraoneai/aura3d/blob/main/docs/api/game-runtime.md)
|
|
127
|
+
- [Genre looks in the frame](references/genre-looks.md)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Genre looks in the frame
|
|
2
|
+
|
|
3
|
+
What each genre's look must visibly deliver, at capture time.
|
|
4
|
+
|
|
5
|
+
| Genre | The frame must show | Kills the look |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| platformer | blue sky with depth fog, long grass-edge shadows, warm key on the hero, gold pickups glowing | void background, ambient-only light, floating platforms |
|
|
8
|
+
| racing | low warm sun, orange rim on the car silhouette, asphalt reflection, fog band at the horizon | noon-flat light, grey void, no specular on bodywork |
|
|
9
|
+
| falling blocks | saturated piece hues against a dark glossy board, bloom on line-clear, rim on the stack edge | washed-out palette, flat board, no glow on clears |
|
|
10
|
+
| fighting | top spotlight cones, rim on both fighters, crowd silhouettes in shadow | both fighters evenly lit, empty void arena |
|
|
11
|
+
| character showcase | 3/4-front key, rim separating hair/shoulder from backdrop, ground contact shadow | flat fill, floating feet, void |
|
|
12
|
+
| night city | neon signage, wet-street reflections, sodium pools, window glow | pure black background, one uniform dark |
|
|
13
|
+
|
|
14
|
+
## Per-genre VFX palette
|
|
15
|
+
|
|
16
|
+
| Genre | Accents (emissive 3–5× bg) | Motion cue |
|
|
17
|
+
| --- | --- | --- |
|
|
18
|
+
| platformer | coin gold, spring green, hazard red | land dust puff, jump trail |
|
|
19
|
+
| racing | brake amber, exhaust white, dial cyan | speed lines, tire smoke |
|
|
20
|
+
| falling blocks | per-piece neon hue, clear flash white | line-clear flash, lock click glow |
|
|
21
|
+
| fighting | impact spark orange, meter cyan | hit sparks, knockback flash |
|
|
22
|
+
| character | cloth accent, eye catchlight | footstep dust, hair/cloth sway |
|
|
23
|
+
| night city | sign neon, puddle rim | steam wisps, window flicker |
|
|
24
|
+
| sports/table | felt green, chalk white, spot warm | ball trail, score flash |
|
|
25
|
+
| interior | warm pool amber, accent object hue | dust motes, lamp flicker |
|
|
26
|
+
| underwater | caustic teal, biolume cyan | bubbles, particle drift |
|
|
27
|
+
| space | laser magenta, engine white | debris drift, shield ripple |
|
|
28
|
+
|
|
29
|
+
## HUD style
|
|
30
|
+
|
|
31
|
+
DOM HUD only. Type color follows the look: warm cream on golden-hour, neon
|
|
32
|
+
cyan on night-city, high-contrast white on product-studio. Pause/menu layers
|
|
33
|
+
inherit the grade (a blur + dark grade band reads as one scene, a raw solid
|
|
34
|
+
overlay reads as a bug).
|
|
35
|
+
|
|
36
|
+
## Lighting story per template
|
|
37
|
+
|
|
38
|
+
| Template | Key story | Shadow story | Depth cue |
|
|
39
|
+
| --- | --- | --- | --- |
|
|
40
|
+
| `mini-game` | warm afternoon key 40° | grass-edge shadows toward camera | fog band at far platforms |
|
|
41
|
+
| `racing-starter` | low sun behind the car | long streaks across asphalt | haze silhouettes the horizon |
|
|
42
|
+
| `falling-blocks-starter` | soft top key | piece self-shadow on stack | board gloss reflection |
|
|
43
|
+
| `fighting-game` | overhead spot cones | rim shadows under both fighters | crowd fades to black |
|
|
44
|
+
| `character-controller` | daylight key 3/4 front | contact shadow under feet | fog to horizon on the run |
|
|
45
|
+
|
|
46
|
+
## Mood one-liners
|
|
47
|
+
|
|
48
|
+
- platformer: cheerful daylight, saturated palette, motion reads as play.
|
|
49
|
+
- racing: speed sells through low sun, glare, and horizon haze.
|
|
50
|
+
- fighting: drama lives in the dark crowd and the spot's hard edge.
|
|
51
|
+
- blocks: rhythm is the palette — every piece hue distinct at a glance.
|
|
52
|
+
- character: the silhouette is the gameplay; rim keeps it readable.
|
|
@@ -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,121 @@
|
|
|
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
|
+
|
|
73
|
+
## Routing table
|
|
74
|
+
|
|
75
|
+
| Task signal | Load |
|
|
76
|
+
| --- | --- |
|
|
77
|
+
| Any visual task, screenshot looks flat/dark/empty, starting or finishing a scene | `aura3d-art-direction` (first) |
|
|
78
|
+
| Prompt to scene or route, scene kits, `definePromptPlan` | `aura3d-scene-authoring` |
|
|
79
|
+
| Named real object, user GLB, `assets search/resolve/add` | `aura3d-assets` |
|
|
80
|
+
| Done, public, shippable, screenshots, claims, `check-deploy` | `aura3d-evidence-review` |
|
|
81
|
+
| `mini-game`, `racing-starter`, `falling-blocks-starter`, `fighting-game`, `character-controller` | `aura3d-browser-game` |
|
|
82
|
+
| Rigged humanoids, clips, locomotion, morphs, visemes | `aura3d-character-animation` |
|
|
83
|
+
| `animation-studio` template, `aura3d animation scene`, episodes | `aura3d-animation-studio` |
|
|
84
|
+
| Porting three.js code, migration templates (formerly `three-compat-*`) | `aura3d-threejs-migration` |
|
|
85
|
+
| Materials, textures, HDRI, skies, water, weather | `aura3d-materials-environments` |
|
|
86
|
+
| Flipbook VFX sheets, HUD icons, UI sprites | `aura3d-game-art` |
|
|
87
|
+
| Restyling a finished mesh without touching geometry | `aura3d-retexture` |
|
|
88
|
+
| Frame time, bundle size, KTX2, LOD, instancing | `aura3d-performance` |
|
|
89
|
+
| No clean catalog candidate, Meshy generation or import | `meshy-cli` |
|
|
90
|
+
|
|
91
|
+
A listed skill that is not installed in this project is a gap to report, not
|
|
92
|
+
permission to improvise its procedure.
|
|
93
|
+
|
|
94
|
+
## Look-dev loop
|
|
95
|
+
|
|
96
|
+
Capture the route with `aura3d look capture`, judge each frame against the
|
|
97
|
+
quality-bar rubric, fix the single highest-leverage issue (lint codes first),
|
|
98
|
+
and repeat until every category reads 7+ or the loop exits flat. The full loop
|
|
99
|
+
spec lives in `aura3d-art-direction`.
|
|
100
|
+
|
|
101
|
+
## Stop and report
|
|
102
|
+
|
|
103
|
+
- The CLI help does not list a command you need: stop, name the missing
|
|
104
|
+
command, and label the work `blocked`.
|
|
105
|
+
- A required asset key is missing from `src/aura-assets.ts`: stop and fix the
|
|
106
|
+
import. Do not substitute a string id, URL, or primitive.
|
|
107
|
+
- The claim you are about to write has no matching browser evidence: lower it
|
|
108
|
+
to `prototype` or `roadmap` per boundaries.md — claim labels are a one-line
|
|
109
|
+
link, not a restatement.
|
|
110
|
+
- The task needs paid generation and no approval exists: stop at the dry run.
|
|
111
|
+
- Benchmark mode: after `npm install && npm run build`, stop and report the
|
|
112
|
+
runner-owned launch and capture command.
|
|
113
|
+
|
|
114
|
+
## References
|
|
115
|
+
|
|
116
|
+
- [Shared boundaries](references/boundaries.md)
|
|
117
|
+
- [Agent guide llms.txt](https://github.com/auraoneai/aura3d/blob/main/llms.txt)
|
|
118
|
+
- [Claims and boundaries](https://github.com/auraoneai/aura3d/blob/main/docs/agents/claims-and-boundaries.md)
|
|
119
|
+
- [No hackjob rules](https://github.com/auraoneai/aura3d/blob/main/docs/agents/no-hackjob-rules.md)
|
|
120
|
+
- [Anti-hallucination rules](https://github.com/auraoneai/aura3d/blob/main/docs/agents/anti-hallucination-rules.md)
|
|
121
|
+
- [Agent quickstart](https://aura3d.auraone.ai/docs/agent-quickstart.html)
|