@aura3d/engine 1.4.4 → 1.5.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.
Files changed (487) hide show
  1. package/README.md +65 -30
  2. package/dist/animation/Retargeting.d.ts +12 -0
  3. package/dist/animation/Retargeting.d.ts.map +1 -0
  4. package/dist/animation/Retargeting.js +19 -0
  5. package/dist/animation/Retargeting.js.map +1 -0
  6. package/dist/assets/GLTFLoader.d.ts +4 -0
  7. package/dist/assets/GLTFLoader.d.ts.map +1 -1
  8. package/dist/assets/GLTFLoader.js +39 -4
  9. package/dist/assets/GLTFLoader.js.map +1 -1
  10. package/dist/assets/GLTFRenderResources.d.ts +16 -0
  11. package/dist/assets/GLTFRenderResources.d.ts.map +1 -1
  12. package/dist/assets/GLTFRenderResources.js +42 -2
  13. package/dist/assets/GLTFRenderResources.js.map +1 -1
  14. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts +6 -0
  15. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.d.ts.map +1 -1
  16. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js +2 -1
  17. package/dist/assets/asset-corpus/ProductionGLTFRenderPipeline.js.map +1 -1
  18. package/dist/assets/index.d.ts +0 -1
  19. package/dist/assets/index.d.ts.map +1 -1
  20. package/dist/assets/index.js +0 -1
  21. package/dist/assets/index.js.map +1 -1
  22. package/dist/assets/loaders/index.d.ts +0 -1
  23. package/dist/assets/loaders/index.d.ts.map +1 -1
  24. package/dist/assets/loaders/index.js +0 -1
  25. package/dist/assets/loaders/index.js.map +1 -1
  26. package/dist/aura3d-cli/asset-intent.d.ts +148 -0
  27. package/dist/aura3d-cli/asset-intent.d.ts.map +1 -0
  28. package/dist/aura3d-cli/asset-intent.js +145 -0
  29. package/dist/aura3d-cli/asset-intent.js.map +1 -0
  30. package/dist/aura3d-cli/asset-role-admission.d.ts +174 -0
  31. package/dist/aura3d-cli/asset-role-admission.d.ts.map +1 -0
  32. package/dist/aura3d-cli/asset-role-admission.js +381 -0
  33. package/dist/aura3d-cli/asset-role-admission.js.map +1 -0
  34. package/dist/aura3d-cli/asset-screening-effects.d.ts +95 -0
  35. package/dist/aura3d-cli/asset-screening-effects.d.ts.map +1 -0
  36. package/dist/aura3d-cli/asset-screening-effects.js +321 -0
  37. package/dist/aura3d-cli/asset-screening-effects.js.map +1 -0
  38. package/dist/aura3d-cli/asset-screening-pipeline.d.ts +132 -0
  39. package/dist/aura3d-cli/asset-screening-pipeline.d.ts.map +1 -0
  40. package/dist/aura3d-cli/asset-screening-pipeline.js +277 -0
  41. package/dist/aura3d-cli/asset-screening-pipeline.js.map +1 -0
  42. package/dist/aura3d-cli/cartoon-asset-profiles.d.ts +15 -0
  43. package/dist/aura3d-cli/cartoon-asset-profiles.d.ts.map +1 -0
  44. package/dist/aura3d-cli/cartoon-asset-profiles.js +46 -0
  45. package/dist/aura3d-cli/cartoon-asset-profiles.js.map +1 -0
  46. package/dist/aura3d-cli/cli-help.js +1 -1
  47. package/dist/aura3d-cli/cli.js +16 -2
  48. package/dist/aura3d-cli/cli.js.map +1 -1
  49. package/dist/aura3d-cli/index.d.ts +8 -0
  50. package/dist/aura3d-cli/index.d.ts.map +1 -1
  51. package/dist/aura3d-cli/index.js +390 -17
  52. package/dist/aura3d-cli/index.js.map +1 -1
  53. package/dist/aura3d-cli/pull-bridge/search.d.ts +4 -0
  54. package/dist/aura3d-cli/pull-bridge/search.d.ts.map +1 -1
  55. package/dist/aura3d-cli/pull-bridge/search.js +22 -0
  56. package/dist/aura3d-cli/pull-bridge/search.js.map +1 -1
  57. package/dist/aura3d-cli/pull-bridge.d.ts +20 -5
  58. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
  59. package/dist/aura3d-cli/pull-bridge.js +38 -1
  60. package/dist/aura3d-cli/pull-bridge.js.map +1 -1
  61. package/dist/controls/ControlState.d.ts +1 -1
  62. package/dist/controls/ControlState.d.ts.map +1 -1
  63. package/dist/controls/DragControls.d.ts +21 -1
  64. package/dist/controls/DragControls.d.ts.map +1 -1
  65. package/dist/controls/DragControls.js +24 -2
  66. package/dist/controls/DragControls.js.map +1 -1
  67. package/dist/controls/FirstPersonControls.d.ts +10 -1
  68. package/dist/controls/FirstPersonControls.d.ts.map +1 -1
  69. package/dist/controls/FirstPersonControls.js +18 -2
  70. package/dist/controls/FirstPersonControls.js.map +1 -1
  71. package/dist/controls/FlyControls.d.ts +42 -0
  72. package/dist/controls/FlyControls.d.ts.map +1 -1
  73. package/dist/controls/FlyControls.js +106 -3
  74. package/dist/controls/FlyControls.js.map +1 -1
  75. package/dist/controls/MapControls.d.ts +13 -0
  76. package/dist/controls/MapControls.d.ts.map +1 -1
  77. package/dist/controls/MapControls.js +40 -2
  78. package/dist/controls/MapControls.js.map +1 -1
  79. package/dist/controls/OrbitControls.d.ts +54 -0
  80. package/dist/controls/OrbitControls.d.ts.map +1 -1
  81. package/dist/controls/OrbitControls.js +133 -0
  82. package/dist/controls/OrbitControls.js.map +1 -1
  83. package/dist/controls/PointerLockControls.d.ts +12 -5
  84. package/dist/controls/PointerLockControls.d.ts.map +1 -1
  85. package/dist/controls/PointerLockControls.js +30 -11
  86. package/dist/controls/PointerLockControls.js.map +1 -1
  87. package/dist/controls/SelectionManager.d.ts +22 -1
  88. package/dist/controls/SelectionManager.d.ts.map +1 -1
  89. package/dist/controls/SelectionManager.js +64 -6
  90. package/dist/controls/SelectionManager.js.map +1 -1
  91. package/dist/controls/TransformControls.d.ts +135 -1
  92. package/dist/controls/TransformControls.d.ts.map +1 -1
  93. package/dist/controls/TransformControls.js +534 -10
  94. package/dist/controls/TransformControls.js.map +1 -1
  95. package/dist/controls/index.d.ts +7 -2
  96. package/dist/controls/index.d.ts.map +1 -1
  97. package/dist/controls/index.js +1 -1
  98. package/dist/controls/index.js.map +1 -1
  99. package/dist/create-aura3d/index.js +1 -1
  100. package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts +2 -0
  101. package/dist/create-aura3d/showcase-spec-game-geometry-extractor.d.ts.map +1 -1
  102. package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js +781 -46
  103. package/dist/create-aura3d/showcase-spec-game-geometry-extractor.js.map +1 -1
  104. package/dist/create-aura3d/showcase-spec-game-template-evidence.d.ts.map +1 -1
  105. package/dist/create-aura3d/showcase-spec-game-template-evidence.js +24 -4
  106. package/dist/create-aura3d/showcase-spec-game-template-evidence.js.map +1 -1
  107. package/dist/create-aura3d/showcase-spec-platformer-artifacts.d.ts.map +1 -1
  108. package/dist/create-aura3d/showcase-spec-platformer-artifacts.js +28 -17
  109. package/dist/create-aura3d/showcase-spec-platformer-artifacts.js.map +1 -1
  110. package/dist/create-aura3d/showcase-spec-racing-artifacts.d.ts.map +1 -1
  111. package/dist/create-aura3d/showcase-spec-racing-artifacts.js +10 -5
  112. package/dist/create-aura3d/showcase-spec-racing-artifacts.js.map +1 -1
  113. package/dist/create-aura3d/showcase-spec-replacement-candidates.js +26 -0
  114. package/dist/create-aura3d/showcase-spec-replacement-candidates.js.map +1 -1
  115. package/dist/ecs/components/MeshComponent.d.ts +5 -2
  116. package/dist/ecs/components/MeshComponent.d.ts.map +1 -1
  117. package/dist/ecs/components/MeshComponent.js.map +1 -1
  118. package/dist/editor-runtime/CartoonSceneEditor.d.ts +111 -0
  119. package/dist/editor-runtime/CartoonSceneEditor.d.ts.map +1 -0
  120. package/dist/editor-runtime/CartoonSceneEditor.js +285 -0
  121. package/dist/editor-runtime/CartoonSceneEditor.js.map +1 -0
  122. package/dist/editor-runtime/InteractiveTransformGizmo.d.ts +142 -0
  123. package/dist/editor-runtime/InteractiveTransformGizmo.d.ts.map +1 -0
  124. package/dist/editor-runtime/InteractiveTransformGizmo.js +468 -0
  125. package/dist/editor-runtime/InteractiveTransformGizmo.js.map +1 -0
  126. package/dist/editor-runtime/index.d.ts +2 -0
  127. package/dist/editor-runtime/index.d.ts.map +1 -1
  128. package/dist/editor-runtime/index.js +1 -0
  129. package/dist/editor-runtime/index.js.map +1 -1
  130. package/dist/engine/agent-api/CartoonAssetManifest.d.ts +50 -0
  131. package/dist/engine/agent-api/CartoonAssetManifest.d.ts.map +1 -0
  132. package/dist/engine/agent-api/CartoonAssetManifest.js +65 -0
  133. package/dist/engine/agent-api/CartoonAssetManifest.js.map +1 -0
  134. package/dist/engine/agent-api/CartoonDirector.d.ts +120 -0
  135. package/dist/engine/agent-api/CartoonDirector.d.ts.map +1 -0
  136. package/dist/engine/agent-api/CartoonDirector.js +432 -0
  137. package/dist/engine/agent-api/CartoonDirector.js.map +1 -0
  138. package/dist/engine/agent-api/CartoonEpisodePackage.d.ts +51 -0
  139. package/dist/engine/agent-api/CartoonEpisodePackage.d.ts.map +1 -0
  140. package/dist/engine/agent-api/CartoonEpisodePackage.js +79 -0
  141. package/dist/engine/agent-api/CartoonEpisodePackage.js.map +1 -0
  142. package/dist/engine/agent-api/CartoonMotionQuality.d.ts +83 -0
  143. package/dist/engine/agent-api/CartoonMotionQuality.d.ts.map +1 -0
  144. package/dist/engine/agent-api/CartoonMotionQuality.js +128 -0
  145. package/dist/engine/agent-api/CartoonMotionQuality.js.map +1 -0
  146. package/dist/engine/agent-api/CartoonPerformance.d.ts +150 -0
  147. package/dist/engine/agent-api/CartoonPerformance.d.ts.map +1 -0
  148. package/dist/engine/agent-api/CartoonPerformance.js +345 -0
  149. package/dist/engine/agent-api/CartoonPerformance.js.map +1 -0
  150. package/dist/engine/agent-api/CartoonRenderQueue.d.ts +143 -0
  151. package/dist/engine/agent-api/CartoonRenderQueue.d.ts.map +1 -0
  152. package/dist/engine/agent-api/CartoonRenderQueue.js +410 -0
  153. package/dist/engine/agent-api/CartoonRenderQueue.js.map +1 -0
  154. package/dist/engine/agent-api/CartoonRouteProof.d.ts +112 -0
  155. package/dist/engine/agent-api/CartoonRouteProof.d.ts.map +1 -0
  156. package/dist/engine/agent-api/CartoonRouteProof.js +127 -0
  157. package/dist/engine/agent-api/CartoonRouteProof.js.map +1 -0
  158. package/dist/engine/agent-api/GameEvidence.d.ts +1 -0
  159. package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -1
  160. package/dist/engine/agent-api/GameEvidence.js +1 -0
  161. package/dist/engine/agent-api/GameEvidence.js.map +1 -1
  162. package/dist/engine/agent-api/GameGenreKits.d.ts +13 -0
  163. package/dist/engine/agent-api/GameGenreKits.d.ts.map +1 -1
  164. package/dist/engine/agent-api/GameGenreKits.js +57 -11
  165. package/dist/engine/agent-api/GameGenreKits.js.map +1 -1
  166. package/dist/engine/agent-api/GameRuntime.d.ts +1 -0
  167. package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
  168. package/dist/engine/agent-api/GameRuntime.js +1 -0
  169. package/dist/engine/agent-api/GameRuntime.js.map +1 -1
  170. package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts +12 -0
  171. package/dist/engine/agent-api/GameSceneGeometryBindings.d.ts.map +1 -1
  172. package/dist/engine/agent-api/GameSceneGeometryBindings.js +2 -0
  173. package/dist/engine/agent-api/GameSceneGeometryBindings.js.map +1 -1
  174. package/dist/engine/agent-api/LayeredSceneComposition.d.ts +295 -0
  175. package/dist/engine/agent-api/LayeredSceneComposition.d.ts.map +1 -0
  176. package/dist/engine/agent-api/LayeredSceneComposition.js +387 -0
  177. package/dist/engine/agent-api/LayeredSceneComposition.js.map +1 -0
  178. package/dist/engine/agent-api/SceneGroundingUtils.d.ts +62 -0
  179. package/dist/engine/agent-api/SceneGroundingUtils.d.ts.map +1 -1
  180. package/dist/engine/agent-api/SceneGroundingUtils.js +37 -0
  181. package/dist/engine/agent-api/SceneGroundingUtils.js.map +1 -1
  182. package/dist/engine/agent-api/SubjectFramingUtils.d.ts +127 -0
  183. package/dist/engine/agent-api/SubjectFramingUtils.d.ts.map +1 -0
  184. package/dist/engine/agent-api/SubjectFramingUtils.js +126 -0
  185. package/dist/engine/agent-api/SubjectFramingUtils.js.map +1 -0
  186. package/dist/engine/agent-api/TouchControlBinding.d.ts +81 -0
  187. package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -0
  188. package/dist/engine/agent-api/TouchControlBinding.js +116 -0
  189. package/dist/engine/agent-api/TouchControlBinding.js.map +1 -0
  190. package/dist/engine/agent-api/index.d.ts +39 -0
  191. package/dist/engine/agent-api/index.d.ts.map +1 -1
  192. package/dist/engine/agent-api/index.js +546 -74
  193. package/dist/engine/agent-api/index.js.map +1 -1
  194. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  195. package/dist/engine/production-runtime/GameRenderPreset.d.ts +32 -0
  196. package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -1
  197. package/dist/engine/production-runtime/GameRenderPreset.js +37 -2
  198. package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -1
  199. package/dist/engine/production-runtime/TypedGLBActor.d.ts +8 -0
  200. package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
  201. package/dist/engine/production-runtime/TypedGLBActor.js +2 -1
  202. package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
  203. package/dist/input/controls/PointerLockControls.d.ts +1 -1
  204. package/dist/input/controls/PointerLockControls.d.ts.map +1 -1
  205. package/dist/input/controls/PointerLockControls.js +12 -0
  206. package/dist/input/controls/PointerLockControls.js.map +1 -1
  207. package/dist/physics/Collider.d.ts +1 -1
  208. package/dist/physics/Collider.d.ts.map +1 -1
  209. package/dist/physics/Collider.js +2 -2
  210. package/dist/physics/Collider.js.map +1 -1
  211. package/dist/physics/CollisionEvents.d.ts +1 -0
  212. package/dist/physics/CollisionEvents.d.ts.map +1 -1
  213. package/dist/physics/CollisionEvents.js.map +1 -1
  214. package/dist/physics/NarrowPhase.d.ts +11 -0
  215. package/dist/physics/NarrowPhase.d.ts.map +1 -0
  216. package/dist/physics/NarrowPhase.js +565 -0
  217. package/dist/physics/NarrowPhase.js.map +1 -0
  218. package/dist/physics/PhysicsDebugDraw.js +19 -1
  219. package/dist/physics/PhysicsDebugDraw.js.map +1 -1
  220. package/dist/physics/PhysicsWorld.d.ts +43 -0
  221. package/dist/physics/PhysicsWorld.d.ts.map +1 -1
  222. package/dist/physics/PhysicsWorld.js +305 -30
  223. package/dist/physics/PhysicsWorld.js.map +1 -1
  224. package/dist/physics/RigidBody.d.ts +8 -1
  225. package/dist/physics/RigidBody.d.ts.map +1 -1
  226. package/dist/physics/RigidBody.js +32 -5
  227. package/dist/physics/RigidBody.js.map +1 -1
  228. package/dist/physics/Shape.d.ts +16 -2
  229. package/dist/physics/Shape.d.ts.map +1 -1
  230. package/dist/physics/Shape.js +93 -31
  231. package/dist/physics/Shape.js.map +1 -1
  232. package/dist/physics/TimeOfImpact.d.ts +15 -0
  233. package/dist/physics/TimeOfImpact.d.ts.map +1 -0
  234. package/dist/physics/TimeOfImpact.js +81 -0
  235. package/dist/physics/TimeOfImpact.js.map +1 -0
  236. package/dist/physics/index.d.ts +2 -0
  237. package/dist/physics/index.d.ts.map +1 -1
  238. package/dist/physics/index.js +2 -0
  239. package/dist/physics/index.js.map +1 -1
  240. package/dist/rendering/CascadedShadowMaps.d.ts +9 -1
  241. package/dist/rendering/CascadedShadowMaps.d.ts.map +1 -1
  242. package/dist/rendering/CascadedShadowMaps.js +68 -0
  243. package/dist/rendering/CascadedShadowMaps.js.map +1 -1
  244. package/dist/rendering/ClusteredForwardLighting.d.ts +28 -0
  245. package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -0
  246. package/dist/rendering/ClusteredForwardLighting.js +156 -0
  247. package/dist/rendering/ClusteredForwardLighting.js.map +1 -0
  248. package/dist/rendering/DepthPass.d.ts +14 -1
  249. package/dist/rendering/DepthPass.d.ts.map +1 -1
  250. package/dist/rendering/DepthPass.js +19 -4
  251. package/dist/rendering/DepthPass.js.map +1 -1
  252. package/dist/rendering/EnvironmentMapResources.d.ts +59 -1
  253. package/dist/rendering/EnvironmentMapResources.d.ts.map +1 -1
  254. package/dist/rendering/EnvironmentMapResources.js +140 -100
  255. package/dist/rendering/EnvironmentMapResources.js.map +1 -1
  256. package/dist/rendering/EnvironmentPlatform.d.ts +3 -2
  257. package/dist/rendering/EnvironmentPlatform.d.ts.map +1 -1
  258. package/dist/rendering/EnvironmentPlatform.js +99 -44
  259. package/dist/rendering/EnvironmentPlatform.js.map +1 -1
  260. package/dist/rendering/ForwardPass.d.ts +37 -0
  261. package/dist/rendering/ForwardPass.d.ts.map +1 -1
  262. package/dist/rendering/ForwardPass.js +234 -7
  263. package/dist/rendering/ForwardPass.js.map +1 -1
  264. package/dist/rendering/Geometry.d.ts +19 -0
  265. package/dist/rendering/Geometry.d.ts.map +1 -1
  266. package/dist/rendering/Geometry.js +64 -0
  267. package/dist/rendering/Geometry.js.map +1 -1
  268. package/dist/rendering/IBL.d.ts.map +1 -1
  269. package/dist/rendering/IBL.js +0 -1
  270. package/dist/rendering/IBL.js.map +1 -1
  271. package/dist/rendering/LightCollector.d.ts +5 -1
  272. package/dist/rendering/LightCollector.d.ts.map +1 -1
  273. package/dist/rendering/LightCollector.js +16 -3
  274. package/dist/rendering/LightCollector.js.map +1 -1
  275. package/dist/rendering/LightUniforms.d.ts +26 -1
  276. package/dist/rendering/LightUniforms.d.ts.map +1 -1
  277. package/dist/rendering/LightUniforms.js +140 -8
  278. package/dist/rendering/LightUniforms.js.map +1 -1
  279. package/dist/rendering/LightingRig.d.ts +77 -0
  280. package/dist/rendering/LightingRig.d.ts.map +1 -1
  281. package/dist/rendering/LightingRig.js +100 -11
  282. package/dist/rendering/LightingRig.js.map +1 -1
  283. package/dist/rendering/MeshConsolidation.d.ts +63 -0
  284. package/dist/rendering/MeshConsolidation.d.ts.map +1 -0
  285. package/dist/rendering/MeshConsolidation.js +251 -0
  286. package/dist/rendering/MeshConsolidation.js.map +1 -0
  287. package/dist/rendering/PMREM.d.ts +13 -1
  288. package/dist/rendering/PMREM.d.ts.map +1 -1
  289. package/dist/rendering/PMREM.js +18 -4
  290. package/dist/rendering/PMREM.js.map +1 -1
  291. package/dist/rendering/PostProcessPass.d.ts +24 -2
  292. package/dist/rendering/PostProcessPass.d.ts.map +1 -1
  293. package/dist/rendering/PostProcessPass.js +136 -18
  294. package/dist/rendering/PostProcessPass.js.map +1 -1
  295. package/dist/rendering/PrimitiveSubmissionAudit.d.ts +195 -0
  296. package/dist/rendering/PrimitiveSubmissionAudit.d.ts.map +1 -0
  297. package/dist/rendering/PrimitiveSubmissionAudit.js +280 -0
  298. package/dist/rendering/PrimitiveSubmissionAudit.js.map +1 -0
  299. package/dist/rendering/ProductTurntableFixtures.d.ts.map +1 -1
  300. package/dist/rendering/ProductTurntableFixtures.js +93 -13
  301. package/dist/rendering/ProductTurntableFixtures.js.map +1 -1
  302. package/dist/rendering/ReflectionProbe.d.ts +59 -0
  303. package/dist/rendering/ReflectionProbe.d.ts.map +1 -1
  304. package/dist/rendering/ReflectionProbe.js +224 -0
  305. package/dist/rendering/ReflectionProbe.js.map +1 -1
  306. package/dist/rendering/ReflectionSurfaces.d.ts +4 -2
  307. package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
  308. package/dist/rendering/ReflectionSurfaces.js +13 -8
  309. package/dist/rendering/ReflectionSurfaces.js.map +1 -1
  310. package/dist/rendering/RenderBackend.d.ts +1 -1
  311. package/dist/rendering/RenderBackend.d.ts.map +1 -1
  312. package/dist/rendering/RenderBackend.js +5 -1
  313. package/dist/rendering/RenderBackend.js.map +1 -1
  314. package/dist/rendering/RenderDevice.d.ts +13 -2
  315. package/dist/rendering/RenderDevice.d.ts.map +1 -1
  316. package/dist/rendering/RenderDevice.js +5 -2
  317. package/dist/rendering/RenderDevice.js.map +1 -1
  318. package/dist/rendering/Renderer.d.ts +41 -1
  319. package/dist/rendering/Renderer.d.ts.map +1 -1
  320. package/dist/rendering/Renderer.js +406 -61
  321. package/dist/rendering/Renderer.js.map +1 -1
  322. package/dist/rendering/RendererPostprocessPlan.d.ts +10 -3
  323. package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
  324. package/dist/rendering/RendererPostprocessPlan.js +25 -5
  325. package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
  326. package/dist/rendering/RendererVisualPipelineReport.d.ts +3 -2
  327. package/dist/rendering/RendererVisualPipelineReport.d.ts.map +1 -1
  328. package/dist/rendering/RendererVisualPipelineReport.js +2 -0
  329. package/dist/rendering/RendererVisualPipelineReport.js.map +1 -1
  330. package/dist/rendering/ScreenSpaceLineMaterial.d.ts +34 -0
  331. package/dist/rendering/ScreenSpaceLineMaterial.d.ts.map +1 -0
  332. package/dist/rendering/ScreenSpaceLineMaterial.js +93 -0
  333. package/dist/rendering/ScreenSpaceLineMaterial.js.map +1 -0
  334. package/dist/rendering/ShaderChunks.d.ts +7 -0
  335. package/dist/rendering/ShaderChunks.d.ts.map +1 -1
  336. package/dist/rendering/ShaderChunks.js +137 -0
  337. package/dist/rendering/ShaderChunks.js.map +1 -1
  338. package/dist/rendering/ShaderLibrary.d.ts +17 -0
  339. package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
  340. package/dist/rendering/ShaderLibrary.js +940 -98
  341. package/dist/rendering/ShaderLibrary.js.map +1 -1
  342. package/dist/rendering/ShadowPass.d.ts +10 -0
  343. package/dist/rendering/ShadowPass.d.ts.map +1 -1
  344. package/dist/rendering/ShadowPass.js +8 -1
  345. package/dist/rendering/ShadowPass.js.map +1 -1
  346. package/dist/rendering/SkinnedLitMaterial.d.ts +6 -0
  347. package/dist/rendering/SkinnedLitMaterial.d.ts.map +1 -1
  348. package/dist/rendering/SkinnedLitMaterial.js +22 -8
  349. package/dist/rendering/SkinnedLitMaterial.js.map +1 -1
  350. package/dist/rendering/SkinnedUnlitMaterial.d.ts +8 -0
  351. package/dist/rendering/SkinnedUnlitMaterial.d.ts.map +1 -1
  352. package/dist/rendering/SkinnedUnlitMaterial.js +26 -9
  353. package/dist/rendering/SkinnedUnlitMaterial.js.map +1 -1
  354. package/dist/rendering/SpecularPrefilter.d.ts +42 -0
  355. package/dist/rendering/SpecularPrefilter.d.ts.map +1 -0
  356. package/dist/rendering/SpecularPrefilter.js +480 -0
  357. package/dist/rendering/SpecularPrefilter.js.map +1 -0
  358. package/dist/rendering/TerrainFixtures.d.ts +24 -0
  359. package/dist/rendering/TerrainFixtures.d.ts.map +1 -1
  360. package/dist/rendering/TerrainFixtures.js +96 -0
  361. package/dist/rendering/TerrainFixtures.js.map +1 -1
  362. package/dist/rendering/Texture.d.ts +7 -0
  363. package/dist/rendering/Texture.d.ts.map +1 -1
  364. package/dist/rendering/Texture.js +9 -0
  365. package/dist/rendering/Texture.js.map +1 -1
  366. package/dist/rendering/VertexFormat.d.ts +34 -1
  367. package/dist/rendering/VertexFormat.d.ts.map +1 -1
  368. package/dist/rendering/VertexFormat.js +61 -0
  369. package/dist/rendering/VertexFormat.js.map +1 -1
  370. package/dist/rendering/WebGL2Device.d.ts +48 -0
  371. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  372. package/dist/rendering/WebGL2Device.js +1298 -44
  373. package/dist/rendering/WebGL2Device.js.map +1 -1
  374. package/dist/rendering/WebGPUDevice.d.ts +7 -2
  375. package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
  376. package/dist/rendering/WebGPUDevice.js +111 -17
  377. package/dist/rendering/WebGPUDevice.js.map +1 -1
  378. package/dist/rendering/WebGPUSkinningLimits.d.ts +14 -0
  379. package/dist/rendering/WebGPUSkinningLimits.d.ts.map +1 -0
  380. package/dist/rendering/WebGPUSkinningLimits.js +14 -0
  381. package/dist/rendering/WebGPUSkinningLimits.js.map +1 -0
  382. package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts +19 -0
  383. package/dist/rendering/cartoon/CartoonMaterialStyle.d.ts.map +1 -0
  384. package/dist/rendering/cartoon/CartoonMaterialStyle.js +13 -0
  385. package/dist/rendering/cartoon/CartoonMaterialStyle.js.map +1 -0
  386. package/dist/rendering/cartoon/CartoonRenderPreset.d.ts +36 -0
  387. package/dist/rendering/cartoon/CartoonRenderPreset.d.ts.map +1 -0
  388. package/dist/rendering/cartoon/CartoonRenderPreset.js +23 -0
  389. package/dist/rendering/cartoon/CartoonRenderPreset.js.map +1 -0
  390. package/dist/rendering/cartoon/CartoonToonMaterial.d.ts +130 -0
  391. package/dist/rendering/cartoon/CartoonToonMaterial.d.ts.map +1 -0
  392. package/dist/rendering/cartoon/CartoonToonMaterial.js +303 -0
  393. package/dist/rendering/cartoon/CartoonToonMaterial.js.map +1 -0
  394. package/dist/rendering/cartoon/CartoonVisualQuality.d.ts +28 -0
  395. package/dist/rendering/cartoon/CartoonVisualQuality.d.ts.map +1 -0
  396. package/dist/rendering/cartoon/CartoonVisualQuality.js +39 -0
  397. package/dist/rendering/cartoon/CartoonVisualQuality.js.map +1 -0
  398. package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts +79 -0
  399. package/dist/rendering/cartoon/applyCartoonRenderPreset.d.ts.map +1 -0
  400. package/dist/rendering/cartoon/applyCartoonRenderPreset.js +88 -0
  401. package/dist/rendering/cartoon/applyCartoonRenderPreset.js.map +1 -0
  402. package/dist/rendering/cartoon/index.d.ts +6 -0
  403. package/dist/rendering/cartoon/index.d.ts.map +1 -0
  404. package/dist/rendering/cartoon/index.js +6 -0
  405. package/dist/rendering/cartoon/index.js.map +1 -0
  406. package/dist/rendering/index.d.ts +26 -15
  407. package/dist/rendering/index.d.ts.map +1 -1
  408. package/dist/rendering/index.js +15 -9
  409. package/dist/rendering/index.js.map +1 -1
  410. package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts +93 -0
  411. package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts.map +1 -0
  412. package/dist/rendering/postprocess/NativeLdrEffectLuts.js +202 -0
  413. package/dist/rendering/postprocess/NativeLdrEffectLuts.js.map +1 -0
  414. package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
  415. package/dist/rendering/production-runtime/PBRHDRPipeline.js +3 -0
  416. package/dist/rendering/production-runtime/PBRHDRPipeline.js.map +1 -1
  417. package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts +1 -0
  418. package/dist/rendering/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
  419. package/dist/rendering/production-runtime/ProductionRendererTypes.js.map +1 -1
  420. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
  421. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js +5 -3
  422. package/dist/rendering/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
  423. package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
  424. package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +9 -5
  425. package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
  426. package/dist/rendering/production-runtime/TransmissionBackdropCapture.d.ts +5 -0
  427. package/dist/rendering/production-runtime/TransmissionBackdropCapture.d.ts.map +1 -1
  428. package/dist/rendering/production-runtime/TransmissionBackdropCapture.js +40 -0
  429. package/dist/rendering/production-runtime/TransmissionBackdropCapture.js.map +1 -1
  430. package/dist/rendering/production-runtime/environment/HDRLoader.d.ts +6 -0
  431. package/dist/rendering/production-runtime/environment/HDRLoader.d.ts.map +1 -1
  432. package/dist/rendering/production-runtime/environment/HDRLoader.js +19 -0
  433. package/dist/rendering/production-runtime/environment/HDRLoader.js.map +1 -1
  434. package/dist/rendering/production-runtime/index.d.ts +3 -1
  435. package/dist/rendering/production-runtime/index.d.ts.map +1 -1
  436. package/dist/rendering/production-runtime/index.js +1 -0
  437. package/dist/rendering/production-runtime/index.js.map +1 -1
  438. package/dist/scene/Light.d.ts +1 -1
  439. package/dist/scene/Light.d.ts.map +1 -1
  440. package/dist/scene/RectAreaLight.d.ts +22 -0
  441. package/dist/scene/RectAreaLight.d.ts.map +1 -0
  442. package/dist/scene/RectAreaLight.js +46 -0
  443. package/dist/scene/RectAreaLight.js.map +1 -0
  444. package/dist/scene/Scene.d.ts +6 -1
  445. package/dist/scene/Scene.d.ts.map +1 -1
  446. package/dist/scene/Scene.js +8 -1
  447. package/dist/scene/Scene.js.map +1 -1
  448. package/dist/scene/SceneSerializer.d.ts +3 -1
  449. package/dist/scene/SceneSerializer.d.ts.map +1 -1
  450. package/dist/scene/SceneSerializer.js +14 -7
  451. package/dist/scene/SceneSerializer.js.map +1 -1
  452. package/dist/scene/index.d.ts +1 -0
  453. package/dist/scene/index.d.ts.map +1 -1
  454. package/dist/scene/index.js +1 -0
  455. package/dist/scene/index.js.map +1 -1
  456. package/dist/scripting/CartoonNodeCategories.d.ts +3 -0
  457. package/dist/scripting/CartoonNodeCategories.d.ts.map +1 -0
  458. package/dist/scripting/CartoonNodeCategories.js +9 -0
  459. package/dist/scripting/CartoonNodeCategories.js.map +1 -0
  460. package/dist/scripting/CartoonVisualNodes.d.ts +3 -0
  461. package/dist/scripting/CartoonVisualNodes.d.ts.map +1 -0
  462. package/dist/scripting/CartoonVisualNodes.js +41 -0
  463. package/dist/scripting/CartoonVisualNodes.js.map +1 -0
  464. package/package.json +124 -113
  465. package/templates/cinematic-scene/package.json +1 -1
  466. package/templates/mini-game/package.json +1 -1
  467. package/templates/product-viewer/package.json +1 -1
  468. package/templates/production-asset-inspector/README.md +5 -0
  469. package/templates/production-asset-inspector/asset-manifest.json +9 -0
  470. package/templates/production-asset-inspector/index.html +2 -0
  471. package/templates/production-asset-inspector/package.json +17 -0
  472. package/templates/production-asset-inspector/src/main.ts +16 -0
  473. package/templates/production-material-studio/README.md +5 -0
  474. package/templates/production-material-studio/asset-manifest.json +9 -0
  475. package/templates/production-material-studio/index.html +2 -0
  476. package/templates/production-material-studio/package.json +17 -0
  477. package/templates/production-material-studio/src/main.ts +16 -0
  478. package/templates/production-product-configurator/README.md +5 -0
  479. package/templates/production-product-configurator/asset-manifest.json +9 -0
  480. package/templates/production-product-configurator/index.html +2 -0
  481. package/templates/production-product-configurator/package.json +17 -0
  482. package/templates/production-product-configurator/src/main.ts +16 -0
  483. package/templates/production-product-viewer/README.md +7 -0
  484. package/templates/production-product-viewer/asset-manifest.json +8 -0
  485. package/templates/production-product-viewer/index.html +26 -0
  486. package/templates/production-product-viewer/package.json +17 -0
  487. package/templates/production-product-viewer/src/main.ts +70 -0
@@ -0,0 +1,65 @@
1
+ import { createPromptAnimationIssue } from "./PromptAnimationContract.js";
2
+ export function defineCartoonAssetManifest(entries) {
3
+ return { kind: "cartoon-asset-manifest", entries, readiness: createCartoonAssetManifestReadiness(entries) };
4
+ }
5
+ export function validateCartoonAssetManifest(manifest) {
6
+ return createCartoonAssetManifestReadiness(manifest.entries).issues;
7
+ }
8
+ export function createCartoonAssetManifestReadiness(entries) {
9
+ const issues = [];
10
+ let characterCount = 0;
11
+ let setCount = 0;
12
+ let propCount = 0;
13
+ let audioCount = 0;
14
+ let lipSyncReadyCount = 0;
15
+ let typedAssetReferenceCount = 0;
16
+ for (const entry of entries) {
17
+ if (entry.kind === "character")
18
+ characterCount += 1;
19
+ if (entry.kind === "set" || entry.kind === "environment")
20
+ setCount += 1;
21
+ if (entry.kind === "prop")
22
+ propCount += 1;
23
+ if (entry.kind === "audio")
24
+ audioCount += 1;
25
+ if (entry.lipSyncReady || entry.mouthCueReady)
26
+ lipSyncReadyCount += 1;
27
+ if (entry.typedAssetReference ?? entry.assetId.startsWith("assets."))
28
+ typedAssetReferenceCount += 1;
29
+ if (!entry.assetId.startsWith("assets.")) {
30
+ issues.push(createPromptAnimationIssue("error", "cartoon-asset-typed-reference-missing", `Cartoon asset "${entry.id}" must reference a generated typed asset key such as assets.${entry.id}.`, {
31
+ path: `entries.${entry.id}.assetId`
32
+ }));
33
+ }
34
+ if (!entry.license) {
35
+ issues.push(createPromptAnimationIssue("error", "cartoon-asset-license-missing", `Cartoon asset "${entry.id}" needs a license.`, {
36
+ path: `entries.${entry.id}.license`
37
+ }));
38
+ }
39
+ if (entry.kind === "character" && !(entry.lipSyncReady || entry.mouthCueReady)) {
40
+ issues.push(createPromptAnimationIssue("error", "cartoon-character-mouth-readiness-missing", `Character asset "${entry.id}" needs lip-sync, mouth cue, or blendshape readiness evidence.`, {
41
+ path: `entries.${entry.id}.lipSyncReady`
42
+ }));
43
+ }
44
+ if ((entry.kind === "set" || entry.kind === "environment") && entry.setReady === false) {
45
+ issues.push(createPromptAnimationIssue("error", "cartoon-set-readiness-failed", `Set asset "${entry.id}" is marked not ready.`, {
46
+ path: `entries.${entry.id}.setReady`
47
+ }));
48
+ }
49
+ if (entry.kind === "audio" && entry.audioReady === false) {
50
+ issues.push(createPromptAnimationIssue("error", "cartoon-audio-readiness-failed", `Audio asset "${entry.id}" is marked not ready.`, {
51
+ path: `entries.${entry.id}.audioReady`
52
+ }));
53
+ }
54
+ }
55
+ return {
56
+ characterCount,
57
+ setCount,
58
+ propCount,
59
+ audioCount,
60
+ lipSyncReadyCount,
61
+ typedAssetReferenceCount,
62
+ issues
63
+ };
64
+ }
65
+ //# sourceMappingURL=CartoonAssetManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartoonAssetManifest.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CartoonAssetManifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import type { AuraAssetRef } from "./index.js";
2
+ import { type PromptAnimationAccessibilityProofMetadata, type PromptAnimationCharacter, type PromptAnimationEpisodePlan, type PromptAnimationId, type PromptAnimationLanguageCode, type PromptAnimationProp, type PromptAnimationRuntimeSpec, type PromptAnimationSafetyMetadata, type PromptAnimationSeconds, type PromptAnimationStoryboard, type PromptAnimationStoryBible, type PromptAnimationStyleGuide } from "./PromptAnimationContract.js";
3
+ import { type CartoonPerformanceArtifact } from "./CartoonPerformance.js";
4
+ import { type CaptionTrackArtifact, type DialogueTrackArtifact } from "./DialoguePerformance.js";
5
+ import { type CartoonRenderOutputPackageMetadata, type CartoonRenderQueueArtifact, type CartoonViewport } from "./CartoonRenderQueue.js";
6
+ import { type ShotTimelineArtifact } from "./ShotTimeline.js";
7
+ export interface CartoonDirectorCharacterInput {
8
+ readonly id: PromptAnimationId;
9
+ readonly name: string;
10
+ readonly role?: PromptAnimationCharacter["role"] | undefined;
11
+ readonly voiceId?: string | undefined;
12
+ readonly asset?: AuraAssetRef<"model"> | undefined;
13
+ readonly style?: string | undefined;
14
+ }
15
+ export interface CartoonDirectorLocationInput {
16
+ readonly id: PromptAnimationId;
17
+ readonly name: string;
18
+ readonly description?: string | undefined;
19
+ readonly mood?: string | undefined;
20
+ }
21
+ export interface CartoonDirectorPropInput {
22
+ readonly id: PromptAnimationId;
23
+ readonly name: string;
24
+ readonly role?: PromptAnimationProp["role"] | undefined;
25
+ readonly description?: string | undefined;
26
+ readonly ownerCharacterId?: PromptAnimationId | undefined;
27
+ readonly locationId?: PromptAnimationId | undefined;
28
+ readonly asset?: AuraAssetRef<"model"> | undefined;
29
+ readonly primitiveFallback?: string | undefined;
30
+ readonly styleNotes?: readonly string[] | undefined;
31
+ readonly safetyNotes?: readonly string[] | undefined;
32
+ }
33
+ export interface CartoonDirectorDialogueInput {
34
+ readonly speakerId: PromptAnimationId;
35
+ readonly text: string;
36
+ readonly emotion?: string | undefined;
37
+ readonly delivery?: string | undefined;
38
+ readonly audioFile?: string | undefined;
39
+ }
40
+ export interface CartoonDirectorBeatInput {
41
+ readonly id: PromptAnimationId;
42
+ readonly sceneId?: PromptAnimationId | undefined;
43
+ readonly shotId?: PromptAnimationId | undefined;
44
+ readonly locationId: PromptAnimationId;
45
+ readonly summary: string;
46
+ readonly visualIntent: string;
47
+ readonly duration?: PromptAnimationSeconds | undefined;
48
+ readonly characters: readonly PromptAnimationId[];
49
+ readonly props?: readonly PromptAnimationId[] | undefined;
50
+ readonly dialogue?: readonly CartoonDirectorDialogueInput[] | undefined;
51
+ readonly mood?: string | undefined;
52
+ readonly gestureByCharacterId?: Record<string, PromptAnimationId> | undefined;
53
+ readonly blockingByCharacterId?: Record<string, {
54
+ readonly position?: readonly [number, number, number] | undefined;
55
+ readonly layer?: string | undefined;
56
+ }> | undefined;
57
+ }
58
+ export interface CartoonDirectorInput {
59
+ readonly episodeId: PromptAnimationId;
60
+ readonly title: string;
61
+ readonly prompt: string;
62
+ readonly language: PromptAnimationLanguageCode;
63
+ readonly runtime: PromptAnimationRuntimeSpec;
64
+ readonly characters: readonly CartoonDirectorCharacterInput[];
65
+ readonly locations: readonly CartoonDirectorLocationInput[];
66
+ readonly props?: readonly CartoonDirectorPropInput[] | undefined;
67
+ readonly styleGuide?: Partial<PromptAnimationStyleGuide> | undefined;
68
+ readonly continuityRules?: readonly string[] | undefined;
69
+ readonly beats: readonly CartoonDirectorBeatInput[];
70
+ readonly safety?: Partial<PromptAnimationSafetyMetadata> | undefined;
71
+ readonly accessibilityProof?: PromptAnimationAccessibilityProofMetadata | undefined;
72
+ readonly route?: string | undefined;
73
+ readonly viewport?: CartoonViewport | undefined;
74
+ readonly generatedAt?: string | undefined;
75
+ }
76
+ export interface CartoonDirectorPlan {
77
+ readonly kind: "cartoon-director-plan";
78
+ readonly episodePlan: PromptAnimationEpisodePlan;
79
+ readonly storyBible: PromptAnimationStoryBible;
80
+ readonly storyboard: PromptAnimationStoryboard;
81
+ readonly shotTimeline: ShotTimelineArtifact;
82
+ readonly dialogueTrack: DialogueTrackArtifact;
83
+ readonly captionTrack: CaptionTrackArtifact;
84
+ readonly performance: CartoonPerformanceArtifact;
85
+ readonly renderQueue: CartoonRenderQueueArtifact;
86
+ readonly renderOutputPackage: CartoonRenderOutputPackageMetadata;
87
+ readonly assetSlots: readonly CartoonDirectorAssetSlot[];
88
+ readonly motionRequirements: readonly CartoonDirectorMotionRequirement[];
89
+ readonly reviewGates: readonly CartoonDirectorReviewGate[];
90
+ }
91
+ export interface CartoonDirectorAssetSlot {
92
+ readonly id: PromptAnimationId;
93
+ readonly kind: "character" | "location" | "prop";
94
+ readonly required: boolean;
95
+ readonly assetId?: string | undefined;
96
+ readonly readiness: "typed-asset" | "needs-asset" | "primitive-fallback";
97
+ readonly requirements: readonly string[];
98
+ }
99
+ export interface CartoonDirectorMotionRequirement {
100
+ readonly id: PromptAnimationId;
101
+ readonly targetId: PromptAnimationId;
102
+ readonly kind: "body" | "mouth" | "gesture" | "camera" | "caption";
103
+ readonly required: boolean;
104
+ readonly evidence: string;
105
+ }
106
+ export interface CartoonDirectorReviewGate {
107
+ readonly id: PromptAnimationId;
108
+ readonly required: boolean;
109
+ readonly status: "pending" | "pass";
110
+ readonly detail: string;
111
+ }
112
+ export declare function defineCartoonDirectorPlan<const TPlan extends CartoonDirectorPlan>(plan: TPlan): TPlan;
113
+ export declare function createCartoonDirectorPlan(input: CartoonDirectorInput): CartoonDirectorPlan;
114
+ export declare function compilePromptEpisodePlan(input: CartoonDirectorInput): CartoonDirectorPlan;
115
+ export declare const cartoonDirector: {
116
+ readonly compile: typeof compilePromptEpisodePlan;
117
+ readonly createPlan: typeof createCartoonDirectorPlan;
118
+ readonly definePlan: typeof defineCartoonDirectorPlan;
119
+ };
120
+ //# sourceMappingURL=CartoonDirector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartoonDirector.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/CartoonDirector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAIL,KAAK,yCAAyC,EAC9C,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAEhC,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAE3B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAIL,KAAK,0BAA0B,EAGhC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,oBAAoB,EAEzB,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,KAAK,kCAAkC,EACvC,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAsB,KAAK,oBAAoB,EAAyB,MAAM,mBAAmB,CAAC;AAEzG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,4BAA4B,EAAE,GAAG,SAAS,CAAC;IACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC9E,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;CACzK;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC9D,QAAQ,CAAC,SAAS,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,wBAAwB,EAAE,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,yCAAyC,GAAG,SAAS,CAAC;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;IACjE,QAAQ,CAAC,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACzD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,gCAAgC,EAAE,CAAC;IACzE,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC5D;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,GAAG,oBAAoB,CAAC;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,KAAK,SAAS,mBAAmB,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,CAErG;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,oBAAoB,GAAG,mBAAmB,CAuT1F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,GAAG,mBAAmB,CAEzF;AAED,eAAO,MAAM,eAAe;;;;CAIlB,CAAC"}
@@ -0,0 +1,432 @@
1
+ import { createPromptAnimationEpisodePlan, createPromptAnimationStoryBible, promptAnimationContractVersion } from "./PromptAnimationContract.js";
2
+ import { createCartoonPerformance, resolveCartoonEmotionPose, resolveCartoonGesture } from "./CartoonPerformance.js";
3
+ import { createDialogueTrack, deriveCaptionTrackFromDialogue } from "./DialoguePerformance.js";
4
+ import { createCartoonRenderOutputPackageMetadata, createCartoonRenderQueue } from "./CartoonRenderQueue.js";
5
+ import { createShotTimeline } from "./ShotTimeline.js";
6
+ export function defineCartoonDirectorPlan(plan) {
7
+ return plan;
8
+ }
9
+ export function createCartoonDirectorPlan(input) {
10
+ const characters = input.characters.map((character) => ({
11
+ id: character.id,
12
+ name: character.name,
13
+ role: character.role ?? "hero",
14
+ ...(character.voiceId ? { voiceId: character.voiceId } : {}),
15
+ language: input.language,
16
+ ...(character.style ? { style: character.style } : {}),
17
+ rig: {
18
+ ...(character.asset ? { asset: character.asset } : {}),
19
+ facing: "camera",
20
+ scale: 1,
21
+ mouthFallback: character.asset ? "blendshape" : "primitive-mouth-card"
22
+ }
23
+ }));
24
+ const locations = input.locations.map((location) => ({
25
+ id: location.id,
26
+ name: location.name,
27
+ ...(location.description ? { description: location.description } : {}),
28
+ ...(location.mood ? { mood: location.mood } : {})
29
+ }));
30
+ const props = (input.props ?? []).map((prop) => ({
31
+ id: prop.id,
32
+ name: prop.name,
33
+ role: prop.role ?? "set-dressing",
34
+ ...(prop.description ? { description: prop.description } : {}),
35
+ ...(prop.ownerCharacterId ? { ownerCharacterId: prop.ownerCharacterId } : {}),
36
+ ...(prop.locationId ? { locationId: prop.locationId } : {}),
37
+ ...(prop.asset ? { asset: prop.asset } : {}),
38
+ ...(prop.primitiveFallback ? { primitiveFallback: prop.primitiveFallback } : {}),
39
+ ...(prop.styleNotes ? { styleNotes: prop.styleNotes } : {}),
40
+ ...(prop.safetyNotes ? { safetyNotes: prop.safetyNotes } : {})
41
+ }));
42
+ const episodePlan = createPromptAnimationEpisodePlan({
43
+ episodeId: input.episodeId,
44
+ title: input.title,
45
+ language: input.language,
46
+ runtime: input.runtime,
47
+ characters,
48
+ locations,
49
+ production: {
50
+ sourcePrompt: input.prompt,
51
+ target: "youtube",
52
+ reviewStatus: "draft"
53
+ },
54
+ safety: input.safety,
55
+ accessibilityProof: input.accessibilityProof,
56
+ generatedAt: input.generatedAt
57
+ });
58
+ const beatDuration = input.beats.length > 0 ? input.runtime.duration / input.beats.length : input.runtime.duration;
59
+ let cursor = 0;
60
+ const shots = [];
61
+ const dialogueLines = [];
62
+ const performanceCues = [];
63
+ for (const [index, beat] of input.beats.entries()) {
64
+ const duration = beat.duration ?? beatDuration;
65
+ const startTime = cursor;
66
+ const endTime = cursor + duration;
67
+ const sceneId = beat.sceneId ?? `scene-${index + 1}`;
68
+ const shotId = beat.shotId ?? `shot-${index + 1}`;
69
+ const midpoint = startTime + duration / 2;
70
+ shots.push({
71
+ id: shotId,
72
+ shotId,
73
+ sceneId,
74
+ startTime,
75
+ endTime,
76
+ transitionIn: index === 0 ? "cut" : "match-cut",
77
+ transitionOut: "cut",
78
+ camera: {
79
+ move: index % 3 === 0 ? "push-in" : "static",
80
+ notes: [beat.visualIntent]
81
+ },
82
+ characters: beat.characters.map((characterId) => ({
83
+ characterId,
84
+ ...(beat.blockingByCharacterId?.[characterId]?.position
85
+ ? { position: beat.blockingByCharacterId[characterId].position }
86
+ : { position: defaultCharacterBlockingPosition(beat.characters.indexOf(characterId), beat.characters.length) }),
87
+ action: beat.dialogue?.some((line) => line.speakerId === characterId) ? "speak" : "listen",
88
+ facing: "camera",
89
+ emotion: beat.dialogue?.find((line) => line.speakerId === characterId)?.emotion ?? "neutral",
90
+ pose: resolveCartoonEmotionPose(beat.dialogue?.find((line) => line.speakerId === characterId)?.emotion).id,
91
+ gestureId: beat.gestureByCharacterId?.[characterId]
92
+ })),
93
+ ...(beat.props
94
+ ? {
95
+ props: beat.props.map((propId) => ({
96
+ propId,
97
+ visible: true,
98
+ action: "storyboard-required"
99
+ }))
100
+ }
101
+ : {}),
102
+ captureTimes: [startTime, midpoint],
103
+ ...(beat.dialogue && beat.dialogue.length > 0
104
+ ? { captions: beat.dialogue.map((_, lineIndex) => `${shotId}:line-${lineIndex + 1}:caption`) }
105
+ : {}),
106
+ intent: beat.visualIntent
107
+ });
108
+ const dialogue = beat.dialogue ?? [];
109
+ const lineDuration = dialogue.length > 0 ? duration / dialogue.length : 0;
110
+ dialogue.forEach((line, lineIndex) => {
111
+ const lineStart = startTime + lineDuration * lineIndex;
112
+ const lineEnd = lineIndex === dialogue.length - 1 ? endTime : lineStart + lineDuration;
113
+ const lineId = `${shotId}:line-${lineIndex + 1}`;
114
+ dialogueLines.push({
115
+ lineId,
116
+ speakerId: line.speakerId,
117
+ text: line.text,
118
+ language: input.language,
119
+ ...(line.audioFile ? { audioFile: line.audioFile } : {}),
120
+ startTime: lineStart,
121
+ endTime: lineEnd,
122
+ emotion: line.emotion ?? "neutral",
123
+ delivery: line.delivery ?? "natural",
124
+ direction: beat.summary
125
+ });
126
+ performanceCues.push({
127
+ id: `${lineId}:speak`,
128
+ shotId,
129
+ characterId: line.speakerId,
130
+ lineId,
131
+ startTime: lineStart,
132
+ endTime: lineEnd,
133
+ action: "speak",
134
+ emotion: line.emotion ?? "neutral",
135
+ emotionPoseId: resolveCartoonEmotionPose(line.emotion ?? "neutral").id,
136
+ intensity: line.emotion === "excited" ? 1 : 0.66,
137
+ body: resolveCartoonEmotionPose(line.emotion ?? "neutral").body,
138
+ facial: resolveCartoonEmotionPose(line.emotion ?? "neutral").facial,
139
+ gestureId: beat.gestureByCharacterId?.[line.speakerId] ?? defaultGestureForEmotion(line.emotion),
140
+ ...(createCueGestureState(beat.gestureByCharacterId?.[line.speakerId] ?? defaultGestureForEmotion(line.emotion))
141
+ ? { gesture: createCueGestureState(beat.gestureByCharacterId?.[line.speakerId] ?? defaultGestureForEmotion(line.emotion)) }
142
+ : {}),
143
+ blocking: {
144
+ position: beat.blockingByCharacterId?.[line.speakerId]?.position ??
145
+ defaultCharacterBlockingPosition(beat.characters.indexOf(line.speakerId), beat.characters.length),
146
+ visible: true,
147
+ layer: beat.blockingByCharacterId?.[line.speakerId]?.layer ?? "midground"
148
+ },
149
+ gaze: {
150
+ mode: "listener",
151
+ targetId: beat.characters.find((characterId) => characterId !== line.speakerId),
152
+ intensity: 0.72
153
+ },
154
+ notes: [line.delivery ?? "natural"]
155
+ });
156
+ });
157
+ for (const characterId of beat.characters) {
158
+ if (dialogue.some((line) => line.speakerId === characterId))
159
+ continue;
160
+ const listenPose = resolveCartoonEmotionPose(beat.mood === "soft neon bedtime" ? "happy" : "neutral");
161
+ performanceCues.push({
162
+ id: `${shotId}:${characterId}:listen`,
163
+ shotId,
164
+ characterId,
165
+ startTime,
166
+ endTime,
167
+ action: "listen",
168
+ emotion: listenPose.emotion,
169
+ emotionPoseId: listenPose.id,
170
+ intensity: 0.45,
171
+ body: listenPose.body,
172
+ facial: listenPose.facial,
173
+ gestureId: beat.gestureByCharacterId?.[characterId] ?? "soft-nod",
174
+ gesture: resolveCartoonGesture(beat.gestureByCharacterId?.[characterId] ?? "soft-nod")?.gesture,
175
+ blocking: {
176
+ position: beat.blockingByCharacterId?.[characterId]?.position ??
177
+ defaultCharacterBlockingPosition(beat.characters.indexOf(characterId), beat.characters.length),
178
+ visible: true,
179
+ layer: beat.blockingByCharacterId?.[characterId]?.layer ?? "midground"
180
+ },
181
+ gaze: {
182
+ mode: "speaker",
183
+ targetId: dialogue[0]?.speakerId,
184
+ intensity: 0.58
185
+ },
186
+ notes: [`Listening during ${beat.summary}`]
187
+ });
188
+ }
189
+ cursor = endTime;
190
+ }
191
+ const storyboard = {
192
+ artifact: "storyboard",
193
+ contractId: promptAnimationContractVersion,
194
+ episodeId: input.episodeId,
195
+ title: input.title,
196
+ scenes: input.beats.map((beat, index) => {
197
+ const sceneId = beat.sceneId ?? `scene-${index + 1}`;
198
+ const shotId = beat.shotId ?? `shot-${index + 1}`;
199
+ return {
200
+ id: sceneId,
201
+ sceneId,
202
+ locationId: beat.locationId,
203
+ storyBeat: beat.summary,
204
+ ...(beat.mood ? { mood: beat.mood } : {}),
205
+ shots: [
206
+ {
207
+ id: shotId,
208
+ shotId,
209
+ storyBeat: beat.summary,
210
+ characters: beat.characters,
211
+ ...(beat.props ? { props: beat.props } : {}),
212
+ ...(beat.mood ? { mood: beat.mood } : {}),
213
+ visualIntent: beat.visualIntent,
214
+ ...(beat.duration ? { suggestedDuration: beat.duration } : {})
215
+ }
216
+ ]
217
+ };
218
+ }),
219
+ ...(input.generatedAt ? { generatedAt: input.generatedAt } : {})
220
+ };
221
+ const shotTimeline = createShotTimeline({
222
+ episodeId: input.episodeId,
223
+ frameRate: input.runtime.frameRate,
224
+ duration: input.runtime.duration,
225
+ shots,
226
+ generatedAt: input.generatedAt
227
+ });
228
+ const dialogueTrack = createDialogueTrack({
229
+ episodeId: input.episodeId,
230
+ language: input.language,
231
+ lines: dialogueLines,
232
+ duration: input.runtime.duration,
233
+ generatedAt: input.generatedAt
234
+ });
235
+ const captionTrack = deriveCaptionTrackFromDialogue(dialogueTrack, { generatedAt: input.generatedAt });
236
+ const performance = createCartoonPerformance({
237
+ episodeId: input.episodeId,
238
+ frameRate: input.runtime.frameRate,
239
+ cues: performanceCues,
240
+ generatedAt: input.generatedAt
241
+ });
242
+ const styleGuide = createCartoonStoryBibleStyleGuide(input.styleGuide);
243
+ const storyBible = createPromptAnimationStoryBible({
244
+ episodeId: input.episodeId,
245
+ title: input.title,
246
+ logline: input.prompt,
247
+ characters,
248
+ locations,
249
+ props,
250
+ styleGuide,
251
+ shotList: shots.map((shot) => {
252
+ const matchingBeat = input.beats.find((beat) => (beat.shotId ?? `shot-${input.beats.indexOf(beat) + 1}`) === shot.shotId);
253
+ return {
254
+ shotId: shot.shotId,
255
+ sceneId: shot.sceneId,
256
+ locationId: matchingBeat?.locationId ?? input.locations[0]?.id ?? "location",
257
+ purpose: shot.intent ?? matchingBeat?.summary ?? shot.shotId,
258
+ characters: shot.characters.map((character) => character.characterId),
259
+ ...(matchingBeat?.props ? { props: matchingBeat.props } : {}),
260
+ startTime: shot.startTime,
261
+ endTime: shot.endTime,
262
+ duration: shot.endTime - shot.startTime,
263
+ camera: shot.camera.move,
264
+ ...(shot.captions ? { captionIds: shot.captions } : {}),
265
+ continuityNotes: [
266
+ `Scene ${shot.sceneId} and shot ${shot.shotId} ids must stay stable across AuraVoice dubbing and rerender passes.`
267
+ ]
268
+ };
269
+ }),
270
+ continuityRules: input.continuityRules ??
271
+ [
272
+ "Do not change character ids, storyboard scene ids, shot ids, caption ids, or dialogue line ids during dubbing.",
273
+ "AuraVoice timing artifacts remain the master clock for captions, visemes, audio stems, and render captures.",
274
+ "Primitive fallback props may be replaced by typed GLB assets only through generated ./aura-assets imports."
275
+ ],
276
+ generatedAt: input.generatedAt
277
+ });
278
+ const renderQueue = createCartoonRenderQueue({
279
+ episodePlan,
280
+ shotTimeline,
281
+ route: input.route ?? "/prompt-animation",
282
+ viewport: input.viewport,
283
+ generatedAt: input.generatedAt
284
+ });
285
+ const renderOutputPackage = createCartoonRenderOutputPackageMetadata({
286
+ episodePlan,
287
+ shotTimeline,
288
+ renderQueue,
289
+ generatedAt: input.generatedAt
290
+ });
291
+ return {
292
+ kind: "cartoon-director-plan",
293
+ episodePlan,
294
+ storyBible,
295
+ storyboard,
296
+ shotTimeline,
297
+ dialogueTrack,
298
+ captionTrack,
299
+ performance,
300
+ renderQueue,
301
+ renderOutputPackage,
302
+ assetSlots: createCartoonDirectorAssetSlots(characters, locations, props),
303
+ motionRequirements: createCartoonDirectorMotionRequirements(shots, dialogueLines, performanceCues),
304
+ reviewGates: createCartoonDirectorReviewGates(renderOutputPackage)
305
+ };
306
+ }
307
+ export function compilePromptEpisodePlan(input) {
308
+ return createCartoonDirectorPlan(input);
309
+ }
310
+ export const cartoonDirector = {
311
+ compile: compilePromptEpisodePlan,
312
+ createPlan: createCartoonDirectorPlan,
313
+ definePlan: defineCartoonDirectorPlan
314
+ };
315
+ function createCartoonStoryBibleStyleGuide(input) {
316
+ return {
317
+ visualStyle: input?.visualStyle ?? "rounded bedtime sci-fi cartoon with readable silhouettes",
318
+ palette: input?.palette ?? ["#081b2a", "#7de2ff", "#ffe18e", "#40ffbf", "#f8fff2"],
319
+ shapeLanguage: input?.shapeLanguage ?? "soft circles, chunky robot forms, oversized safe props, and simple moon-garden silhouettes",
320
+ lighting: input?.lighting ?? "soft high-contrast blue key light with warm prop glows and reduced flash",
321
+ cameraLanguage: input?.cameraLanguage ?? "stable wide and medium shots, gentle push-ins, hard cuts only at shot boundaries",
322
+ motionRules: input?.motionRules ??
323
+ [
324
+ "Keep character gestures small enough for reduced-motion playback.",
325
+ "Use app.onFrame shot playback rather than recreating the Aura app per frame.",
326
+ "Captions, visemes, and mouth cards sample from the AuraVoice master clock."
327
+ ],
328
+ captionStyle: input?.captionStyle ?? "bottom-center high-contrast rounded plate with line-safe caption text",
329
+ ...(input?.continuityRules ? { continuityRules: input.continuityRules } : {})
330
+ };
331
+ }
332
+ function defaultCharacterBlockingPosition(index, total) {
333
+ if (total <= 1)
334
+ return [0, 0.7, 0];
335
+ const spacing = 1.55 / Math.max(1, total - 1);
336
+ return [-0.775 + spacing * index, 0.72, 0];
337
+ }
338
+ function defaultGestureForEmotion(emotion) {
339
+ if (emotion === "excited")
340
+ return "two-hand-wave";
341
+ if (emotion === "happy")
342
+ return "small-wave";
343
+ if (emotion === "curious")
344
+ return "curious-lean";
345
+ if (emotion === "concerned")
346
+ return "gentle-point";
347
+ return undefined;
348
+ }
349
+ function createCueGestureState(gestureId) {
350
+ return resolveCartoonGesture(gestureId)?.gesture;
351
+ }
352
+ function createCartoonDirectorAssetSlots(characters, locations, props) {
353
+ return [
354
+ ...characters.map((character) => ({
355
+ id: character.id,
356
+ kind: "character",
357
+ required: true,
358
+ ...(character.rig.asset?.id ? { assetId: character.rig.asset.id } : {}),
359
+ readiness: character.rig.asset ? "typed-asset" : "primitive-fallback",
360
+ requirements: ["cartoon-character profile", "mouth or blendshape evidence", "body motion evidence"]
361
+ })),
362
+ ...locations.map((location) => ({
363
+ id: location.id,
364
+ kind: "location",
365
+ required: true,
366
+ readiness: location.sceneNodes && location.sceneNodes.length > 0 ? "typed-asset" : "needs-asset",
367
+ requirements: ["cartoon-set or authored scene nodes", "walkable/composition evidence"]
368
+ })),
369
+ ...props.map((prop) => ({
370
+ id: prop.id,
371
+ kind: "prop",
372
+ required: prop.role === "hero-prop" || prop.role === "interactive",
373
+ ...(prop.asset?.id ? { assetId: prop.asset.id } : {}),
374
+ readiness: prop.asset ? "typed-asset" : prop.primitiveFallback ? "primitive-fallback" : "needs-asset",
375
+ requirements: ["typed asset when hero/interactive", "license/provenance evidence"]
376
+ }))
377
+ ];
378
+ }
379
+ function createCartoonDirectorMotionRequirements(shots, dialogueLines, cues) {
380
+ return [
381
+ ...shots.map((shot) => ({
382
+ id: `${shot.shotId}:camera`,
383
+ targetId: shot.shotId,
384
+ kind: "camera",
385
+ required: true,
386
+ evidence: `camera move "${shot.camera.move}" is sampled by the render queue`
387
+ })),
388
+ ...dialogueLines.map((line) => ({
389
+ id: `${line.lineId}:mouth`,
390
+ targetId: line.speakerId,
391
+ kind: "mouth",
392
+ required: true,
393
+ evidence: `dialogue line "${line.lineId}" requires viseme or mouth-card motion`
394
+ })),
395
+ ...cues.map((cue) => ({
396
+ id: `${cue.id}:body`,
397
+ targetId: cue.characterId,
398
+ kind: cue.gesture || cue.gestureId ? "gesture" : "body",
399
+ required: true,
400
+ evidence: `performance cue "${cue.id}" drives ${cue.action} from ${cue.startTime}s to ${cue.endTime}s`
401
+ }))
402
+ ];
403
+ }
404
+ function createCartoonDirectorReviewGates(outputPackage) {
405
+ return [
406
+ {
407
+ id: "encoded-video",
408
+ required: true,
409
+ status: "pending",
410
+ detail: `Review package must include encoded video output at ${outputPackage.reviewPackagePaths.video.join(" or ")}.`
411
+ },
412
+ {
413
+ id: "captions",
414
+ required: true,
415
+ status: "pass",
416
+ detail: `Caption sidecars are planned at ${outputPackage.reviewPackagePaths.captions.join(", ")}.`
417
+ },
418
+ {
419
+ id: "thumbnail",
420
+ required: true,
421
+ status: "pass",
422
+ detail: `Thumbnail is captured from route state ${outputPackage.thumbnailCapture.sourceSceneStateId}.`
423
+ },
424
+ {
425
+ id: "human-review",
426
+ required: true,
427
+ status: "pending",
428
+ detail: "Named human visual approval is required before publish-ready claims."
429
+ }
430
+ ];
431
+ }
432
+ //# sourceMappingURL=CartoonDirector.js.map