create-aura3d 1.1.2 → 1.3.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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/package.json +11 -9
- package/templates/{cartoon-channel → animation-channel}/README.md +11 -11
- package/templates/{cartoon-studio → animation-channel}/index.html +1 -1
- package/templates/{cartoon-channel → animation-channel}/package.json +2 -2
- package/templates/{cartoon-channel → animation-channel}/src/episode.ts +22 -22
- package/templates/{cartoon-channel → animation-channel}/src/experimental/README.md +5 -5
- package/templates/{cartoon-channel → animation-channel}/src/experimental/concept-episode-2-5d.css +3 -3
- package/templates/{cartoon-channel → animation-channel}/src/experimental/concept-episode-2-5d.ts +7 -7
- package/templates/{cartoon-channel → animation-channel}/src/experimental/image-puppet-episode.css +4 -4
- package/templates/{cartoon-channel → animation-channel}/src/experimental/image-puppet-episode.ts +6 -6
- package/templates/{cartoon-channel → animation-channel}/src/experimental/puppet-episode-2d.css +3 -3
- package/templates/{cartoon-channel → animation-channel}/src/experimental/puppet-episode-2d.ts +7 -7
- package/templates/{cartoon-channel → animation-channel}/src/main.ts +32 -32
- package/templates/{cartoon-channel → animation-channel}/src/render-plan.ts +13 -13
- package/templates/{cartoon-channel → animation-channel}/src/sample-episode-visual.css +34 -34
- package/templates/{cartoon-channel → animation-channel}/src/sample-episode-visual.ts +20 -20
- package/templates/{cartoon-channel → animation-channel}/tests/concept-2-5d-animation.spec.ts +3 -3
- package/templates/{cartoon-channel → animation-channel}/tests/concept-2-5d.spec.ts +6 -6
- package/templates/{cartoon-channel → animation-channel}/tests/image-puppet-animation.spec.ts +3 -3
- package/templates/{cartoon-channel → animation-channel}/tests/image-puppet.spec.ts +5 -5
- package/templates/{cartoon-channel → animation-channel}/tests/puppet-2d-animation.spec.ts +3 -3
- package/templates/{cartoon-channel → animation-channel}/tests/puppet-2d.spec.ts +4 -4
- package/templates/{prompt-cartoon-channel → animation-channel}/tests/route-health.spec.ts +1 -1
- package/templates/{cartoon-channel → animation-channel}/tests/sample-episode-visual.spec.ts +5 -5
- package/templates/{cartoon-channel → animation-channel}/tests/storyboard-playback.spec.ts +7 -7
- package/templates/animation-studio/AGENTS.md +71 -0
- package/templates/{cartoon-studio → animation-studio}/ASSET-LICENSES.md +7 -7
- package/templates/{cartoon-studio → animation-studio}/README.md +6 -6
- package/templates/animation-studio/aura.assets.json +669 -0
- package/templates/animation-studio/dist/episodes/scene/episode-3d.webm +0 -0
- package/templates/animation-studio/dist/episodes/scene/frames/action.png +0 -0
- package/templates/animation-studio/dist/episodes/scene/frames/dialogue.png +0 -0
- package/templates/animation-studio/dist/episodes/scene/frames/final.png +0 -0
- package/templates/animation-studio/dist/episodes/scene/frames/first.png +0 -0
- package/templates/animation-studio/dist/episodes/scene/frames/mouth-closed.png +0 -0
- package/templates/animation-studio/dist/episodes/scene/frames/mouth-open.png +0 -0
- package/templates/animation-studio/dist/episodes/scene/render-live-summary.json +10284 -0
- package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-1.png +0 -0
- package/templates/animation-studio/dist/episodes/scene/skeleton-overlays/worker-2.png +0 -0
- package/templates/animation-studio/dist/generated/second-scene.document.json +1210 -0
- package/templates/animation-studio/dist/generated/studio-edited.document.json +1196 -0
- package/templates/animation-studio/dist/scene/inshader-accept.document.json +1 -0
- package/templates/animation-studio/dist/scene/inshader-test.document.json +1 -0
- package/templates/animation-studio/dist/scene/integ.document.json +1 -0
- package/templates/animation-studio/dist/scene/working.document.json +723 -0
- package/templates/animation-studio/dist/scene/working.history.json +1 -0
- package/templates/{cartoon-studio → animation-studio}/live-route.html +1 -1
- package/templates/{cartoon-studio → animation-studio}/package-lock.json +2 -2
- package/templates/animation-studio/package.json +32 -0
- package/templates/animation-studio/public/aura-assets/cast-a.catalog.glb +0 -0
- package/templates/animation-studio/public/aura-assets/cast-b.catalog.glb +0 -0
- package/templates/animation-studio/public/aura-assets/luma.catalog.glb +0 -0
- package/templates/animation-studio/public/aura-assets/luma2.catalog.glb +0 -0
- package/templates/animation-studio/public/aura-assets/miko.catalog.glb +0 -0
- package/templates/{cartoon-studio → animation-studio}/public/aura-assets/moonGarden.gltf +1 -1
- package/templates/animation-studio/public/aura-assets/mushroom.catalog.glb +0 -0
- package/templates/animation-studio/public/aura-assets/rusty.catalog.glb +0 -0
- package/templates/animation-studio/public/cast-library/cast-library.json +71 -0
- package/templates/animation-studio/public/clip-library/gesture.json +173903 -0
- package/templates/animation-studio/public/clip-library/idle.json +23035 -0
- package/templates/animation-studio/public/clip-library/manifest.json +154 -0
- package/templates/animation-studio/public/clip-library/nod.json +173903 -0
- package/templates/animation-studio/public/clip-library/point.json +69879 -0
- package/templates/animation-studio/public/clip-library/react.json +66084 -0
- package/templates/animation-studio/public/clip-library/run.json +9648 -0
- package/templates/animation-studio/public/clip-library/talk.json +69879 -0
- package/templates/animation-studio/public/clip-library/walk.json +8283 -0
- package/templates/animation-studio/public/hifi-cast/BrainStem.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/CesiumMan.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/RiggedFigure.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/kaykit/Barbarian.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/kaykit/Knight.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/kaykit/Mage.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/kaykit/Rogue.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/kaykit/Rogue_Hooded.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/khronos-report.json +295 -0
- package/templates/animation-studio/public/hifi-cast/quaternius-report.json +449 -0
- package/templates/animation-studio/public/hifi-cast/rpm/cesiumman.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/rpm/fox.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/rpm/riggedfigure.glb +0 -0
- package/templates/animation-studio/public/hifi-cast/rpm-report.json +301 -0
- package/templates/animation-studio/scripts/anim.ts +103 -0
- package/templates/animation-studio/scripts/animation-scene.ts +457 -0
- package/templates/animation-studio/scripts/asset-motion-probe.ts +450 -0
- package/templates/animation-studio/scripts/asset-render-probe.ts +152 -0
- package/templates/animation-studio/scripts/author-office-scene.ts +65 -0
- package/templates/animation-studio/scripts/build-cast-library.ts +97 -0
- package/templates/animation-studio/scripts/build-characters.ts +1543 -0
- package/templates/animation-studio/scripts/build-clip-library.ts +972 -0
- package/templates/animation-studio/scripts/clip-decision-cli.ts +51 -0
- package/templates/animation-studio/scripts/determinism-check.ts +48 -0
- package/templates/animation-studio/scripts/generate-scene.ts +95 -0
- package/templates/animation-studio/scripts/hifi-cast-validate.ts +572 -0
- package/templates/animation-studio/scripts/motion-evidence-cli.ts +150 -0
- package/templates/animation-studio/scripts/motion-evidence.ts +362 -0
- package/templates/animation-studio/scripts/preview-server.ts +52 -0
- package/templates/animation-studio/scripts/regen-manifest.ts +156 -0
- package/templates/animation-studio/scripts/render-core.ts +360 -0
- package/templates/animation-studio/scripts/render-live.ts +813 -0
- package/templates/animation-studio/scripts/render-parallel.ts +70 -0
- package/templates/animation-studio/scripts/render-server.ts +119 -0
- package/templates/animation-studio/scripts/resolve-asset.ts +669 -0
- package/templates/animation-studio/scripts/skeleton-overlay-cli.ts +82 -0
- package/templates/animation-studio/scripts/skeleton-overlay.ts +293 -0
- package/templates/animation-studio/scripts/studio-tools-demo.ts +45 -0
- package/templates/animation-studio/scripts/texture-bake.ts +297 -0
- package/templates/{cartoon-studio → animation-studio}/scripts/validate-characters.ts +0 -0
- package/templates/animation-studio/scripts/verify-extracted-overlay-cli.ts +264 -0
- package/templates/animation-studio/src/animation-episode-validator.ts +97 -0
- package/templates/animation-studio/src/animation-performance.ts +556 -0
- package/templates/animation-studio/src/aura-assets.ts +71 -0
- package/templates/animation-studio/src/character.ts +40 -0
- package/templates/animation-studio/src/director/compile-episode-document.ts +45 -0
- package/templates/animation-studio/src/director/director-heuristics.ts +697 -0
- package/templates/animation-studio/src/director/prompt-to-scene.ts +369 -0
- package/templates/animation-studio/src/empty-document.ts +77 -0
- package/templates/animation-studio/src/episode-document.ts +442 -0
- package/templates/animation-studio/src/examples/moon-garden.example.ts +183 -0
- package/templates/animation-studio/src/fidelity.ts +129 -0
- package/templates/animation-studio/src/graph.ts +14 -0
- package/templates/animation-studio/src/procedural-hdri.ts +243 -0
- package/templates/animation-studio/src/profile.ts +97 -0
- package/templates/animation-studio/src/render-live-route.ts +42 -0
- package/templates/animation-studio/src/render-modes.ts +137 -0
- package/templates/animation-studio/src/scene-player.ts +867 -0
- package/templates/animation-studio/src/set-templates.ts +361 -0
- package/templates/animation-studio/src/studio/episode-document-store.ts +72 -0
- package/templates/animation-studio/src/studio/scene-tool-registry.ts +86 -0
- package/templates/animation-studio/src/studio/scene-tools.ts +169 -0
- package/templates/animation-studio/tests/reports/animation-studio/hifi-cast-validation.json +938 -0
- package/templates/animation-studio/tsconfig.json +26 -0
- package/templates/{cartoon-studio → animation-studio}/vite.config.ts +6 -1
- package/templates/character-controller/README.md +33 -0
- package/templates/character-controller/index.html +19 -0
- package/templates/character-controller/package.json +23 -0
- package/templates/character-controller/playwright.config.ts +14 -0
- package/templates/character-controller/src/controller.ts +44 -0
- package/templates/character-controller/src/main.ts +62 -0
- package/templates/character-controller/tests/route-health.spec.ts +26 -0
- package/templates/character-controller/tests/screenshot.spec.ts +9 -0
- package/templates/character-controller/tsconfig.json +15 -0
- package/templates/cinematic-scene/package.json +1 -1
- package/templates/episode-builder/README.md +4 -4
- package/templates/episode-builder/package.json +1 -1
- package/templates/episode-builder/src/aura-assets.ts +1 -1
- package/templates/episode-builder/src/builder.ts +4 -4
- package/templates/episode-builder/src/episode.ts +21 -21
- package/templates/episode-builder/src/main.ts +20 -20
- package/templates/episode-builder/src/render-plan.ts +13 -13
- package/templates/episode-builder/tests/storyboard-playback.spec.ts +7 -7
- package/templates/fighting-game/package.json +1 -1
- package/templates/mini-game/package.json +1 -1
- package/templates/product-viewer/package.json +1 -1
- package/templates/{prompt-cartoon-channel → prompt-animation-channel}/README.md +5 -5
- package/templates/{cartoon-channel → prompt-animation-channel}/index.html +1 -1
- package/templates/{prompt-cartoon-channel → prompt-animation-channel}/package.json +2 -2
- package/templates/{prompt-cartoon-channel → prompt-animation-channel}/src/aura-assets.ts +1 -1
- package/templates/{prompt-cartoon-channel → prompt-animation-channel}/src/episode.ts +22 -22
- package/templates/{prompt-cartoon-channel → prompt-animation-channel}/src/main.ts +28 -28
- package/templates/{prompt-cartoon-channel → prompt-animation-channel}/src/render-plan.ts +13 -13
- package/templates/{cartoon-channel → prompt-animation-channel}/tests/route-health.spec.ts +1 -1
- package/templates/{prompt-cartoon-channel → prompt-animation-channel}/tests/storyboard-playback.spec.ts +8 -8
- package/templates/cartoon-studio/aura.assets.json +0 -400
- package/templates/cartoon-studio/package.json +0 -33
- package/templates/cartoon-studio/public/aura-assets/luma.authored.glb +0 -0
- package/templates/cartoon-studio/public/aura-assets/miko.authored.glb +0 -0
- package/templates/cartoon-studio/scripts/build-characters.ts +0 -738
- package/templates/cartoon-studio/scripts/build-dialogue-audio.ts +0 -262
- package/templates/cartoon-studio/scripts/episode.ts +0 -323
- package/templates/cartoon-studio/scripts/render-live.ts +0 -873
- package/templates/cartoon-studio/src/aura-assets.ts +0 -64
- package/templates/cartoon-studio/src/characters.ts +0 -65
- package/templates/cartoon-studio/src/episode-renderer.ts +0 -605
- package/templates/cartoon-studio/src/episode.ts +0 -306
- package/templates/cartoon-studio/src/main.ts +0 -400
- package/templates/cartoon-studio/src/render-live-route.ts +0 -913
- package/templates/cartoon-studio/src/render-plan.ts +0 -567
- package/templates/cartoon-studio/src/review.ts +0 -99
- package/templates/cartoon-studio/src/studio.ts +0 -101
- package/templates/cartoon-studio/test-results/.last-run.json +0 -4
- package/templates/cartoon-studio/tests/episode-render.spec.ts +0 -44
- package/templates/cartoon-studio/tests/motion-quality.spec.ts +0 -45
- package/templates/cartoon-studio/tests/route-health.spec.ts +0 -7
- package/templates/cartoon-studio/tests/storyboard-playback.spec.ts +0 -99
- package/templates/cartoon-studio/tests/visual-review.spec.ts +0 -21
- package/templates/cartoon-studio/tsconfig.json +0 -14
- package/templates/prompt-cartoon-channel/index.html +0 -13
- package/templates/prompt-cartoon-channel/src/sets.ts +0 -14
- /package/templates/{cartoon-channel → animation-channel}/aura.assets.json +0 -0
- /package/templates/{cartoon-channel → animation-channel}/playwright.config.ts +0 -0
- /package/templates/{cartoon-channel → animation-channel}/public/aura-assets/luma.047f5e5f.glb +0 -0
- /package/templates/{cartoon-channel → animation-channel}/public/aura-assets/luma.thumb.svg +0 -0
- /package/templates/{cartoon-channel → animation-channel}/public/aura-assets/miko.047f5e5f.glb +0 -0
- /package/templates/{cartoon-channel → animation-channel}/public/aura-assets/miko.thumb.svg +0 -0
- /package/templates/{cartoon-channel → animation-channel}/public/aura-assets/moon-garden-feature-frame.png +0 -0
- /package/templates/{cartoon-channel → animation-channel}/src/aura-assets.ts +0 -0
- /package/templates/{cartoon-channel → animation-channel}/src/characters.ts +0 -0
- /package/templates/{cartoon-channel → animation-channel}/src/contract.ts +0 -0
- /package/templates/{cartoon-channel → animation-channel}/src/sets.ts +0 -0
- /package/templates/{cartoon-channel → animation-channel}/test-results/.last-run.json +0 -0
- /package/templates/{cartoon-channel → animation-channel}/tests/reports/prompt-animation/cartoon-sample-episode.png +0 -0
- /package/templates/{cartoon-channel → animation-channel}/tsconfig.json +0 -0
- /package/templates/{cartoon-studio → animation-studio}/playwright.config.ts +0 -0
- /package/templates/{cartoon-studio → animation-studio}/public/aura-assets/luma.thumb.svg +0 -0
- /package/templates/{cartoon-studio → animation-studio}/public/aura-assets/miko.thumb.svg +0 -0
- /package/templates/{cartoon-studio → animation-studio}/src/contract.ts +0 -0
- /package/templates/{prompt-cartoon-channel → prompt-animation-channel}/playwright.config.ts +0 -0
- /package/templates/{prompt-cartoon-channel → prompt-animation-channel}/src/characters.ts +0 -0
- /package/templates/{prompt-cartoon-channel → prompt-animation-channel}/src/contract.ts +0 -0
- /package/templates/{cartoon-studio → prompt-animation-channel}/src/sets.ts +0 -0
- /package/templates/{prompt-cartoon-channel → prompt-animation-channel}/tsconfig.json +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const CREATE_AURA3D_TEMPLATES: readonly ["product-viewer", "cinematic-scene", "mini-game", "fighting-game", "
|
|
1
|
+
export declare const CREATE_AURA3D_TEMPLATES: readonly ["product-viewer", "cinematic-scene", "mini-game", "fighting-game", "animation-channel", "prompt-animation-channel", "animation-studio", "episode-builder", "animation-studio", "character-controller"];
|
|
2
2
|
export type CreateA3DTemplate = (typeof CREATE_AURA3D_TEMPLATES)[number];
|
|
3
3
|
export interface CreateA3DProjectOptions {
|
|
4
4
|
readonly targetDir: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,kNAW1B,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CA6BzF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAGvF"}
|
package/dist/index.js
CHANGED
|
@@ -6,10 +6,12 @@ export const CREATE_AURA3D_TEMPLATES = [
|
|
|
6
6
|
"cinematic-scene",
|
|
7
7
|
"mini-game",
|
|
8
8
|
"fighting-game",
|
|
9
|
-
"
|
|
10
|
-
"prompt-
|
|
11
|
-
"
|
|
9
|
+
"animation-channel",
|
|
10
|
+
"prompt-animation-channel",
|
|
11
|
+
"animation-studio",
|
|
12
12
|
"episode-builder",
|
|
13
|
+
"animation-studio",
|
|
14
|
+
"character-controller",
|
|
13
15
|
];
|
|
14
16
|
export function createA3DProject(options) {
|
|
15
17
|
const template = options.template ?? "product-viewer";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;IACX,eAAe;IACf,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/create-aura3d/src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-aura3d",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"create-aura3d": "dist/cli.js"
|
|
@@ -11,10 +11,12 @@
|
|
|
11
11
|
"templates/cinematic-scene",
|
|
12
12
|
"templates/mini-game",
|
|
13
13
|
"templates/fighting-game",
|
|
14
|
-
"templates/
|
|
15
|
-
"templates/prompt-
|
|
16
|
-
"templates/
|
|
17
|
-
"templates/episode-builder"
|
|
14
|
+
"templates/animation-channel",
|
|
15
|
+
"templates/prompt-animation-channel",
|
|
16
|
+
"templates/animation-studio",
|
|
17
|
+
"templates/episode-builder",
|
|
18
|
+
"templates/animation-studio",
|
|
19
|
+
"templates/character-controller"
|
|
18
20
|
],
|
|
19
21
|
"publishConfig": {
|
|
20
22
|
"access": "public"
|
|
@@ -27,7 +29,7 @@
|
|
|
27
29
|
},
|
|
28
30
|
"main": "./dist/index.js",
|
|
29
31
|
"types": "./dist/index.d.ts",
|
|
30
|
-
"description": "Scaffold Aura3D browser 3D apps for product viewers, cinematic scenes, mini-games, fighting-game runtimes, prompt-driven
|
|
32
|
+
"description": "Scaffold Aura3D browser 3D apps for product viewers, cinematic scenes, mini-games, fighting-game runtimes, prompt-driven animation channels, animation studios, and episode builders.",
|
|
31
33
|
"keywords": [
|
|
32
34
|
"create-aura3d",
|
|
33
35
|
"vite",
|
|
@@ -35,10 +37,10 @@
|
|
|
35
37
|
"browser-3d",
|
|
36
38
|
"product-viewer",
|
|
37
39
|
"fighting-game",
|
|
38
|
-
"prompt-
|
|
39
|
-
"
|
|
40
|
+
"prompt-animation-channel",
|
|
41
|
+
"animation-studio",
|
|
40
42
|
"episode-builder",
|
|
41
|
-
"
|
|
43
|
+
"animation-animation",
|
|
42
44
|
"prompt-to-video",
|
|
43
45
|
"game-runtime",
|
|
44
46
|
"gltf",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# Aura3D
|
|
1
|
+
# Aura3D Animation Channel Template
|
|
2
2
|
|
|
3
|
-
> **Status: example / experimental.** The flagship
|
|
4
|
-
> [`
|
|
3
|
+
> **Status: example / experimental.** The flagship animation pipeline is the
|
|
4
|
+
> [`animation-studio`](../animation-studio) template. This `animation-channel`
|
|
5
5
|
> template is a contract/example demonstrating the AuraVoice-to-Aura3D handoff.
|
|
6
6
|
> Its release-facing route is `src/sample-episode-visual.ts`. The rejected
|
|
7
7
|
> `notTrue3D` puppet/parallax experiments are quarantined under
|
|
@@ -22,14 +22,14 @@ It uses:
|
|
|
22
22
|
- Primitive-mouth and typed-GLB viseme examples.
|
|
23
23
|
- Phoneme/viseme/dub source proof metadata for stable shot, storyboard, caption, line, and word timing ids.
|
|
24
24
|
- A deterministic sample episode visual layer at `/?sampleTime=24` so reviewers
|
|
25
|
-
can see a clean
|
|
26
|
-
- An Aura3D-rendered
|
|
25
|
+
can see a clean animation frame sourced from the same shot/caption contract.
|
|
26
|
+
- An Aura3D-rendered animation scene graph for visual review: moon garden,
|
|
27
27
|
stylized robot characters, props, lights, camera, captions, and typed GLB
|
|
28
28
|
character asset evidence through `src/aura-assets.ts`.
|
|
29
29
|
- A release-facing route that deliberately ignores the rejected
|
|
30
30
|
`concept-2-5d`, `puppet-2d`, and `image-puppet` query views. Those earlier
|
|
31
31
|
experiments remain only as negative evidence: still-image parallax, flat
|
|
32
|
-
cutout motion, and `notTrue3D` proof are not accepted as Aura3D 1.1
|
|
32
|
+
cutout motion, and `notTrue3D` proof are not accepted as Aura3D 1.1 animation
|
|
33
33
|
animation readiness.
|
|
34
34
|
|
|
35
35
|
Replace primitive characters with typed GLB assets by running:
|
|
@@ -37,7 +37,7 @@ Replace primitive characters with typed GLB assets by running:
|
|
|
37
37
|
```bash
|
|
38
38
|
npx @aura3d/cli@latest assets add ./assets/miko.glb --name miko
|
|
39
39
|
npx @aura3d/cli@latest assets add ./assets/luma.glb --name luma
|
|
40
|
-
npx @aura3d/cli@latest assets validate-
|
|
40
|
+
npx @aura3d/cli@latest assets validate-animation
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
Then import `assets.miko` and `assets.luma` from `src/aura-assets.ts` and pass them to `model(assets.miko)` and `model(assets.luma)`.
|
|
@@ -62,7 +62,7 @@ npm test
|
|
|
62
62
|
The visual test captures a review frame at:
|
|
63
63
|
|
|
64
64
|
```text
|
|
65
|
-
tests/reports/prompt-animation/
|
|
65
|
+
tests/reports/prompt-animation/animation-sample-episode.png
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
Run the failed-puppet negative gate:
|
|
@@ -77,14 +77,14 @@ route and do not expose release-facing puppet/parallax proof objects. The
|
|
|
77
77
|
rejected experiment modules themselves live under `src/experimental/` (see
|
|
78
78
|
`src/experimental/README.md`) and are never imported by the app.
|
|
79
79
|
|
|
80
|
-
Do not use `tests/reports/prompt-animation/
|
|
81
|
-
or the old 2.5D/cutout routes as product evidence. Aura3D's accepted
|
|
80
|
+
Do not use `tests/reports/prompt-animation/animation-image-puppet-animation.webm`
|
|
81
|
+
or the old 2.5D/cutout routes as product evidence. Aura3D's accepted animation
|
|
82
82
|
animation proof must come from typed assets or explicitly segmented rigs with
|
|
83
83
|
independent body-region motion, caption timing, visible mouth movement, and
|
|
84
84
|
render/package evidence.
|
|
85
85
|
|
|
86
86
|
This scaffold intentionally does not claim publish readiness from source alone.
|
|
87
87
|
Before closing build, route, asset, screenshot, render, or visual-quality gates,
|
|
88
|
-
archive the matching `npm run build`, `assets validate-
|
|
88
|
+
archive the matching `npm run build`, `assets validate-animation`, browser
|
|
89
89
|
evidence, screenshot hashes, render outputs, and human or automated review
|
|
90
90
|
artifacts.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "aura3d-
|
|
2
|
+
"name": "aura3d-animation-channel",
|
|
3
3
|
"version": "0.1.0",
|
|
4
4
|
"private": true,
|
|
5
5
|
"type": "module",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"test:negative-failed-puppets": "playwright test tests/concept-2-5d.spec.ts tests/puppet-2d.spec.ts tests/image-puppet.spec.ts tests/concept-2-5d-animation.spec.ts tests/puppet-2d-animation.spec.ts tests/image-puppet-animation.spec.ts --workers=1"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@aura3d/engine": "1.
|
|
15
|
+
"@aura3d/engine": "1.3.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@playwright/test": "^1.52.0",
|
|
@@ -4,37 +4,37 @@ import { AURAVOICE_AURA3D_PROMPT_ANIMATION_CONTRACT_ID } from "./contract";
|
|
|
4
4
|
|
|
5
5
|
export const episodeContractId = AURAVOICE_AURA3D_PROMPT_ANIMATION_CONTRACT_ID;
|
|
6
6
|
|
|
7
|
-
export type
|
|
7
|
+
export type AnimationAssetKey = "miko" | "luma" | "glowBroom" | "glowStones" | "moonLilies";
|
|
8
8
|
|
|
9
|
-
type
|
|
9
|
+
type TypedAnimationAssets = Partial<Record<AnimationAssetKey, AuraAssetRef<"model">>>;
|
|
10
10
|
|
|
11
|
-
const
|
|
11
|
+
const typedAnimationAssets = assets as TypedAnimationAssets;
|
|
12
12
|
|
|
13
|
-
export const
|
|
14
|
-
export const
|
|
15
|
-
export const
|
|
13
|
+
export const requiredAnimationCharacterAssets = ["miko", "luma"] as const;
|
|
14
|
+
export const optionalAnimationPropAssets = ["glowBroom", "glowStones", "moonLilies"] as const;
|
|
15
|
+
export const publicAnimationAssetInstructions = [
|
|
16
16
|
"npx @aura3d/cli@latest assets add ./assets/miko.glb --name miko",
|
|
17
17
|
"npx @aura3d/cli@latest assets add ./assets/luma.glb --name luma",
|
|
18
|
-
"npx @aura3d/cli@latest assets validate-
|
|
18
|
+
"npx @aura3d/cli@latest assets validate-animation"
|
|
19
19
|
] as const;
|
|
20
20
|
|
|
21
|
-
export const
|
|
22
|
-
export const
|
|
23
|
-
requiredCharacterAssets:
|
|
24
|
-
optionalPropAssets:
|
|
25
|
-
typedCharacterAssetCount:
|
|
26
|
-
missingCharacterAssets:
|
|
21
|
+
export const missingAnimationCharacterAssets = requiredAnimationCharacterAssets.filter((key) => !typedAnimationAssets[key]);
|
|
22
|
+
export const typedAnimationAssetSummary = {
|
|
23
|
+
requiredCharacterAssets: requiredAnimationCharacterAssets,
|
|
24
|
+
optionalPropAssets: optionalAnimationPropAssets,
|
|
25
|
+
typedCharacterAssetCount: requiredAnimationCharacterAssets.length - missingAnimationCharacterAssets.length,
|
|
26
|
+
missingCharacterAssets: missingAnimationCharacterAssets
|
|
27
27
|
} as const;
|
|
28
28
|
|
|
29
|
-
function typedAsset(key:
|
|
30
|
-
return
|
|
29
|
+
function typedAsset(key: AnimationAssetKey): AuraAssetRef<"model"> | undefined {
|
|
30
|
+
return typedAnimationAssets[key];
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export const youtubeDraftMetadata = {
|
|
34
34
|
contractId: episodeContractId,
|
|
35
|
-
title: "Moon Garden Cleanup | Aura3D
|
|
35
|
+
title: "Moon Garden Cleanup | Aura3D Animation Channel",
|
|
36
36
|
description: "Two tiny robots clean a glowing moon garden with soft captions and reduced-flash visuals.",
|
|
37
|
-
tags: ["Aura3D", "kids
|
|
37
|
+
tags: ["Aura3D", "kids animation", "moon garden", "robots"],
|
|
38
38
|
madeForKids: true,
|
|
39
39
|
thumbnailCaptureTime: 10,
|
|
40
40
|
defaultLanguage: "en",
|
|
@@ -77,15 +77,15 @@ export const episodeSampleDescription = {
|
|
|
77
77
|
shotCount: 3,
|
|
78
78
|
speakingCharacters: ["miko", "luma"],
|
|
79
79
|
captionSource: "captions are derived one-to-one from the AuraVoice dialogue track",
|
|
80
|
-
performanceSource: "body, facial, gesture, blocking, and gaze cues are generated from the
|
|
80
|
+
performanceSource: "body, facial, gesture, blocking, and gaze cues are generated from the animation director",
|
|
81
81
|
musicAmbience: ["music:moon-garden-lullaby", "ambience:moon-garden-night"],
|
|
82
82
|
sfxCue: "sfx:glow-stone-chime",
|
|
83
83
|
thumbnailCaptureTime: youtubeDraftMetadata.thumbnailCaptureTime,
|
|
84
84
|
thumbnailSource: "same Aura3D scene state and AuraVoice timestamp as the render queue capture",
|
|
85
85
|
typedAssetSource: "./src/aura-assets",
|
|
86
|
-
requiredTypedAssets:
|
|
87
|
-
missingTypedAssets:
|
|
88
|
-
assetCommands:
|
|
86
|
+
requiredTypedAssets: requiredAnimationCharacterAssets,
|
|
87
|
+
missingTypedAssets: missingAnimationCharacterAssets,
|
|
88
|
+
assetCommands: publicAnimationAssetInstructions,
|
|
89
89
|
reviewPackageRequiredPaths: ["video", "captions", "thumbnail", "timeline", "audio-stems", "evidence-json", "youtube-draft-metadata"],
|
|
90
90
|
accessibilityProof: ["captions", "reduced motion", "high contrast"]
|
|
91
91
|
} as const;
|
|
@@ -167,7 +167,7 @@ export const episode = compilePromptEpisodePlan({
|
|
|
167
167
|
}
|
|
168
168
|
],
|
|
169
169
|
styleGuide: {
|
|
170
|
-
visualStyle: "rounded bedtime sci-fi
|
|
170
|
+
visualStyle: "rounded bedtime sci-fi animation with toy-like robot silhouettes",
|
|
171
171
|
palette: ["#081b2a", "#7de2ff", "#ffe18e", "#40ffbf", "#f8fff2"],
|
|
172
172
|
shapeLanguage: "circles, capsules, crescent props, and chunky moon-garden forms",
|
|
173
173
|
lighting: "soft blue night key, warm prop glows, no hard flashes",
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# Quarantined experiments (negative-regression fixtures only)
|
|
2
2
|
|
|
3
|
-
These three modules are **rejected** Aura3D 1.0.10
|
|
3
|
+
These three modules are **rejected** Aura3D 1.0.10 animation experiments. They are
|
|
4
4
|
kept here as historical / negative evidence only. They are **NOT** imported by
|
|
5
5
|
`src/main.ts`, `index.html`, or any release-facing route, and they are **NOT**
|
|
6
6
|
referenced by any release-facing npm script.
|
|
7
7
|
|
|
8
8
|
| File | Rejected approach | Why it was rejected |
|
|
9
9
|
|---|---|---|
|
|
10
|
-
| `concept-episode-2-5d.ts` | 2.5D still-image parallax | `notTrue3D: true` — parallax over a flat image is not real 3D
|
|
11
|
-
| `puppet-episode-2d.ts` | Flat 2D cutout puppet motion | `notTrue3D: true` — flat cutout motion is not real 3D
|
|
10
|
+
| `concept-episode-2-5d.ts` | 2.5D still-image parallax | `notTrue3D: true` — parallax over a flat image is not real 3D animation animation |
|
|
11
|
+
| `puppet-episode-2d.ts` | Flat 2D cutout puppet motion | `notTrue3D: true` — flat cutout motion is not real 3D animation animation |
|
|
12
12
|
| `image-puppet-episode.ts` | Image-derived cutout puppet | `notTrue3D: true` — still-image cutout proof is not accepted readiness |
|
|
13
13
|
|
|
14
|
-
The flagship/production
|
|
15
|
-
This `
|
|
14
|
+
The flagship/production animation pipeline is the **`animation-studio`** template.
|
|
15
|
+
This `animation-channel` template is an example; its release-facing route is
|
|
16
16
|
`src/sample-episode-visual.ts`.
|
|
17
17
|
|
|
18
18
|
The negative-regression Playwright specs
|
package/templates/{cartoon-channel → animation-channel}/src/experimental/concept-episode-2-5d.css
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
body[data-
|
|
1
|
+
body[data-animation-view="concept-2-5d"] {
|
|
2
2
|
background:
|
|
3
3
|
radial-gradient(circle at 50% 22%, rgba(169, 255, 225, 0.16), transparent 34%),
|
|
4
4
|
linear-gradient(180deg, #081118 0%, #11241f 56%, #081216 100%);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
body[data-
|
|
7
|
+
body[data-animation-view="concept-2-5d"] #caption-overlay {
|
|
8
8
|
display: none !important;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
body[data-
|
|
11
|
+
body[data-animation-view="concept-2-5d"] #app {
|
|
12
12
|
opacity: 0;
|
|
13
13
|
}
|
|
14
14
|
|
package/templates/{cartoon-channel → animation-channel}/src/experimental/concept-episode-2-5d.ts
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { episode, episodeSampleDescription, youtubeDraftMetadata } from "../episode";
|
|
2
|
-
import type {
|
|
2
|
+
import type { AnimationRouteSampleForVisual } from "../sample-episode-visual";
|
|
3
3
|
import "./concept-episode-2-5d.css";
|
|
4
4
|
|
|
5
5
|
export interface ConceptEpisode2_5DOptions {
|
|
6
|
-
readonly sampleAt: (time: number) =>
|
|
6
|
+
readonly sampleAt: (time: number) => AnimationRouteSampleForVisual;
|
|
7
7
|
readonly duration: number;
|
|
8
8
|
readonly fixedTime?: number;
|
|
9
9
|
}
|
|
@@ -17,7 +17,7 @@ export interface ConceptEpisode2_5DProof {
|
|
|
17
17
|
readonly sourceImage: string;
|
|
18
18
|
readonly notTrue3D: true;
|
|
19
19
|
readonly screenshotTarget: "#concept-episode-2-5d";
|
|
20
|
-
readonly sample:
|
|
20
|
+
readonly sample: AnimationRouteSampleForVisual;
|
|
21
21
|
readonly parallax: number;
|
|
22
22
|
readonly layers: readonly {
|
|
23
23
|
readonly id: string;
|
|
@@ -38,11 +38,11 @@ const layers = [
|
|
|
38
38
|
] as const;
|
|
39
39
|
|
|
40
40
|
export function installConceptEpisode2_5D(options: ConceptEpisode2_5DOptions) {
|
|
41
|
-
document.body.dataset.
|
|
41
|
+
document.body.dataset.animationView = "concept-2-5d";
|
|
42
42
|
const root = document.createElement("section");
|
|
43
43
|
root.id = "concept-episode-2-5d";
|
|
44
44
|
root.className = "concept-2-5d";
|
|
45
|
-
root.setAttribute("aria-label", "Aura3D 2.5D
|
|
45
|
+
root.setAttribute("aria-label", "Aura3D 2.5D animation concept episode preview");
|
|
46
46
|
root.innerHTML = `
|
|
47
47
|
<div class="concept-2-5d__frame">
|
|
48
48
|
<div class="concept-2-5d__layer concept-2-5d__layer--far" data-layer-id="far-background" aria-hidden="true"></div>
|
|
@@ -101,7 +101,7 @@ export function installConceptEpisode2_5D(options: ConceptEpisode2_5DOptions) {
|
|
|
101
101
|
progress.style.setProperty("--progress", `${progressPercent}%`);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
window.
|
|
104
|
+
window.__AURA3D_ANIMATION_2_5D_PROOF__ = {
|
|
105
105
|
contractId: episodeSampleDescription.contractId,
|
|
106
106
|
episodeId: episode.episodePlan.episodeId,
|
|
107
107
|
title: episode.episodePlan.title,
|
|
@@ -145,7 +145,7 @@ export function installConceptEpisode2_5D(options: ConceptEpisode2_5DOptions) {
|
|
|
145
145
|
|
|
146
146
|
declare global {
|
|
147
147
|
interface Window {
|
|
148
|
-
|
|
148
|
+
__AURA3D_ANIMATION_2_5D_PROOF__?: ConceptEpisode2_5DProof;
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
|
package/templates/{cartoon-channel → animation-channel}/src/experimental/image-puppet-episode.css
RENAMED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
body[data-
|
|
1
|
+
body[data-animation-view="image-puppet"] {
|
|
2
2
|
background:
|
|
3
3
|
radial-gradient(circle at 50% 20%, rgba(115, 225, 255, 0.12), transparent 34%),
|
|
4
4
|
linear-gradient(180deg, #06101d 0%, #102820 58%, #07100f 100%);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
body[data-
|
|
8
|
-
body[data-
|
|
7
|
+
body[data-animation-view="image-puppet"] #caption-overlay,
|
|
8
|
+
body[data-animation-view="image-puppet"] .aura-diagnostics-overlay {
|
|
9
9
|
display: none !important;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
body[data-
|
|
12
|
+
body[data-animation-view="image-puppet"] #app {
|
|
13
13
|
opacity: 0;
|
|
14
14
|
}
|
|
15
15
|
|
package/templates/{cartoon-channel → animation-channel}/src/experimental/image-puppet-episode.ts
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { episode, episodeSampleDescription } from "../episode";
|
|
2
|
-
import type {
|
|
2
|
+
import type { AnimationRouteSampleForVisual } from "../sample-episode-visual";
|
|
3
3
|
import "./image-puppet-episode.css";
|
|
4
4
|
|
|
5
5
|
export interface ImagePuppetEpisodeOptions {
|
|
6
|
-
readonly sampleAt: (time: number) =>
|
|
6
|
+
readonly sampleAt: (time: number) => AnimationRouteSampleForVisual;
|
|
7
7
|
readonly duration: number;
|
|
8
8
|
readonly fixedTime?: number;
|
|
9
9
|
}
|
|
@@ -18,7 +18,7 @@ export interface ImagePuppetEpisodeProof {
|
|
|
18
18
|
readonly sourcePixelsAnimated: true;
|
|
19
19
|
readonly notTrue3D: true;
|
|
20
20
|
readonly screenshotTarget: "#image-puppet-episode";
|
|
21
|
-
readonly sample:
|
|
21
|
+
readonly sample: AnimationRouteSampleForVisual;
|
|
22
22
|
readonly movingCutouts: readonly string[];
|
|
23
23
|
readonly limitations: readonly string[];
|
|
24
24
|
}
|
|
@@ -35,7 +35,7 @@ const movingCutouts = [
|
|
|
35
35
|
] as const;
|
|
36
36
|
|
|
37
37
|
export function installImagePuppetEpisode(options: ImagePuppetEpisodeOptions) {
|
|
38
|
-
document.body.dataset.
|
|
38
|
+
document.body.dataset.animationView = "image-puppet";
|
|
39
39
|
const root = document.createElement("section");
|
|
40
40
|
root.id = "image-puppet-episode";
|
|
41
41
|
root.className = "image-puppet";
|
|
@@ -96,7 +96,7 @@ export function installImagePuppetEpisode(options: ImagePuppetEpisodeOptions) {
|
|
|
96
96
|
progress.style.setProperty("--progress", `${progressPercent}%`);
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
window.
|
|
99
|
+
window.__AURA3D_ANIMATION_IMAGE_PUPPET_PROOF__ = {
|
|
100
100
|
contractId: episodeSampleDescription.contractId,
|
|
101
101
|
episodeId: episode.episodePlan.episodeId,
|
|
102
102
|
title: episode.episodePlan.title,
|
|
@@ -129,7 +129,7 @@ export function installImagePuppetEpisode(options: ImagePuppetEpisodeOptions) {
|
|
|
129
129
|
|
|
130
130
|
declare global {
|
|
131
131
|
interface Window {
|
|
132
|
-
|
|
132
|
+
__AURA3D_ANIMATION_IMAGE_PUPPET_PROOF__?: ImagePuppetEpisodeProof;
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
|
package/templates/{cartoon-channel → animation-channel}/src/experimental/puppet-episode-2d.css
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
body[data-
|
|
1
|
+
body[data-animation-view="puppet-2d"] {
|
|
2
2
|
background:
|
|
3
3
|
radial-gradient(circle at 50% 20%, rgba(115, 225, 255, 0.14), transparent 34%),
|
|
4
4
|
linear-gradient(180deg, #06101d 0%, #102820 58%, #07100f 100%);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
body[data-
|
|
7
|
+
body[data-animation-view="puppet-2d"] #caption-overlay {
|
|
8
8
|
display: none !important;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
body[data-
|
|
11
|
+
body[data-animation-view="puppet-2d"] #app {
|
|
12
12
|
opacity: 0;
|
|
13
13
|
}
|
|
14
14
|
|
package/templates/{cartoon-channel → animation-channel}/src/experimental/puppet-episode-2d.ts
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { episode, episodeSampleDescription, youtubeDraftMetadata } from "../episode";
|
|
2
|
-
import type {
|
|
2
|
+
import type { AnimationRouteSampleForVisual } from "../sample-episode-visual";
|
|
3
3
|
import "./puppet-episode-2d.css";
|
|
4
4
|
|
|
5
5
|
export interface PuppetEpisode2DOptions {
|
|
6
|
-
readonly sampleAt: (time: number) =>
|
|
6
|
+
readonly sampleAt: (time: number) => AnimationRouteSampleForVisual;
|
|
7
7
|
readonly duration: number;
|
|
8
8
|
readonly fixedTime?: number;
|
|
9
9
|
}
|
|
@@ -17,7 +17,7 @@ export interface PuppetEpisode2DProof {
|
|
|
17
17
|
readonly sourceImage: string;
|
|
18
18
|
readonly notTrue3D: true;
|
|
19
19
|
readonly screenshotTarget: "#puppet-episode-2d";
|
|
20
|
-
readonly sample:
|
|
20
|
+
readonly sample: AnimationRouteSampleForVisual;
|
|
21
21
|
readonly animatedParts: readonly string[];
|
|
22
22
|
readonly aura3dRole: readonly string[];
|
|
23
23
|
readonly limitations: readonly string[];
|
|
@@ -39,11 +39,11 @@ const animatedParts = [
|
|
|
39
39
|
] as const;
|
|
40
40
|
|
|
41
41
|
export function installPuppetEpisode2D(options: PuppetEpisode2DOptions) {
|
|
42
|
-
document.body.dataset.
|
|
42
|
+
document.body.dataset.animationView = "puppet-2d";
|
|
43
43
|
const root = document.createElement("section");
|
|
44
44
|
root.id = "puppet-episode-2d";
|
|
45
45
|
root.className = "puppet-episode";
|
|
46
|
-
root.setAttribute("aria-label", "Aura3D 2D puppet
|
|
46
|
+
root.setAttribute("aria-label", "Aura3D 2D puppet animation animation over moon garden concept art");
|
|
47
47
|
root.innerHTML = `
|
|
48
48
|
<div class="puppet-episode__frame">
|
|
49
49
|
<div class="puppet-episode__backdrop" aria-hidden="true"></div>
|
|
@@ -135,7 +135,7 @@ export function installPuppetEpisode2D(options: PuppetEpisode2DOptions) {
|
|
|
135
135
|
progress.style.setProperty("--progress", `${progressPercent}%`);
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
window.
|
|
138
|
+
window.__AURA3D_ANIMATION_2D_PUPPET_PROOF__ = {
|
|
139
139
|
contractId: episodeSampleDescription.contractId,
|
|
140
140
|
episodeId: episode.episodePlan.episodeId,
|
|
141
141
|
title: episode.episodePlan.title,
|
|
@@ -179,7 +179,7 @@ export function installPuppetEpisode2D(options: PuppetEpisode2DOptions) {
|
|
|
179
179
|
|
|
180
180
|
declare global {
|
|
181
181
|
interface Window {
|
|
182
|
-
|
|
182
|
+
__AURA3D_ANIMATION_2D_PUPPET_PROOF__?: PuppetEpisode2DProof;
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
|