create-aura3d 3.0.1 → 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 +3 -2
- 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 +1 -1
- 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 +4 -3
- 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/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 +5 -3
- 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 +5 -4
- 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 +31 -6
- 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 +5 -3
- 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 +3 -2
- package/templates/cinematic-scene/src/main.ts +30 -7
- 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 +5 -3
- 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 +3 -2
- 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/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 +3 -2
- 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 +316 -117
- 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 +4 -2
- 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 +2 -8
- package/templates/fighting-game/tests/look-floor.ts +270 -0
- package/templates/fighting-game/tests/route-health.spec.ts +12 -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 +5 -3
- 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 +3 -1
- 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 +3 -1
- 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 +3 -2
- 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 +1 -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 +3 -2
- package/templates/racing-starter/src/main.ts +168 -146
- 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/falling-blocks-starter/public/aura-assets/showcaseBlockfallCabinet.thumb.svg +0 -1
- 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
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// Three-compat character viewer: a capsule stand-in character on a pedestal,
|
|
2
|
-
// authored through the public @aura3d/engine API. Replace the capsule with
|
|
3
|
-
// `model(assets.character)` once you add a typed character asset.
|
|
4
|
-
import { camera, createAuraApp, lights, material, primitives, scene } from "@aura3d/engine";
|
|
5
|
-
|
|
6
|
-
createAuraApp("#app", {
|
|
7
|
-
scene: scene()
|
|
8
|
-
.background("#0d1119")
|
|
9
|
-
.camera(camera.orbit({ target: [0, 1.2, 0], distance: 4.6 }))
|
|
10
|
-
.add(primitives.box({ name: "viewer floor", size: [5, 0.1, 5], position: [0, -0.05, 0], material: material.pbr({ color: "#161d2a", roughness: 0.92 }), receiveShadow: true }))
|
|
11
|
-
.add(primitives.cylinder({ name: "character pedestal", size: [1.4, 0.3, 1.4], position: [0, 0.15, 0], material: material.pbr({ color: "#2b3548", roughness: 0.55, metalness: 0.2 }), receiveShadow: true, castShadow: true }))
|
|
12
|
-
.add(primitives.capsule({ name: "stand-in character", size: [0.7, 1.7, 0.7], position: [0, 1.25, 0], material: material.pbr({ color: "#7fa6d9", roughness: 0.45 }), castShadow: true }))
|
|
13
|
-
.add(primitives.sphere({ name: "stand-in head marker", size: 0.3, position: [0, 2.25, 0], material: material.pbr({ color: "#d9c79f", roughness: 0.5 }), castShadow: true }))
|
|
14
|
-
.add(lights.ambient({ intensity: 0.32 }))
|
|
15
|
-
.add(lights.directional({ name: "key light", position: [3, 4.5, 3], intensity: 1.5 }))
|
|
16
|
-
.add(lights.point({ name: "rim light", position: [-2.4, 2.6, -2.2], intensity: 1.5, color: "#8fb8ff" }))
|
|
17
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template screenshot shows content", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const screenshot = await page.screenshot({ fullPage: false });
|
|
11
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
12
|
-
writeFileSync(resolve("tests/reports/screenshot.png"), screenshot);
|
|
13
|
-
writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength }, null, 2)}\n`);
|
|
14
|
-
expect(screenshot.byteLength).toBeGreaterThan(1000);
|
|
15
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// Three-compat migration example: the classic hand-rolled three.js starter
|
|
2
|
-
// (ground plane + a few lit primitives) rebuilt with the public
|
|
3
|
-
// @aura3d/engine API — no manual renderer, scene graph, or render loop.
|
|
4
|
-
import { camera, createAuraApp, lights, material, primitives, scene } from "@aura3d/engine";
|
|
5
|
-
|
|
6
|
-
createAuraApp("#app", {
|
|
7
|
-
scene: scene()
|
|
8
|
-
.background("#101521")
|
|
9
|
-
.camera(camera.orbit({ target: [0, 0.7, 0], distance: 6 }))
|
|
10
|
-
.add(primitives.plane({ name: "ground", size: [10, 1, 10], material: material.pbr({ color: "#1b2334", roughness: 0.9 }), receiveShadow: true }))
|
|
11
|
-
.add(primitives.box({ name: "migrated box mesh", size: 1, position: [-1.6, 0.5, 0], rotation: [0, 0.6, 0], material: material.pbr({ color: "#e2674a", roughness: 0.5 }), castShadow: true }))
|
|
12
|
-
.add(primitives.sphere({ name: "migrated sphere mesh", size: 1.1, position: [0.2, 0.55, -0.4], material: material.metal({ color: "#bcd0e6", roughness: 0.18 }), castShadow: true }))
|
|
13
|
-
.add(primitives.torus({ name: "migrated torus mesh", size: 0.9, position: [1.9, 0.75, 0.6], rotation: [0.9, 0, 0.4], material: material.pbr({ color: "#5dbb8d", roughness: 0.4 }), castShadow: true }))
|
|
14
|
-
.add(lights.ambient({ intensity: 0.3 }))
|
|
15
|
-
.add(lights.directional({ name: "sun", position: [4, 6, 3], intensity: 1.5 }))
|
|
16
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template screenshot shows content", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const screenshot = await page.screenshot({ fullPage: false });
|
|
11
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
12
|
-
writeFileSync(resolve("tests/reports/screenshot.png"), screenshot);
|
|
13
|
-
writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength }, null, 2)}\n`);
|
|
14
|
-
expect(screenshot.byteLength).toBeGreaterThan(1000);
|
|
15
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "aura3d-three-compat-large-scene",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"private": true,
|
|
5
|
-
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "vite --host 127.0.0.1",
|
|
8
|
-
"typecheck": "tsc --noEmit",
|
|
9
|
-
"build": "npm run typecheck && vite build",
|
|
10
|
-
"preview": "vite preview --host 127.0.0.1",
|
|
11
|
-
"test": "playwright test tests/route-health.spec.ts tests/screenshot.spec.ts --workers=1"
|
|
12
|
-
},
|
|
13
|
-
"dependencies": {
|
|
14
|
-
"@aura3d/engine": "3.0.1",
|
|
15
|
-
"@aura3d/navigation-recast": "3.0.1"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@playwright/test": "1.59.1",
|
|
19
|
-
"typescript": "^5.8.3",
|
|
20
|
-
"vite": "^7.3.2"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// Three-compat large scene: a deterministic grid of many boxes (a city-block
|
|
2
|
-
// style stress layout) authored through the public @aura3d/engine API.
|
|
3
|
-
import { camera, createAuraApp, lights, material, primitives, scene } from "@aura3d/engine";
|
|
4
|
-
|
|
5
|
-
const palette = ["#39465e", "#46587a", "#54688f", "#62799f", "#4d5a74"] as const;
|
|
6
|
-
const grid = scene()
|
|
7
|
-
.background("#0a0e15")
|
|
8
|
-
.camera(camera.orbit({ target: [0, 1, 0], distance: 16 }))
|
|
9
|
-
.add(primitives.box({ name: "large scene ground", size: [22, 0.1, 22], position: [0, -0.05, 0], material: material.pbr({ color: "#141b28", roughness: 0.95 }), receiveShadow: true }));
|
|
10
|
-
|
|
11
|
-
const span = 9; // 9 x 9 = 81 boxes
|
|
12
|
-
for (let row = 0; row < span; row += 1) {
|
|
13
|
-
for (let col = 0; col < span; col += 1) {
|
|
14
|
-
const index = row * span + col;
|
|
15
|
-
const height = 0.5 + ((index * 37) % 23) / 23 * 2.6;
|
|
16
|
-
grid.add(primitives.box({
|
|
17
|
-
name: `block r${row} c${col}`,
|
|
18
|
-
size: [1.1, height, 1.1],
|
|
19
|
-
position: [(col - (span - 1) / 2) * 2.2, height / 2, (row - (span - 1) / 2) * 2.2],
|
|
20
|
-
material: material.pbr({ color: palette[index % palette.length], roughness: 0.62 }),
|
|
21
|
-
castShadow: true,
|
|
22
|
-
receiveShadow: true
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
grid
|
|
28
|
-
.add(lights.ambient({ intensity: 0.3 }))
|
|
29
|
-
.add(lights.directional({ name: "low sun", position: [8, 10, 6], intensity: 1.4, color: "#ffe7c8" }));
|
|
30
|
-
|
|
31
|
-
createAuraApp("#app", { scene: grid });
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template reaches ready state", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const drawCalls = Number(await page.locator("body").getAttribute("data-aura3d-draw-calls"));
|
|
11
|
-
const diagnostics = await page.evaluate(() => (window as unknown as { __AURA3D_ROUTE_READY__?: { diagnostics?: { backend?: string } } }).__AURA3D_ROUTE_READY__?.diagnostics);
|
|
12
|
-
expect(diagnostics?.backend).toBe("webgl2");
|
|
13
|
-
expect(drawCalls).toBeGreaterThan(0);
|
|
14
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
15
|
-
writeFileSync(resolve("tests/reports/route-health.json"), `${JSON.stringify({ ready: true, backend: diagnostics?.backend, drawCalls }, null, 2)}\n`);
|
|
16
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template screenshot shows content", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const screenshot = await page.screenshot({ fullPage: false });
|
|
11
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
12
|
-
writeFileSync(resolve("tests/reports/screenshot.png"), screenshot);
|
|
13
|
-
writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength }, null, 2)}\n`);
|
|
14
|
-
expect(screenshot.byteLength).toBeGreaterThan(1000);
|
|
15
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "aura3d-three-compat-material-authoring",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"private": true,
|
|
5
|
-
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "vite --host 127.0.0.1",
|
|
8
|
-
"typecheck": "tsc --noEmit",
|
|
9
|
-
"build": "npm run typecheck && vite build",
|
|
10
|
-
"preview": "vite preview --host 127.0.0.1",
|
|
11
|
-
"test": "playwright test tests/route-health.spec.ts tests/screenshot.spec.ts --workers=1"
|
|
12
|
-
},
|
|
13
|
-
"dependencies": {
|
|
14
|
-
"@aura3d/engine": "3.0.1",
|
|
15
|
-
"@aura3d/navigation-recast": "3.0.1"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@playwright/test": "1.59.1",
|
|
19
|
-
"typescript": "^5.8.3",
|
|
20
|
-
"vite": "^7.3.2"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// Three-compat material authoring: a row of spheres showcasing the public
|
|
2
|
-
// @aura3d/engine material presets (pbr, metal, rubber, glass, emissive).
|
|
3
|
-
import { camera, createAuraApp, lights, material, primitives, scene } from "@aura3d/engine";
|
|
4
|
-
|
|
5
|
-
const swatches = [
|
|
6
|
-
{ name: "pbr swatch", material: material.pbr({ color: "#c66f53", roughness: 0.55 }) },
|
|
7
|
-
{ name: "metal swatch", material: material.metal({ color: "#d7e1ec", roughness: 0.12 }) },
|
|
8
|
-
{ name: "rubber swatch", material: material.rubber({ color: "#22262e" }) },
|
|
9
|
-
{ name: "glass swatch", material: material.glass({ color: "#bfe6ff" }) },
|
|
10
|
-
{ name: "emissive swatch", material: material.emissive({ color: "#13202c", emissive: "#38d6ff", emissiveIntensity: 1.2 }) }
|
|
11
|
-
] as const;
|
|
12
|
-
|
|
13
|
-
const lab = scene()
|
|
14
|
-
.background("#0c1018")
|
|
15
|
-
.camera(camera.orbit({ target: [0, 0.7, 0], distance: 6.4 }))
|
|
16
|
-
.add(primitives.box({ name: "swatch bench", size: [7, 0.12, 2.4], position: [0, -0.06, 0], material: material.pbr({ color: "#1c2433", roughness: 0.88 }), receiveShadow: true }));
|
|
17
|
-
|
|
18
|
-
swatches.forEach((swatch, index) => {
|
|
19
|
-
lab.add(primitives.sphere({
|
|
20
|
-
name: swatch.name,
|
|
21
|
-
size: 0.9,
|
|
22
|
-
position: [(index - (swatches.length - 1) / 2) * 1.35, 0.65, 0],
|
|
23
|
-
material: swatch.material,
|
|
24
|
-
castShadow: true
|
|
25
|
-
}));
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
lab
|
|
29
|
-
.add(lights.ambient({ intensity: 0.3 }))
|
|
30
|
-
.add(lights.directional({ name: "key", position: [3, 4.5, 3.5], intensity: 1.5 }))
|
|
31
|
-
.add(lights.point({ name: "cool rim", position: [-3, 2.4, -2.4], intensity: 1.3, color: "#9fc4ff" }));
|
|
32
|
-
|
|
33
|
-
createAuraApp("#app", { scene: lab });
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template reaches ready state", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const drawCalls = Number(await page.locator("body").getAttribute("data-aura3d-draw-calls"));
|
|
11
|
-
const diagnostics = await page.evaluate(() => (window as unknown as { __AURA3D_ROUTE_READY__?: { diagnostics?: { backend?: string } } }).__AURA3D_ROUTE_READY__?.diagnostics);
|
|
12
|
-
expect(diagnostics?.backend).toBe("webgl2");
|
|
13
|
-
expect(drawCalls).toBeGreaterThan(0);
|
|
14
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
15
|
-
writeFileSync(resolve("tests/reports/route-health.json"), `${JSON.stringify({ ready: true, backend: diagnostics?.backend, drawCalls }, null, 2)}\n`);
|
|
16
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template screenshot shows content", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const screenshot = await page.screenshot({ fullPage: false });
|
|
11
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
12
|
-
writeFileSync(resolve("tests/reports/screenshot.png"), screenshot);
|
|
13
|
-
writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength }, null, 2)}\n`);
|
|
14
|
-
expect(screenshot.byteLength).toBeGreaterThan(1000);
|
|
15
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "aura3d-three-compat-postprocess-scene",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"private": true,
|
|
5
|
-
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "vite --host 127.0.0.1",
|
|
8
|
-
"typecheck": "tsc --noEmit",
|
|
9
|
-
"build": "npm run typecheck && vite build",
|
|
10
|
-
"preview": "vite preview --host 127.0.0.1",
|
|
11
|
-
"test": "playwright test tests/route-health.spec.ts tests/screenshot.spec.ts --workers=1"
|
|
12
|
-
},
|
|
13
|
-
"dependencies": {
|
|
14
|
-
"@aura3d/engine": "3.0.1",
|
|
15
|
-
"@aura3d/navigation-recast": "3.0.1"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@playwright/test": "1.59.1",
|
|
19
|
-
"typescript": "^5.8.3",
|
|
20
|
-
"vite": "^7.3.2"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// Three-compat postprocess scene: emissive primitives pushed through the
|
|
2
|
-
// engine's bloom post pass, authored via the public @aura3d/engine API.
|
|
3
|
-
import { camera, createAuraApp, effects, lights, material, primitives, scene } from "@aura3d/engine";
|
|
4
|
-
|
|
5
|
-
createAuraApp("#app", {
|
|
6
|
-
scene: scene()
|
|
7
|
-
.background("#070a11")
|
|
8
|
-
.camera(camera.orbit({ target: [0, 0.9, 0], distance: 6 }))
|
|
9
|
-
.add(primitives.box({ name: "dark deck", size: [8, 0.1, 8], position: [0, -0.05, 0], material: material.pbr({ color: "#101723", roughness: 0.92 }), receiveShadow: true }))
|
|
10
|
-
.add(primitives.sphere({ name: "bloom core", size: 1.1, position: [0, 1, 0], material: material.emissive({ color: "#1a2330", emissive: "#7dfcff", emissiveIntensity: 1.6 }), castShadow: true }))
|
|
11
|
-
.add(primitives.torus({ name: "neon ring", size: 1.5, position: [0, 1, 0], rotation: [1.1, 0, 0.2], material: material.emissive({ color: "#171120", emissive: "#ff42c8", emissiveIntensity: 1.3 }), castShadow: true }))
|
|
12
|
-
.add(primitives.box({ name: "amber pylon", size: [0.4, 1.6, 0.4], position: [-2.4, 0.8, -1.2], material: material.emissive({ color: "#221a10", emissive: "#ffb347", emissiveIntensity: 1.1 }), castShadow: true }))
|
|
13
|
-
.add(primitives.box({ name: "cyan pylon", size: [0.4, 1.1, 0.4], position: [2.3, 0.55, 1], material: material.emissive({ color: "#101d22", emissive: "#38d6ff", emissiveIntensity: 1.1 }), castShadow: true }))
|
|
14
|
-
.add(effects.bloom({ intensity: 0.55, threshold: 0.62, radius: 0.42 }))
|
|
15
|
-
.add(lights.ambient({ intensity: 0.26 }))
|
|
16
|
-
.add(lights.directional({ name: "soft key", position: [3, 5, 3], intensity: 0.9 }))
|
|
17
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template reaches ready state", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const drawCalls = Number(await page.locator("body").getAttribute("data-aura3d-draw-calls"));
|
|
11
|
-
const diagnostics = await page.evaluate(() => (window as unknown as { __AURA3D_ROUTE_READY__?: { diagnostics?: { backend?: string } } }).__AURA3D_ROUTE_READY__?.diagnostics);
|
|
12
|
-
expect(diagnostics?.backend).toBe("webgl2");
|
|
13
|
-
expect(drawCalls).toBeGreaterThan(0);
|
|
14
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
15
|
-
writeFileSync(resolve("tests/reports/route-health.json"), `${JSON.stringify({ ready: true, backend: diagnostics?.backend, drawCalls }, null, 2)}\n`);
|
|
16
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template screenshot shows content", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const screenshot = await page.screenshot({ fullPage: false });
|
|
11
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
12
|
-
writeFileSync(resolve("tests/reports/screenshot.png"), screenshot);
|
|
13
|
-
writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength }, null, 2)}\n`);
|
|
14
|
-
expect(screenshot.byteLength).toBeGreaterThan(1000);
|
|
15
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "aura3d-three-compat-premium-product-viewer",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"private": true,
|
|
5
|
-
"type": "module",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "vite --host 127.0.0.1",
|
|
8
|
-
"typecheck": "tsc --noEmit",
|
|
9
|
-
"build": "npm run typecheck && vite build",
|
|
10
|
-
"preview": "vite preview --host 127.0.0.1",
|
|
11
|
-
"test": "playwright test tests/route-health.spec.ts tests/screenshot.spec.ts --workers=1"
|
|
12
|
-
},
|
|
13
|
-
"dependencies": {
|
|
14
|
-
"@aura3d/engine": "3.0.1",
|
|
15
|
-
"@aura3d/navigation-recast": "3.0.1"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@playwright/test": "1.59.1",
|
|
19
|
-
"typescript": "^5.8.3",
|
|
20
|
-
"vite": "^7.3.2"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// Three-compat premium product viewer: a hero sphere on a studio stage with
|
|
2
|
-
// plinth, sweep, and softbox-style lighting via the public @aura3d/engine API.
|
|
3
|
-
// Swap the sphere for `model(assets.product)` once you add a typed asset.
|
|
4
|
-
import { camera, createAuraApp, effects, lights, material, primitives, scene } from "@aura3d/engine";
|
|
5
|
-
|
|
6
|
-
createAuraApp("#app", {
|
|
7
|
-
scene: scene()
|
|
8
|
-
.background("#0a0d13")
|
|
9
|
-
.camera(camera.orbit({ target: [0, 0.95, 0], distance: 4.4 }))
|
|
10
|
-
.add(primitives.box({ name: "studio sweep floor", size: [7, 0.1, 7], position: [0, -0.05, 0], material: material.pbr({ color: "#171e2b", roughness: 0.85 }), receiveShadow: true }))
|
|
11
|
-
.add(primitives.box({ name: "studio sweep backdrop", size: [7, 3.2, 0.12], position: [0, 1.55, -3], material: material.pbr({ color: "#131927", roughness: 0.9 }), receiveShadow: true }))
|
|
12
|
-
.add(primitives.cylinder({ name: "product plinth", size: [1.5, 0.5, 1.5], position: [0, 0.25, 0], material: material.pbr({ color: "#222c3f", roughness: 0.4, metalness: 0.3 }), castShadow: true, receiveShadow: true }))
|
|
13
|
-
.add(primitives.sphere({ name: "hero product", size: 1.05, position: [0, 1.05, 0], material: material.metal({ color: "#e7d9b8", roughness: 0.14, clearcoat: 0.6 }), castShadow: true }))
|
|
14
|
-
.add(lights.studio())
|
|
15
|
-
.add(lights.rect({ name: "softbox key", position: [2.6, 2.8, 2.2], intensity: 1.4, width: 2, height: 1.4 }))
|
|
16
|
-
.add(lights.point({ name: "cool rim", position: [-2.6, 2.2, -1.8], intensity: 1.2, color: "#a9c8ff" }))
|
|
17
|
-
.add(effects.bloom({ intensity: 0.22, threshold: 0.78 }))
|
|
18
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template reaches ready state", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const drawCalls = Number(await page.locator("body").getAttribute("data-aura3d-draw-calls"));
|
|
11
|
-
const diagnostics = await page.evaluate(() => (window as unknown as { __AURA3D_ROUTE_READY__?: { diagnostics?: { backend?: string } } }).__AURA3D_ROUTE_READY__?.diagnostics);
|
|
12
|
-
expect(diagnostics?.backend).toBe("webgl2");
|
|
13
|
-
expect(drawCalls).toBeGreaterThan(0);
|
|
14
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
15
|
-
writeFileSync(resolve("tests/reports/route-health.json"), `${JSON.stringify({ ready: true, backend: diagnostics?.backend, drawCalls }, null, 2)}\n`);
|
|
16
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { expect, test } from "@playwright/test";
|
|
4
|
-
|
|
5
|
-
test.setTimeout(60_000);
|
|
6
|
-
|
|
7
|
-
test("Aura3D three-compat template screenshot shows content", async ({ page }) => {
|
|
8
|
-
await page.goto("/");
|
|
9
|
-
await expect.poll(() => page.locator("body").getAttribute("data-aura3d-ready"), { timeout: 45_000 }).toBe("true");
|
|
10
|
-
const screenshot = await page.screenshot({ fullPage: false });
|
|
11
|
-
mkdirSync(resolve("tests/reports"), { recursive: true });
|
|
12
|
-
writeFileSync(resolve("tests/reports/screenshot.png"), screenshot);
|
|
13
|
-
writeFileSync(resolve("tests/reports/screenshot.json"), `${JSON.stringify({ bytes: screenshot.byteLength }, null, 2)}\n`);
|
|
14
|
-
expect(screenshot.byteLength).toBeGreaterThan(1000);
|
|
15
|
-
});
|
|
File without changes
|
/package/templates/{three-compat-architecture-interior → architecture-interior}/playwright.config.ts
RENAMED
|
File without changes
|
/package/templates/{three-compat-architecture-interior → architecture-interior}/tsconfig.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/templates/{three-compat-custom-threejs-migration → custom-scene}/playwright.config.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/templates/{three-compat-material-authoring → material-authoring}/playwright.config.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/templates/{three-compat-postprocess-scene → postprocess-scene}/playwright.config.ts
RENAMED
|
File without changes
|
|
File without changes
|
/package/templates/{three-compat-premium-product-viewer → premium-product-viewer}/index.html
RENAMED
|
File without changes
|
|
File without changes
|
/package/templates/{three-compat-premium-product-viewer → premium-product-viewer}/tsconfig.json
RENAMED
|
File without changes
|