@volter/cyclotron 0.5.212 → 0.5.213

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 (598) hide show
  1. package/BUNDLED_NOTICES +375 -2995
  2. package/README.md +9 -5
  3. package/dist/.vite/manifest.json +529 -1764
  4. package/dist/assets/AudioViewer-B5pkIGXS.js +1 -0
  5. package/dist/assets/ImageViewer-BPVLEEQ2.js +1 -0
  6. package/dist/assets/JsonAssetDocument-DuVW9del.js +2 -0
  7. package/dist/assets/ProjectAuthoringBootstrap-CZJz4Svb.js +2 -0
  8. package/dist/assets/SourceAssetViewer-LwHBW53R.js +1 -0
  9. package/dist/assets/VideoViewer-Bfjjp4zH.js +1 -0
  10. package/dist/assets/{client-Dj2xr2fw.js → client-BLXKEWrR.js} +1 -1
  11. package/dist/assets/{index-Bc73pJIv.js → index-BKjLHm6K.js} +131 -131
  12. package/dist/assets/index-CJcVFJ-l.css +1 -0
  13. package/dist/assets/product-CaIfLQVS.js +1 -0
  14. package/dist/assets/story-capture-C3xmgE62.js +1 -0
  15. package/dist/assets/volter-sdk-DT0xmh2J.js +1407 -0
  16. package/dist/assets/volter-sdk-activation-events-B-WERmWU.js +1 -0
  17. package/dist/assets/volter-sdk-active-project-DvEsy8Q6.js +1 -0
  18. package/dist/assets/volter-sdk-adapter-editor-config-CQ5V6W-o.js +1 -0
  19. package/dist/assets/volter-sdk-animation-animation-clock-Cy7j_2qF.js +1 -0
  20. package/dist/assets/volter-sdk-animation-stage-transport-DoUDq6Gb.js +1 -0
  21. package/dist/assets/volter-sdk-api-base-Dr1bx5e0.js +1 -0
  22. package/dist/assets/volter-sdk-api-project-open-D4nPvIPU.js +1 -0
  23. package/dist/assets/volter-sdk-api-project-source-DoO7WBwQ.js +1 -0
  24. package/dist/assets/volter-sdk-api-settings-BEHgO5wf.js +1 -0
  25. package/dist/assets/volter-sdk-asset-capabilities-CGkNwaAe.js +1 -0
  26. package/dist/assets/volter-sdk-asset-document-write-policy-CzWM1HhK.js +1 -0
  27. package/dist/assets/volter-sdk-asset-editor-context-BkSK1vL1.js +1 -0
  28. package/dist/assets/volter-sdk-asset-thumbnails-zSmJgI_x.js +1 -0
  29. package/dist/assets/volter-sdk-asset-viewers-B-ICvlkR.js +1 -0
  30. package/dist/assets/volter-sdk-asset-workflow-project-content-C6Ow0R-F.js +1 -0
  31. package/dist/assets/volter-sdk-authoring-active-adapter-CKuWwxgH.js +1 -0
  32. package/dist/assets/volter-sdk-authoring-boundary-authoring-adapter-DTwFKBkS.js +1 -0
  33. package/dist/assets/volter-sdk-authoring-composite-authoring-adapter-iRSbSHpV.js +1 -0
  34. package/dist/assets/volter-sdk-authoring-consumer-actions-DK9-B-wg.js +1 -0
  35. package/dist/assets/volter-sdk-authoring-design-time-mount-registry-BQnWcBVe.js +1 -0
  36. package/dist/assets/volter-sdk-authoring-design-time-roots-BKSmkD7_.js +1 -0
  37. package/dist/assets/volter-sdk-authoring-layered-pick-C-YvuxEG.js +1 -0
  38. package/dist/assets/volter-sdk-authoring-no-authoring-adapter-Cv9DD6G0.js +1 -0
  39. package/dist/assets/volter-sdk-authoring-panel-authoring-BLOrFs8L.js +1 -0
  40. package/dist/assets/volter-sdk-authoring-react-design-canvas-style-Dr9i31o5.js +1 -0
  41. package/dist/assets/{volter-sdk-authoring-react-story-board-aeiEUlbU.js → volter-sdk-authoring-react-story-board-BlCQQM-8.js} +1 -1
  42. package/dist/assets/volter-sdk-authoring-seam-evidence-CjetY_ZG.js +1 -0
  43. package/dist/assets/volter-sdk-authoring-selection-scope-BxmbC71H.js +1 -0
  44. package/dist/assets/volter-sdk-authoring-shell-document-ops-DDb8oGx9.js +1 -0
  45. package/dist/assets/volter-sdk-authoring-stage-root-B50LLhnJ.js +1 -0
  46. package/dist/assets/volter-sdk-authoring-story-board-chrome-fit-BVV9fbcw.js +1 -0
  47. package/dist/assets/{volter-sdk-authoring-viewport-tool-context-DzsD6JQH.js → volter-sdk-authoring-viewport-tool-context-cQafPSkT.js} +1 -1
  48. package/dist/assets/volter-sdk-authoring-viewport-tool-owner-BppqL4f_.js +1 -0
  49. package/dist/assets/volter-sdk-authoring-world-session-state-BlpdiKod.js +1 -0
  50. package/dist/assets/volter-sdk-bitmap-label-BbtGPWgP.js +1 -0
  51. package/dist/assets/{volter-sdk-breakpoint-state-BPnDN_XU.js → volter-sdk-breakpoint-state-DCFuSvgm.js} +1 -1
  52. package/dist/assets/volter-sdk-bytes-codec-CrNeVT4e.js +1 -0
  53. package/dist/assets/volter-sdk-cancellation-reason-ByOH3mlF.js +1 -0
  54. package/dist/assets/volter-sdk-canvas-frames-BU8Rqr4J.js +1 -0
  55. package/dist/assets/volter-sdk-capture-size-D4cNT2XC.js +1 -0
  56. package/dist/assets/volter-sdk-chrome-registry-qHUiDauw.js +1 -0
  57. package/dist/assets/volter-sdk-command-result-text-2wzEhQ5t.js +1 -0
  58. package/dist/assets/volter-sdk-commands-C4RgHEOa.js +1 -0
  59. package/dist/assets/volter-sdk-component-board-registry-6gFZBkTP.js +1 -0
  60. package/dist/assets/volter-sdk-components-AssetEditorShell-CQVLedvW.js +1 -0
  61. package/dist/assets/volter-sdk-components-InspectorCanvasPreview-CN5ROhNT.js +1 -0
  62. package/dist/assets/volter-sdk-components-SurfaceStateOverlay-Cc9Ov1Ol.js +1 -0
  63. package/dist/assets/{volter-sdk-components-AssetEditorShell-BJL1am3b.js → volter-sdk-components-Toolbar-ZoV9Yq_A.js} +1 -1
  64. package/dist/assets/volter-sdk-components-TransientHint-BML2V3uu.js +1 -0
  65. package/dist/assets/volter-sdk-components-inspector-preview-section-BhDjhUyz.js +1 -0
  66. package/dist/assets/volter-sdk-components-use-after-paint-BVSO4qjV.js +1 -0
  67. package/dist/assets/volter-sdk-components-workspace-history-CThvGfsY.js +1 -0
  68. package/dist/assets/volter-sdk-content-entry-source-registry-CJLVq3tC.js +1 -0
  69. package/dist/assets/volter-sdk-contribution-surfaces-CeEDmriM.js +1 -0
  70. package/dist/assets/volter-sdk-contributions-x6j41XZp.js +1 -0
  71. package/dist/assets/volter-sdk-coverage-design-time-surfaces-D-tNGazo.js +1 -0
  72. package/dist/assets/volter-sdk-creation-site-registry-64gyrZPD.js +1 -0
  73. package/dist/assets/volter-sdk-css-numeric-style-CXeWqAoG.js +1 -0
  74. package/dist/assets/volter-sdk-declared-tools-BAzHxyUW.js +1 -0
  75. package/dist/assets/{volter-sdk-document-areas-x47hqeuC.js → volter-sdk-document-areas-4DXjy0el.js} +1 -1
  76. package/dist/assets/volter-sdk-document-layer-B4VYMPZ9.js +1 -0
  77. package/dist/assets/volter-sdk-document-open-registry-BLDMaEoN.js +1 -0
  78. package/dist/assets/volter-sdk-document-play-extension-Dv3fyS6K.js +1 -0
  79. package/dist/assets/volter-sdk-document-probe-drBhAyza.js +1 -0
  80. package/dist/assets/volter-sdk-document-stage-sessions-CtI9anAf.js +1 -0
  81. package/dist/assets/volter-sdk-document-viewports-BO0N7VyN.js +1 -0
  82. package/dist/assets/volter-sdk-editor-commands-BJ9Otxzu.js +1 -0
  83. package/dist/assets/volter-sdk-editor-console-BaGgfWmH.js +1 -0
  84. package/dist/assets/volter-sdk-editor-document-probe-D0ZhaXHx.js +1 -0
  85. package/dist/assets/volter-sdk-editor-mode-B07FDozS.js +1 -0
  86. package/dist/assets/volter-sdk-editor-runtime-D00Du7hG.js +1 -0
  87. package/dist/assets/volter-sdk-editor-server-response-C6kOPAsW.js +1 -0
  88. package/dist/assets/volter-sdk-editor-session-attribution-CggpIFb4.js +1 -0
  89. package/dist/assets/volter-sdk-editor-view-DEMsxlaT.js +1 -0
  90. package/dist/assets/volter-sdk-environment-images-OQtFG1kA.js +1 -0
  91. package/dist/assets/volter-sdk-extension-script-DanTHcyo.js +1 -0
  92. package/dist/assets/volter-sdk-eyedropper-session-BfVXtjzc.js +1 -0
  93. package/dist/assets/volter-sdk-files-file-provider-CXL6oCMd.js +1 -0
  94. package/dist/assets/volter-sdk-files-project-files-SBAE37py.js +1 -0
  95. package/dist/assets/volter-sdk-framed-document-capture-7TnE8pn1.js +1 -0
  96. package/dist/assets/volter-sdk-framed-document-driver-C0K3-SRt.js +1 -0
  97. package/dist/assets/volter-sdk-hierarchy-component-marks-BmJEMvvO.js +1 -0
  98. package/dist/assets/volter-sdk-hierarchy-kind-icon-CrwdpecY.js +1 -0
  99. package/dist/assets/{volter-sdk-hierarchy-node-rows-CNCdvWZM.js → volter-sdk-hierarchy-node-rows-FcK7_ULi.js} +1 -1
  100. package/dist/assets/{volter-sdk-hierarchy-projection-BXet4MmW.js → volter-sdk-hierarchy-projection-CKzUOZUa.js} +1 -1
  101. package/dist/assets/volter-sdk-hierarchy-row-media-Czg40Ddi.js +1 -0
  102. package/dist/assets/volter-sdk-hierarchy-row-model-BGzmcywF.js +1 -0
  103. package/dist/assets/volter-sdk-hierarchy-rows-VAI0psTR.js +1 -0
  104. package/dist/assets/volter-sdk-hierarchy-walk-CaVqG7v2.js +1 -0
  105. package/dist/assets/volter-sdk-history-history-delegate-DH_xBvdh.js +1 -0
  106. package/dist/assets/volter-sdk-history-history-service-D0n0Gl5Z.js +1 -0
  107. package/dist/assets/volter-sdk-history-persistence-coordinator-CcywAFdm.js +1 -0
  108. package/dist/assets/volter-sdk-history-resource-registry-DMTlnwGv.js +1 -0
  109. package/dist/assets/volter-sdk-history-snapshot-store-BVh1DtBp.js +1 -0
  110. package/dist/assets/volter-sdk-history-source-history-backend-ulJ-65tX.js +1 -0
  111. package/dist/assets/volter-sdk-hmr-registration-group-DvMQVKyO.js +1 -0
  112. package/dist/assets/volter-sdk-hmr-stable-react-context-BMVr5YVk.js +1 -0
  113. package/dist/assets/volter-sdk-host-D765Py2w.js +1 -0
  114. package/dist/assets/{volter-sdk-hotkeys-D8xO5kx0.js → volter-sdk-hotkeys-TesTKdAZ.js} +1 -1
  115. package/dist/assets/{volter-sdk-index-CTFkHN4C.js → volter-sdk-index-BABXozHr.js} +1 -1
  116. package/dist/assets/volter-sdk-inference-diagnostics-CsDbQ0M5.js +1 -0
  117. package/dist/assets/volter-sdk-inspection-document-subject-BMRD77Va.js +1 -0
  118. package/dist/assets/volter-sdk-inspection-group-icons-Wpz-YhkE.js +1 -0
  119. package/dist/assets/volter-sdk-inspection-model-BVOyStdc.js +1 -0
  120. package/dist/assets/volter-sdk-inspection-node-media-B8AL8_3F.js +1 -0
  121. package/dist/assets/volter-sdk-inspection-null-subject-d5bQZCbS.js +1 -0
  122. package/dist/assets/volter-sdk-inspector-property-grouping-BqrZkwo4.js +1 -0
  123. package/dist/assets/volter-sdk-inspector-section-registry-C6U15zvC.js +1 -0
  124. package/dist/assets/volter-sdk-js-heap-CcOnY0kf.js +1 -0
  125. package/dist/assets/{volter-sdk-keymap-presets-Vq8J3DoG.js → volter-sdk-keymap-presets-CSM-jVcZ.js} +1 -1
  126. package/dist/assets/volter-sdk-layout-arrangements-DHA3uifx.js +1 -0
  127. package/dist/assets/volter-sdk-layouts-4v9ECCn9.js +1 -0
  128. package/dist/assets/volter-sdk-light-explorer-model-CPuZjpiR.js +1 -0
  129. package/dist/assets/volter-sdk-live-seam-evidence-B_RyDaOp.js +1 -0
  130. package/dist/assets/volter-sdk-live-session-registry-C6gHroaH.js +1 -0
  131. package/dist/assets/{volter-sdk-manifest-project-DIThdJ0z.js → volter-sdk-manifest-project-CVVUDDuL.js} +1 -1
  132. package/dist/assets/volter-sdk-mount-css-scope-DaJoEo3v.js +1 -0
  133. package/dist/assets/volter-sdk-mount-failure-report-Cm92oiGJ.js +1 -0
  134. package/dist/assets/volter-sdk-native-selection-style-Bp4IBnA4.js +1 -0
  135. package/dist/assets/volter-sdk-photograph-notice-C6_gZGpW.js +1 -0
  136. package/dist/assets/volter-sdk-play-camera-flight-SwlYhOxW.js +1 -0
  137. package/dist/assets/volter-sdk-product-command-G8kKVJ-i.js +1 -0
  138. package/dist/assets/volter-sdk-progress-4GGmPvZn.js +1 -0
  139. package/dist/assets/volter-sdk-project-module-changes-DIrDIHeD.js +1 -0
  140. package/dist/assets/volter-sdk-project-module-url-BuAUWpus.js +1 -0
  141. package/dist/assets/volter-sdk-project-output-roots-BON7FOwQ.js +1 -0
  142. package/dist/assets/{volter-sdk-project-tab-census-Cos8L4lu.js → volter-sdk-project-tab-census-CO06UOh-.js} +1 -1
  143. package/dist/assets/volter-sdk-renderer-resource-counts-2kLiD8_S.js +1 -0
  144. package/dist/assets/volter-sdk-scoped-project-css-DA63CYkM.js +1 -0
  145. package/dist/assets/volter-sdk-selection-CSUq7EiY.js +1 -0
  146. package/dist/assets/volter-sdk-served-url-B_MypeId.js +1 -0
  147. package/dist/assets/volter-sdk-settings-settings-provider-CJuWxTB5.js +1 -0
  148. package/dist/assets/volter-sdk-settings-store-CEFKDj0h.js +1 -0
  149. package/dist/assets/volter-sdk-shell-store-Cl4sX9p4.js +1 -0
  150. package/dist/assets/volter-sdk-shell-store-door-DGjybg0J.js +1 -0
  151. package/dist/assets/volter-sdk-source-conflict-CV8Gk053.js +1 -0
  152. package/dist/assets/volter-sdk-stage-context-Cb0SaYhi.js +1 -0
  153. package/dist/assets/volter-sdk-stage-invalidation-VlBciYA0.js +1 -0
  154. package/dist/assets/volter-sdk-stage-store-registry-BpIy_QKq.js +1 -0
  155. package/dist/assets/{volter-sdk-startup-failure-CtJyTS-2.js → volter-sdk-startup-failure-C_8H4xuP.js} +1 -1
  156. package/dist/assets/{volter-sdk-stories-StoryPreviewMount-DjhZUmf-.js → volter-sdk-stories-StoryPreviewMount-BUX42gIR.js} +1 -1
  157. package/dist/assets/volter-sdk-stories-compose-project-stories-CkSd4Si5.js +1 -0
  158. package/dist/assets/volter-sdk-stories-scope-Dndn7MD8.js +1 -0
  159. package/dist/assets/volter-sdk-stories-story-declared-medium-Byi4XWeJ.js +1 -0
  160. package/dist/assets/volter-sdk-stories-story-dom-runtime-BS1VPvJ6.js +1 -0
  161. package/dist/assets/volter-sdk-stories-story-grouping-CpNh4cUf.js +1 -0
  162. package/dist/assets/{volter-sdk-story-document-openers-Df7Tcu2n.js → volter-sdk-story-document-openers-Ba5jQqay.js} +1 -1
  163. package/dist/assets/volter-sdk-surface-state-BhQ45ars.js +1 -0
  164. package/dist/assets/volter-sdk-tab-census-D0r0s37y.js +1 -0
  165. package/dist/assets/volter-sdk-tool-contribution-convention-JCXL6f2w.js +1 -0
  166. package/dist/assets/volter-sdk-transform-mode-request-Cwk_Kyty.js +1 -0
  167. package/dist/assets/volter-sdk-transient-hint-BOfFzAV8.js +1 -0
  168. package/dist/assets/{volter-sdk-types-BOfYN_tN.js → volter-sdk-types-CkT8l5N_.js} +1 -1
  169. package/dist/assets/volter-sdk-ui-source-file-region-resolver-Cfza3eEl.js +1 -0
  170. package/dist/assets/{volter-sdk-ui-source-inspect-gofMOHNR.js → volter-sdk-ui-source-inspect-CEjmAN75.js} +1 -1
  171. package/dist/assets/{volter-sdk-ui-source-source-write-backend-BgVis1yZ.js → volter-sdk-ui-source-source-write-backend-0njgRdI6.js} +1 -1
  172. package/dist/assets/volter-sdk-ui-source-tier-source-write-backend-CpsxorYU.js +1 -0
  173. package/dist/assets/volter-sdk-viewport-activation-timings-B3hRTu3A.js +1 -0
  174. package/dist/assets/volter-sdk-viewport-editor-controls-DDBd-VqO.js +1 -0
  175. package/dist/assets/volter-sdk-viewport-presentation-DRhiAH1h.js +1 -0
  176. package/dist/assets/volter-sdk-volter-contributions-nlGXjgJZ.js +1 -0
  177. package/dist/assets/volter-sdk-wait-until-CMvYQmO8.js +1 -0
  178. package/dist/assets/volter-sdk-widgets-design-system-BJOyO8sO.js +1 -0
  179. package/dist/assets/volter-sdk-widgets-editor-appearance-eVtkxsIm.js +1 -0
  180. package/dist/assets/volter-sdk-widgets-editor-material-BoQP_5SK.js +1 -0
  181. package/dist/assets/volter-sdk-widgets-icon-set-registry-CP0D74kc.js +1 -0
  182. package/dist/assets/volter-sdk-widgets-index-De34FpYu.js +1 -0
  183. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-_GjMjIGb.js +1 -0
  184. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-B7vN7BEd.js +1 -0
  185. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-E2J8cpyT.js +1 -0
  186. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-D6TERGKs.js +1 -0
  187. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-CXR8n-CA.js +1 -0
  188. package/dist/assets/{volter-sdk-widgets-inspector-widgets-FilterEditor-DKkdim3n.js → volter-sdk-widgets-inspector-widgets-FilterEditor-CDvfWY4Q.js} +1 -1
  189. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BgpW8FW8.js +1 -0
  190. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DOOBkXjY.js +1 -0
  191. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-1NXWR_gB.js +1 -0
  192. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-Cd2-HwFn.js +1 -0
  193. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-C4HuSjFu.js +1 -0
  194. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-DUU2CCtc.js +1 -0
  195. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-D5kwrOUQ.js +1 -0
  196. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CkFN2SUn.js +1 -0
  197. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-DynpKMMZ.js +1 -0
  198. package/dist/assets/{volter-sdk-widgets-palette-colors-Byzw9YHf.js → volter-sdk-widgets-palette-colors-DhL1I42R.js} +1 -1
  199. package/dist/assets/volter-sdk-widgets-patterns-Dialog-EUtcZi0Y.js +1 -0
  200. package/dist/assets/volter-sdk-widgets-patterns-Fields-Bl_eaBej.js +1 -0
  201. package/dist/assets/volter-sdk-widgets-patterns-List--NE_1N5-.js +1 -0
  202. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-BHXpv7qi.js +1 -0
  203. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BdKa5HGV.js +1 -0
  204. package/dist/assets/volter-sdk-widgets-patterns-Tabs-sFV7f1UP.js +1 -0
  205. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CIr5Cs49.js +1 -0
  206. package/dist/assets/volter-sdk-widgets-patterns-Tree-C2YHfddf.js +1 -0
  207. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-DCclspnW.js +1 -0
  208. package/dist/assets/volter-sdk-widgets-primitives-Button-B0YxR4ea.js +1 -0
  209. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-B1_SLTuc.js +1 -0
  210. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-CpHzPdt8.js +1 -0
  211. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Dw4knhya.js +1 -0
  212. package/dist/assets/volter-sdk-widgets-primitives-FormControls-BAbRanmE.js +1 -0
  213. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-Cj7jKNd4.js +1 -0
  214. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-C0DCI5bE.js +1 -0
  215. package/dist/assets/volter-sdk-widgets-primitives-Layout-gT4Z6mtt.js +1 -0
  216. package/dist/assets/volter-sdk-widgets-primitives-Menu-9EESAp9m.js +1 -0
  217. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Dk-5zqJ8.js +1 -0
  218. package/dist/assets/volter-sdk-widgets-primitives-Panel-BQWJF-Pb.js +1 -0
  219. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-DXvmafCK.js +1 -0
  220. package/dist/assets/volter-sdk-widgets-primitives-Text-yBrdWK2w.js +1 -0
  221. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-CRhefpUL.js +1 -0
  222. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D5Kcb-ZC.js +1 -0
  223. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DiG6PEIe.js +1 -0
  224. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DhnSxXVK.js +1 -0
  225. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-e65mgyAk.js +1 -0
  226. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BVL0mN8g.js +1 -0
  227. package/dist/assets/volter-sdk-widgets-theme-C-_RU9Ov.js +1 -0
  228. package/dist/assets/volter-sdk-widgets-z-index-CrJJXeKL.js +1 -0
  229. package/dist/assets/volter-sdk-worker-call-metrics-BTfmngck.js +1 -0
  230. package/dist/assets/{volter-sdk-workspace-core-utilities-BaAh2Ei8.js → volter-sdk-workspace-core-utilities-DtHGK9PF.js} +1 -1
  231. package/dist/assets/volter-sdk-workspace-document-ids-COULA7c6.js +1 -0
  232. package/dist/assets/volter-sdk-workspace-document-registry-6m5csVP7.js +1 -0
  233. package/dist/assets/volter-sdk-workspace-document-restore-M8ifJMou.js +1 -0
  234. package/dist/assets/{volter-sdk-workspace-host-commands-72RdJeW4.js → volter-sdk-workspace-host-commands-8Qzej--P.js} +1 -1
  235. package/dist/assets/volter-sdk-workspace-static-panels-Ckk7qUuS.js +1 -0
  236. package/dist/assets/volter-sdk-workspace-status-registry-BdU0dZAt.js +1 -0
  237. package/dist/assets/volter-sdk-workspace-utility-registry-BHxymD2l.js +1 -0
  238. package/dist/assets/volter-sdk-world-canvas-viewport-state-CHO8s9gE.js +1 -0
  239. package/dist/assets/volter-sdk-world-pan-state-C-9xgzAh.js +1 -0
  240. package/dist/assets/volter-sdk-write-pipe-CJHg7J4i.js +1 -0
  241. package/dist/assets/{volter-shared-fontawesome-B-OhfZs4.js → volter-shared-fontawesome-BEv9WEZj.js} +1 -1
  242. package/dist/assets/{volter-shared-jsx-dev-runtime-akPt_-OI.js → volter-shared-jsx-dev-runtime-domcKDU3.js} +1 -1
  243. package/dist/assets/{volter-shared-jsx-runtime-CKQtDN6l.js → volter-shared-jsx-runtime-Cu7pVW-1.js} +1 -1
  244. package/dist/assets/{volter-shared-react-STQK0zHl.js → volter-shared-react-BLHga76C.js} +1 -1
  245. package/dist/assets/volter-shared-react-dom-client-vi6WsWu2.js +1 -0
  246. package/dist/assets/{volter-shared-react-dom-2aA0eyQg.js → volter-shared-react-dom-kzJVGsQd.js} +1 -1
  247. package/dist/assets/volter-shared-three-BWbOWtM5.js +4220 -0
  248. package/dist/volter-shared-modules.json +225 -225
  249. package/dist/volter-shared-react.json +6 -6
  250. package/dist/volter-shared-three.json +1 -1
  251. package/dist-node/cli.js +182 -127
  252. package/dist-node/create.js +18 -21
  253. package/package.json +16 -16
  254. package/src/index.ts +1 -2
  255. package/src/product-id.d.ts +4 -0
  256. package/starter/AGENTS.md +132 -157
  257. package/starter/game/levels/MainLevel.tsx +24 -0
  258. package/starter/game/prefabs/ground/Ground.tsx +24 -0
  259. package/starter/game/{levels → prefabs/ground}/ground.blend +0 -0
  260. package/starter/game/prefabs/ground/ground.glb +0 -0
  261. package/starter/game/prefabs/ground/ground.py +106 -0
  262. package/dist/assets/AudioViewer-EMpvKC-X.js +0 -1
  263. package/dist/assets/BVHLoader-CpdLvOHd.js +0 -1
  264. package/dist/assets/ColladaLoader-D1GMlAA9.js +0 -3
  265. package/dist/assets/EntityModelDocument-rYF-p8Fo.js +0 -1
  266. package/dist/assets/EnvironmentAssetDocument-DfykWLLS.js +0 -1
  267. package/dist/assets/FBXLoader-DKZ0UD3F.js +0 -1
  268. package/dist/assets/ImageViewer-B0OqXrVU.js +0 -1
  269. package/dist/assets/InspectorObjectPreview-CwCqdv76.js +0 -1
  270. package/dist/assets/JsonAssetDocument-PzzxK-v9.js +0 -2
  271. package/dist/assets/LiveModuleDocument-Bq9J5nMx.js +0 -1
  272. package/dist/assets/LutAssetDocument-CyzgDCYJ.js +0 -1
  273. package/dist/assets/MTLLoader-BOaPmAvY.js +0 -2
  274. package/dist/assets/ModelAssetDocument-8he5iZqV.js +0 -1
  275. package/dist/assets/OBJLoader-BLg7dmPe.js +0 -5
  276. package/dist/assets/Object3DDocumentToolbar-CLfEn5i-.js +0 -1
  277. package/dist/assets/Object3DDocumentToolbar-WK1RY6Gg.css +0 -1
  278. package/dist/assets/OrbitControls-DxYDYiEc.js +0 -1
  279. package/dist/assets/PLYLoader-bAg6lYzP.js +0 -2
  280. package/dist/assets/ProjectAuthoringBootstrap-FVTj-Ag9.js +0 -2
  281. package/dist/assets/QuarksAssetDocument-DBJQXZ9u.js +0 -2
  282. package/dist/assets/RectAreaLightUniformsLib-CQLblkbI.js +0 -1
  283. package/dist/assets/STLLoader-C8jImL_t.js +0 -1
  284. package/dist/assets/ShaderAssetDocument-C3QolcYl.js +0 -12
  285. package/dist/assets/SourceAssetViewer-xB9kAyPa.js +0 -1
  286. package/dist/assets/StageHost-BZBLHaPe.css +0 -1
  287. package/dist/assets/StageHost-xYvmzMBo.js +0 -1231
  288. package/dist/assets/TDSLoader-DLNvOc6c.js +0 -1
  289. package/dist/assets/ToolObject3DPreview-4XgGyXTu.js +0 -2
  290. package/dist/assets/VideoViewer-BruuQyu3.js +0 -1
  291. package/dist/assets/ViewportShadingMenu-amXbnRtl.js +0 -1
  292. package/dist/assets/animation-mixers.service-Ce1JMqA2.js +0 -1
  293. package/dist/assets/animation-timeline.utility-CzsUvu3v.js +0 -1
  294. package/dist/assets/asset-preview-CtqauM13.js +0 -4
  295. package/dist/assets/basis_transcoder-VXdx5NbI.wasm +0 -0
  296. package/dist/assets/basis_transcoder-o4Hde_L7.js +0 -19
  297. package/dist/assets/blender-base64-Cxqc4R5f.js +0 -1
  298. package/dist/assets/blender-display-shaders-BPmHILFy.lut +0 -0
  299. package/dist/assets/blender-emscripten-engine-Bl_j9xEY.js +0 -26
  300. package/dist/assets/blender-motion-worker-CtT2cV3V.js +0 -1
  301. package/dist/assets/blender-node-editor.document-lj1qK5Vu.js +0 -1
  302. package/dist/assets/blender-outliner-model-BqLWEXta.js +0 -7359
  303. package/dist/assets/blender-properties-model-DD-2sMKx.js +0 -1
  304. package/dist/assets/blender-properties-tab-BmudfsC3.js +0 -3
  305. package/dist/assets/blender-runtime.document-IVSATTnk.js +0 -13
  306. package/dist/assets/blender-screenshot.service-BRgdtDQC.js +0 -1
  307. package/dist/assets/blender-timeline.document-8jLaNF31.js +0 -1
  308. package/dist/assets/blender-uv-editor.document-BVcA7mi2.js +0 -1
  309. package/dist/assets/blender-version.status-B43F7DzT.js +0 -2
  310. package/dist/assets/blender-wali-engine-xLHhm0KZ.js +0 -2
  311. package/dist/assets/blender.environment-CG-pC7sk.js +0 -1
  312. package/dist/assets/blender.keymap-pRN8nlCs.js +0 -1
  313. package/dist/assets/blender.page-BYbkmFDE.js +0 -3
  314. package/dist/assets/blender.status-CcKJxsZ1.js +0 -1
  315. package/dist/assets/blender.style-DuFonR-j.js +0 -1
  316. package/dist/assets/chat.page-DzuAKPGP.js +0 -1
  317. package/dist/assets/city-EkhAOo5s.exr +0 -0
  318. package/dist/assets/courtyard-DqlebbpC.exr +0 -0
  319. package/dist/assets/draco_decoder-C32yEggz.wasm +0 -0
  320. package/dist/assets/draco_decoder-Z1_iN-Ht.wasm +0 -0
  321. package/dist/assets/draco_decoder-fzg4nYZr.js +0 -34
  322. package/dist/assets/draco_wasm_wrapper-DxJM36Ib.js +0 -117
  323. package/dist/assets/draco_wasm_wrapper-fZCQGLGb.js +0 -116
  324. package/dist/assets/editor-presentation-activity-CqJH4G9t.js +0 -1
  325. package/dist/assets/forest-P_CQY3b_.exr +0 -0
  326. package/dist/assets/index-C4uuH2ZE.css +0 -1
  327. package/dist/assets/index-DlAJXb_f.js +0 -952
  328. package/dist/assets/interior-Bo_lba15.exr +0 -0
  329. package/dist/assets/linear-resolve-B-MA5O31.js +0 -400
  330. package/dist/assets/live-mixers-B-bwLZ7c.js +0 -1
  331. package/dist/assets/maya.style-C3zx8RC5.js +0 -1
  332. package/dist/assets/model-inspection-_SFE7cp7.js +0 -1
  333. package/dist/assets/model.layout-CX-vaeBh.js +0 -1
  334. package/dist/assets/models.finder-DcOx-jsM.js +0 -1
  335. package/dist/assets/mtoon0-BNRZGBf8.blend +0 -0
  336. package/dist/assets/mtoon1-EgrxQlCc.blend +0 -0
  337. package/dist/assets/mtoon1_outline-xuubMJ8J.blend +0 -0
  338. package/dist/assets/mtoon_auto_setup-BF1c8USg.blend +0 -0
  339. package/dist/assets/night-CvV4Gybt.exr +0 -0
  340. package/dist/assets/object3d-document-session-registry-DvgzaByQ.js +0 -2
  341. package/dist/assets/output-pass-Bw2FZb8e.js +0 -85
  342. package/dist/assets/play-mode-BGq1Hn-c.js +0 -1
  343. package/dist/assets/play.page-DB2UjY0o.js +0 -1
  344. package/dist/assets/product-OBHh_Udv.js +0 -1
  345. package/dist/assets/properties-bone-constraints.inspector-NWLfoFX1.js +0 -1
  346. package/dist/assets/properties-bone.inspector-DybmNdBB.js +0 -1
  347. package/dist/assets/properties-collection.inspector-Cg7Jq6yG.js +0 -1
  348. package/dist/assets/properties-constraints.inspector-DY--pvLo.js +0 -1
  349. package/dist/assets/properties-data.inspector-CP1lurLb.js +0 -1
  350. package/dist/assets/properties-material.inspector-K8Qx5wr9.js +0 -1
  351. package/dist/assets/properties-modifiers.inspector-DOfP-8mX.js +0 -1
  352. package/dist/assets/properties-object.inspector-sqx6qMyu.js +0 -1
  353. package/dist/assets/properties-output.inspector-CUYUEC6S.js +0 -1
  354. package/dist/assets/properties-particles.inspector-oAWorORY.js +0 -1
  355. package/dist/assets/properties-physics.inspector-CQIHdcOy.js +0 -1
  356. package/dist/assets/properties-render.inspector-XTzdYo4u.js +0 -1
  357. package/dist/assets/properties-scene.inspector-BytOBuw9.js +0 -1
  358. package/dist/assets/properties-texture.inspector-2WNelhHG.js +0 -1
  359. package/dist/assets/properties-view-layer.inspector-DVSdqosc.js +0 -1
  360. package/dist/assets/properties-world.inspector-CHHm7g3j.js +0 -1
  361. package/dist/assets/regions-BlV6hTFd.js +0 -1
  362. package/dist/assets/sculpt.layout-BkvEflSA.js +0 -1
  363. package/dist/assets/session-addons-KcG0o7Xc.js +0 -76898
  364. package/dist/assets/shading.layout-V9LTFaVk.js +0 -1
  365. package/dist/assets/sky-precompute-worker-CPGW9t_C.js +0 -1
  366. package/dist/assets/spark.module-Cc-ZVx5e.js +0 -12120
  367. package/dist/assets/stage-keyboard-Rgvt63qI.js +0 -1
  368. package/dist/assets/stage-overlay-set-juTRuk99.js +0 -1
  369. package/dist/assets/stage-presence-markers-XsGUs3S-.js +0 -1
  370. package/dist/assets/stage-transform-tools-BE7m4omf.js +0 -1
  371. package/dist/assets/standard-viewport-dressing-asIXnD-w.js +0 -24
  372. package/dist/assets/std-scene-level-DeiReu6Z.js +0 -13
  373. package/dist/assets/std-scene.document-DyWMJhxA.js +0 -1
  374. package/dist/assets/story-capture-Y8_YS5DC.js +0 -1
  375. package/dist/assets/studio-CysTBGIb.exr +0 -0
  376. package/dist/assets/substance.style-CoQdG-kF.js +0 -1
  377. package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
  378. package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
  379. package/dist/assets/texture.layout-DASpHVht.js +0 -1
  380. package/dist/assets/three.module-JoAAxMWl.js +0 -4220
  381. package/dist/assets/three.page-Dy2q5JEV.js +0 -2
  382. package/dist/assets/transparent_z_write-xIRcVb2w.blend +0 -0
  383. package/dist/assets/transport-strip-cKO8FHd1.js +0 -1
  384. package/dist/assets/uv-editing.layout-CF_54oSA.js +0 -1
  385. package/dist/assets/volter-sdk-D8o6TU4A.js +0 -1407
  386. package/dist/assets/volter-sdk-activation-events-DVerKSly.js +0 -1
  387. package/dist/assets/volter-sdk-active-project-f6toeBI4.js +0 -1
  388. package/dist/assets/volter-sdk-adapter-editor-config-DpARQ4TT.js +0 -1
  389. package/dist/assets/volter-sdk-animation-animation-clock-BGyYYQu-.js +0 -1
  390. package/dist/assets/volter-sdk-animation-stage-transport-DWmyow46.js +0 -1
  391. package/dist/assets/volter-sdk-api-base-jDs2XVgE.js +0 -1
  392. package/dist/assets/volter-sdk-api-project-open-BAXokZLA.js +0 -1
  393. package/dist/assets/volter-sdk-api-project-source-D6FB4SmO.js +0 -1
  394. package/dist/assets/volter-sdk-api-settings-DqgndoPA.js +0 -1
  395. package/dist/assets/volter-sdk-asset-capabilities-B5mXIYBM.js +0 -1
  396. package/dist/assets/volter-sdk-asset-document-write-policy-B5aaFAwu.js +0 -1
  397. package/dist/assets/volter-sdk-asset-editor-context-BjtZQVgF.js +0 -1
  398. package/dist/assets/volter-sdk-asset-thumbnails-CROlpqPM.js +0 -1
  399. package/dist/assets/volter-sdk-asset-viewers-BejvElAX.js +0 -1
  400. package/dist/assets/volter-sdk-asset-workflow-project-content-D8h-TsJc.js +0 -1
  401. package/dist/assets/volter-sdk-authoring-active-adapter-DhKlZbyW.js +0 -1
  402. package/dist/assets/volter-sdk-authoring-boundary-authoring-adapter-xlppcGid.js +0 -1
  403. package/dist/assets/volter-sdk-authoring-composite-authoring-adapter-BfalSuB8.js +0 -1
  404. package/dist/assets/volter-sdk-authoring-consumer-actions-Hl6xkGAq.js +0 -1
  405. package/dist/assets/volter-sdk-authoring-design-time-mount-registry-2ZssbtYd.js +0 -1
  406. package/dist/assets/volter-sdk-authoring-design-time-roots-BNNZdEog.js +0 -1
  407. package/dist/assets/volter-sdk-authoring-layered-pick-AsUoH85M.js +0 -1
  408. package/dist/assets/volter-sdk-authoring-no-authoring-adapter-BX6sVPQX.js +0 -1
  409. package/dist/assets/volter-sdk-authoring-panel-authoring-BRs7fYSJ.js +0 -1
  410. package/dist/assets/volter-sdk-authoring-react-design-canvas-style-CdjO9_22.js +0 -1
  411. package/dist/assets/volter-sdk-authoring-seam-evidence-D58d2whR.js +0 -1
  412. package/dist/assets/volter-sdk-authoring-selection-scope-tqpilIPR.js +0 -1
  413. package/dist/assets/volter-sdk-authoring-shell-document-ops-ryosWWqt.js +0 -1
  414. package/dist/assets/volter-sdk-authoring-stage-root-yn7zP1QC.js +0 -1
  415. package/dist/assets/volter-sdk-authoring-story-board-chrome-fit-DgAAtVo8.js +0 -1
  416. package/dist/assets/volter-sdk-authoring-viewport-tool-owner-zIgbNhiQ.js +0 -1
  417. package/dist/assets/volter-sdk-authoring-world-session-state-DriMgIzp.js +0 -1
  418. package/dist/assets/volter-sdk-bitmap-label-Cwzw278F.js +0 -1
  419. package/dist/assets/volter-sdk-bytes-codec-CF2kvi68.js +0 -1
  420. package/dist/assets/volter-sdk-cancellation-reason-BQvS02ja.js +0 -1
  421. package/dist/assets/volter-sdk-canvas-frames-BkjDC0or.js +0 -1
  422. package/dist/assets/volter-sdk-capture-size-B3uOMPdw.js +0 -1
  423. package/dist/assets/volter-sdk-chrome-registry-Be1q89aJ.js +0 -1
  424. package/dist/assets/volter-sdk-command-result-text-DdPWoVLu.js +0 -1
  425. package/dist/assets/volter-sdk-commands-DI54EGoY.js +0 -1
  426. package/dist/assets/volter-sdk-component-board-registry-DtTf1V5m.js +0 -1
  427. package/dist/assets/volter-sdk-components-InspectorCanvasPreview-DpOxql_B.js +0 -1
  428. package/dist/assets/volter-sdk-components-SurfaceStateOverlay-BQ9KTVV1.js +0 -1
  429. package/dist/assets/volter-sdk-components-Toolbar-C6bwDRIc.js +0 -1
  430. package/dist/assets/volter-sdk-components-TransientHint-D3wtJ4fg.js +0 -1
  431. package/dist/assets/volter-sdk-components-inspector-preview-section-D1DnmKLE.js +0 -1
  432. package/dist/assets/volter-sdk-components-use-after-paint-ZgZgfmSR.js +0 -1
  433. package/dist/assets/volter-sdk-components-workspace-history-IZTWOoYh.js +0 -1
  434. package/dist/assets/volter-sdk-content-entry-source-registry-DV4a0g9R.js +0 -1
  435. package/dist/assets/volter-sdk-contribution-surfaces-BAzaKN1S.js +0 -1
  436. package/dist/assets/volter-sdk-contributions-D2D_badr.js +0 -1
  437. package/dist/assets/volter-sdk-coverage-design-time-surfaces-WtyoVY81.js +0 -1
  438. package/dist/assets/volter-sdk-creation-site-registry-DEJua1VB.js +0 -1
  439. package/dist/assets/volter-sdk-css-numeric-style-D1aEQUuP.js +0 -1
  440. package/dist/assets/volter-sdk-declared-tools-bEg2ZQju.js +0 -1
  441. package/dist/assets/volter-sdk-document-open-registry-BUdLp-BZ.js +0 -1
  442. package/dist/assets/volter-sdk-document-play-extension-BdtD2FcX.js +0 -1
  443. package/dist/assets/volter-sdk-document-probe-CvSMoXNj.js +0 -1
  444. package/dist/assets/volter-sdk-document-stage-sessions-BHE1T4gT.js +0 -1
  445. package/dist/assets/volter-sdk-document-viewports-BJqFXfe4.js +0 -1
  446. package/dist/assets/volter-sdk-editor-commands-CsYQVabs.js +0 -1
  447. package/dist/assets/volter-sdk-editor-console-lUTMRzeI.js +0 -1
  448. package/dist/assets/volter-sdk-editor-document-probe-BHRNXR9L.js +0 -1
  449. package/dist/assets/volter-sdk-editor-mode-BgYsrjin.js +0 -1
  450. package/dist/assets/volter-sdk-editor-runtime-CTy0Dw7-.js +0 -1
  451. package/dist/assets/volter-sdk-editor-server-response-oN9Horql.js +0 -1
  452. package/dist/assets/volter-sdk-editor-session-attribution-Ddoo0-e6.js +0 -1
  453. package/dist/assets/volter-sdk-editor-view-DEdcNl3N.js +0 -1
  454. package/dist/assets/volter-sdk-environment-images-Cbyno2vh.js +0 -1
  455. package/dist/assets/volter-sdk-extension-script-eemVEaFY.js +0 -1
  456. package/dist/assets/volter-sdk-eyedropper-session-BL5ceME-.js +0 -1
  457. package/dist/assets/volter-sdk-files-file-provider-D1vbGyMw.js +0 -1
  458. package/dist/assets/volter-sdk-files-project-files-CP9k503M.js +0 -1
  459. package/dist/assets/volter-sdk-framed-document-capture-DmqG4gUx.js +0 -1
  460. package/dist/assets/volter-sdk-framed-document-driver-B1ZAcb9l.js +0 -1
  461. package/dist/assets/volter-sdk-hierarchy-component-marks-DjtdLv04.js +0 -1
  462. package/dist/assets/volter-sdk-hierarchy-kind-icon-Dwlq9_xw.js +0 -1
  463. package/dist/assets/volter-sdk-hierarchy-row-media-CnFXPw4O.js +0 -1
  464. package/dist/assets/volter-sdk-hierarchy-row-model-TWxtUUdN.js +0 -1
  465. package/dist/assets/volter-sdk-hierarchy-rows-3Hl6K3Br.js +0 -1
  466. package/dist/assets/volter-sdk-hierarchy-walk-DvIomDWH.js +0 -1
  467. package/dist/assets/volter-sdk-history-history-delegate-RfZBUw9Y.js +0 -1
  468. package/dist/assets/volter-sdk-history-history-service-BWYajIYW.js +0 -1
  469. package/dist/assets/volter-sdk-history-persistence-coordinator-CmebAufQ.js +0 -1
  470. package/dist/assets/volter-sdk-history-resource-registry-CgjY-ErS.js +0 -1
  471. package/dist/assets/volter-sdk-history-snapshot-store-6Cq4Qau6.js +0 -1
  472. package/dist/assets/volter-sdk-history-source-history-backend-CilZiNDq.js +0 -1
  473. package/dist/assets/volter-sdk-hmr-registration-group-idNaexWq.js +0 -1
  474. package/dist/assets/volter-sdk-hmr-stable-react-context-DhY9rjD6.js +0 -1
  475. package/dist/assets/volter-sdk-host-BcQCyyIe.js +0 -1
  476. package/dist/assets/volter-sdk-inference-diagnostics-c4Aju1Jg.js +0 -1
  477. package/dist/assets/volter-sdk-inspection-document-subject-i64BmR5X.js +0 -1
  478. package/dist/assets/volter-sdk-inspection-group-icons-CWwhjZWt.js +0 -1
  479. package/dist/assets/volter-sdk-inspection-model-BgZVa_7l.js +0 -1
  480. package/dist/assets/volter-sdk-inspection-node-media-DNYb7ZDG.js +0 -1
  481. package/dist/assets/volter-sdk-inspection-null-subject-hK6kZbB7.js +0 -1
  482. package/dist/assets/volter-sdk-inspector-property-grouping-B-4_nVMm.js +0 -1
  483. package/dist/assets/volter-sdk-inspector-section-registry-DIYAa_rQ.js +0 -1
  484. package/dist/assets/volter-sdk-js-heap-DDws540T.js +0 -1
  485. package/dist/assets/volter-sdk-layout-arrangements-DdjnA7ET.js +0 -1
  486. package/dist/assets/volter-sdk-layouts-DcV6NQNu.js +0 -1
  487. package/dist/assets/volter-sdk-light-explorer-model-BoB1GjBo.js +0 -1
  488. package/dist/assets/volter-sdk-live-seam-evidence-BOvNn-o8.js +0 -1
  489. package/dist/assets/volter-sdk-live-session-registry--ftGWuRg.js +0 -1
  490. package/dist/assets/volter-sdk-mount-css-scope-BTi-3JA9.js +0 -1
  491. package/dist/assets/volter-sdk-mount-failure-report-BeR90-6n.js +0 -1
  492. package/dist/assets/volter-sdk-native-selection-style-70aZpb0m.js +0 -1
  493. package/dist/assets/volter-sdk-photograph-notice-BwuWgyiq.js +0 -1
  494. package/dist/assets/volter-sdk-play-camera-flight-CaSiTxDt.js +0 -1
  495. package/dist/assets/volter-sdk-product-command-Cf1utO0M.js +0 -1
  496. package/dist/assets/volter-sdk-project-module-changes-CIKyvjy2.js +0 -1
  497. package/dist/assets/volter-sdk-project-module-url-XzZmS9zs.js +0 -1
  498. package/dist/assets/volter-sdk-project-output-roots-B4bC82T9.js +0 -1
  499. package/dist/assets/volter-sdk-renderer-resource-counts-S3R39qoy.js +0 -1
  500. package/dist/assets/volter-sdk-scoped-project-css-Ch7LkU2q.js +0 -1
  501. package/dist/assets/volter-sdk-selection-C2gFhPip.js +0 -1
  502. package/dist/assets/volter-sdk-served-url-DxzhEpXR.js +0 -1
  503. package/dist/assets/volter-sdk-serving-engine-BclAA7ZZ.js +0 -1
  504. package/dist/assets/volter-sdk-settings-settings-provider-DGc5Xf46.js +0 -1
  505. package/dist/assets/volter-sdk-settings-store-Bmx-a8f0.js +0 -1
  506. package/dist/assets/volter-sdk-shell-store-door-CQlHDF_i.js +0 -1
  507. package/dist/assets/volter-sdk-shell-store-e-X3-CSz.js +0 -1
  508. package/dist/assets/volter-sdk-source-conflict-DEn0Z5Vq.js +0 -1
  509. package/dist/assets/volter-sdk-stage-context-CwBngGWz.js +0 -1
  510. package/dist/assets/volter-sdk-stage-invalidation-Bt1Gs-b2.js +0 -1
  511. package/dist/assets/volter-sdk-stage-store-registry-DtSMhopZ.js +0 -1
  512. package/dist/assets/volter-sdk-stories-compose-project-stories-DfgTy2Bp.js +0 -1
  513. package/dist/assets/volter-sdk-stories-scope-4lTT6I0H.js +0 -1
  514. package/dist/assets/volter-sdk-stories-story-declared-medium-BFcKINTP.js +0 -1
  515. package/dist/assets/volter-sdk-stories-story-dom-runtime-wAz1MhyJ.js +0 -1
  516. package/dist/assets/volter-sdk-stories-story-grouping-bVoaiX0-.js +0 -1
  517. package/dist/assets/volter-sdk-surface-keyboard-5u3olsPL.js +0 -1
  518. package/dist/assets/volter-sdk-surface-state-F5vfsPyq.js +0 -1
  519. package/dist/assets/volter-sdk-tab-census-B95O0nem.js +0 -1
  520. package/dist/assets/volter-sdk-tool-contribution-convention-k_AVbxWl.js +0 -1
  521. package/dist/assets/volter-sdk-transform-mode-request-CKhq0gIu.js +0 -1
  522. package/dist/assets/volter-sdk-transient-hint-DQMQ2_Y5.js +0 -1
  523. package/dist/assets/volter-sdk-ui-source-file-region-resolver-2Gw755Lw.js +0 -1
  524. package/dist/assets/volter-sdk-ui-source-tier-source-write-backend-BsEnWjJv.js +0 -1
  525. package/dist/assets/volter-sdk-viewport-activation-timings--7x_AkVR.js +0 -1
  526. package/dist/assets/volter-sdk-viewport-editor-controls-CFuNGxo6.js +0 -1
  527. package/dist/assets/volter-sdk-viewport-presentation-CoiYwzFE.js +0 -1
  528. package/dist/assets/volter-sdk-volter-contributions-DjgbZdIJ.js +0 -1
  529. package/dist/assets/volter-sdk-wait-until-DRdtM37d.js +0 -1
  530. package/dist/assets/volter-sdk-widgets-design-system-CPmOMXke.js +0 -1
  531. package/dist/assets/volter-sdk-widgets-editor-appearance-B4Q93899.js +0 -1
  532. package/dist/assets/volter-sdk-widgets-editor-material-C6dqUruc.js +0 -1
  533. package/dist/assets/volter-sdk-widgets-icon-set-registry-BOtjeU-M.js +0 -1
  534. package/dist/assets/volter-sdk-widgets-index-C2FSk2KK.js +0 -1
  535. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-ClaWmFsj.js +0 -1
  536. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-DIoRDT6D.js +0 -1
  537. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-BcsoJNaT.js +0 -1
  538. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-p_xfUT04.js +0 -1
  539. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-RbGdt95N.js +0 -1
  540. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-DxdmydaC.js +0 -1
  541. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DZ0Z3l2P.js +0 -1
  542. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-Byy_M7hB.js +0 -1
  543. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-C9aPdbrZ.js +0 -1
  544. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-BJStispK.js +0 -1
  545. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-C_5eRE_F.js +0 -1
  546. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-BA3S0eIV.js +0 -1
  547. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-DHHUQexs.js +0 -1
  548. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-CjuUPrEv.js +0 -1
  549. package/dist/assets/volter-sdk-widgets-patterns-Dialog-CQggdCbk.js +0 -1
  550. package/dist/assets/volter-sdk-widgets-patterns-Fields-D38At0E9.js +0 -1
  551. package/dist/assets/volter-sdk-widgets-patterns-List-ewRDByTO.js +0 -1
  552. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-C8YqnN-5.js +0 -1
  553. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BjFrm6Mc.js +0 -1
  554. package/dist/assets/volter-sdk-widgets-patterns-Tabs-JZq1ce4h.js +0 -1
  555. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-Bf61fc1T.js +0 -1
  556. package/dist/assets/volter-sdk-widgets-patterns-Tree-CwuVbaxj.js +0 -1
  557. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-Ch2ujeLH.js +0 -1
  558. package/dist/assets/volter-sdk-widgets-primitives-Button-d2WNMADR.js +0 -1
  559. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-DP0WkwNs.js +0 -1
  560. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-D1g1A89b.js +0 -1
  561. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-DAjALCvl.js +0 -1
  562. package/dist/assets/volter-sdk-widgets-primitives-FormControls-KBDCYHsT.js +0 -1
  563. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-D2qUt6_z.js +0 -1
  564. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-DLs3kN1L.js +0 -1
  565. package/dist/assets/volter-sdk-widgets-primitives-Layout-DshSsm_4.js +0 -1
  566. package/dist/assets/volter-sdk-widgets-primitives-Menu-Ch-3iDys.js +0 -1
  567. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-pdAN4aF3.js +0 -1
  568. package/dist/assets/volter-sdk-widgets-primitives-Panel-BNFSUDwP.js +0 -1
  569. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-5Hv-rso1.js +0 -1
  570. package/dist/assets/volter-sdk-widgets-primitives-Text-CtWC8t_L.js +0 -1
  571. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-h0iinIvj.js +0 -1
  572. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-Cllx19nM.js +0 -1
  573. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-CurGarFa.js +0 -1
  574. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-0YxAdd5O.js +0 -1
  575. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-ExQE8_SP.js +0 -1
  576. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-DGmxyx4E.js +0 -1
  577. package/dist/assets/volter-sdk-widgets-theme-DOfZnIVM.js +0 -1
  578. package/dist/assets/volter-sdk-widgets-z-index-BpB2pf-w.js +0 -1
  579. package/dist/assets/volter-sdk-worker-call-metrics-Cdo-WjAp.js +0 -1
  580. package/dist/assets/volter-sdk-workspace-document-ids-CWVlaP7n.js +0 -1
  581. package/dist/assets/volter-sdk-workspace-document-registry-DoKaj8Fe.js +0 -1
  582. package/dist/assets/volter-sdk-workspace-document-restore-BOPAH61D.js +0 -1
  583. package/dist/assets/volter-sdk-workspace-static-panels-DZr1Q4n1.js +0 -1
  584. package/dist/assets/volter-sdk-workspace-status-registry-pIvpW3QR.js +0 -1
  585. package/dist/assets/volter-sdk-workspace-utility-registry-BRzyLcLs.js +0 -1
  586. package/dist/assets/volter-sdk-world-canvas-viewport-state-DeMws4Bu.js +0 -1
  587. package/dist/assets/volter-sdk-world-pan-state-Dpul1S4k.js +0 -1
  588. package/dist/assets/volter-sdk-write-pipe-vbjHAGKf.js +0 -1
  589. package/dist/assets/volter-shared-react-dom-client-B6uCXsbq.js +0 -1
  590. package/dist/assets/volter-shared-three-DSLGcAKx.js +0 -1
  591. package/dist/assets/worker-DeeaIXW_.js +0 -10
  592. package/src/contributions.d.ts +0 -9
  593. package/starter/game/client/index.tsx +0 -52
  594. package/starter/game/levels/GroundEnvironment.tsx +0 -15
  595. package/starter/game/levels/GroundLevel.tsx +0 -35
  596. package/starter/game/levels/ground.canvas.ts +0 -11
  597. package/starter/game/levels/ground.glb +0 -0
  598. package/starter/game/levels/ground.py +0 -142
@@ -13937,7 +13937,7 @@ var package_default = {
13937
13937
  name: "@volter/cyclotron",
13938
13938
  publisher: "volter",
13939
13939
  author: "Volter AI, Inc.",
13940
- version: "0.5.212",
13940
+ version: "0.5.213",
13941
13941
  publishConfig: {
13942
13942
  access: "public"
13943
13943
  },
@@ -14005,31 +14005,31 @@ var package_default = {
14005
14005
  adapterRequired: true,
14006
14006
  workbench: {
14007
14007
  "darwin-arm64": {
14008
- release: "cyclotron-4a7cd45e4186-78f596095cf0-darwin-arm64",
14009
- tarballSha256: "f32ac81bcc072d7b84591affdead5dbb62621eb7480b8b89acece5d274e63624"
14008
+ release: "cyclotron-624490512f0c-0ba7394f05b2-darwin-arm64",
14009
+ tarballSha256: "4b752c3abd5595e2e4f7ae4d750b78d2f3c1a0da98140a8ee04c89893689a836"
14010
14010
  },
14011
14011
  "linux-x64": {
14012
- release: "cyclotron-4782d9a281ef-5b6840f8c154-linux-x64",
14013
- tarballSha256: "5fe9b6965453ad47a140f6ca939fbbc56a5b7ab9b2aec4b125d7d31f5adea5f9"
14012
+ release: "cyclotron-624490512f0c-0ba7394f05b2-linux-x64",
14013
+ tarballSha256: "6028c6d71df09bbb67ee90b936fc80fdc429d5ef0b1c78db07a6c39d9a4b2e1c"
14014
14014
  },
14015
14015
  "win32-x64": {
14016
- release: "cyclotron-4782d9a281ef-5b6840f8c154-win32-x64",
14017
- tarballSha256: "c623156000dff25c6dbb4d88992b4a3d4d5a7aeb42a1882f1b9e20c8f496df04"
14016
+ release: "cyclotron-624490512f0c-0ba7394f05b2-win32-x64",
14017
+ tarballSha256: "57e8fa6dbc439de5fba7da35fa17c710644d465842bd967c8ba7f1e73fcbee2f"
14018
14018
  }
14019
14019
  }
14020
14020
  }
14021
14021
  }
14022
14022
  },
14023
14023
  dependencies: {
14024
- "@volter/editor-core": "0.5.212",
14025
- "@volter/editor-blender": "0.1.151",
14026
- "@volter/editor-threejs": "0.5.212",
14027
- "@volter/chat": "0.5.212",
14028
- "@volter/blender-engine": "0.1.149",
14029
- "@volter/project": "0.5.212",
14030
- "@volter/sdk": "0.5.212",
14031
- "@volter/live": "0.5.212",
14032
- "@volter/play": "0.5.212",
14024
+ "@volter/editor-core": "0.5.213",
14025
+ "@volter/editor-blender": "0.1.152",
14026
+ "@volter/editor-threejs": "0.5.213",
14027
+ "@volter/chat": "0.5.213",
14028
+ "@volter/blender-engine": "0.1.150",
14029
+ "@volter/project": "0.5.213",
14030
+ "@volter/sdk": "0.5.213",
14031
+ "@volter/live": "0.5.213",
14032
+ "@volter/play": "0.5.213",
14033
14033
  three: "^0.186.1",
14034
14034
  "@modelcontextprotocol/sdk": "1.32.1",
14035
14035
  typescript: "5.9.3",
@@ -14126,8 +14126,8 @@ var EXAMPLES = {
14126
14126
  dependencies: { i18next: "~26.7.2" },
14127
14127
  /** The goal the game's `play` scripts name in place of the starter's. */
14128
14128
  goal: "win",
14129
- /** std's starter files the example has no use for: its ground level, its walking characters and its chat. */
14130
- removes: ["levels/GroundLevel.tsx", "client/characters.tsx", "client/chat.tsx"]
14129
+ /** std's starter files the example has no use for: its main level, its walking characters and its chat. */
14130
+ removes: ["levels/MainLevel.tsx", "client/characters.tsx", "client/chat.tsx"]
14131
14131
  }
14132
14132
  };
14133
14133
  var isExample = (id) => Object.hasOwn(EXAMPLES, id);
@@ -14369,9 +14369,6 @@ export {
14369
14369
  PLAY_PACKAGES,
14370
14370
  UPGRADING,
14371
14371
  declaration,
14372
- productRoot2 as productRoot,
14373
- productVersions,
14374
14372
  refreshStarterGuidance,
14375
- writeGame,
14376
14373
  writeProject
14377
14374
  };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@volter/cyclotron",
3
3
  "publisher": "volter",
4
4
  "author": "Volter AI, Inc.",
5
- "version": "0.5.212",
5
+ "version": "0.5.213",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -70,31 +70,31 @@
70
70
  "adapterRequired": true,
71
71
  "workbench": {
72
72
  "darwin-arm64": {
73
- "release": "cyclotron-4a7cd45e4186-78f596095cf0-darwin-arm64",
74
- "tarballSha256": "f32ac81bcc072d7b84591affdead5dbb62621eb7480b8b89acece5d274e63624"
73
+ "release": "cyclotron-624490512f0c-0ba7394f05b2-darwin-arm64",
74
+ "tarballSha256": "4b752c3abd5595e2e4f7ae4d750b78d2f3c1a0da98140a8ee04c89893689a836"
75
75
  },
76
76
  "linux-x64": {
77
- "release": "cyclotron-4782d9a281ef-5b6840f8c154-linux-x64",
78
- "tarballSha256": "5fe9b6965453ad47a140f6ca939fbbc56a5b7ab9b2aec4b125d7d31f5adea5f9"
77
+ "release": "cyclotron-624490512f0c-0ba7394f05b2-linux-x64",
78
+ "tarballSha256": "6028c6d71df09bbb67ee90b936fc80fdc429d5ef0b1c78db07a6c39d9a4b2e1c"
79
79
  },
80
80
  "win32-x64": {
81
- "release": "cyclotron-4782d9a281ef-5b6840f8c154-win32-x64",
82
- "tarballSha256": "c623156000dff25c6dbb4d88992b4a3d4d5a7aeb42a1882f1b9e20c8f496df04"
81
+ "release": "cyclotron-624490512f0c-0ba7394f05b2-win32-x64",
82
+ "tarballSha256": "57e8fa6dbc439de5fba7da35fa17c710644d465842bd967c8ba7f1e73fcbee2f"
83
83
  }
84
84
  }
85
85
  }
86
86
  }
87
87
  },
88
88
  "dependencies": {
89
- "@volter/editor-core": "0.5.212",
90
- "@volter/editor-blender": "0.1.151",
91
- "@volter/editor-threejs": "0.5.212",
92
- "@volter/chat": "0.5.212",
93
- "@volter/blender-engine": "0.1.149",
94
- "@volter/project": "0.5.212",
95
- "@volter/sdk": "0.5.212",
96
- "@volter/live": "0.5.212",
97
- "@volter/play": "0.5.212",
89
+ "@volter/editor-core": "0.5.213",
90
+ "@volter/editor-blender": "0.1.152",
91
+ "@volter/editor-threejs": "0.5.213",
92
+ "@volter/chat": "0.5.213",
93
+ "@volter/blender-engine": "0.1.150",
94
+ "@volter/project": "0.5.213",
95
+ "@volter/sdk": "0.5.213",
96
+ "@volter/live": "0.5.213",
97
+ "@volter/play": "0.5.213",
98
98
  "three": "^0.186.1",
99
99
  "@modelcontextprotocol/sdk": "1.32.1",
100
100
  "typescript": "5.9.3",
package/src/index.ts CHANGED
@@ -1,9 +1,8 @@
1
- import packages, { productId } from 'volter:composition';
1
+ import { productId } from 'volter:product-id';
2
2
  import { product } from '@volter/editor-core/frame';
3
3
 
4
4
  export const { mountVolter } = product({
5
5
  id: productId,
6
- packages,
7
6
  workspace: 'model',
8
7
  logo: 'https://brand.volter.ai/logo/volter-cyclotron/svg',
9
8
  });
@@ -0,0 +1,4 @@
1
+ declare module 'volter:product-id' {
2
+ /** The product's id: its package name's last segment (`@volter/cyclotron` → `cyclotron`). */
3
+ export const productId: string;
4
+ }
package/starter/AGENTS.md CHANGED
@@ -43,7 +43,7 @@ but keep it short between visible steps. Throughout:
43
43
  Blender Text data-block named `Build Notes` with a fake user, and keep a
44
44
  readable copy beside the work as Text objects in a `Notes` collection (a
45
45
  text buffer alone is not visible in the viewport). Include the current step,
46
- pending steps, and verified completed steps with their times; update both at
46
+ pending steps, and verified completed steps; update both at
47
47
  real milestones and preserve them across rebuilds and reopening. Keep notes
48
48
  out of the intended shot, renders, exports and gameplay: disable the `Notes`
49
49
  collection in renders (`collection.hide_render = True`), which keeps them on
@@ -71,26 +71,17 @@ Replace unused scaffold placeholders as the requested result calls for.
71
71
  and the intended viewpoints; add cameras when the requested shot needs them.
72
72
  A game-like reference can describe a static scene. Implement playable behavior
73
73
  when the user asks for a working game or interactive mechanics.
74
- - **A level and its pieces:** the level's `.blend` is the environment
75
- (terrain, mountains, rocks, scatter). Each piece with its own identity, such
76
- as a character, creature, vehicle, building or key prop, is its own `.blend`
77
- with one collection and object names of its own (named for the piece),
78
- linked into the level rather than copied, as in a Blender production. Make
79
- a piece's file as Blender does, in one script:
80
- `bpy.ops.wm.read_homefile(use_empty=True)`, build it, then
81
- `bpy.ops.wm.save_as_mainfile(filepath=<piece file>)`: `src/models/<piece>.blend`
82
- in a models project, `prefabs/<name>/<name>.blend` in a std game, whose
83
- level is `levels/<level>.blend` and whose export writes each piece's
84
- component (`02a-levels.md`, "Prefabs").
85
- It opens as its own document; open the level again to link it. Link
86
- its collection (`bpy.data.libraries.load(path, link=True, relative=True)`:
87
- relative, so the link still resolves when the project moves) and place it as
88
- a collection instance. A piece that animates or that the level changes is
89
- then made a library override (`bpy.ops.object.make_override_library()` with
90
- the instance active), and actions and NLA tracks can still be added to it in
91
- the level. Each placement is its own override; rename it as the game
92
- expects. Edits to the piece's own file reach every level that links it the
93
- next time the level opens.
74
+ - **A game's level and its models:** in a std game, models are made in
75
+ Blender, each its own prefab (`prefabs/<name>/<name>.blend`, which std's
76
+ export turns into its component), and the level lays them out in code
77
+ (`levels/<Name>Level.tsx`), blocked out there before its models are made.
78
+ - **A scene or film's set and its pieces:** outside a game, the set's `.blend`
79
+ is the environment, and each piece with its own identity is its own `.blend`
80
+ (`src/models/<piece>.blend`) linked in rather than copied: link its
81
+ collection (`bpy.data.libraries.load(path, link=True, relative=True)`) and
82
+ place it as a collection instance, made a library override
83
+ (`bpy.ops.object.make_override_library()`) where it animates. Edits to the
84
+ piece's own file reach every set that links it the next time it opens.
94
85
  - **A character or an animation:** see Characters and Animation below; check
95
86
  motion in the Timeline at representative and extreme poses.
96
87
  - **An interactive model:** implement the requested interaction, preview it in
@@ -98,8 +89,6 @@ Replace unused scaffold placeholders as the requested result calls for.
98
89
  - **A working game:** follow Working games below, including Play, the game's bot
99
90
  goals and a few discrete manual checks. Match the mechanics and success/failure
100
91
  behavior to the requested game.
101
- - **A game's content:** its sounds, music, effects, tuning, items and words
102
- are files with ids, as Content is data below says, never built in code.
103
92
  - **UI or a HUD:** follow React UI below. A standalone screen needs its own
104
93
  visual and interaction checks; UI attached to a game also needs checks in Play.
105
94
  - **An edit or repair:** inspect the existing result first and change the
@@ -111,14 +100,15 @@ Replace unused scaffold placeholders as the requested result calls for.
111
100
 
112
101
  Apply this section to models, scenes and the Blender parts of games.
113
102
 
114
- - `src/models/*.blend` are the saved documents, including full scenes.
103
+ - The `.blend` files are the saved documents (`src/models/`, or a game's
104
+ `prefabs/` and `levels/`), including full scenes.
115
105
  `*.py` beside them record how they were authored. Editing a script alone does
116
106
  not update the document.
117
- - Look in the asset library before authoring an asset from nothing:
118
- `GET <editor>/__editor/asset-library/search?source=local&type=model&q=<words>`
119
- at the editor's address (the one `cyclotron edit` printed). Results carry
120
- `tags` (such as `animated`), a license and attribution; fetch one with `POST <editor>/__editor/asset-library/download`,
121
- import it through Blender, and record the asset and its license in the project.
107
+ - Look in the asset library before authoring an asset from nothing. It is part
108
+ of the editor's automation API (`editor.assetLibrary`), reached with
109
+ `cyclotron eval`. Results carry `tags` (such as `animated`), a license and
110
+ attribution. A download lands in the project's `public/asset-library/` with
111
+ the asset and its license recorded in the project; import it through Blender.
122
112
  - Inspect the open scene with `get_scene_info` and `get_object_info` before
123
113
  changing it. Rerunning a script that clears the scene replaces existing work;
124
114
  update scripts to preserve user edits and the `References` and `Notes`
@@ -134,9 +124,8 @@ Apply this section to models, scenes and the Blender parts of games.
134
124
  editing another document, wait and retry, then switch to another document
135
125
  and back or run `editor.reloadPage()` in eval; do not build through `eval`
136
126
  instead.
137
- - Orient procedural closed-mesh faces outward and inspect their exterior in
138
- Rendered shading (`eval 'return await editor.shading("rendered")'`) before
139
- building many copies. Recalculate normals when needed.
127
+ - A closed mesh's faces point outward (normals recalculated where needed),
128
+ checked shaded before many copies of it are built.
140
129
  - Verify object properties and inspect captures after meaningful changes.
141
130
  The editor saves the open `.blend` when Code-OSS autosaves it
142
131
  (`files.autoSave`), a moment after an edit, and not at all when the project
@@ -198,7 +187,7 @@ Apply this section to models, scenes and the Blender parts of games.
198
187
  window minimized or covered; `status()`'s `presence.visibility` says so):
199
188
  then a player's page is hidden, and one hidden since it loaded refuses
200
189
  `capture --region play`. Never raise the editor's tab or window for it. See
201
- the game in the videos std records of the bot's headless plays
190
+ the game in the videos std records of the bot's plays out of view
202
191
  (`build/runs/<run>/video/`, each whole once its play ends), and read its HUD
203
192
  with `editor.inspect()`'s `inspection.screen` (its `objects` are empty on a
204
193
  page that has drawn no frame).
@@ -206,9 +195,13 @@ Apply this section to models, scenes and the Blender parts of games.
206
195
  ## Establish the visual match first
207
196
 
208
197
  For new visual work, match the requested view before adding behavior. For a new
209
- game, this first pass is the authored 3D scene and React UI composed as a static
210
- game screenshot; movement, scoring, opponents and items come afterward. A
211
- behavior-only repair preserves the established appearance.
198
+ game, this first pass is the level and its models, lit, with the game's things
199
+ in place and the React UI, composed as a static game screenshot: the game's
200
+ first frame in Play. The level's document draws it as the game does
201
+ (captured with `cyclotron capture --region document`)
202
+ while it is laid out. Movement, scoring, opponents and item behavior come
203
+ afterward. A behavior-only repair
204
+ preserves the established appearance.
212
205
 
213
206
  - Match the reference's aspect ratio, crop, camera angle, perspective and object
214
207
  scale, with the real 3D model and React components at comparable resolution;
@@ -241,120 +234,99 @@ behavior-only repair preserves the established appearance.
241
234
 
242
235
  ## Working games
243
236
 
244
- A game here is a [std](node_modules/@volter-ai/std-dev/docs/00-overview.md) game:
245
- three.js, React Three Fiber, Rapier and Colyseus, used as their own docs describe
246
- them, with std adding only what they lack. std's guide ships with the game, in
247
- `node_modules/@volter-ai/std-dev/docs/`: read `01-write-a-game.md`,
248
- `02a-levels.md` and `04-bots.md` before writing game code.
249
-
250
- - Complete the visual pass before implementing gameplay for a new game.
251
- - A project with `std.json` is a std game. In a project without one, run
252
- `npx --no-install cyclotron add-play`: it runs std's `std new` into the
253
- project, moves `src/models/*.blend` into `levels/`, and installs the game's
254
- dependencies with pnpm. The editor picks the game up as it is; nothing needs
255
- a reload.
256
- - Where things go:
257
- - `levels/<name>.blend` is a level, made in Blender. Each save runs std's
258
- level export, which writes the files beside it (`<name>.glb`,
259
- `<Name>Level.tsx`, its environment, canvas settings and grading). They are
260
- std's: change the `.blend` or the game's code, never them. A Rigid Body
261
- panel is a body, an object whose custom property `sensor` is true is a
262
- sensor, a collection instance of a collection named `SpawnPoint` is a
263
- spawn point, and the custom properties `role` and `aria-label` are what
264
- bots read of an object.
265
- - `server/index.ts` is the room, std's `StdRoom`, a Colyseus room: the
266
- game's rules and state live here. `shared/state.ts` is its state schema.
267
- - `client/` is the React Three Fiber app every player runs: `index.tsx`
268
- joins the room and draws the level, `hud.tsx` is the HUD.
269
- - `autopilot/index.ts` is the game's bot: its goals, each named by a word.
270
- `autopilot/checks.ts` judges each goal's recorded play.
271
- - `std.json` is the manifest.
272
- - Rules belong to the room. A client sends what its player does (a message),
273
- the room decides (its state), and every client draws the state. std 0.8 has
274
- no items, pickups, health or scores of its own: write them with the
275
- libraries, a react-three-rapier sensor's `onIntersectionEnter` or a distance
276
- check, and a room message the room validates.
277
- - Make the game's state readable on screen: a HUD element with `role="status"`
278
- and an `aria-label` is what the person sees and what bots read.
279
- - Give the bot a goal for each outcome worth checking: at least `win` and one
280
- that loses on purpose (`lose`). A goal records what it sees with
281
- `driver.intent(text, facts)`; its check in `autopilot/checks.ts` judges the
282
- recording. Run one with `npx --no-install cyclotron play autoplay on <goal>`:
283
- std's headless play of that goal, its own bot pages out of view (the player
284
- on screen and the Game panel's goal stay as they are). Read how it ended in
285
- `npx --no-install cyclotron play` (`autoplay.state`) and
286
- `npx --no-install cyclotron play-log [--since <time>] [--kind <kind>]`, and
287
- explain what happened from it before changing code. Change no file while it
288
- plays: the dev server reloads its pages on a change, which cuts the goal short.
289
- - Continuous play is the bot's, never yours by hand. Why: your inputs arrive
290
- one tool call at a time, seconds apart, so a real-time game driven by hand
291
- plays in stop-motion; it can't judge feel or timing, it rarely reaches an
292
- ending, and an agent that falls into it can spend hours on one session. Use
293
- a few discrete inputs for a manual check (`editor.document.key`, and a HUD
294
- button pressed by its role and name,
295
- `editor.document.click('role=button[name="Restart"]')`; at most about ten),
296
- read the screen with `editor.inspect()` (`inspection.screen`) and the live
297
- scene with it too, then hand back to the bot.
298
- - Play on a level saves it (std exports it) and opens the game's own page for
299
- each player. Pause, step and speed (the Game panel, or `play pause`,
300
- `play resume`, `play step [count]`, `play speed <x>`) hold every player's
301
- page; the room on the dev server keeps running, as Colyseus cannot pause a
302
- room, so a timer the room runs goes on while the pages are paused.
303
- - Say in Chat that the game is playable as soon as it is, then check its
304
- endings with the bot's goals. Observe each terminal state, use the actual
305
- Restart control and play again, and check that everything resets.
306
- - Run `pnpm check` (std's own check: TypeScript, lint and the web build)
307
- before calling the game done, and show what it says.
237
+ A game here is a [std](node_modules/@volter-ai/std-dev/docs/) game:
238
+ three.js, React Three Fiber, Rapier and Colyseus, written as their own docs
239
+ describe them, with std adding only what they lack. std's guide ships with the
240
+ game, in `node_modules/@volter-ai/std-dev/docs/`; its pages "Write a game",
241
+ "Levels" and "Bots" are where to start.
242
+
243
+ The project's standards:
244
+
245
+ - The room is the authority. A client sends what its player does, the room
246
+ decides in its state, and every client draws that state. std 0.8 has no
247
+ items, pickups, health or scores of its own: they are the game's own state.
248
+ - Models are made in Blender; the level is code that lays them out. What std's
249
+ export writes from a `.blend` is generated: change the `.blend`, never its
250
+ output. A body is authored where it belongs: in the model's `.blend` as
251
+ Blender has it, or by the level that places the model (std's guide,
252
+ "Levels").
253
+ - Content is data (Content is data, below).
254
+ - What a player reads is labelled, on screen and in the world: the person, a
255
+ screen reader and the bots read the same.
256
+ - Every game has its bot (`autopilot/`): a goal for each ending the game has,
257
+ and checks that judge each goal's recorded play.
258
+ - The visual pass comes before gameplay.
259
+ - `pnpm check` (TypeScript, lint and the web build) is clean before a game is
260
+ called done, and what its play was seen to get wrong (a goal, a check, a
261
+ press by hand) is fixed, not left for the person as a caveat. A fault in the
262
+ editor or std is shown with a focused reproduction and reported instead.
308
263
  - The game is made and played on the web. Roblox and Unreal are targets the
309
- person adds when they want to ship there (`npx std target add roblox`, then
310
- `npx --no-install cyclotron export roblox`); never add one they didn't ask for.
264
+ person adds when they want to ship there; never add one they didn't ask for.
265
+
266
+ Where things go:
267
+
268
+ - `levels/<Name>Level.tsx` is the level, a document of its own that draws it.
269
+ - `prefabs/<name>/<name>.blend` is a model, and beside it what std's export
270
+ writes from it (`<name>.glb`, `<Name>.tsx`). A model's file has no lights of
271
+ its own: the level that places it lights it.
272
+ - `server/index.ts` is the room, std's `StdRoom`, a Colyseus room;
273
+ `shared/state.ts` is its state schema.
274
+ - `client/` is the React Three Fiber app every player runs: `index.tsx` joins
275
+ the room and draws the level, `hud.tsx` is the HUD. std draws nothing on
276
+ the page itself: what a player sees when the game can't go on
277
+ (`failure.tsx`) and a P2P host's invite (`invite.tsx`) are the game's.
278
+ - `autopilot/index.ts` is the bot's goals, `autopilot/checks.ts` their checks.
279
+ - `std.json` is the manifest. A project without one becomes a std game with
280
+ `npx --no-install cyclotron add-play`.
281
+
282
+ Playing it in the editor:
283
+
284
+ - Play (the Game panel, under every document) saves the Blender file you
285
+ changed (std exports it) and opens the Game view, with the game's own page for
286
+ each player: one unless the project's `volter.play.players` says
287
+ more (which the Game panel's Players [-][+] and `play players <n>`
288
+ set). The viewed
289
+ player is yours, the others are bots playing the Game panel's goal. The Game
290
+ view's Scene is the level live; the level's own tab stays as authored.
291
+ Pause, step and speed (the Game panel, or
292
+ `play pause`, `play resume`, `play step [count]`, `play speed <x>`) hold every
293
+ player's page; the room keeps running, as Colyseus cannot pause a room.
294
+ - `npx --no-install cyclotron play autoplay on <goal>` is std's own play of a
295
+ goal, recorded and checked, as the Game panel's Autoplay is: on the viewed
296
+ player's page, which the person watches, while the Game view is on screen,
297
+ and out of view on std's headless device while it is not. It answers when
298
+ std says how the goal ended (`autoplay.state`, with how its checks ran:
299
+ `checks of <goal>: 2 passed (…)`, `…: 1 of 2 failed (…)` or `…: none ran
300
+ (…)`; the report's `checks.verdict` says which), so it
301
+ runs in the background. `autoplay.report` is its report. `npx --no-install cyclotron play-log` is what happened, the
302
+ room's own `console.log` among it (`server-output`).
303
+ - Continuous play is the bot's, never yours by hand: your inputs arrive one tool
304
+ call at a time, seconds apart, so a real-time game driven by hand plays in
305
+ stop-motion and rarely reaches an ending. A manual check is a few discrete
306
+ key presses and HUD clicks (`editor.document.key`, `editor.document.click`;
307
+ at most about ten), then hand back to the bot.
308
+ - Say in Chat that the game is playable as soon as it is, then check its
309
+ endings with its goals and by hand, restarting it as a player would.
311
310
  - Capture the running game, HUD included (`capture --region play`), at the
312
- start, during representative actions and after changes; its labelled
313
- nodes (`editor.inspect()`'s `inspection.screen`) say what the HUD reads.
314
- Fix what you see, play again and report what was actually observed.
311
+ start, during representative actions and after changes; its labelled nodes
312
+ (`editor.inspect()`'s `inspection.screen`) say what the HUD reads. Report what
313
+ was actually observed.
315
314
 
316
315
  ## Animation
317
316
 
318
- - Characters and creatures that move are animated as in Blender: an armature,
319
- and its motions as named actions in the `.blend`. Each becomes one of the
320
- component's clips: a placed character's clips are its `animations`
321
- (`THREE.AnimationClip.findByName(hero.animations, 'Run')`). Nothing plays
322
- until the game plays it; the action the file assigns the armature
323
- (`animation_data.action`) plays with its NLA tracks through `AnimationTracks`
324
- (below).
325
- - Play clips as three.js does: three's `AnimationMixer`, or drei's `useAnimations`
326
- in the game's client. What the mixer lacks, std adds in its style, in
327
- `@volter-ai/std/animation/client`, each with a fiber hook beside it (std's guide,
328
- `node_modules/@volter-ai/std-dev/docs/02bb-animation.md`):
329
- - layers that go over each other by weight, as Blender's NLA does (an aim over a
330
- run, an action keyed on the upper body alone): `AnimationLayers`,
331
- `useAnimationLayers(root, { clips })`, then `layers.clipAction(clip, root?,
332
- blendMode?, 'Upper')`;
333
- - a character's NLA tracks as the `.blend` authored them: `AnimationTracks`,
334
- `useAnimationTracks(layers, node, frame, { clips })`;
335
- - run-time aims: mark a pose bone's Damped Track with the custom property
336
- `std.runtime`, then `useAimConstraints(root, { layers, find })` and set
337
- `aims.get('head', 'Look').influence` in `useFrame`.
338
- - Make another of a character with three's `SkeletonUtils.clone`
339
- (`three/addons/utils/SkeletonUtils.js`); its clips come with it.
340
- - Give every action that may play a fake user (`action.use_fake_user = True`):
341
- Blender drops an action nothing uses when the file saves, so an unassigned
342
- clip library vanishes on the next save.
317
+ - Motion is authored in Blender: an armature and its actions, in the
318
+ character's `.blend`, each a clip of its component. Clips play with three.js's
319
+ own animation system; what it lacks that Blender has (layers by weight, NLA
320
+ tracks, run-time aims), std adds in three's style (std's guide,
321
+ "Animation").
322
+ - Every action that may play has a fake user: Blender drops an action nothing
323
+ uses when the file saves.
343
324
 
344
325
  ## Cutscenes and films
345
326
 
346
- - A moment inside the game (a launch, a set piece, an ultimate, an emote) plays
347
- live in the game. Author it on the Timeline in a collection of its own (keyed
348
- objects and cameras, markers bound to cameras, marker names for its events).
349
- Play it with std's `TimelineUtils` (`@volter-ai/std/animation/client`; std's
350
- guide, `02bb-animation.md`, "A level's timeline"):
351
- - `TimelineUtils.timelineOf(level)` is the level's timeline;
352
- - `TimelineUtils.frameAt(timeline, seconds)` is the frame;
353
- - `TimelineUtils.cameraAt(level, frame)` with `lookThrough(camera, shot)` gives
354
- its camera cuts;
355
- - `useTimelineSampler(level, animations)` (or `new TimelineUtils.TimelineSampler(level, animations, timeline)`),
356
- then `setFrame(frame, { collection, at, anchor })`, poses the level's own
357
- animation: only that collection, placed at a game object when `at` is given.
327
+ - A moment inside the game (a launch, a set piece, an emote) is authored on the
328
+ Timeline, in a collection of its own, and plays live in the game (std's
329
+ guide, "Animation", "A level's timeline").
358
330
  - A film as a file (an intro, a trailer) is rendered, not captured:
359
331
  `npx --no-install cyclotron render-movie --from <marker> --to <marker> --out <file>.webm`
360
332
  renders the span through Blender's Render Animation on the three.js engine,
@@ -430,23 +402,22 @@ A character is two jobs, in this order: how it looks, then how it moves.
430
402
  ## Content is data
431
403
 
432
404
  A game's content is data, as a game studio keeps it. Each asset is authored
433
- offline, saved as a file, and used by its path: a level or a piece is a
434
- `.blend` (Blender's own glTF export carries it to the game), a texture an
435
- image, a word a string the HUD shows. The code never builds at run time a mesh,
405
+ offline, saved as a file, and used by its path: a model is a `.blend`
406
+ (std's export carries it to the game), a texture an image, a word a string the
407
+ HUD shows. The code never builds at run time a mesh,
436
408
  a texture or a sound a file could hold. Run-time construction stays for what is
437
409
  truly procedural: a trail's points, a destructible's fragments, a score's value.
438
410
 
439
- - Levels are `levels/<name>.blend`; a piece placed in levels is its own
440
- `prefabs/<name>/<name>.blend` (A level and its pieces, above).
411
+ - Models are `prefabs/<name>/<name>.blend`; the level that lays them out is
412
+ code (A game's level and its models, above). A block-out primitive in the
413
+ level stands only until its model is made.
441
414
  - A source sits beside the asset it makes: a `.blend` and the script that
442
415
  builds it (with its seed), an image's source.
443
416
 
444
417
  ## React UI
445
418
 
446
- - Build HUDs, menus and screens as React components in the game's client
447
- (`client/hud.tsx` and beside it): plain DOM over the `<Canvas>`, reading the
448
- room's state with std's and @colyseus/react's hooks. Label what a player
449
- reads (`role`, `aria-label`): a screen reader and the bots read the same.
419
+ - A game's HUD, menus and screens are React in its client (`client/hud.tsx`
420
+ and beside it): plain DOM over the `<Canvas>`, drawn from the room's state.
450
421
  - For a game HUD, verify the components over the running game against live
451
422
  game state (`capture --region play`, and its labelled nodes in
452
423
  `editor.inspect()`'s `inspection.screen`: role, name, bounds). For
@@ -472,9 +443,10 @@ diagnosing a problem. Do not call `editor.reloadPage()` to reveal new
472
443
  files, boards, references or scripts: a reload interrupts the editor and its
473
444
  chat, so reserve it for an explicit request or a diagnosed problem.
474
445
 
475
- The bottom area has two views, Game (the Game panel) and Animation (Blender's
476
- Timeline, Action Editor and NLA editor); they arrange the editor and do not
477
- change what plays, and a running game keeps running in either. Play is
446
+ The bottom area is the Game panel. Below a model, it has two views, Game (the
447
+ Game panel) and Animation (Blender's Timeline, Action Editor and NLA editor);
448
+ they arrange the editor and do not change what plays, and a running game keeps
449
+ running in either, and whatever tab is in front. Play is
478
450
  running the game.
479
451
 
480
452
  Commands, all through `npx --no-install cyclotron`:
@@ -500,11 +472,14 @@ Commands, all through `npx --no-install cyclotron`:
500
472
  game with its HUD, as that page captures itself.
501
473
  - `add-play`: make this project a std game. `play-log`: the running game's log.
502
474
  - The Game panel's controls, each printing its state: `play autoplay on
503
- [<goal>]` (std's headless play of a goal, out of view) and `play autoplay
475
+ [<goal>]` (std's play of a goal, on the viewed player's page while the Game
476
+ view is on screen) and `play autoplay
504
477
  off` (that play ended, and the viewed player's bot where it drives); `play pause` and
505
478
  `play resume` (every player's page holds its clock); `play step [count]` (one
506
- 1/60 s frame each, pausing first); `play speed 0.25|0.5|1|2|4`; `play restart`
507
- (the game's pages loaded afresh); `play mode game|animation` (the view).
479
+ 1/60 s frame each, pausing first); `play speed 0.25|0.5|1|2|4`; `play players [1-8]`
480
+ (how many players Play starts: the project's `volter.play.players`,
481
+ which it sets); `play restart`
482
+ (the game's pages loaded afresh); `play mode game|animation` (a model's view).
508
483
  - `export web|roblox|unreal`: the game exported, as the Game panel's Export
509
484
  does: `web` its web build (`dist/`), an engine one of its targets
510
485
  (`npx std target add roblox` adds one, only when the person asks).
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The game's main level, laid out in code: what stands where, lit, as the game's first frame. A level is a React component
3
+ * the room renders into its world (for collision) and every page draws, the same on every target. The models it places
4
+ * are made in Blender, each its own `prefabs/<name>/<name>.blend`, whose export writes its component
5
+ * (`prefabs/ground/Ground.tsx`); their layout, their bodies, the lights and where the players come in are this file's.
6
+ * It is a document of its own in the editor, drawn as you change it. This file is the game's: change it.
7
+ */
8
+ import { RigidBody } from '@react-three/rapier';
9
+ import { SpawnPoint, stdSun } from '@volter-ai/std/level/client';
10
+ import { Ground } from '../prefabs/ground/Ground.tsx';
11
+
12
+ /** The level: the ground its bodies collide with, the sky's light and the sun, and the spawn point. */
13
+ export function MainLevel() {
14
+ return (
15
+ <group name="MainLevel">
16
+ <RigidBody type="fixed" colliders="cuboid">
17
+ <Ground />
18
+ </RigidBody>
19
+ <hemisphereLight name="Sky" args={['#dbe9ff', '#6a994e', 1]} />
20
+ <directionalLight name="Sun" ref={stdSun} position={[10, 20, 8]} intensity={3} castShadow />
21
+ <SpawnPoint name="Spawn" position={[0, 1, 0]} />
22
+ </group>
23
+ );
24
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Ground: prefabs/ground/ground.glb as a component, written by std level (std-dev) as gltfjsx writes one: the prefab's
3
+ * model, its bodies react-three-rapier's (from the Blender file's Rigid Body panel, each following its object through
4
+ * std's useFollowObject), its markers std's, pure as what the room renders is. The room renders it where its level
5
+ * places it (std's root of the room, its bodies react-three-rapier's own), as each page does; its behaviour, the room's
6
+ * half, is the game's (`this.std.onBehaviour`). Export it again when the .blend changes; edit the game's code, not this
7
+ * file.
8
+ */
9
+ import type * as THREE from 'three';
10
+ import { useGLTF } from '@react-three/drei';
11
+ import groundUrl from './ground.glb?url';
12
+
13
+ /** The glb's nodes and materials this component reads, typed as gltfjsx's `--types` types them. */
14
+ type GLTFResult = ReturnType<typeof useGLTF<string>> & { nodes: { Floor: THREE.Mesh }; materials: { Grass: THREE.Material } };
15
+
16
+ /** prefabs/ground/ground.glb's scene: its meshes and markers, its bodies around the nodes that collide. */
17
+ export function Ground(props: { name?: string; position?: [number, number, number]; rotation?: [number, number, number]; scale?: number | [number, number, number]; userData?: Record<string, unknown> }) {
18
+ const { nodes, materials } = useGLTF(groundUrl) as GLTFResult;
19
+ return (
20
+ <group name="Ground" {...props}>
21
+ <mesh name="Floor" geometry={nodes.Floor.geometry} material={materials.Grass} receiveShadow position={[0, -0.5, 0]} />
22
+ </group>
23
+ );
24
+ }