@aura3d/engine 1.0.9 → 1.0.10

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 (289) hide show
  1. package/README.md +15 -15
  2. package/dist/animation/AnimationController.d.ts +1 -0
  3. package/dist/animation/AnimationController.d.ts.map +1 -1
  4. package/dist/animation/AnimationController.js +7 -0
  5. package/dist/animation/AnimationController.js.map +1 -1
  6. package/dist/audio/AudioFileManager.d.ts +54 -0
  7. package/dist/audio/AudioFileManager.d.ts.map +1 -0
  8. package/dist/audio/AudioFileManager.js +108 -0
  9. package/dist/audio/AudioFileManager.js.map +1 -0
  10. package/dist/audio/AudioTimelineTrack.d.ts +110 -0
  11. package/dist/audio/AudioTimelineTrack.d.ts.map +1 -0
  12. package/dist/audio/AudioTimelineTrack.js +297 -0
  13. package/dist/audio/AudioTimelineTrack.js.map +1 -0
  14. package/dist/audio/AudioWaveform.d.ts +42 -0
  15. package/dist/audio/AudioWaveform.d.ts.map +1 -0
  16. package/dist/audio/AudioWaveform.js +128 -0
  17. package/dist/audio/AudioWaveform.js.map +1 -0
  18. package/dist/audio/index.d.ts +6 -0
  19. package/dist/audio/index.d.ts.map +1 -1
  20. package/dist/audio/index.js +3 -0
  21. package/dist/audio/index.js.map +1 -1
  22. package/dist/aura3d-cli/cartoon-asset-profiles.d.ts +14 -0
  23. package/dist/aura3d-cli/cartoon-asset-profiles.d.ts.map +1 -0
  24. package/dist/aura3d-cli/cartoon-asset-profiles.js +42 -0
  25. package/dist/aura3d-cli/cartoon-asset-profiles.js.map +1 -0
  26. package/dist/aura3d-cli/cli.js +16 -6
  27. package/dist/aura3d-cli/cli.js.map +1 -1
  28. package/dist/aura3d-cli/game-asset-profiles.d.ts +13 -0
  29. package/dist/aura3d-cli/game-asset-profiles.d.ts.map +1 -0
  30. package/dist/aura3d-cli/game-asset-profiles.js +36 -0
  31. package/dist/aura3d-cli/game-asset-profiles.js.map +1 -0
  32. package/dist/aura3d-cli/game-asset-validator.d.ts +9 -0
  33. package/dist/aura3d-cli/game-asset-validator.d.ts.map +1 -0
  34. package/dist/aura3d-cli/game-asset-validator.js +5 -0
  35. package/dist/aura3d-cli/game-asset-validator.js.map +1 -0
  36. package/dist/aura3d-cli/index.d.ts +2 -0
  37. package/dist/aura3d-cli/index.d.ts.map +1 -1
  38. package/dist/aura3d-cli/index.js +1 -0
  39. package/dist/aura3d-cli/index.js.map +1 -1
  40. package/dist/aura3d-cli/pull-bridge.d.ts +3 -3
  41. package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
  42. package/dist/aura3d-cli/pull-bridge.js +52 -21
  43. package/dist/aura3d-cli/pull-bridge.js.map +1 -1
  44. package/dist/create-aura3d/index.d.ts +1 -1
  45. package/dist/create-aura3d/index.d.ts.map +1 -1
  46. package/dist/create-aura3d/index.js +4 -2
  47. package/dist/create-aura3d/index.js.map +1 -1
  48. package/dist/editor-runtime/AssetDropZone.d.ts +50 -0
  49. package/dist/editor-runtime/AssetDropZone.d.ts.map +1 -0
  50. package/dist/editor-runtime/AssetDropZone.js +101 -0
  51. package/dist/editor-runtime/AssetDropZone.js.map +1 -0
  52. package/dist/editor-runtime/CartoonSceneEditor.d.ts +87 -0
  53. package/dist/editor-runtime/CartoonSceneEditor.d.ts.map +1 -0
  54. package/dist/editor-runtime/CartoonSceneEditor.js +252 -0
  55. package/dist/editor-runtime/CartoonSceneEditor.js.map +1 -0
  56. package/dist/editor-runtime/CurveEditor.d.ts +38 -0
  57. package/dist/editor-runtime/CurveEditor.d.ts.map +1 -0
  58. package/dist/editor-runtime/CurveEditor.js +112 -0
  59. package/dist/editor-runtime/CurveEditor.js.map +1 -0
  60. package/dist/editor-runtime/KeyframeEditor.d.ts +49 -0
  61. package/dist/editor-runtime/KeyframeEditor.d.ts.map +1 -0
  62. package/dist/editor-runtime/KeyframeEditor.js +161 -0
  63. package/dist/editor-runtime/KeyframeEditor.js.map +1 -0
  64. package/dist/editor-runtime/PropertyPanel.d.ts +21 -0
  65. package/dist/editor-runtime/PropertyPanel.d.ts.map +1 -0
  66. package/dist/editor-runtime/PropertyPanel.js +72 -0
  67. package/dist/editor-runtime/PropertyPanel.js.map +1 -0
  68. package/dist/editor-runtime/SceneOutliner.d.ts +19 -0
  69. package/dist/editor-runtime/SceneOutliner.d.ts.map +1 -0
  70. package/dist/editor-runtime/SceneOutliner.js +64 -0
  71. package/dist/editor-runtime/SceneOutliner.js.map +1 -0
  72. package/dist/editor-runtime/TimelineEditorController.d.ts +92 -0
  73. package/dist/editor-runtime/TimelineEditorController.d.ts.map +1 -0
  74. package/dist/editor-runtime/TimelineEditorController.js +424 -0
  75. package/dist/editor-runtime/TimelineEditorController.js.map +1 -0
  76. package/dist/editor-runtime/TimelineTrackTypes.d.ts +25 -0
  77. package/dist/editor-runtime/TimelineTrackTypes.d.ts.map +1 -0
  78. package/dist/editor-runtime/TimelineTrackTypes.js +48 -0
  79. package/dist/editor-runtime/TimelineTrackTypes.js.map +1 -0
  80. package/dist/editor-runtime/TimelineUI.d.ts +27 -0
  81. package/dist/editor-runtime/TimelineUI.d.ts.map +1 -0
  82. package/dist/editor-runtime/TimelineUI.js +118 -0
  83. package/dist/editor-runtime/TimelineUI.js.map +1 -0
  84. package/dist/editor-runtime/index.d.ts +18 -0
  85. package/dist/editor-runtime/index.d.ts.map +1 -1
  86. package/dist/editor-runtime/index.js +9 -0
  87. package/dist/editor-runtime/index.js.map +1 -1
  88. package/dist/engine/advanced-runtime/A3DRenderer.d.ts +24 -2
  89. package/dist/engine/advanced-runtime/A3DRenderer.d.ts.map +1 -1
  90. package/dist/engine/advanced-runtime/A3DRenderer.js +70 -9
  91. package/dist/engine/advanced-runtime/A3DRenderer.js.map +1 -1
  92. package/dist/engine/agent-api/AssetLibraryBrowser.d.ts +39 -0
  93. package/dist/engine/agent-api/AssetLibraryBrowser.d.ts.map +1 -0
  94. package/dist/engine/agent-api/AssetLibraryBrowser.js +60 -0
  95. package/dist/engine/agent-api/AssetLibraryBrowser.js.map +1 -0
  96. package/dist/engine/agent-api/AudioMuxer.d.ts +68 -0
  97. package/dist/engine/agent-api/AudioMuxer.d.ts.map +1 -0
  98. package/dist/engine/agent-api/AudioMuxer.js +74 -0
  99. package/dist/engine/agent-api/AudioMuxer.js.map +1 -0
  100. package/dist/engine/agent-api/AudioVisemeAnalyzer.d.ts +43 -0
  101. package/dist/engine/agent-api/AudioVisemeAnalyzer.d.ts.map +1 -0
  102. package/dist/engine/agent-api/AudioVisemeAnalyzer.js +110 -0
  103. package/dist/engine/agent-api/AudioVisemeAnalyzer.js.map +1 -0
  104. package/dist/engine/agent-api/BodyLanguageLibrary.d.ts +4 -0
  105. package/dist/engine/agent-api/BodyLanguageLibrary.d.ts.map +1 -0
  106. package/dist/engine/agent-api/BodyLanguageLibrary.js +10 -0
  107. package/dist/engine/agent-api/BodyLanguageLibrary.js.map +1 -0
  108. package/dist/engine/agent-api/CameraChoreographer.d.ts +69 -0
  109. package/dist/engine/agent-api/CameraChoreographer.d.ts.map +1 -0
  110. package/dist/engine/agent-api/CameraChoreographer.js +165 -0
  111. package/dist/engine/agent-api/CameraChoreographer.js.map +1 -0
  112. package/dist/engine/agent-api/CameraPathEditor.d.ts +20 -0
  113. package/dist/engine/agent-api/CameraPathEditor.d.ts.map +1 -0
  114. package/dist/engine/agent-api/CameraPathEditor.js +47 -0
  115. package/dist/engine/agent-api/CameraPathEditor.js.map +1 -0
  116. package/dist/engine/agent-api/CameraPresetLibrary.d.ts +22 -0
  117. package/dist/engine/agent-api/CameraPresetLibrary.d.ts.map +1 -0
  118. package/dist/engine/agent-api/CameraPresetLibrary.js +91 -0
  119. package/dist/engine/agent-api/CameraPresetLibrary.js.map +1 -0
  120. package/dist/engine/agent-api/CaptionExporter.d.ts +19 -0
  121. package/dist/engine/agent-api/CaptionExporter.d.ts.map +1 -0
  122. package/dist/engine/agent-api/CaptionExporter.js +54 -0
  123. package/dist/engine/agent-api/CaptionExporter.js.map +1 -0
  124. package/dist/engine/agent-api/CartoonAssetManifest.d.ts +32 -0
  125. package/dist/engine/agent-api/CartoonAssetManifest.d.ts.map +1 -0
  126. package/dist/engine/agent-api/CartoonAssetManifest.js +4 -0
  127. package/dist/engine/agent-api/CartoonAssetManifest.js.map +1 -0
  128. package/dist/engine/agent-api/DialogueAlignment.d.ts +18 -0
  129. package/dist/engine/agent-api/DialogueAlignment.d.ts.map +1 -0
  130. package/dist/engine/agent-api/DialogueAlignment.js +23 -0
  131. package/dist/engine/agent-api/DialogueAlignment.js.map +1 -0
  132. package/dist/engine/agent-api/EpisodeStructure.d.ts +77 -0
  133. package/dist/engine/agent-api/EpisodeStructure.d.ts.map +1 -0
  134. package/dist/engine/agent-api/EpisodeStructure.js +123 -0
  135. package/dist/engine/agent-api/EpisodeStructure.js.map +1 -0
  136. package/dist/engine/agent-api/EpisodeTemplates.d.ts +13 -0
  137. package/dist/engine/agent-api/EpisodeTemplates.d.ts.map +1 -0
  138. package/dist/engine/agent-api/EpisodeTemplates.js +14 -0
  139. package/dist/engine/agent-api/EpisodeTemplates.js.map +1 -0
  140. package/dist/engine/agent-api/FrameEncoder.d.ts +62 -0
  141. package/dist/engine/agent-api/FrameEncoder.d.ts.map +1 -0
  142. package/dist/engine/agent-api/FrameEncoder.js +117 -0
  143. package/dist/engine/agent-api/FrameEncoder.js.map +1 -0
  144. package/dist/engine/agent-api/GameEvidence.d.ts +43 -0
  145. package/dist/engine/agent-api/GameEvidence.d.ts.map +1 -1
  146. package/dist/engine/agent-api/GameEvidence.js +30 -1
  147. package/dist/engine/agent-api/GameEvidence.js.map +1 -1
  148. package/dist/engine/agent-api/GameInspector.d.ts +65 -0
  149. package/dist/engine/agent-api/GameInspector.d.ts.map +1 -0
  150. package/dist/engine/agent-api/GameInspector.js +53 -0
  151. package/dist/engine/agent-api/GameInspector.js.map +1 -0
  152. package/dist/engine/agent-api/GameRuntime.d.ts +67 -1
  153. package/dist/engine/agent-api/GameRuntime.d.ts.map +1 -1
  154. package/dist/engine/agent-api/GameRuntime.js +191 -7
  155. package/dist/engine/agent-api/GameRuntime.js.map +1 -1
  156. package/dist/engine/agent-api/PerformanceBlender.d.ts +11 -0
  157. package/dist/engine/agent-api/PerformanceBlender.d.ts.map +1 -0
  158. package/dist/engine/agent-api/PerformanceBlender.js +29 -0
  159. package/dist/engine/agent-api/PerformanceBlender.js.map +1 -0
  160. package/dist/engine/agent-api/PerformancePoseEditor.d.ts +21 -0
  161. package/dist/engine/agent-api/PerformancePoseEditor.d.ts.map +1 -0
  162. package/dist/engine/agent-api/PerformancePoseEditor.js +23 -0
  163. package/dist/engine/agent-api/PerformancePoseEditor.js.map +1 -0
  164. package/dist/engine/agent-api/PerformanceScriptParser.d.ts +9 -0
  165. package/dist/engine/agent-api/PerformanceScriptParser.d.ts.map +1 -0
  166. package/dist/engine/agent-api/PerformanceScriptParser.js +16 -0
  167. package/dist/engine/agent-api/PerformanceScriptParser.js.map +1 -0
  168. package/dist/engine/agent-api/PublishingPipeline.d.ts +57 -0
  169. package/dist/engine/agent-api/PublishingPipeline.d.ts.map +1 -0
  170. package/dist/engine/agent-api/PublishingPipeline.js +67 -0
  171. package/dist/engine/agent-api/PublishingPipeline.js.map +1 -0
  172. package/dist/engine/agent-api/RenderProgressTracker.d.ts +49 -0
  173. package/dist/engine/agent-api/RenderProgressTracker.d.ts.map +1 -0
  174. package/dist/engine/agent-api/RenderProgressTracker.js +106 -0
  175. package/dist/engine/agent-api/RenderProgressTracker.js.map +1 -0
  176. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +50 -0
  177. package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
  178. package/dist/engine/agent-api/RuntimeNodeHandle.js +48 -0
  179. package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
  180. package/dist/engine/agent-api/SceneSequencer.d.ts +54 -0
  181. package/dist/engine/agent-api/SceneSequencer.d.ts.map +1 -0
  182. package/dist/engine/agent-api/SceneSequencer.js +64 -0
  183. package/dist/engine/agent-api/SceneSequencer.js.map +1 -0
  184. package/dist/engine/agent-api/ShotCompositionRules.d.ts +45 -0
  185. package/dist/engine/agent-api/ShotCompositionRules.d.ts.map +1 -0
  186. package/dist/engine/agent-api/ShotCompositionRules.js +54 -0
  187. package/dist/engine/agent-api/ShotCompositionRules.js.map +1 -0
  188. package/dist/engine/agent-api/ShotTransitionEngine.d.ts +46 -0
  189. package/dist/engine/agent-api/ShotTransitionEngine.d.ts.map +1 -0
  190. package/dist/engine/agent-api/ShotTransitionEngine.js +98 -0
  191. package/dist/engine/agent-api/ShotTransitionEngine.js.map +1 -0
  192. package/dist/engine/agent-api/ThumbnailGenerator.d.ts +44 -0
  193. package/dist/engine/agent-api/ThumbnailGenerator.d.ts.map +1 -0
  194. package/dist/engine/agent-api/ThumbnailGenerator.js +82 -0
  195. package/dist/engine/agent-api/ThumbnailGenerator.js.map +1 -0
  196. package/dist/engine/agent-api/VideoExportPipeline.d.ts +66 -0
  197. package/dist/engine/agent-api/VideoExportPipeline.d.ts.map +1 -0
  198. package/dist/engine/agent-api/VideoExportPipeline.js +108 -0
  199. package/dist/engine/agent-api/VideoExportPipeline.js.map +1 -0
  200. package/dist/engine/agent-api/VisemeTimelineTrack.d.ts +29 -0
  201. package/dist/engine/agent-api/VisemeTimelineTrack.d.ts.map +1 -0
  202. package/dist/engine/agent-api/VisemeTimelineTrack.js +34 -0
  203. package/dist/engine/agent-api/VisemeTimelineTrack.js.map +1 -0
  204. package/dist/engine/agent-api/WaveformVisualizer.d.ts +61 -0
  205. package/dist/engine/agent-api/WaveformVisualizer.d.ts.map +1 -0
  206. package/dist/engine/agent-api/WaveformVisualizer.js +108 -0
  207. package/dist/engine/agent-api/WaveformVisualizer.js.map +1 -0
  208. package/dist/engine/agent-api/YouTubeMetadataGenerator.d.ts +21 -0
  209. package/dist/engine/agent-api/YouTubeMetadataGenerator.d.ts.map +1 -0
  210. package/dist/engine/agent-api/YouTubeMetadataGenerator.js +51 -0
  211. package/dist/engine/agent-api/YouTubeMetadataGenerator.js.map +1 -0
  212. package/dist/engine/agent-api/game-kits/fighting.d.ts +20 -0
  213. package/dist/engine/agent-api/game-kits/fighting.d.ts.map +1 -1
  214. package/dist/engine/agent-api/game-kits/fighting.js +20 -0
  215. package/dist/engine/agent-api/game-kits/fighting.js.map +1 -1
  216. package/dist/engine/agent-api/index.d.ts +92 -3
  217. package/dist/engine/agent-api/index.d.ts.map +1 -1
  218. package/dist/engine/agent-api/index.js +116 -2
  219. package/dist/engine/agent-api/index.js.map +1 -1
  220. package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
  221. package/dist/engine/game/GameAudio.d.ts +65 -0
  222. package/dist/engine/game/GameAudio.d.ts.map +1 -0
  223. package/dist/engine/game/GameAudio.js +155 -0
  224. package/dist/engine/game/GameAudio.js.map +1 -0
  225. package/dist/engine/game/index.d.ts +3 -0
  226. package/dist/engine/game/index.d.ts.map +1 -0
  227. package/dist/engine/game/index.js +2 -0
  228. package/dist/engine/game/index.js.map +1 -0
  229. package/dist/engine/index.d.ts +2 -0
  230. package/dist/engine/index.d.ts.map +1 -1
  231. package/dist/engine/index.js +2 -0
  232. package/dist/engine/index.js.map +1 -1
  233. package/dist/engine/production-runtime/GameAppRuntime.d.ts +3 -0
  234. package/dist/engine/production-runtime/GameAppRuntime.d.ts.map +1 -0
  235. package/dist/engine/production-runtime/GameAppRuntime.js +2 -0
  236. package/dist/engine/production-runtime/GameAppRuntime.js.map +1 -0
  237. package/dist/engine/production-runtime/GameRenderPreset.d.ts +55 -0
  238. package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -0
  239. package/dist/engine/production-runtime/GameRenderPreset.js +90 -0
  240. package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -0
  241. package/dist/engine/production-runtime/index.d.ts +18 -1
  242. package/dist/engine/production-runtime/index.d.ts.map +1 -1
  243. package/dist/engine/production-runtime/index.js +35 -1
  244. package/dist/engine/production-runtime/index.js.map +1 -1
  245. package/dist/engine/runtime/AssetPreloader.d.ts +14 -0
  246. package/dist/engine/runtime/AssetPreloader.d.ts.map +1 -0
  247. package/dist/engine/runtime/AssetPreloader.js +22 -0
  248. package/dist/engine/runtime/AssetPreloader.js.map +1 -0
  249. package/dist/engine/runtime/ResourceManager.d.ts +48 -0
  250. package/dist/engine/runtime/ResourceManager.d.ts.map +1 -0
  251. package/dist/engine/runtime/ResourceManager.js +156 -0
  252. package/dist/engine/runtime/ResourceManager.js.map +1 -0
  253. package/dist/engine/runtime/index.d.ts +5 -0
  254. package/dist/engine/runtime/index.d.ts.map +1 -0
  255. package/dist/engine/runtime/index.js +3 -0
  256. package/dist/engine/runtime/index.js.map +1 -0
  257. package/dist/physics/CharacterController.d.ts +31 -0
  258. package/dist/physics/CharacterController.d.ts.map +1 -1
  259. package/dist/physics/CharacterController.js +90 -0
  260. package/dist/physics/CharacterController.js.map +1 -1
  261. package/dist/physics/CollisionVolumes.d.ts +29 -0
  262. package/dist/physics/CollisionVolumes.d.ts.map +1 -1
  263. package/dist/physics/CollisionVolumes.js +43 -0
  264. package/dist/physics/CollisionVolumes.js.map +1 -1
  265. package/dist/physics/KinematicBody.d.ts +15 -0
  266. package/dist/physics/KinematicBody.d.ts.map +1 -1
  267. package/dist/physics/KinematicBody.js +28 -0
  268. package/dist/physics/KinematicBody.js.map +1 -1
  269. package/dist/physics/KinematicWorld.js +6 -0
  270. package/dist/physics/KinematicWorld.js.map +1 -1
  271. package/dist/scripting/CartoonNodeCategories.d.ts +3 -0
  272. package/dist/scripting/CartoonNodeCategories.d.ts.map +1 -0
  273. package/dist/scripting/CartoonNodeCategories.js +9 -0
  274. package/dist/scripting/CartoonNodeCategories.js.map +1 -0
  275. package/dist/scripting/CartoonVisualNodes.d.ts +3 -0
  276. package/dist/scripting/CartoonVisualNodes.d.ts.map +1 -0
  277. package/dist/scripting/CartoonVisualNodes.js +41 -0
  278. package/dist/scripting/CartoonVisualNodes.js.map +1 -0
  279. package/dist/scripting/VisualGraphExecutor.js +46 -0
  280. package/dist/scripting/VisualGraphExecutor.js.map +1 -1
  281. package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
  282. package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
  283. package/dist/scripting/VisualNodeCatalog.js +3 -1
  284. package/dist/scripting/VisualNodeCatalog.js.map +1 -1
  285. package/dist/scripting/index.d.ts +3 -0
  286. package/dist/scripting/index.d.ts.map +1 -1
  287. package/dist/scripting/index.js +2 -0
  288. package/dist/scripting/index.js.map +1 -1
  289. package/package.json +119 -119
@@ -0,0 +1,118 @@
1
+ import { TimelineEditorController } from "./TimelineEditorController.js";
2
+ export class TimelineUI {
3
+ controller;
4
+ container;
5
+ options;
6
+ documentRef;
7
+ listeners = [];
8
+ constructor(controller, container, options = {}) {
9
+ this.controller = controller;
10
+ this.container = container;
11
+ this.options = options;
12
+ this.documentRef = options.document ?? container.ownerDocument;
13
+ }
14
+ render() {
15
+ this.dispose();
16
+ const snapshot = this.controller.snapshot();
17
+ this.container.replaceChildren();
18
+ this.container.className = this.options.className ?? "aura-timeline";
19
+ this.container.tabIndex = this.container.tabIndex >= 0 ? this.container.tabIndex : 0;
20
+ const toolbar = this.el("div", "aura-timeline__toolbar");
21
+ toolbar.append(this.button("Play", () => {
22
+ this.controller.togglePlayback();
23
+ this.render();
24
+ }), this.button("Start", () => {
25
+ this.controller.scrubTo(0);
26
+ this.render();
27
+ }), this.button("End", () => {
28
+ this.controller.scrubTo(this.controller.timeline.duration);
29
+ this.render();
30
+ }));
31
+ const ruler = this.el("div", "aura-timeline__ruler");
32
+ const durationPixels = Math.max(1, this.controller.timeline.duration * snapshot.zoomPixelsPerSecond);
33
+ ruler.style.width = `${durationPixels}px`;
34
+ ruler.append(this.marker("playhead", this.controller.timeline.currentTime));
35
+ for (let second = 0; second <= Math.ceil(this.controller.timeline.duration); second += 1) {
36
+ const tick = this.marker("tick", second);
37
+ tick.textContent = `${second}s`;
38
+ ruler.append(tick);
39
+ }
40
+ const tracks = this.el("div", "aura-timeline__tracks");
41
+ for (const track of this.controller.timeline.tracks) {
42
+ const trackSnapshot = snapshot.tracks.find((candidate) => candidate.id === track.id);
43
+ const lane = this.el("div", "aura-timeline__track");
44
+ lane.dataset.trackId = track.id;
45
+ lane.style.minHeight = `${trackSnapshot?.laneHeight ?? 32}px`;
46
+ const label = this.el("div", "aura-timeline__track-label");
47
+ label.textContent = track.name;
48
+ const clips = this.el("div", "aura-timeline__clips");
49
+ clips.style.width = `${durationPixels}px`;
50
+ for (const clip of track.clips) {
51
+ const clipEl = this.el("button", "aura-timeline__clip");
52
+ clipEl.type = "button";
53
+ clipEl.dataset.clipId = clip.id;
54
+ clipEl.textContent = clip.name;
55
+ clipEl.style.left = `${clip.startTime * snapshot.zoomPixelsPerSecond}px`;
56
+ clipEl.style.width = `${Math.max(8, clip.duration * snapshot.zoomPixelsPerSecond)}px`;
57
+ clipEl.style.background = trackSnapshot?.color ?? "#334155";
58
+ if (snapshot.selectedIds.includes(clip.id))
59
+ clipEl.dataset.selected = "true";
60
+ const click = (event) => {
61
+ this.controller.selectClip(clip.id, event.shiftKey);
62
+ this.render();
63
+ };
64
+ clipEl.addEventListener("click", click);
65
+ this.listeners.push(() => clipEl.removeEventListener("click", click));
66
+ clips.append(clipEl);
67
+ }
68
+ lane.append(label, clips);
69
+ tracks.append(lane);
70
+ }
71
+ const minimap = this.el("div", "aura-timeline__minimap");
72
+ minimap.style.setProperty("--aura-timeline-duration-px", `${durationPixels}px`);
73
+ minimap.textContent = `${snapshot.timeline.clipCount} clips`;
74
+ const keydown = (event) => {
75
+ if (this.controller.handleKeyboardShortcut(event.key)) {
76
+ event.preventDefault();
77
+ this.render();
78
+ }
79
+ };
80
+ this.container.addEventListener("keydown", keydown);
81
+ this.listeners.push(() => this.container.removeEventListener("keydown", keydown));
82
+ this.container.append(toolbar, ruler, tracks, minimap);
83
+ this.options.onRender?.(snapshot);
84
+ return {
85
+ root: this.container,
86
+ snapshot,
87
+ dispose: () => this.dispose(),
88
+ render: () => this.render()
89
+ };
90
+ }
91
+ dispose() {
92
+ for (const dispose of this.listeners.splice(0))
93
+ dispose();
94
+ }
95
+ button(label, onClick) {
96
+ const button = this.el("button", "aura-timeline__button");
97
+ button.type = "button";
98
+ button.textContent = label;
99
+ button.addEventListener("click", onClick);
100
+ this.listeners.push(() => button.removeEventListener("click", onClick));
101
+ return button;
102
+ }
103
+ marker(kind, time) {
104
+ const marker = this.el("div", `aura-timeline__${kind}`);
105
+ marker.style.left = `${time * this.controller.zoomPixelsPerSecond}px`;
106
+ marker.dataset.time = String(time);
107
+ return marker;
108
+ }
109
+ el(tagName, className) {
110
+ const element = this.documentRef.createElement(tagName);
111
+ element.className = className;
112
+ return element;
113
+ }
114
+ }
115
+ export function renderTimelineUI(controller, container, options = {}) {
116
+ return new TimelineUI(controller, container, options).render();
117
+ }
118
+ //# sourceMappingURL=TimelineUI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimelineUI.js","sourceRoot":"","sources":["../../../../packages/editor-runtime/src/TimelineUI.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  export type { Command, CommandContext } from "./Command";
2
2
  export { CommandHistory, CommandTransactionError } from "./CommandHistory";
3
+ export { AssetDropZone, readAssetFromDataTransfer, serializeAssetForDrag } from "./AssetDropZone";
4
+ export type { AssetDropPlacement, AssetDropResult, AssetDropZoneOptions, CartoonAssetCategory, CartoonEditorAssetReference } from "./AssetDropZone";
5
+ export { CartoonSceneEditor, createCartoonSceneNode } from "./CartoonSceneEditor";
6
+ export type { CartoonSceneEditorOptions, CartoonSceneEditorSnapshot, CartoonSceneNode, CartoonSceneTransform } from "./CartoonSceneEditor";
7
+ export { CurveEditor } from "./CurveEditor";
8
+ export type { TimelineCurveEvidence, TimelineCurvePoint, TimelineCurveSample } from "./CurveEditor";
3
9
  export { DiagnosticsOverlayModel } from "./DiagnosticsOverlayModel";
4
10
  export type { EditorDiagnosticsInput, EditorDiagnosticsResource, EditorDiagnosticsSnapshot } from "./DiagnosticsOverlayModel";
5
11
  export { EditorRuntime } from "./EditorRuntime";
@@ -15,6 +21,8 @@ export { HierarchyModel } from "./HierarchyModel";
15
21
  export type { HierarchyLikeNode, HierarchyNodeDescriptor } from "./HierarchyModel";
16
22
  export { InspectorModel } from "./InspectorModel";
17
23
  export type { InspectorEditableValue, InspectorProperty } from "./InspectorModel";
24
+ export { KeyframeEditor, encodeTimelineKeyframes, readTimelineKeyframes, timelineKeyframesByProperty } from "./KeyframeEditor";
25
+ export type { CreateTimelineKeyframeOptions, PasteTimelineKeyframesOptions, TimelineBezierHandle, TimelineKeyframe, TimelineKeyframeInterpolation, TimelineKeyframeValue } from "./KeyframeEditor";
18
26
  export { sampleLocalizationAccessibilityFixture } from "./LocalizationAccessibilityFixtures";
19
27
  export type { EditorAccessibilityElementSample, EditorAccessibilityRole, EditorLocalizationAccessibilityFixture, EditorLocalizedStringSample, EditorLocaleDescriptor, EditorLocaleDirection, EditorPluralCategory } from "./LocalizationAccessibilityFixtures";
20
28
  export { MaterialVariantWorkflow } from "./MaterialVariantWorkflow";
@@ -25,8 +33,12 @@ export { PlayModeBridge } from "./PlayModeBridge";
25
33
  export type { SnapshotAdapter } from "./PlayModeBridge";
26
34
  export { PrefabRegistry, validatePrefab } from "./PrefabRegistry";
27
35
  export type { CreatePrefabOptions, EditorPrefab, EditorPrefabNodeBase, EditorPrefabSchemaVersion, InstantiatePrefabOptions } from "./PrefabRegistry";
36
+ export { PropertyPanel } from "./PropertyPanel";
37
+ export type { PropertyPanelField, PropertyPanelOptions } from "./PropertyPanel";
28
38
  export { RotateGizmo } from "./RotateGizmo";
29
39
  export { ScaleGizmo } from "./ScaleGizmo";
40
+ export { SceneOutliner } from "./SceneOutliner";
41
+ export type { SceneOutlinerItem, SceneOutlinerOptions } from "./SceneOutliner";
30
42
  export { Selection } from "./Selection";
31
43
  export type { SelectionChange, SelectionId, SelectionListener } from "./Selection";
32
44
  export { createOldBranchShaderGraphFixture } from "./ShaderGraphModel";
@@ -37,8 +49,14 @@ export * from "./ProjectSerializer.js";
37
49
  export { TimelineRuntimeBridge, createTimelineRuntimeBridge } from "./TimelineRuntimeBridge";
38
50
  export type { TimelineRuntimeAnimationApplication, TimelineRuntimeBindingConfig, TimelineRuntimeBridgeConfig, TimelineRuntimeBridgeSnapshot, TimelineRuntimeSignalDispatch, TimelineRuntimeTarget, TimelineRuntimeTargetSnapshot } from "./TimelineRuntimeBridge";
39
51
  export { TranslateGizmo } from "./TranslateGizmo";
52
+ export { TimelineEditorController } from "./TimelineEditorController";
53
+ export type { TimelineEditorClipboard, TimelineEditorControllerOptions, TimelineEditorSnapshot } from "./TimelineEditorController";
40
54
  export { TimelineClip, TimelineModel, TimelineTrack } from "./TimelineModel";
41
55
  export type { TimelineActiveClipSnapshot, TimelineClipBlendMode, TimelineClipConfig, TimelineEasingName, TimelineLoopMode, TimelineModelConfig, TimelineSignalEventSnapshot, TimelineSnapshot, TimelineTrackConfig, TimelineTrackSnapshot } from "./TimelineModel";
56
+ export { TIMELINE_TRACK_TYPES, createTimelineTrackConfig, timelineTrackKindFromConfig, timelineTrackTypeDefinition } from "./TimelineTrackTypes";
57
+ export type { CreateTimelineTrackConfigOptions, TimelineEditorTrackKind, TimelineTrackTypeDefinition } from "./TimelineTrackTypes";
58
+ export { TimelineUI, renderTimelineUI } from "./TimelineUI";
59
+ export type { TimelineUIOptions, TimelineUIRenderResult } from "./TimelineUI";
42
60
  export { CreateNodeCommand } from "./commands/CreateNodeCommand";
43
61
  export type { NodeContainer } from "./commands/CreateNodeCommand";
44
62
  export { DeleteNodeCommand } from "./commands/DeleteNodeCommand";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/editor-runtime/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/editor-runtime/src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  export { CommandHistory, CommandTransactionError } from "./CommandHistory.js";
2
+ export { AssetDropZone, readAssetFromDataTransfer, serializeAssetForDrag } from "./AssetDropZone.js";
3
+ export { CartoonSceneEditor, createCartoonSceneNode } from "./CartoonSceneEditor.js";
4
+ export { CurveEditor } from "./CurveEditor.js";
2
5
  export { DiagnosticsOverlayModel } from "./DiagnosticsOverlayModel.js";
3
6
  export { EditorRuntime } from "./EditorRuntime.js";
4
7
  export { EditorStateModel, createMemoryEditorStateStorage } from "./EditorStateModel.js";
@@ -7,20 +10,26 @@ export { Gizmo } from "./Gizmo.js";
7
10
  export { DEFAULT_GIZMO_SETTINGS, normalizeGizmoSettings } from "./Gizmo.js";
8
11
  export { HierarchyModel } from "./HierarchyModel.js";
9
12
  export { InspectorModel } from "./InspectorModel.js";
13
+ export { KeyframeEditor, encodeTimelineKeyframes, readTimelineKeyframes, timelineKeyframesByProperty } from "./KeyframeEditor.js";
10
14
  export { sampleLocalizationAccessibilityFixture } from "./LocalizationAccessibilityFixtures.js";
11
15
  export { MaterialVariantWorkflow } from "./MaterialVariantWorkflow.js";
12
16
  export { PickingService } from "./PickingService.js";
13
17
  export { PlayModeBridge } from "./PlayModeBridge.js";
14
18
  export { PrefabRegistry, validatePrefab } from "./PrefabRegistry.js";
19
+ export { PropertyPanel } from "./PropertyPanel.js";
15
20
  export { RotateGizmo } from "./RotateGizmo.js";
16
21
  export { ScaleGizmo } from "./ScaleGizmo.js";
22
+ export { SceneOutliner } from "./SceneOutliner.js";
17
23
  export { Selection } from "./Selection.js";
18
24
  export { createOldBranchShaderGraphFixture } from "./ShaderGraphModel.js";
19
25
  export { createStaticExportHtml, createStaticExportRuntime } from "./StaticExportRuntime.js";
20
26
  export * from "./ProjectSerializer.js";
21
27
  export { TimelineRuntimeBridge, createTimelineRuntimeBridge } from "./TimelineRuntimeBridge.js";
22
28
  export { TranslateGizmo } from "./TranslateGizmo.js";
29
+ export { TimelineEditorController } from "./TimelineEditorController.js";
23
30
  export { TimelineClip, TimelineModel, TimelineTrack } from "./TimelineModel.js";
31
+ export { TIMELINE_TRACK_TYPES, createTimelineTrackConfig, timelineTrackKindFromConfig, timelineTrackTypeDefinition } from "./TimelineTrackTypes.js";
32
+ export { TimelineUI, renderTimelineUI } from "./TimelineUI.js";
24
33
  export { CreateNodeCommand } from "./commands/CreateNodeCommand.js";
25
34
  export { DeleteNodeCommand } from "./commands/DeleteNodeCommand.js";
26
35
  export { ReparentNodeCommand } from "./commands/ReparentNodeCommand.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/editor-runtime/src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAStD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,sCAAsC,EAAE,MAAM,qCAAqC,CAAC;AAU7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAE1F,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AAUjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAa7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/editor-runtime/src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAStD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAS/H,OAAO,EAAE,sCAAsC,EAAE,MAAM,qCAAqC,CAAC;AAU7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAE1F,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AAUjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAa7E,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEjJ,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,12 +1,32 @@
1
1
  import { Scene } from "@aura3d/scene";
2
- import { Renderer, type CameraLike, type ProductionRendererInput, type RuntimeParityFrameRenderResult, type RenderDeviceDiagnostics, type RendererAnimationLoop, type RendererFrameCaptureWithMetadata, type RendererInput, type RendererOptions, type RenderItem, type RenderSource, type ResizeToDisplayOptions, type ResizeToDisplayResult } from "@aura3d/rendering";
2
+ import { Renderer, type CameraLike, type ProductionRendererInput, type RuntimeParityFrameRenderResult, type RenderDevice, type RenderDeviceDiagnostics, type RendererAnimationLoop, type RendererFrameCaptureWithMetadata, type RendererInput, type RendererOptions, type RenderItem, type RenderSource, type ResizeToDisplayOptions, type ResizeToDisplayResult } from "@aura3d/rendering";
3
3
  import { A3DScene } from "./A3DScene.js";
4
4
  export type A3DRendererOptions = RendererOptions;
5
+ export interface A3DRendererEvidenceOptions {
6
+ readonly assetFailures?: readonly string[];
7
+ }
8
+ export interface A3DRendererEvidence {
9
+ readonly backend: RenderDevice["kind"];
10
+ readonly drawCalls: number;
11
+ readonly frameTimeMs: number;
12
+ readonly renderSize: {
13
+ readonly width: number;
14
+ readonly height: number;
15
+ };
16
+ readonly assetFailures: readonly string[];
17
+ readonly contextLost: boolean;
18
+ readonly disposed: boolean;
19
+ readonly lastError: string | null;
20
+ }
5
21
  export declare class A3DRenderer {
6
22
  readonly renderer: Renderer;
23
+ private lastDiagnostics;
24
+ private lastFrameTimeMs;
25
+ private renderSize;
26
+ private disposed;
7
27
  private constructor();
8
28
  static create(options?: A3DRendererOptions): Promise<A3DRenderer>;
9
- get device(): import("@aura3d/rendering").RenderDevice;
29
+ get device(): RenderDevice;
10
30
  resize(width: number, height: number): void;
11
31
  resizeToDisplay(options?: ResizeToDisplayOptions): ResizeToDisplayResult;
12
32
  startAnimationLoop(callback: (timeMs: number, renderer: A3DRenderer) => void): RendererAnimationLoop;
@@ -17,6 +37,8 @@ export declare class A3DRenderer {
17
37
  renderFrame(input: ProductionRendererInput): RuntimeParityFrameRenderResult;
18
38
  captureFrame(source?: A3DScene | RenderSource | Iterable<RenderItem> | Scene, camera?: CameraLike): RendererFrameCaptureWithMetadata;
19
39
  getDiagnostics(): RenderDeviceDiagnostics;
40
+ evidence(options?: A3DRendererEvidenceOptions): A3DRendererEvidence;
20
41
  dispose(): void;
42
+ private recordFrame;
21
43
  }
22
44
  //# sourceMappingURL=A3DRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"A3DRenderer.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/advanced-runtime/A3DRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EACL,QAAQ,EACR,KAAK,UAAU,EAEf,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,qBAAa,WAAW;IACF,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAA/C,OAAO;WAEM,MAAM,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAI3E,IAAI,MAAM,6CAET;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3C,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,qBAAqB;IAI5E,kBAAkB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,KAAK,IAAI,GAAG,qBAAqB;IAIpG,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,uBAAuB;IACrD,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,uBAAuB;IAWpH,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC;IACnE,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAWlI,WAAW,CAAC,KAAK,EAAE,uBAAuB,GAAG,8BAA8B;IAS3E,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,gCAAgC;IAIpI,cAAc,IAAI,uBAAuB;IAIzC,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"A3DRenderer.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/advanced-runtime/A3DRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EACL,QAAQ,EACR,KAAK,UAAU,EAEf,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,qBAAa,WAAW;IAMF,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAL/C,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO;WAIM,MAAM,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAI3E,IAAI,MAAM,iBAET;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAK3C,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,qBAAqB;IAM5E,kBAAkB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,KAAK,IAAI,GAAG,qBAAqB;IAIpG,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,uBAAuB;IACrD,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,uBAAuB;IAgBpH,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC;IACnE,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgBlI,WAAW,CAAC,KAAK,EAAE,uBAAuB,GAAG,8BAA8B;IAS3E,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,gCAAgC;IAQpI,cAAc,IAAI,uBAAuB;IAIzC,QAAQ,CAAC,OAAO,GAAE,0BAA+B,GAAG,mBAAmB;IAgBvE,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,WAAW;CAIpB"}
@@ -3,41 +3,61 @@ import { Renderer } from "../../rendering/index.js";
3
3
  import { A3DScene } from "./A3DScene.js";
4
4
  export class A3DRenderer {
5
5
  renderer;
6
- constructor(renderer) {
6
+ lastDiagnostics = null;
7
+ lastFrameTimeMs = 0;
8
+ renderSize;
9
+ disposed = false;
10
+ constructor(renderer, initialSize) {
7
11
  this.renderer = renderer;
12
+ this.renderSize = initialSize;
8
13
  }
9
14
  static async create(options = {}) {
10
- return new A3DRenderer(await Renderer.create(options));
15
+ return new A3DRenderer(await Renderer.create(options), initialRenderSize(options));
11
16
  }
12
17
  get device() {
13
18
  return this.renderer.device;
14
19
  }
15
20
  resize(width, height) {
16
21
  this.renderer.resize(width, height);
22
+ this.renderSize = { width, height };
17
23
  }
18
24
  resizeToDisplay(options = {}) {
19
- return this.renderer.resizeToDisplay(options);
25
+ const result = this.renderer.resizeToDisplay(options);
26
+ this.renderSize = { width: result.width, height: result.height };
27
+ return result;
20
28
  }
21
29
  startAnimationLoop(callback) {
22
30
  return this.renderer.startAnimationLoop((timeMs) => callback(timeMs, this));
23
31
  }
24
32
  render(sourceOrInput, camera) {
33
+ const start = nowMs();
34
+ let diagnostics;
25
35
  if (isRendererInput(sourceOrInput)) {
26
- return this.renderer.render({
36
+ diagnostics = this.renderer.render({
27
37
  ...sourceOrInput,
28
38
  source: normalizeSource(sourceOrInput.source)
29
39
  });
30
40
  }
31
- return this.renderer.render(normalizeSource(sourceOrInput), camera);
41
+ else {
42
+ diagnostics = this.renderer.render(normalizeSource(sourceOrInput), camera);
43
+ }
44
+ this.recordFrame(diagnostics, nowMs() - start);
45
+ return diagnostics;
32
46
  }
33
- renderAsync(sourceOrInput, camera) {
47
+ async renderAsync(sourceOrInput, camera) {
48
+ const start = nowMs();
49
+ let diagnostics;
34
50
  if (isRendererInput(sourceOrInput)) {
35
- return this.renderer.renderAsync({
51
+ diagnostics = await this.renderer.renderAsync({
36
52
  ...sourceOrInput,
37
53
  source: normalizeSource(sourceOrInput.source)
38
54
  });
39
55
  }
40
- return this.renderer.renderAsync(normalizeSource(sourceOrInput), camera);
56
+ else {
57
+ diagnostics = await this.renderer.renderAsync(normalizeSource(sourceOrInput), camera);
58
+ }
59
+ this.recordFrame(diagnostics, nowMs() - start);
60
+ return diagnostics;
41
61
  }
42
62
  renderFrame(input) {
43
63
  const diagnostics = this.render({ source: input.source, camera: input.camera });
@@ -48,13 +68,38 @@ export class A3DRenderer {
48
68
  };
49
69
  }
50
70
  captureFrame(source, camera) {
51
- return this.renderer.captureFrame(source ? normalizeSource(source) : undefined, camera);
71
+ const start = nowMs();
72
+ const frame = this.renderer.captureFrame(source ? normalizeSource(source) : undefined, camera);
73
+ this.renderSize = { width: frame.width, height: frame.height };
74
+ this.recordFrame(frame.diagnostics, nowMs() - start);
75
+ return frame;
52
76
  }
53
77
  getDiagnostics() {
54
78
  return this.renderer.getDiagnostics();
55
79
  }
80
+ evidence(options = {}) {
81
+ const diagnostics = this.disposed
82
+ ? this.lastDiagnostics ?? this.renderer.getDiagnostics()
83
+ : this.renderer.getDiagnostics();
84
+ return {
85
+ backend: this.device.kind,
86
+ drawCalls: diagnostics.drawCalls,
87
+ frameTimeMs: this.lastFrameTimeMs,
88
+ renderSize: { ...this.renderSize },
89
+ assetFailures: [...(options.assetFailures ?? [])],
90
+ contextLost: diagnostics.contextLost || this.device.contextLost,
91
+ disposed: this.disposed || this.device.disposed,
92
+ lastError: diagnostics.lastError
93
+ };
94
+ }
56
95
  dispose() {
96
+ this.lastDiagnostics = this.renderer.getDiagnostics();
57
97
  this.renderer.dispose();
98
+ this.disposed = true;
99
+ }
100
+ recordFrame(diagnostics, frameTimeMs) {
101
+ this.lastDiagnostics = diagnostics;
102
+ this.lastFrameTimeMs = roundFrameTime(frameTimeMs);
58
103
  }
59
104
  }
60
105
  function normalizeSource(source) {
@@ -63,6 +108,22 @@ function normalizeSource(source) {
63
108
  function isRendererInput(value) {
64
109
  return typeof value === "object" && value !== null && "source" in value;
65
110
  }
111
+ function initialRenderSize(options) {
112
+ return {
113
+ width: options.width ?? canvasDimension(options.canvas, "width"),
114
+ height: options.height ?? canvasDimension(options.canvas, "height")
115
+ };
116
+ }
117
+ function canvasDimension(canvas, axis) {
118
+ const value = canvas?.[axis];
119
+ return typeof value === "number" && Number.isFinite(value) && value > 0 ? Math.round(value) : 1;
120
+ }
121
+ function nowMs() {
122
+ return globalThis.performance?.now?.() ?? Date.now();
123
+ }
124
+ function roundFrameTime(value) {
125
+ return Number(value.toFixed(3));
126
+ }
66
127
  function createPublicFrameFeatures(diagnostics, input) {
67
128
  return [
68
129
  {
@@ -1 +1 @@
1
- {"version":3,"file":"A3DRenderer.js","sourceRoot":"","sources":["../../../../../packages/engine/src/advanced-runtime/A3DRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A3DRenderer.js","sourceRoot":"","sources":["../../../../../packages/engine/src/advanced-runtime/A3DRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { CartoonAssetManifest, CartoonAssetManifestEntry, CartoonAssetManifestKind } from "./CartoonAssetManifest.js";
2
+ export interface AssetLibraryBrowserFilter {
3
+ readonly kind?: CartoonAssetManifestKind;
4
+ readonly style?: string;
5
+ readonly license?: string;
6
+ readonly lipSyncReady?: boolean;
7
+ }
8
+ export interface AssetLibraryBrowserSnapshot {
9
+ readonly kind: "asset-library-browser";
10
+ readonly total: number;
11
+ readonly visible: number;
12
+ readonly selectedId?: string;
13
+ readonly assets: readonly CartoonAssetManifestEntry[];
14
+ }
15
+ export interface AssetLibraryAssetDetail {
16
+ readonly kind: "asset-library-detail";
17
+ readonly asset: CartoonAssetManifestEntry;
18
+ readonly animationPreview: {
19
+ readonly clips: readonly string[];
20
+ readonly previewable: boolean;
21
+ };
22
+ readonly materialPreview: {
23
+ readonly materialCount: number;
24
+ readonly swatches: readonly string[];
25
+ readonly celShadingReady: boolean;
26
+ };
27
+ readonly metadata: Readonly<Record<string, string | number | boolean | readonly string[]>>;
28
+ }
29
+ export declare class AssetLibraryBrowser {
30
+ private readonly manifest;
31
+ private filter;
32
+ private selectedId?;
33
+ constructor(manifest: CartoonAssetManifest);
34
+ setFilter(filter: AssetLibraryBrowserFilter): AssetLibraryBrowserSnapshot;
35
+ select(id: string): AssetLibraryBrowserSnapshot;
36
+ detail(id?: string): AssetLibraryAssetDetail;
37
+ snapshot(): AssetLibraryBrowserSnapshot;
38
+ }
39
+ //# sourceMappingURL=AssetLibraryBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetLibraryBrowser.d.ts","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/AssetLibraryBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE3H,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,wBAAwB,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE;QACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE;QACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;QACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;KACnC,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CAC5F;AAED,qBAAa,mBAAmB;IAIlB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEC,QAAQ,EAAE,oBAAoB;IAE3D,SAAS,CAAC,MAAM,EAAE,yBAAyB,GAAG,2BAA2B;IAKzE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,2BAA2B;IAM/C,MAAM,CAAC,EAAE,GAAE,MAA8B,GAAG,uBAAuB;IA4BnE,QAAQ,IAAI,2BAA2B;CAexC"}
@@ -0,0 +1,60 @@
1
+ export class AssetLibraryBrowser {
2
+ manifest;
3
+ filter = {};
4
+ selectedId;
5
+ constructor(manifest) {
6
+ this.manifest = manifest;
7
+ }
8
+ setFilter(filter) {
9
+ this.filter = filter;
10
+ return this.snapshot();
11
+ }
12
+ select(id) {
13
+ if (!this.manifest.entries.some((entry) => entry.id === id))
14
+ throw new Error(`Unknown cartoon asset: ${id}`);
15
+ this.selectedId = id;
16
+ return this.snapshot();
17
+ }
18
+ detail(id = this.selectedId ?? "") {
19
+ const asset = this.manifest.entries.find((entry) => entry.id === id);
20
+ if (!asset)
21
+ throw new Error(`Unknown cartoon asset: ${id}`);
22
+ const clips = asset.preview?.animationPreviewClips ?? asset.animationClips ?? [];
23
+ return {
24
+ kind: "asset-library-detail",
25
+ asset,
26
+ animationPreview: {
27
+ clips,
28
+ previewable: clips.length > 0
29
+ },
30
+ materialPreview: {
31
+ materialCount: asset.materialPreview?.materialCount ?? 0,
32
+ swatches: asset.materialPreview?.swatches ?? [],
33
+ celShadingReady: asset.materialPreview?.celShadingReady ?? asset.style.toLowerCase().includes("cartoon")
34
+ },
35
+ metadata: {
36
+ ...(asset.sourcePage ? { sourcePage: asset.sourcePage } : {}),
37
+ ...(asset.attribution ? { attribution: asset.attribution } : {}),
38
+ license: asset.license,
39
+ assetId: asset.assetId,
40
+ style: asset.style,
41
+ ...(asset.lipSyncReady !== undefined ? { lipSyncReady: asset.lipSyncReady } : {}),
42
+ ...(asset.metadata ?? {})
43
+ }
44
+ };
45
+ }
46
+ snapshot() {
47
+ const assets = this.manifest.entries.filter((entry) => (!this.filter.kind || entry.kind === this.filter.kind)
48
+ && (!this.filter.style || entry.style.toLowerCase().includes(this.filter.style.toLowerCase()))
49
+ && (!this.filter.license || entry.license === this.filter.license)
50
+ && (this.filter.lipSyncReady === undefined || entry.lipSyncReady === this.filter.lipSyncReady));
51
+ return {
52
+ kind: "asset-library-browser",
53
+ total: this.manifest.entries.length,
54
+ visible: assets.length,
55
+ selectedId: this.selectedId,
56
+ assets
57
+ };
58
+ }
59
+ }
60
+ //# sourceMappingURL=AssetLibraryBrowser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetLibraryBrowser.js","sourceRoot":"","sources":["../../../../../packages/engine/src/agent-api/AssetLibraryBrowser.ts"],"names":[],"mappings":"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"}