@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
@@ -1 +0,0 @@
1
- import{lM as i}from"./volter-sdk-D8o6TU4A.js";export{i as AlignmentGrid};
@@ -1 +0,0 @@
1
- import{cM as r}from"./volter-sdk-D8o6TU4A.js";export{r as AssetSlotPicker};
@@ -1 +0,0 @@
1
- import{lU as i,lV as s,lW as a,lX as d,lY as l,lZ as e}from"./volter-sdk-D8o6TU4A.js";export{i as BorderEditor,s as BorderRadiusEditor,a as isUniformBorder,d as isUniformRadius,l as uniformBorder,e as uniformRadius};
@@ -1 +0,0 @@
1
- import{j9 as a,lS as l}from"./volter-sdk-D8o6TU4A.js";export{a as ColorPicker,l as ColorSwatch};
@@ -1 +0,0 @@
1
- import{m5 as e}from"./volter-sdk-D8o6TU4A.js";export{e as CurveEditor};
@@ -1 +0,0 @@
1
- import{m9 as e}from"./volter-sdk-D8o6TU4A.js";export{e as FontPicker};
@@ -1 +0,0 @@
1
- import{ma as e,mb as s,mc as t,md as d}from"./volter-sdk-D8o6TU4A.js";export{e as GradientEditor,s as GradientStopsTrack,t as composeGradient,d as parseGradient};
@@ -1 +0,0 @@
1
- import{lT as a}from"./volter-sdk-D8o6TU4A.js";export{a as ScrubbableInput};
@@ -1 +0,0 @@
1
- import{me as s,mf as m,mg as d,mh as S,mi as h,mj as r,mk as t}from"./volter-sdk-D8o6TU4A.js";export{s as DEFAULT_SHADOW,m as DEFAULT_TEXT_SHADOW,d as ShadowEditor,S as ShadowListEditor,h as TextShadowEditor,r as composeShadows,t as parseShadows};
@@ -1 +0,0 @@
1
- import{lN as o,ja as l,lO as r,lP as g,jc as b,lQ as T,lR as e,jb as h}from"./volter-sdk-D8o6TU4A.js";export{o as colorToString,l as hexToRgb,r as hslToRgb,g as hsvToRgb,b as parseAlpha,T as rgbStringToHex,e as rgbToHsv,h as toHex};
@@ -1 +0,0 @@
1
- import{l_ as s,l$ as m,m0 as t,m1 as l,m2 as n,m3 as o,m4 as r}from"./volter-sdk-D8o6TU4A.js";export{s as curveKeys,m as curveValueRange,t as deleteKey,l as moveKey,n as moveTangent,o as segmentEnd,r as splitAt};
@@ -1 +0,0 @@
1
- import{lM as e,cM as r,lU as o,lV as i,j9 as t,lS as l,m5 as m,me as d,mf as n,lF as c,lG as E,m6 as S,m9 as T,ma as u,mb as p,cH as g,lT as h,mg as F,mh as f,gQ as A,mi as L,lH as b,m7 as w,mc as H,mj as O,l_ as _,l$ as B,m0 as G,lI as j,lJ as k,lK as v,ja as y,lW as C,lX as D,m1 as R,m2 as U,jc as x,m8 as K,md as M,mk as W,lL as I,m3 as N,m4 as P,jb as V,lY as X,lZ as J}from"./volter-sdk-D8o6TU4A.js";export{e as AlignmentGrid,r as AssetSlotPicker,o as BorderEditor,i as BorderRadiusEditor,t as ColorPicker,l as ColorSwatch,m as CurveEditor,d as DEFAULT_SHADOW,n as DEFAULT_TEXT_SHADOW,c as FONT,E as FONT_MONO,S as FilterEditor,T as FontPicker,u as GradientEditor,p as GradientStopsTrack,g as LABEL_COL_WIDTH,h as ScrubbableInput,F as ShadowEditor,f as ShadowListEditor,A as THEME,L as TextShadowEditor,b as ToggleButton,w as composeFilter,H as composeGradient,O as composeShadows,_ as curveKeys,B as curveValueRange,G as deleteKey,j as fieldLabelStyle,k as fireChange,v as fireEnd,y as hexToRgb,C as isUniformBorder,D as isUniformRadius,R as moveKey,U as moveTangent,x as parseAlpha,K as parseFilterFunctions,M as parseGradient,W as parseShadows,I as rowStyle,N as segmentEnd,P as splitAt,V as toHex,X as uniformBorder,J as uniformRadius};
@@ -1 +0,0 @@
1
- import{lF as e,lG as s,cH as o,gQ as r,lH as t,lI as L,lJ as O,lK as T,lL as f}from"./volter-sdk-D8o6TU4A.js";export{e as FONT,s as FONT_MONO,o as LABEL_COL_WIDTH,r as THEME,t as ToggleButton,L as fieldLabelStyle,O as fireChange,T as fireEnd,f as rowStyle};
@@ -1 +0,0 @@
1
- import{e4 as o,l6 as a}from"./volter-sdk-D8o6TU4A.js";export{o as InteractiveEditScopeContext,a as useInteractiveEditScope};
@@ -1 +0,0 @@
1
- import{aq as r,as as s,at as e,ar as g}from"./volter-sdk-D8o6TU4A.js";export{r as Dialog,s as DialogBody,e as DialogFooter,g as DialogHeader};
@@ -1 +0,0 @@
1
- import{cz as e,al as l}from"./volter-sdk-D8o6TU4A.js";export{e as FieldGroup,l as FieldRow};
@@ -1 +0,0 @@
1
- import{k$ as r}from"./volter-sdk-D8o6TU4A.js";export{r as EditorListButton};
@@ -1 +0,0 @@
1
- import{iU as r}from"./volter-sdk-D8o6TU4A.js";export{r as StateSurface};
@@ -1 +0,0 @@
1
- import{fB as a,jP as e,jO as t,en as d}from"./volter-sdk-D8o6TU4A.js";export{a as DropIndicator,e as EditorBanner,t as EditorPopover,d as EditorSurface};
@@ -1 +0,0 @@
1
- import{l0 as r,l1 as t}from"./volter-sdk-D8o6TU4A.js";export{r as EditorTab,t as EditorTabList};
@@ -1 +0,0 @@
1
- import{eo as r,gX as l,jR as t,eq as i,l2 as s}from"./volter-sdk-D8o6TU4A.js";export{r as EditorToolbar,l as FloatingToolbar,t as SplitButtonGroup,i as ToolbarDivider,s as ToolbarGroup};
@@ -1 +0,0 @@
1
- import{l3 as o,l4 as t}from"./volter-sdk-D8o6TU4A.js";export{o as EditorTree,t as EditorTreeRow};
@@ -1 +0,0 @@
1
- import{hr as r,hs as u}from"./volter-sdk-D8o6TU4A.js";export{r as AnchoredMenu,u as MenuSubmenu};
@@ -1 +0,0 @@
1
- import{an as n,cF as a}from"./volter-sdk-D8o6TU4A.js";export{n as Button,a as IconButton};
@@ -1 +0,0 @@
1
- import{kz as p}from"./volter-sdk-D8o6TU4A.js";export{p as ColorInput};
@@ -1 +0,0 @@
1
- import{cI as a}from"./volter-sdk-D8o6TU4A.js";export{a as DraftTextInput};
@@ -1 +0,0 @@
1
- import{gg as r,cf as s}from"./volter-sdk-D8o6TU4A.js";export{r as DisclosureIcon,s as EditorIcon};
@@ -1 +0,0 @@
1
- import{ap as t,cB as s,l7 as c,jE as p,cy as n,cK as o,et as l}from"./volter-sdk-D8o6TU4A.js";export{t as Checkbox,s as ColorSwatchInput,c as FileInput,p as RangeInput,n as Select,o as TextArea,l as TextInput};
@@ -1 +0,0 @@
1
- import{lC as o}from"./volter-sdk-D8o6TU4A.js";export{o as HoverPreview};
@@ -1 +0,0 @@
1
- import{lD as p}from"./volter-sdk-D8o6TU4A.js";export{p as JsonInput};
@@ -1 +0,0 @@
1
- import{kZ as i,gq as e,gp as k,k6 as n}from"./volter-sdk-D8o6TU4A.js";export{i as Actions,e as Divider,k as Inline,n as Stack};
@@ -1 +0,0 @@
1
- import{ge as r,gf as s,gm as g,gl as u,l5 as n}from"./volter-sdk-D8o6TU4A.js";export{r as Menu,s as MenuItem,g as MenuSeparator,u as MenuTrigger,n as focusFirstMenuItem};
@@ -1 +0,0 @@
1
- import{cA as m}from"./volter-sdk-D8o6TU4A.js";export{m as NumberInput};
@@ -1 +0,0 @@
1
- import{ff as e}from"./volter-sdk-D8o6TU4A.js";export{e as Panel};
@@ -1 +0,0 @@
1
- import{fq as r}from"./volter-sdk-D8o6TU4A.js";export{r as SectionHeader};
@@ -1 +0,0 @@
1
- import{k_ as m,am as o}from"./volter-sdk-D8o6TU4A.js";export{m as Keycap,o as Text};
@@ -1 +0,0 @@
1
- import{gd as r}from"./volter-sdk-D8o6TU4A.js";export{r as ThemeRootPortal};
@@ -1 +0,0 @@
1
- import{hj as r}from"./volter-sdk-D8o6TU4A.js";export{r as Tooltip};
@@ -1 +0,0 @@
1
- import{cJ as o}from"./volter-sdk-D8o6TU4A.js";export{o as Vec3Input};
@@ -1 +0,0 @@
1
- import{gb as p}from"./volter-sdk-D8o6TU4A.js";export{p as clampRectToViewport};
@@ -1 +0,0 @@
1
- import{f0 as e}from"./volter-sdk-D8o6TU4A.js";export{e as editorIcons};
@@ -1 +0,0 @@
1
- import{lE as l}from"./volter-sdk-D8o6TU4A.js";export{l as panelHeaderStyle};
@@ -1 +0,0 @@
1
- import{l8 as e,J as l,kE as t,l9 as i,la as o,lb as r,G as n,lc as c,b5 as d,ce as E,ga as g,ld as h,b7 as m,le as u,lf as S,lg as f,lh as M,li as T,lj as V,iW as b,lk as p,ll as R,iV as _,lm as z,H as A,ln as O,lo as D,gh as k,lp as w,lq as G,lr as I,ls as x,lt as y,lu as H,lv as W,k as N,fp as B,lw as C,lx as j,ly as q,b3 as v,t as F,lz as J,lA as L,lB as Y,ft as K}from"./volter-sdk-D8o6TU4A.js";export{e as EDITOR_CATEGORY_NAMES,l as EDITOR_REGION_NAMES,t as EDITOR_THEME_CLASS,i as STAGE_WORD_MODES,o as accent,r as accentMuted,n as applyEditorTheme,c as areaEmbossValue,d as bg,E as border,g as chromeSize,h as controlSize,m as danger,u as dangerFaint,S as dangerMuted,f as dynamic,M as dynamicBg,T as editorThemeVariables,V as focusRing,b as fontMono,p as fontSans,R as fontSize,_ as fontSizeVar,z as fontWeight,A as graphiteDarkEditorTheme,O as iconSize,D as lineHeight,k as lineHeightVar,w as motion,G as motionVar,I as radius,x as regionRowAltValue,y as scrim,H as selection,W as shadow,N as space,B as spaceVar,C as strokeWidth,j as success,q as successMuted,v as text,F as themeVars,J as usesGlassMaterial,L as warn,Y as warnMuted,K as zIndex};
@@ -1 +0,0 @@
1
- import{ft as o}from"./volter-sdk-D8o6TU4A.js";export{o as zIndex};
@@ -1 +0,0 @@
1
- import{i6 as e,nP as t,nQ as l}from"./volter-sdk-D8o6TU4A.js";export{e as setWorkerCallMeter,t as tabStallMetrics,l as workerCallTabMetrics};
@@ -1 +0,0 @@
1
- import{ok as C,hC as E,hH as D,hB as O,ol as S}from"./volter-sdk-D8o6TU4A.js";export{C as CANVAS_COMPONENTS_DOCUMENT_ID,E as CANVAS_SCENE_DOCUMENT_ID,D as PINNED_ASYNC_DOCUMENT_IDS,O as SCENE_DOCUMENT_ID,S as UI_COMPONENTS_DOCUMENT_ID};
@@ -1 +0,0 @@
1
- import{bD as o,bE as s,bJ as a,az as t,bK as n,iO as r,em as i,v as p,iX as u,u as D,x as m,hK as k,ij as W,iK as b,bF as l,bS as v,eu as S,bb as K}from"./volter-sdk-D8o6TU4A.js";export{o as WORKSPACE_DOCUMENT_KINDS,s as activateWorkspaceDocument,a as activeWorkspaceDocument,t as activeWorkspaceDocumentId,n as activeWorkspaceDocumentSelection,r as activeWorkspaceDocumentViewId,i as closeAllWorkspaceDocuments,p as closeWorkspaceDocument,u as notifyWorkspaceDocumentSelectionChanged,D as openWorkspaceDocument,m as openWorkspaceDocuments,k as registerWorkspaceDocumentSelection,W as restorePinnedWorkspaceDocumentActivation,b as setActiveWorkspaceDocumentView,l as setWorkspaceDocumentTitle,v as subscribeWorkspaceDocuments,S as workspaceDocumentRegistryVersion,K as workspaceDocumentSelection};
@@ -1 +0,0 @@
1
- import{n as s,ii as o,ik as t}from"./volter-sdk-D8o6TU4A.js";export{s as registerWorkspaceDocumentRestorer,o as workspaceDocumentRestorerEntries,t as workspaceDocumentRestorers};
@@ -1 +0,0 @@
1
- import{c0 as o}from"./volter-sdk-D8o6TU4A.js";export{o as WORKSPACE_STATIC_PANELS};
@@ -1 +0,0 @@
1
- import{V as a,iy as r,iz as e,iP as i}from"./volter-sdk-D8o6TU4A.js";export{a as registerWorkspaceStatus,r as subscribeWorkspaceStatus,e as workspaceStatusContributions,i as workspaceStatusRegistryVersion};
@@ -1 +0,0 @@
1
- import{iD as a,c4 as e,Z as t,cb as r,f1 as l,mB as c}from"./volter-sdk-D8o6TU4A.js";export{a as availableUtilityFingerprint,e as availableWorkspaceUtilities,t as registerWorkspaceUtility,r as subscribeWorkspaceUtilities,l as workspaceUtilityRegistryVersion,c as workspaceUtilitySection};
@@ -1 +0,0 @@
1
- import{gI as s,gu as t,gv as e,gB as r}from"./volter-sdk-D8o6TU4A.js";export{s as getRootCanvasViewport,t as resetRootCanvasViewport,e as setRootCanvasViewport,r as subscribeRootCanvasViewport};
@@ -1 +0,0 @@
1
- import{hI as e,gH as s,gG as t,eh as r,nX as n,hv as R,nY as g,gP as l,gA as P}from"./volter-sdk-D8o6TU4A.js";export{e as createRootViewController,s as getRootPan,t as panTransformValue,r as resetRootPan,n as setRootPan,R as setRootView,g as setRootZoom,l as sharedRootViewController,P as subscribeRootPan};
@@ -1 +0,0 @@
1
- import{mS as N,dc as _,mT as s,mU as L,mV as T,d_ as O}from"./volter-sdk-D8o6TU4A.js";export{N as EPHEMERAL_DESTINATION,_ as LIVE_ONLY_ACK,s as LIVE_ONLY_DESTINATION,L as NO_PERSISTABLE_CHILD_DESTINATION,T as resolvesLiveOnly,O as runWritePipe};
@@ -1 +0,0 @@
1
- import{c as t,_ as e}from"./client-Dj2xr2fw.js";import"./volter-sdk-D8o6TU4A.js";const o=t??e,a=o.createRoot,c=o.hydrateRoot,n=o.version;export{a as createRoot,o as default,c as hydrateRoot,n as version};
@@ -1 +0,0 @@
1
- import{_ as t}from"./three.module-JoAAxMWl.js";import"./volter-shared-three-core-DEsIwtOu.js";const e=t,r=e.ACESFilmicToneMapping,a=e.AddEquation,c=e.AddOperation,s=e.AdditiveAnimationBlendMode,i=e.AdditiveBlending,l=e.AgXToneMapping,p=e.AlphaFormat,m=e.AlwaysCompare,u=e.AlwaysDepth,C=e.AlwaysStencilFunc,d=e.AmbientLight,S=e.AnimationAction,T=e.AnimationClip,g=e.AnimationLoader,_=e.AnimationMixer,F=e.AnimationObjectGroup,G=e.AnimationUtils,A=e.ArcCurve,M=e.ArrayCamera,h=e.ArrowHelper,B=e.AttachedBindMode,R=e.Audio,L=e.AudioAnalyser,y=e.AudioContext,D=e.AudioListener,f=e.AudioLoader,E=e.AxesHelper,x=e.BackSide,b=e.BasicDepthPacking,P=e.BasicShadowMap,I=e.BatchedMesh,N=e.BezierInterpolant,U=e.Bone,O=e.BooleanKeyframeTrack,v=e.Box2,k=e.Box3,q=e.Box3Helper,w=e.BoxGeometry,H=e.BoxHelper,V=e.BufferAttribute,W=e.BufferGeometry,K=e.BufferGeometryLoader,z=e.ByteType,Q=e.Cache,X=e.Camera,j=e.CameraHelper,Z=e.CanvasTexture,J=e.CapsuleGeometry,Y=e.CatmullRomCurve3,$=e.CineonToneMapping,ee=e.CircleGeometry,te=e.ClampToEdgeWrapping,oe=e.Clock,ne=e.Color,re=e.ColorKeyframeTrack,ae=e.ColorManagement,ce=e.Compatibility,se=e.CompressedArrayTexture,ie=e.CompressedCubeTexture,le=e.CompressedTexture,pe=e.CompressedTextureLoader,me=e.ConeGeometry,ue=e.ConstantAlphaFactor,Ce=e.ConstantColorFactor,de=e.Controls,Se=e.CubeCamera,Te=e.CubeDepthTexture,ge=e.CubeReflectionMapping,_e=e.CubeRefractionMapping,Fe=e.CubeTexture,Ge=e.CubeTextureLoader,Ae=e.CubeUVReflectionMapping,Me=e.CubicBezierCurve,he=e.CubicBezierCurve3,Be=e.CubicInterpolant,Re=e.CullFaceBack,Le=e.CullFaceFront,ye=e.CullFaceFrontBack,De=e.CullFaceNone,fe=e.Curve,Ee=e.CurvePath,xe=e.CustomBlending,be=e.CustomToneMapping,Pe=e.CylinderGeometry,Ie=e.Cylindrical,Ne=e.Data3DTexture,Ue=e.DataArrayTexture,Oe=e.DataTexture,ve=e.DataTextureLoader,ke=e.DataUtils,qe=e.DecrementStencilOp,we=e.DecrementWrapStencilOp,He=e.DefaultLoadingManager,Ve=e.DepthFormat,We=e.DepthStencilFormat,Ke=e.DepthTexture,ze=e.DetachedBindMode,Qe=e.DirectionalLight,Xe=e.DirectionalLightHelper,je=e.DiscreteInterpolant,Ze=e.DodecahedronGeometry,Je=e.DoubleSide,Ye=e.DstAlphaFactor,$e=e.DstColorFactor,et=e.DynamicCopyUsage,tt=e.DynamicDrawUsage,ot=e.DynamicReadUsage,nt=e.EdgesGeometry,rt=e.EllipseCurve,at=e.EqualCompare,ct=e.EqualDepth,st=e.EqualStencilFunc,it=e.EquirectangularReflectionMapping,lt=e.EquirectangularRefractionMapping,pt=e.Euler,mt=e.EventDispatcher,ut=e.ExternalTexture,Ct=e.ExtrudeGeometry,dt=e.FileLoader,St=e.Float16BufferAttribute,Tt=e.Float32BufferAttribute,gt=e.FloatType,_t=e.Fog,Ft=e.FogExp2,Gt=e.FramebufferTexture,At=e.FrontSide,Mt=e.Frustum,ht=e.FrustumArray,Bt=e.GLBufferAttribute,Rt=e.GLSL1,Lt=e.GLSL3,yt=e.GreaterCompare,Dt=e.GreaterDepth,ft=e.GreaterEqualCompare,Et=e.GreaterEqualDepth,xt=e.GreaterEqualStencilFunc,bt=e.GreaterStencilFunc,Pt=e.GridHelper,It=e.Group,Nt=e.HTMLTexture,Ut=e.HalfFloatType,Ot=e.HemisphereLight,vt=e.HemisphereLightHelper,kt=e.IcosahedronGeometry,qt=e.ImageBitmapLoader,wt=e.ImageLoader,Ht=e.ImageUtils,Vt=e.IncrementStencilOp,Wt=e.IncrementWrapStencilOp,Kt=e.InstancedBufferAttribute,zt=e.InstancedBufferGeometry,Qt=e.InstancedInterleavedBuffer,Xt=e.InstancedMesh,jt=e.Int16BufferAttribute,Zt=e.Int32BufferAttribute,Jt=e.Int8BufferAttribute,Yt=e.IntType,$t=e.InterleavedBuffer,eo=e.InterleavedBufferAttribute,to=e.Interpolant,oo=e.InterpolateBezier,no=e.InterpolateDiscrete,ro=e.InterpolateLinear,ao=e.InterpolateSmooth,co=e.InterpolationSamplingMode,so=e.InterpolationSamplingType,io=e.InvertStencilOp,lo=e.KeepStencilOp,po=e.KeyframeTrack,mo=e.LOD,uo=e.LatheGeometry,Co=e.Layers,So=e.LessCompare,To=e.LessDepth,go=e.LessEqualCompare,_o=e.LessEqualDepth,Fo=e.LessEqualStencilFunc,Go=e.LessStencilFunc,Ao=e.Light,Mo=e.LightProbe,ho=e.LightShadow,Bo=e.Line,Ro=e.Line3,Lo=e.LineBasicMaterial,yo=e.LineCurve,Do=e.LineCurve3,fo=e.LineDashedMaterial,Eo=e.LineLoop,xo=e.LineSegments,bo=e.LinearFilter,Po=e.LinearInterpolant,Io=e.LinearMipMapLinearFilter,No=e.LinearMipMapNearestFilter,Uo=e.LinearMipmapLinearFilter,Oo=e.LinearMipmapNearestFilter,vo=e.LinearSRGBColorSpace,ko=e.LinearToneMapping,qo=e.LinearTransfer,wo=e.Loader,Ho=e.LoaderUtils,Vo=e.LoadingManager,Wo=e.LoopOnce,Ko=e.LoopPingPong,zo=e.LoopRepeat,Qo=e.MOUSE,Xo=e.Material,jo=e.MaterialBlending,Zo=e.MaterialLoader,Jo=e.MathUtils,Yo=e.Matrix2,$o=e.Matrix3,en=e.Matrix4,tn=e.MaxEquation,on=e.Mesh,nn=e.MeshBasicMaterial,rn=e.MeshDepthMaterial,an=e.MeshDistanceMaterial,cn=e.MeshLambertMaterial,sn=e.MeshMatcapMaterial,ln=e.MeshNormalMaterial,pn=e.MeshPhongMaterial,mn=e.MeshPhysicalMaterial,un=e.MeshStandardMaterial,Cn=e.MeshToonMaterial,dn=e.MinEquation,Sn=e.MirroredRepeatWrapping,Tn=e.MixOperation,gn=e.MultiplyBlending,_n=e.MultiplyOperation,Fn=e.NearestFilter,Gn=e.NearestMipMapLinearFilter,An=e.NearestMipMapNearestFilter,Mn=e.NearestMipmapLinearFilter,hn=e.NearestMipmapNearestFilter,Bn=e.NeutralToneMapping,Rn=e.NeverCompare,Ln=e.NeverDepth,yn=e.NeverStencilFunc,Dn=e.NoBlending,fn=e.NoColorSpace,En=e.NoNormalPacking,xn=e.NoToneMapping,bn=e.NormalAnimationBlendMode,Pn=e.NormalBlending,In=e.NormalGAPacking,Nn=e.NormalRGPacking,Un=e.NotEqualCompare,On=e.NotEqualDepth,vn=e.NotEqualStencilFunc,kn=e.NumberKeyframeTrack,qn=e.Object3D,wn=e.ObjectLoader,Hn=e.ObjectSpaceNormalMap,Vn=e.OctahedronGeometry,Wn=e.OneFactor,Kn=e.OneMinusConstantAlphaFactor,zn=e.OneMinusConstantColorFactor,Qn=e.OneMinusDstAlphaFactor,Xn=e.OneMinusDstColorFactor,jn=e.OneMinusSrcAlphaFactor,Zn=e.OneMinusSrcColorFactor,Jn=e.OrthographicCamera,Yn=e.PCFShadowMap,$n=e.PCFSoftShadowMap,er=e.PMREMGenerator,tr=e.Path,or=e.PerspectiveCamera,nr=e.Plane,rr=e.PlaneGeometry,ar=e.PlaneHelper,cr=e.PointLight,sr=e.PointLightHelper,ir=e.Points,lr=e.PointsMaterial,pr=e.PolarGridHelper,mr=e.PolyhedronGeometry,ur=e.PositionalAudio,Cr=e.PropertyBinding,dr=e.PropertyMixer,Sr=e.QuadraticBezierCurve,Tr=e.QuadraticBezierCurve3,gr=e.Quaternion,_r=e.QuaternionKeyframeTrack,Fr=e.QuaternionLinearInterpolant,Gr=e.R11_EAC_Format,Ar=e.RED_GREEN_RGTC2_Format,Mr=e.RED_RGTC1_Format,hr=e.REVISION,Br=e.RG11_EAC_Format,Rr=e.RGBADepthPacking,Lr=e.RGBAFormat,yr=e.RGBAIntegerFormat,Dr=e.RGBA_ASTC_10x10_Format,fr=e.RGBA_ASTC_10x5_Format,Er=e.RGBA_ASTC_10x6_Format,xr=e.RGBA_ASTC_10x8_Format,br=e.RGBA_ASTC_12x10_Format,Pr=e.RGBA_ASTC_12x12_Format,Ir=e.RGBA_ASTC_4x4_Format,Nr=e.RGBA_ASTC_5x4_Format,Ur=e.RGBA_ASTC_5x5_Format,Or=e.RGBA_ASTC_6x5_Format,vr=e.RGBA_ASTC_6x6_Format,kr=e.RGBA_ASTC_8x5_Format,qr=e.RGBA_ASTC_8x6_Format,wr=e.RGBA_ASTC_8x8_Format,Hr=e.RGBA_BPTC_Format,Vr=e.RGBA_ETC2_EAC_Format,Wr=e.RGBA_PVRTC_2BPPV1_Format,Kr=e.RGBA_PVRTC_4BPPV1_Format,zr=e.RGBA_S3TC_DXT1_Format,Qr=e.RGBA_S3TC_DXT3_Format,Xr=e.RGBA_S3TC_DXT5_Format,jr=e.RGBDepthPacking,Zr=e.RGBFormat,Jr=e.RGBIntegerFormat,Yr=e.RGB_BPTC_SIGNED_Format,$r=e.RGB_BPTC_UNSIGNED_Format,ea=e.RGB_ETC1_Format,ta=e.RGB_ETC2_Format,oa=e.RGB_PVRTC_2BPPV1_Format,na=e.RGB_PVRTC_4BPPV1_Format,ra=e.RGB_S3TC_DXT1_Format,aa=e.RGDepthPacking,ca=e.RGFormat,sa=e.RGIntegerFormat,ia=e.RawShaderMaterial,la=e.Ray,pa=e.Raycaster,ma=e.RectAreaLight,ua=e.RedFormat,Ca=e.RedIntegerFormat,da=e.ReinhardToneMapping,Sa=e.RenderObjectRefreshType,Ta=e.RenderTarget,ga=e.RenderTarget3D,_a=e.RepeatWrapping,Fa=e.ReplaceStencilOp,Ga=e.ReverseSubtractEquation,Aa=e.RingGeometry,Ma=e.SIGNED_R11_EAC_Format,ha=e.SIGNED_RED_GREEN_RGTC2_Format,Ba=e.SIGNED_RED_RGTC1_Format,Ra=e.SIGNED_RG11_EAC_Format,La=e.SRGBColorSpace,ya=e.SRGBTransfer,Da=e.Scene,fa=e.ShaderChunk,Ea=e.ShaderLib,xa=e.ShaderMaterial,ba=e.ShadowMaterial,Pa=e.Shape,Ia=e.ShapeGeometry,Na=e.ShapePath,Ua=e.ShapeUtils,Oa=e.ShortType,va=e.Skeleton,ka=e.SkeletonHelper,qa=e.SkinnedMesh,wa=e.Source,Ha=e.Sphere,Va=e.SphereGeometry,Wa=e.Spherical,Ka=e.SphericalHarmonics3,za=e.SplineCurve,Qa=e.SpotLight,Xa=e.SpotLightHelper,ja=e.Sprite,Za=e.SpriteMaterial,Ja=e.SrcAlphaFactor,Ya=e.SrcAlphaSaturateFactor,$a=e.SrcColorFactor,ec=e.StaticCopyUsage,tc=e.StaticDrawUsage,oc=e.StaticReadUsage,nc=e.StereoCamera,rc=e.StreamCopyUsage,ac=e.StreamDrawUsage,cc=e.StreamReadUsage,sc=e.StringKeyframeTrack,ic=e.SubtractEquation,lc=e.SubtractiveBlending,pc=e.TOUCH,mc=e.TangentSpaceNormalMap,uc=e.TetrahedronGeometry,Cc=e.Texture,dc=e.TextureLoader,Sc=e.TextureSource,Tc=e.TextureUtils,gc=e.Timer,_c=e.TimestampQuery,Fc=e.TorusGeometry,Gc=e.TorusKnotGeometry,Ac=e.Triangle,Mc=e.TriangleFanDrawMode,hc=e.TriangleStripDrawMode,Bc=e.TrianglesDrawMode,Rc=e.TubeGeometry,Lc=e.UVMapping,yc=e.Uint16BufferAttribute,Dc=e.Uint32BufferAttribute,fc=e.Uint8BufferAttribute,Ec=e.Uint8ClampedBufferAttribute,xc=e.Uniform,bc=e.UniformsGroup,Pc=e.UniformsLib,Ic=e.UniformsUtils,Nc=e.UnsignedByteType,Uc=e.UnsignedInt101111Type,Oc=e.UnsignedInt248Type,vc=e.UnsignedInt5999Type,kc=e.UnsignedIntType,qc=e.UnsignedShort4444Type,wc=e.UnsignedShort5551Type,Hc=e.UnsignedShortType,Vc=e.VSMShadowMap,Wc=e.Vector2,Kc=e.Vector3,zc=e.Vector4,Qc=e.VectorKeyframeTrack,Xc=e.VideoFrameTexture,jc=e.VideoTexture,Zc=e.WebGL3DRenderTarget,Jc=e.WebGLArrayRenderTarget,Yc=e.WebGLCoordinateSystem,$c=e.WebGLCubeRenderTarget,es=e.WebGLRenderTarget,ts=e.WebGLRenderer,os=e.WebGLUtils,ns=e.WebGPUCoordinateSystem,rs=e.WebXRController,as=e.WireframeGeometry,cs=e.WrapAroundEnding,ss=e.ZeroCurvatureEnding,is=e.ZeroFactor,ls=e.ZeroSlopeEnding,ps=e.ZeroStencilOp,ms=e.createCanvasElement,us=e.error,Cs=e.getConsoleFunction,ds=e.log,Ss=e.setConsoleFunction,Ts=e.warn,gs=e.warnOnce;export{r as ACESFilmicToneMapping,a as AddEquation,c as AddOperation,s as AdditiveAnimationBlendMode,i as AdditiveBlending,l as AgXToneMapping,p as AlphaFormat,m as AlwaysCompare,u as AlwaysDepth,C as AlwaysStencilFunc,d as AmbientLight,S as AnimationAction,T as AnimationClip,g as AnimationLoader,_ as AnimationMixer,F as AnimationObjectGroup,G as AnimationUtils,A as ArcCurve,M as ArrayCamera,h as ArrowHelper,B as AttachedBindMode,R as Audio,L as AudioAnalyser,y as AudioContext,D as AudioListener,f as AudioLoader,E as AxesHelper,x as BackSide,b as BasicDepthPacking,P as BasicShadowMap,I as BatchedMesh,N as BezierInterpolant,U as Bone,O as BooleanKeyframeTrack,v as Box2,k as Box3,q as Box3Helper,w as BoxGeometry,H as BoxHelper,V as BufferAttribute,W as BufferGeometry,K as BufferGeometryLoader,z as ByteType,Q as Cache,X as Camera,j as CameraHelper,Z as CanvasTexture,J as CapsuleGeometry,Y as CatmullRomCurve3,$ as CineonToneMapping,ee as CircleGeometry,te as ClampToEdgeWrapping,oe as Clock,ne as Color,re as ColorKeyframeTrack,ae as ColorManagement,ce as Compatibility,se as CompressedArrayTexture,ie as CompressedCubeTexture,le as CompressedTexture,pe as CompressedTextureLoader,me as ConeGeometry,ue as ConstantAlphaFactor,Ce as ConstantColorFactor,de as Controls,Se as CubeCamera,Te as CubeDepthTexture,ge as CubeReflectionMapping,_e as CubeRefractionMapping,Fe as CubeTexture,Ge as CubeTextureLoader,Ae as CubeUVReflectionMapping,Me as CubicBezierCurve,he as CubicBezierCurve3,Be as CubicInterpolant,Re as CullFaceBack,Le as CullFaceFront,ye as CullFaceFrontBack,De as CullFaceNone,fe as Curve,Ee as CurvePath,xe as CustomBlending,be as CustomToneMapping,Pe as CylinderGeometry,Ie as Cylindrical,Ne as Data3DTexture,Ue as DataArrayTexture,Oe as DataTexture,ve as DataTextureLoader,ke as DataUtils,qe as DecrementStencilOp,we as DecrementWrapStencilOp,He as DefaultLoadingManager,Ve as DepthFormat,We as DepthStencilFormat,Ke as DepthTexture,ze as DetachedBindMode,Qe as DirectionalLight,Xe as DirectionalLightHelper,je as DiscreteInterpolant,Ze as DodecahedronGeometry,Je as DoubleSide,Ye as DstAlphaFactor,$e as DstColorFactor,et as DynamicCopyUsage,tt as DynamicDrawUsage,ot as DynamicReadUsage,nt as EdgesGeometry,rt as EllipseCurve,at as EqualCompare,ct as EqualDepth,st as EqualStencilFunc,it as EquirectangularReflectionMapping,lt as EquirectangularRefractionMapping,pt as Euler,mt as EventDispatcher,ut as ExternalTexture,Ct as ExtrudeGeometry,dt as FileLoader,St as Float16BufferAttribute,Tt as Float32BufferAttribute,gt as FloatType,_t as Fog,Ft as FogExp2,Gt as FramebufferTexture,At as FrontSide,Mt as Frustum,ht as FrustumArray,Bt as GLBufferAttribute,Rt as GLSL1,Lt as GLSL3,yt as GreaterCompare,Dt as GreaterDepth,ft as GreaterEqualCompare,Et as GreaterEqualDepth,xt as GreaterEqualStencilFunc,bt as GreaterStencilFunc,Pt as GridHelper,It as Group,Nt as HTMLTexture,Ut as HalfFloatType,Ot as HemisphereLight,vt as HemisphereLightHelper,kt as IcosahedronGeometry,qt as ImageBitmapLoader,wt as ImageLoader,Ht as ImageUtils,Vt as IncrementStencilOp,Wt as IncrementWrapStencilOp,Kt as InstancedBufferAttribute,zt as InstancedBufferGeometry,Qt as InstancedInterleavedBuffer,Xt as InstancedMesh,jt as Int16BufferAttribute,Zt as Int32BufferAttribute,Jt as Int8BufferAttribute,Yt as IntType,$t as InterleavedBuffer,eo as InterleavedBufferAttribute,to as Interpolant,oo as InterpolateBezier,no as InterpolateDiscrete,ro as InterpolateLinear,ao as InterpolateSmooth,co as InterpolationSamplingMode,so as InterpolationSamplingType,io as InvertStencilOp,lo as KeepStencilOp,po as KeyframeTrack,mo as LOD,uo as LatheGeometry,Co as Layers,So as LessCompare,To as LessDepth,go as LessEqualCompare,_o as LessEqualDepth,Fo as LessEqualStencilFunc,Go as LessStencilFunc,Ao as Light,Mo as LightProbe,ho as LightShadow,Bo as Line,Ro as Line3,Lo as LineBasicMaterial,yo as LineCurve,Do as LineCurve3,fo as LineDashedMaterial,Eo as LineLoop,xo as LineSegments,bo as LinearFilter,Po as LinearInterpolant,Io as LinearMipMapLinearFilter,No as LinearMipMapNearestFilter,Uo as LinearMipmapLinearFilter,Oo as LinearMipmapNearestFilter,vo as LinearSRGBColorSpace,ko as LinearToneMapping,qo as LinearTransfer,wo as Loader,Ho as LoaderUtils,Vo as LoadingManager,Wo as LoopOnce,Ko as LoopPingPong,zo as LoopRepeat,Qo as MOUSE,Xo as Material,jo as MaterialBlending,Zo as MaterialLoader,Jo as MathUtils,Yo as Matrix2,$o as Matrix3,en as Matrix4,tn as MaxEquation,on as Mesh,nn as MeshBasicMaterial,rn as MeshDepthMaterial,an as MeshDistanceMaterial,cn as MeshLambertMaterial,sn as MeshMatcapMaterial,ln as MeshNormalMaterial,pn as MeshPhongMaterial,mn as MeshPhysicalMaterial,un as MeshStandardMaterial,Cn as MeshToonMaterial,dn as MinEquation,Sn as MirroredRepeatWrapping,Tn as MixOperation,gn as MultiplyBlending,_n as MultiplyOperation,Fn as NearestFilter,Gn as NearestMipMapLinearFilter,An as NearestMipMapNearestFilter,Mn as NearestMipmapLinearFilter,hn as NearestMipmapNearestFilter,Bn as NeutralToneMapping,Rn as NeverCompare,Ln as NeverDepth,yn as NeverStencilFunc,Dn as NoBlending,fn as NoColorSpace,En as NoNormalPacking,xn as NoToneMapping,bn as NormalAnimationBlendMode,Pn as NormalBlending,In as NormalGAPacking,Nn as NormalRGPacking,Un as NotEqualCompare,On as NotEqualDepth,vn as NotEqualStencilFunc,kn as NumberKeyframeTrack,qn as Object3D,wn as ObjectLoader,Hn as ObjectSpaceNormalMap,Vn as OctahedronGeometry,Wn as OneFactor,Kn as OneMinusConstantAlphaFactor,zn as OneMinusConstantColorFactor,Qn as OneMinusDstAlphaFactor,Xn as OneMinusDstColorFactor,jn as OneMinusSrcAlphaFactor,Zn as OneMinusSrcColorFactor,Jn as OrthographicCamera,Yn as PCFShadowMap,$n as PCFSoftShadowMap,er as PMREMGenerator,tr as Path,or as PerspectiveCamera,nr as Plane,rr as PlaneGeometry,ar as PlaneHelper,cr as PointLight,sr as PointLightHelper,ir as Points,lr as PointsMaterial,pr as PolarGridHelper,mr as PolyhedronGeometry,ur as PositionalAudio,Cr as PropertyBinding,dr as PropertyMixer,Sr as QuadraticBezierCurve,Tr as QuadraticBezierCurve3,gr as Quaternion,_r as QuaternionKeyframeTrack,Fr as QuaternionLinearInterpolant,Gr as R11_EAC_Format,Ar as RED_GREEN_RGTC2_Format,Mr as RED_RGTC1_Format,hr as REVISION,Br as RG11_EAC_Format,Rr as RGBADepthPacking,Lr as RGBAFormat,yr as RGBAIntegerFormat,Dr as RGBA_ASTC_10x10_Format,fr as RGBA_ASTC_10x5_Format,Er as RGBA_ASTC_10x6_Format,xr as RGBA_ASTC_10x8_Format,br as RGBA_ASTC_12x10_Format,Pr as RGBA_ASTC_12x12_Format,Ir as RGBA_ASTC_4x4_Format,Nr as RGBA_ASTC_5x4_Format,Ur as RGBA_ASTC_5x5_Format,Or as RGBA_ASTC_6x5_Format,vr as RGBA_ASTC_6x6_Format,kr as RGBA_ASTC_8x5_Format,qr as RGBA_ASTC_8x6_Format,wr as RGBA_ASTC_8x8_Format,Hr as RGBA_BPTC_Format,Vr as RGBA_ETC2_EAC_Format,Wr as RGBA_PVRTC_2BPPV1_Format,Kr as RGBA_PVRTC_4BPPV1_Format,zr as RGBA_S3TC_DXT1_Format,Qr as RGBA_S3TC_DXT3_Format,Xr as RGBA_S3TC_DXT5_Format,jr as RGBDepthPacking,Zr as RGBFormat,Jr as RGBIntegerFormat,Yr as RGB_BPTC_SIGNED_Format,$r as RGB_BPTC_UNSIGNED_Format,ea as RGB_ETC1_Format,ta as RGB_ETC2_Format,oa as RGB_PVRTC_2BPPV1_Format,na as RGB_PVRTC_4BPPV1_Format,ra as RGB_S3TC_DXT1_Format,aa as RGDepthPacking,ca as RGFormat,sa as RGIntegerFormat,ia as RawShaderMaterial,la as Ray,pa as Raycaster,ma as RectAreaLight,ua as RedFormat,Ca as RedIntegerFormat,da as ReinhardToneMapping,Sa as RenderObjectRefreshType,Ta as RenderTarget,ga as RenderTarget3D,_a as RepeatWrapping,Fa as ReplaceStencilOp,Ga as ReverseSubtractEquation,Aa as RingGeometry,Ma as SIGNED_R11_EAC_Format,ha as SIGNED_RED_GREEN_RGTC2_Format,Ba as SIGNED_RED_RGTC1_Format,Ra as SIGNED_RG11_EAC_Format,La as SRGBColorSpace,ya as SRGBTransfer,Da as Scene,fa as ShaderChunk,Ea as ShaderLib,xa as ShaderMaterial,ba as ShadowMaterial,Pa as Shape,Ia as ShapeGeometry,Na as ShapePath,Ua as ShapeUtils,Oa as ShortType,va as Skeleton,ka as SkeletonHelper,qa as SkinnedMesh,wa as Source,Ha as Sphere,Va as SphereGeometry,Wa as Spherical,Ka as SphericalHarmonics3,za as SplineCurve,Qa as SpotLight,Xa as SpotLightHelper,ja as Sprite,Za as SpriteMaterial,Ja as SrcAlphaFactor,Ya as SrcAlphaSaturateFactor,$a as SrcColorFactor,ec as StaticCopyUsage,tc as StaticDrawUsage,oc as StaticReadUsage,nc as StereoCamera,rc as StreamCopyUsage,ac as StreamDrawUsage,cc as StreamReadUsage,sc as StringKeyframeTrack,ic as SubtractEquation,lc as SubtractiveBlending,pc as TOUCH,mc as TangentSpaceNormalMap,uc as TetrahedronGeometry,Cc as Texture,dc as TextureLoader,Sc as TextureSource,Tc as TextureUtils,gc as Timer,_c as TimestampQuery,Fc as TorusGeometry,Gc as TorusKnotGeometry,Ac as Triangle,Mc as TriangleFanDrawMode,hc as TriangleStripDrawMode,Bc as TrianglesDrawMode,Rc as TubeGeometry,Lc as UVMapping,yc as Uint16BufferAttribute,Dc as Uint32BufferAttribute,fc as Uint8BufferAttribute,Ec as Uint8ClampedBufferAttribute,xc as Uniform,bc as UniformsGroup,Pc as UniformsLib,Ic as UniformsUtils,Nc as UnsignedByteType,Uc as UnsignedInt101111Type,Oc as UnsignedInt248Type,vc as UnsignedInt5999Type,kc as UnsignedIntType,qc as UnsignedShort4444Type,wc as UnsignedShort5551Type,Hc as UnsignedShortType,Vc as VSMShadowMap,Wc as Vector2,Kc as Vector3,zc as Vector4,Qc as VectorKeyframeTrack,Xc as VideoFrameTexture,jc as VideoTexture,Zc as WebGL3DRenderTarget,Jc as WebGLArrayRenderTarget,Yc as WebGLCoordinateSystem,$c as WebGLCubeRenderTarget,es as WebGLRenderTarget,ts as WebGLRenderer,os as WebGLUtils,ns as WebGPUCoordinateSystem,rs as WebXRController,as as WireframeGeometry,cs as WrapAroundEnding,ss as ZeroCurvatureEnding,is as ZeroFactor,ls as ZeroSlopeEnding,ps as ZeroStencilOp,ms as createCanvasElement,e as default,us as error,Cs as getConsoleFunction,ds as log,Ss as setConsoleFunction,Ts as warn,gs as warnOnce};
@@ -1,10 +0,0 @@
1
- let le=0;class ue{constructor(n){this.work=n,this.job=++le,this.started=!1,this.finished=!1,this.sequence=0,this.expected=null,this.resume=null,this.waiter=null,this.ended=null}step(n){if(this.ended&&!this.waiter&&n===this.expected){const r=this.ended;return this.ended=null,this.expected=null,this.resume=null,"error"in r?Promise.reject(r.error):Promise.resolve({load:"done",value:r.value})}if(this.finished||this.waiter||(this.started?n!==this.expected||!this.resume:n!==void 0))return Promise.reject(new Error("Invalid or replayed load continuation"));const t=new Promise((r,s)=>{this.waiter={resolve:r,reject:s}});if(!this.started)this.started=!0,Promise.resolve().then(()=>this.work(r=>new Promise(s=>{this.resume=s,this.expected=`load:${this.job}:${++this.sequence}`;const o=this.waiter;this.waiter=null,o.resolve({load:"continue",token:this.expected,phase:r})}))).then(r=>{this.finished=!0;const s=this.waiter;this.waiter=null,s?s.resolve({load:"done",value:r}):this.ended={value:r}},r=>{this.finished=!0;const s=this.waiter;this.waiter=null,s?s.reject(r):(this.ended={error:r},console.warn("A Blender load failed between steps; the next step reports it:",r))});else{const r=this.resume;this.resume=null,this.expected=null,r()}return t}}function he(e,n){const t=e.getReader();let r,s=0;return new ReadableStream({async pull(o){try{if(!r||s===r.length){const a=await t.read();if(a.done){t.releaseLock(),o.close();return}r=a.value,s=0}await n();const i=Math.min(r.length,s+1024*1024);o.enqueue(r.subarray(s,i)),s=i}catch(i){await t.cancel(i).catch(()=>{}),o.error(i)}},async cancel(o){await t.cancel(o),t.releaseLock()}},{highWaterMark:0})}const G=1024*1024,fe={Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array},we=async e=>Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",e)),n=>n.toString(16).padStart(2,"0")).join("");async function pe(e,n){const t=[],r=JSON.stringify(e,(s,o)=>{if(!ArrayBuffer.isView(o))return o;const i=o.constructor.name;if(!Object.hasOwn(fe,i))throw new Error(`Unsupported frame column ${i}`);return t.push(new Uint8Array(o.buffer,o.byteOffset,o.byteLength)),{$frameColumn:t.length,type:i}});t.unshift(new TextEncoder().encode(r)),await n({kind:"begin",lengths:t.map(s=>s.byteLength)});for(const[s,o]of t.entries())for(let i=0;i<o.byteLength;i+=G){const a=o.slice(i,i+G),c=await we(a);await n({kind:"bytes",slot:s,offset:i,bytes:a,sha256:c})}return n({kind:"end"})}function B(e,n=!0){if(e instanceof Error)return(n?e.stack:void 0)??`${e.name}: ${e.message}`;if(typeof e=="object"&&e!==null){const t=e;if(typeof t.message=="string")return typeof t.name=="string"?`${t.name}: ${t.message}`:t.message;try{return JSON.stringify(e)??Object.prototype.toString.call(e)}catch{return Object.prototype.toString.call(e)}}return String(e)}const y="/work/.volter-session",ze=`${y}/session.py`,Ke=[`${y}/in`,`${y}/reply`],ne="/__editor/blender-wasm";function Ge(e){return e.startsWith("@@VOLTER-ERROR")?"error":e.startsWith("@@VOLTER-WARN")?"warn":"log"}function ye(e){return new URL(`${ne}/${e}`,import.meta.url).href}async function R(e,n,t){try{return await t()}catch(r){const s=B(r,!1);throw new Error(`Blender startup ${n} (${e}): ${s}`,{cause:r})}}async function me(){const e=ye("status"),n=await R(e,"fetch status",()=>fetch(e));return n.ok?R(e,"decode status JSON",()=>n.json()):{available:!1,skew:null,dir:null,sizes:{},encoded:{},missing:[`${ne}/status answered ${n.status}`]}}async function be(e){const n=await me();if(await e.ask({checkpoint:"artifact-status"}),!n.available)throw new Error(`The headless Blender WebAssembly build is not served by this editor: ${n.missing.join("; ")}`);if(n.skew==="wali"){const{startWaliBlenderEngine:r}=await R(import.meta.url,"import WALI engine module from",()=>import("./blender-wali-engine-xLHhm0KZ.js"));return r(e,n)}const{startEmscriptenBlenderEngine:t}=await R(import.meta.url,"import Emscripten engine module from",()=>import("./blender-emscripten-engine-Bl_j9xEY.js"));return t(e,n)}function ge(e){return e<200?1:e<5e3?5:25}const $e=e=>new Promise(n=>setTimeout(n,e)),Y=new TextDecoder;function Ye(e,n,t){let r=0,s=0;const o=new Set;async function i(l){for(const d of o)l.has(`${d}.done`)||(await e.unlink(`${y}/reply/${d}.json`),await e.unlink(`${y}/reply/${d}.done`),o.delete(d))}async function a(){let l;try{l=await e.readdir(`${y}/ask`)}catch{return!1}const d=new Set(l.filter(w=>w.endsWith(".done")));await i(d);let u=!1;for(const w of d){const m=w.slice(0,-5);if(Number(m)<=s)continue;s=Number(m);const h=JSON.parse(Y.decode(await e.readFile(`${y}/ask/${m}.json`)));let p;try{p=await n.ask(h)}catch(j){p={error:j instanceof Error?j.message:String(j)}}await Promise.all([e.writeFile(`${y}/reply/${m}.json`,JSON.stringify(p??null)),e.writeFile(`${y}/reply/${m}.done`,"1")]),o.add(m),u=!0}return u}async function c(l){const d=String(++r);await Promise.all([e.writeFile(`${y}/in/${d}.json`,JSON.stringify(l)),e.writeFile(`${y}/in/${d}.done`,"1")]);let u=performance.now();for(;;){if(await a()&&(u=performance.now()),await e.stat(`${y}/out/${d}.done`)){const h=JSON.parse(Y.decode(await e.readFile(`${y}/out/${d}.json`)));if(await e.unlink(`${y}/in/${d}.json`),await e.unlink(`${y}/in/${d}.done`),h.error)throw new Error(h.error);return h.result}const w=t?.();if(w)throw new Error(`Blender is gone, so this call will never be answered: ${w}. The session keeps its directory and its cached banner, so every later call would wait on the same missing answer; start a new program with \`blender-start {fresh: true}\` (\`VOLTER_BLENDER_FRESH_SESSION=1\` for the battery harness).`);const m=ge(performance.now()-u);await(e.changed?e.changed(m):$e(m))}}return{request:c}}const ve=256*1024,Ee=4*1024*1024,Se=(1<<20)-1,ke=(()=>{const e=new Uint32Array(256);let n=2654435769;for(let t=0;t<256;t+=1)n^=n<<13,n^=n>>>17,n^=n<<5,e[t]=n>>>0;return e})();function je(e){const n=[];let t=0;for(;t<e.length;){const r=Math.min(e.length,t+Ee);let s=r,o=0;for(let i=t+Math.min(ve,r-t);i<r;i+=1)if(o=(o<<1)+ke[e[i]]>>>0,(o&Se)===0){s=i+1;break}n.push(s),t=s}return n}async function Te(e){const n=[];let t=0;for(const r of je(e)){const s=new Uint8Array(await crypto.subtle.digest("SHA-256",e.slice(t,r)));n.push({hash:Array.from(s,o=>o.toString(16).padStart(2,"0")).join(""),start:t,end:r}),t=r}return n}const I=e=>typeof e=="object"&&e!==null&&typeof e.offset=="number"&&typeof e.length=="number"&&typeof e.dtype=="string"&&typeof e.count=="number"&&typeof e.stride=="number",Ae={f32:e=>new Float32Array(e.buffer,e.byteOffset,e.byteLength>>2),f64:e=>new Float64Array(e.buffer,e.byteOffset,e.byteLength>>3),u32:e=>new Uint32Array(e.buffer,e.byteOffset,e.byteLength>>2),i32:e=>new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),u16:e=>new Uint16Array(e.buffer,e.byteOffset,e.byteLength>>1),i16:e=>new Int16Array(e.buffer,e.byteOffset,e.byteLength>>1),u8:e=>e,i8:e=>new Int8Array(e.buffer,e.byteOffset,e.byteLength)};function Oe(e,n,t){const r=Ae[t.dtype];if(!r)throw new Error(`Blender frame column ${n}: unknown dtype ${t.dtype}`);const{offset:s,length:o}=t;if(s<0||o<0||s+o>e.byteLength)throw new Error(`Blender frame column ${n}: bytes ${s}..${s+o} lie outside the ${e.byteLength}-byte export arena`);const i=e.subarray(s,s+o).slice(),a=r(i),c=t.count*t.stride;if(a.length!==c)throw new Error(`Blender frame column ${n}: ${a.length} values, ${c} declared (${t.count} x ${t.stride})`);return a}function U(e,n){const t=(r,s)=>{if(I(r))return Oe(e,s,r);if(Array.isArray(r))return r.map(o=>t(o,s));if(typeof r=="object"&&r!==null){const o={};for(const[i,a]of Object.entries(r))o[i]=t(a,i);return o}return r};return t(n,"")}async function D(e,n){const t=async(r,s)=>{if(I(r)){const{offset:o,length:i,dtype:a}=r;if(o<0||i<0||o+i>e.byteLength)throw new Error(`Blender frame column ${s}: bytes ${o}..${o+i} lie outside the ${e.byteLength}-byte export arena`);const c=e.subarray(o,o+i).slice(),l=await crypto.subtle.digest("SHA-256",c),d=[...new Uint8Array(l)].map(u=>u.toString(16).padStart(2,"0")).join("");return{dtype:a,length:i,sha256:d}}if(Array.isArray(r))return Promise.all(r.map(o=>t(o,s)));if(typeof r=="object"&&r!==null){const o={};for(const[i,a]of Object.entries(r))o[i]=await t(a,i);return o}return r};return t(n,"")}const $=e=>self.postMessage(e),k=(e,n)=>$({op:"log",level:e,text:n});let T=null,A=null,Be=0;const M=new Map;async function J(e){return await pe(e,async n=>{const t=e;await v?.(`frame-transfer/${t.op??"unknown"}/${t.mesh!==void 0?"mesh":t.image!==void 0?"image":"manifest"}/${n.kind}`);const r=++Be;return new Promise((s,o)=>{M.set(r,{resolve:s,reject:o});try{self.postMessage({op:"frame-stream",id:r,chunk:n},n.kind==="bytes"?[n.bytes.buffer]:[])}catch(i){M.delete(r),o(i)}})})}function Re(e,n,t){return J({op:"present",frame:e,description:n,...t?{capture:t}:{}})}let f=null,N=null,v=null,E=null,W=!1,X=null,Z=Promise.resolve();function Pe(e){const n=Z.then(e);return Z=n.catch(()=>{}),n}let S=null;async function Ne(e,n){const t=new Map,r=async(s,o)=>{if(I(s)){t.set(s.offset,{typed:U(e,{[o]:s})[o],description:await D(e,s)});return}if(Array.isArray(s))for(const i of s)await r(i,o);else if(typeof s=="object"&&s!==null)for(const[i,a]of Object.entries(s))await r(a,i)};return await r(n,""),t}function xe(e,n){const t=r=>{const s=(o,i)=>{if(I(o)){const c=e.columns.get(o.offset);if(!c)throw new Error(`Blender frame column ${i.join(".")}: not in the held frame`);return c[r]}if(Array.isArray(o))return o.map(c=>s(c,i));if(typeof o!="object"||o===null)return o;if(o.deferred===!0){const[c,l]=i.slice(-2),d=(c==="meshes"?e.meshes:e.images).get(l);if(!d)throw new Error(`Blender frame ${c} ${l}: deferred and never pulled`);return d[r]}const a={};for(const[c,l]of Object.entries(o)){const d=s(l,[...i,c]);d!==void 0&&(a[c]=d)}return a};return s(n,[])};return{typed:t("typed"),description:t("description")}}function x(e){W=e,$({op:"document-dirty",dirty:e})}async function re(e,n){let t;try{t=await f.request({op:"save-document"}),n("save")}catch(r){throw new Error(`The Blender document ${e} could not be saved: ${B(r)}`)}if(t?.saved===!1&&t.reason==="not-the-document"){const r=`${e} is not being saved: Blender holds ${t.holds??"another file"}, not its model. Save As a .blend under src/models to keep this as a document of its own, or reopen ${e} to return to it.`;return $({op:"document-saving",document:e,note:r}),k("warn",`@@VOLTER-WARN ${r}`),null}if(!t?.saved||typeof t.path!="string")throw new Error(`Blender did not save the document ${e}`);try{const r=await f.files.readFile(t.path);return n("read"),{path:t.path,bytes:r}}catch(r){throw new Error(`The Blender document ${e} could not be read back out of the engine: ${B(r)}`)}}async function Me(){if(!f||E===null)return!1;const e=E,n={};let t=performance.now();const r=a=>{const c=performance.now();n[a]=Math.round(c-t),t=c},s=await re(e,r);if(s===null)return x(!1),!1;const{bytes:o}=s;g.delete(s.path);let i=0;try{const a=await Te(o);r("chunk");const c=`path=${encodeURIComponent(e)}`,l=JSON.stringify({chunks:a.map(({hash:d,start:u,end:w})=>[d,w-u])});for(let d=0;;d+=1){const u=await fetch(`/__editor/blender-document?${c}`,{method:"POST",headers:{"content-type":"application/json"},body:l}),w=await u.json().catch(()=>null);if(r(`manifest${d}`),!u.ok)throw new Error(`HTTP ${u.status} ${w?.error??""}`);if(w?.ok){for(const[h,p]of Object.entries(w.ms??{}))n[`server.${h}`]=p;break}if(d===2||!Array.isArray(w?.missing))throw new Error(`the server still lacks ${w?.missing?.length??"?"} chunks`);const m=new Set(w.missing);for(const h of a){if(!m.delete(h.hash))continue;const p=await fetch(`/__editor/blender-document-chunk?${c}&hash=${h.hash}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([o.subarray(h.start,h.end)])});if(!p.ok)throw new Error(`HTTP ${p.status} ${await p.text().catch(()=>"")}`);i+=h.end-h.start}r(`send${d}`)}}catch(a){throw new Error(`The Blender document ${e} was not written to the project: ${B(a)}`)}return x(!1),$({op:"document-saving",document:e,note:null}),k("log",`@@VOLTER-DOCUMENT ${JSON.stringify({path:e,bytes:o.length,sent:i,ms:n})}`),!0}async function Q(e){if(!f||!A||E===null)throw new Error("The Blender session holds no document to reopen");const n=`${A}/${E}`;g.delete(n);try{await f.files.unlink(n)}catch{}await L(f.files,A);const t=g.get(n)?.host;if(t===void 0)throw new Error(`${E} could not be read from the project`);e&&(await f.files.writeFile(n,e),g.set(n,{host:t,engine:await se(f.files,n)})),await f.request({op:"reopen-document"}),x(e!==void 0)}async function Le(e,n){const t={engine:null},r=await be({project:e,log:k,ask:async({frame:o,hold:i,mesh:a,image:c,piece:l,present:d,capture:u,saveDue:w,checkpoint:m,evaluation:h})=>{if(typeof m=="string")return await v?.(m),{};if(!t.engine)throw new Error("The Blender session presented before it started");if(w&&E!==null){const b=o?.revision;(!W||typeof b=="number"&&b!==X)&&(typeof b=="number"&&(X=b),x(!0))}const p=await t.engine.readArena();if(i!==void 0){const b=i;return S={...h?{evaluation:h}:{},session:b.session,revision:b.revision,columns:await Ne(p,i),meshes:new Map,images:new Map},await J({op:"stage",evaluation:h,session:b.session,revision:b.revision}),{}}if(a!==void 0||c!==void 0){if(!S)throw new Error(`The Blender session sent ${a??c} before its frame`);const b=l?.encodedPath;let O;if(c!==void 0&&typeof b=="string"){const{encodedPath:z,...K}=l,F=(await t.engine.files.readFile(b)).slice(),ae=new Uint8Array(await crypto.subtle.digest("SHA-256",F)),ce=Array.from(ae,de=>de.toString(16).padStart(2,"0")).join("");O={typed:{...K,encoded:F},description:{...K,encoded:{dtype:"u8",length:F.length,sha256:ce}}}}else O={typed:U(p,l),description:await D(p,l)};if(await J({op:"stage",evaluation:S.evaluation,session:S.session,revision:S.revision,...a!==void 0?{mesh:a}:{image:c},piece:O.typed}),a!==void 0){const z=O.typed;S.meshes.set(a,{typed:{revision:z.revision,unchanged:!0},description:O.description})}else S.images.set(c,{typed:void 0,description:O.description});return{}}let j,_;if(d){if(!S)throw new Error("The Blender session presented a frame it never sent");({typed:j,description:_}=xe(S,o)),S=null}else j=U(p,o),_=await D(p,o);const P=await Re(j,_,u);return{...typeof P.capture=="object"&&P.capture!==null?P.capture:{},..."held"in P?{held:P.held}:{}}}});if(t.engine=r,await v?.("engine-ready"),f=r,n){const i=(await L(r.files,e)).find(a=>a.startsWith("The project's files are not readable")||a.startsWith(`${n} `));if(i)throw new Error(`${n} could not be copied into Blender, so it cannot be opened: ${i}`)}await v?.("project-imported");const s=await r.request({op:"start",project:e,...n?{document:n}:{}});return n&&(E=n),T={sceneInfo:async()=>JSON.stringify(await r.request({op:"scene-info"}),null,2),objectInfo:async o=>JSON.stringify(await r.request({op:"object-info",name:o}),null,2),screenshotView:async o=>(await r.request({op:"present",capture:{size:o}}),JSON.stringify({view:{size:o}}))},{...s,engine:"blender-wasm",skew:r.skew,bootMs:Math.round(r.bootMs),releasedPayloadMB:r.releasedPayloadBytes===null?null:Math.round(r.releasedPayloadBytes/1048576)}}async function Ie(){const e="/__editor/blender-wasm/status";try{const n=await R(e,"fetch initial status",()=>fetch(e));return n.ok?await R(e,"decode initial status JSON",()=>n.json()):{available:!1,missing:[`${e}: HTTP ${n.status}`]}}catch(n){return{available:!1,missing:[String(n)]}}}function H(e){return/^[A-Za-z]:[\\/]/.test(e)?`/${e.replaceAll("\\","/")}`:e}async function _e(e,n){if(T)throw new Error("The Blender session is already started");const t=H(e);if(!t.startsWith("/"))throw new Error("The Blender session needs the project's absolute path");if(n!==void 0&&!oe(n))throw new Error(`The Blender document must be a project-relative .blend path with no traversal (models/model.blend); got ${JSON.stringify(n)}`);const r=await Ie();if(!r.available)throw new Error(`Headless Blender is not served by this editor, so there is no modeling engine: ${r.missing.join("; ")}. The engine is Blender compiled to WebAssembly (packages/blender-engine/wasm, or the directory VOLTER_BLENDER_WASM_DIR names); nothing stands in for it.`);return A=t,Le(t,n)}function oe(e){return!e.endsWith(".blend")||e.startsWith("/")||e.includes("\\")?!1:e.split("/").every(t=>t!==""&&t!=="."&&t!=="..")}const q=new Set;function C(e){q.has(e)||(q.add(e),k("error",e))}async function Fe(e){const n=i=>{const a=`The project's files are not readable from Python: ${i}`;return C(a),a};let t;try{t=await fetch("/__editor/blender-project-index")}catch(i){return n(String(i))}if(!t.ok)return n(`/__editor/blender-project-index answered ${t.status}`);let r;try{if(r=await t.json(),typeof r?.root!="string"||!Array.isArray(r.files))return n("invalid project index")}catch(i){return n(String(i))}const{root:s,files:o}=r;return H(s)!==e&&C(`The editor serving this tab has ${s} open, not ${e}; its files are mounted at ${e}, which is where Python is looking.`),o}const g=new Map;async function se(e,n){const t=await e.stat(n);return t?`${t.size}:${t.mtimeMs}`:""}async function L(e,n){const t=await Fe(n);if(typeof t=="string")return[t];const r=[],s=new Set(t.map(o=>`${n}/${o.path}`));for(const o of[...g.keys()])if(!s.has(o)){try{await e.unlink(o)}catch{}g.delete(o)}for(const o of t){const i=`${n}/${o.path}`,a=`${o.size}:${o.mtime}`;if(g.get(i)?.host===a||!g.has(i)&&await e.stat(i)!==null)continue;const c=await fetch(`/__editor/blender-project-file?path=${encodeURIComponent(o.path)}`);if(!c.ok){C(`${o.path}: HTTP ${c.status}`),r.push(`${o.path} (the session answered HTTP ${c.status})`);continue}const l=Number(c.headers.get("content-length")),d=c.headers.has("content-length")&&Number.isSafeInteger(l)&&l>=0?l:o.size,u=i.slice(0,i.lastIndexOf("/"));u&&await e.mkdirTree(u),e.writeFileStream&&c.body?await e.writeFileStream(i,v?he(c.body,()=>v("file-import")):c.body,d):await e.writeFile(i,new Uint8Array(await c.arrayBuffer())),g.set(i,{host:a,engine:await se(e,i)})}return r}function Ue(e){if(!e)return"";if("notSaving"in e)return $({op:"document-saving",document:e.from,note:`${e.from} is not being saved because Blender holds another scene. Save this scene as a new .blend inside the project to keep it, or reopen the saved document to return to it.`}),k("warn",e.note),`
2
-
3
- ${e.note}`;if(!e.moved){const t=`Blender now has ${e.outside} open, which is outside the project, so the editor cannot follow it there: this session's document stays ${e.from}, and the model keeps saving to ${e.from}. To move the model to another file, save it inside the project (src/models/<name>.blend).`;return k("warn",t),`
4
-
5
- ${t}`}if(!oe(e.document))throw new Error(`Blender moved its document to ${JSON.stringify(e.document)}, which is not a project .blend path`);$({op:"document-saving",document:e.from,note:null}),E=e.document,x(!0),$({op:"document-moved",from:e.from,document:e.document});const n=`Blender now has ${e.document} open (this code saved or opened it), so the editor follows it: the model saves to ${e.document} from now on, and ${e.from} keeps what it last saved.`;return k("log",`@@VOLTER-DOCUMENT-MOVED ${JSON.stringify({from:e.from,document:e.document})}`),`
6
-
7
- ${n}`}function De(e){return e.length===0?"":`
8
-
9
- These project files could not be copied into Blender, so this code did not see their current contents: ${e.join("; ")}`}async function Je(e,n){const t=H(n),r=[];if(await e.stat(t)===null)return r;const s=async o=>{let i;try{i=await e.readdir(o)}catch(a){throw new Error(`Blender's files under ${o} could not be listed, so its outputs there cannot be written back: ${String(a)}`)}for(const a of i){if(a==="."||a==="..")continue;const c=`${o.replace(/\/$/,"")}/${a}`,l=await e.stat(c);if(l){if((l.mode&61440)===16384){await s(c);continue}g.get(c)?.engine!==`${l.size}:${l.mtimeMs}`&&r.push({path:c,size:l.size,mtime:l.mtimeMs})}}};return await s(t),r}function ee(e,n){if(v)throw new Error("The current Blender operation must finish first");return N=new ue(async t=>{v=t;const r=performance.now();try{return await n()}finally{v=null,k("log",`@@VOLTER-WORK op=${e} totalMs=${Math.round(performance.now()-r)}`)}}),N.step()}async function ie(e){switch(e.op){case"start":{if(N)throw new Error("The Blender load has already started");return ee("start",()=>_e(e.project,e.document))}case"load-next":if(!N)throw new Error("No Blender load to continue");return N.step(e.token);case"present-result":{const r=M.get(e.id);M.delete(e.id),r&&(e.error?r.reject(new Error(e.error)):r.resolve({...e.capture===void 0?{}:{capture:e.capture},..."held"in e?{held:e.held}:{}}));return}}if(v)throw new Error("The Blender load must finish before another command");if(!T||!A||!f)throw new Error("The Blender session has not started");const n=f.files,t=f.request.bind(f);switch(e.op){case"flush-document":return W?{saved:await Me()}:{saved:!1};case"snapshot-document":{if(E===null)throw new Error("The Blender session holds no document");const r=await re(E,()=>{});if(r===null)throw new Error(`Blender holds another file's model, not ${E}`);return r.bytes}case"revert-document":await Q();return;case"restore-document":await Q(e.bytes);return;case"history-begin":case"history-end":return t({op:e.op});case"history-step":return t({op:"history-step",token:e.token,direction:e.direction});case"execute":{const r=De(await L(n,A)),s=await t({op:"execute",code:e.code,history:e.history??!0,label:e.label??"Blender Python"});return(s.error?`Error executing code: ${s.error}`:`Code executed successfully: ${s.result}`)+r+Ue(s.document)}case"present":return ee("present",()=>t({op:"present"}));case"native-preview":return t({op:"native-preview",width:e.width,height:e.height,samples:e.samples,...e.camera===void 0?{}:{camera:e.camera}});case"list-files-snapshot":{const r=await t({op:"document-info"});return{entries:await Je(n,e.path),document:r}}case"scene-info":return T.sceneInfo();case"object-info":return T.objectInfo(e.name);case"rna":return t({op:"rna",path:e.path,...e.names===void 0?{}:{names:e.names}});case"rna-context":return t({op:"rna-context",...e.object===void 0?{}:{object:e.object},...e.collection===void 0?{}:{collection:e.collection}});case"view-shading":return t({op:"view-shading",shading:e.shading});case"rna-set":return t({op:"rna-set",history:e.history!==!1,path:e.path,property:e.property,value:e.value,...e.index===void 0?{}:{index:e.index}});case"outliner":return t({op:"outliner",...e.selected===void 0?{}:{selected:[...e.selected]}});case"node-tree":return t({op:"node-tree",...e.path===void 0?{}:{path:e.path},...e.material===void 0?{}:{material:e.material}});case"uv-layout":return t({op:"uv-layout",...e.object===void 0?{}:{object:e.object},...e.uvLayer===void 0?{}:{uvLayer:e.uvLayer}});case"action-clip":return t({op:"action-clip",...e.object===void 0?{}:{object:e.object},...e.bake===void 0?{}:{bake:e.bake},...e.action===void 0?{}:{action:e.action},...e.summary===void 0?{}:{summary:e.summary}});case"scene-movie":return t({op:"scene-movie"});case"sound-scene":return t({op:"sound-scene",first:e.first,last:e.last});case"gltf-export":return t({op:"gltf-export",kind:e.kind,force:e.force===!0,...e.previous?{previous:e.previous}:{},...e.blendSha256?{blendSha256:e.blendSha256}:{},...e.luts?{luts:e.luts}:{}});case"run-script":{const r=await L(n,A),s=await t({op:"run-script",source:e.source,args:e.args,dir:e.dir}),o=[];for(const i of s.files)o.push({path:i,bytes:(await n.readFile(`${e.dir}/${i}`)).slice()}),await n.unlink(`${e.dir}/${i}`);return{output:s.output,error:s.error,files:o,unstaged:r}}case"asset-library":return t({op:"asset-library",library:e.library});case"outliner-set":return t({op:"outliner-set",path:e.path,column:e.column,value:e.value});case"screenshot-view":return JSON.parse(await T.screenshotView(e.maxSize));case"read-file":return n.readFile(e.path);case"write-file":{const r=e.path.slice(0,e.path.lastIndexOf("/"));r&&await n.mkdirTree(r),await n.writeFile(e.path,e.bytes),g.delete(e.path);return}}throw new Error(`Unknown Blender worker request ${e.op}`)}function V(){if(!f)return;const e=f.memoryBytes();e!==null&&$({op:"memory",bytes:e})}self.addEventListener("error",V);self.onmessage=e=>{const n=e.data;if(n.op==="present-result"){ie(n);return}Pe(()=>We(n))};const Ce=5e3;async function We(e){const n=setInterval(V,Ce);try{await He(e)}finally{clearInterval(n)}}async function He(e){try{const n=await ie(e);await te(),$({id:e.id,result:n})}catch(n){let t=B(n);try{await te()}catch(r){t+=`
10
- Unable to deliver Blender history: ${B(r)}`}$({id:e.id,error:t})}V()}async function te(){if(v||!f||!T)return;const e=await f.request({op:"history-events"});e.length&&$({op:"history",entries:e})}export{ne as A,Ke as P,y as S,ye as a,ze as b,Ge as c,R as d,he as e,Ye as o,$e as s};
@@ -1,9 +0,0 @@
1
- declare module 'volter:composition' {
2
- /** The product's id: its package name's last segment (`@volter/cyclotron` → `cyclotron`). */
3
- export const productId: string;
4
- /** `package.json#contributes.volter.product.composes`, each package's declared contributions. */
5
- const packages: Readonly<
6
- Record<string, readonly { readonly entryPath: string; readonly load: () => Promise<unknown> }[]>
7
- >;
8
- export default packages;
9
- }
@@ -1,52 +0,0 @@
1
- /**
2
- * The game's client, a fiber app: its level (levels/GroundLevel.tsx) and the players' characters
3
- * (client/characters.tsx) inside `<Canvas>` and Rapier's `<Physics>`, and beside it the HUD, the player list and the
4
- * chat (client/chat.tsx). It joins the game's room with Colyseus's own React hook (`useRoom`), which leaves the room as
5
- * the app unmounts, and hands that room to each part that reads it, std's hooks among them (`usePlayers(room)`). This
6
- * file is the game's: change it.
7
- */
8
- import { Suspense } from 'react';
9
- import { Client } from '@colyseus/sdk';
10
- import { useRoom } from '@colyseus/react';
11
- import { KeyboardControls } from '@react-three/drei';
12
- import { Canvas } from '@react-three/fiber';
13
- import { Physics } from '@react-three/rapier';
14
- import { GamepadControls, TouchControls } from '@volter-ai/std/characters/client';
15
- import { groundCanvas } from '../levels/ground.canvas.ts';
16
- import { GroundEnvironment } from '../levels/GroundEnvironment.tsx';
17
- import { GroundLevel } from '../levels/GroundLevel.tsx';
18
- import { GameState } from '../shared/state.ts';
19
- import { Characters } from './characters.tsx';
20
- import { CHARACTER_KEYS } from './keys.ts';
21
- import { Chat, PlayerList } from './chat.tsx';
22
- import { Hud } from './hud.tsx';
23
-
24
- /** The game's server: the page's own (std's page has set its network launch before this script runs). */
25
- const client = new Client();
26
-
27
- /** The game: the world, and the HUD over it. */
28
- export function App() {
29
- const { room, error } = useRoom(() => client.joinOrCreate('game', {}, GameState));
30
- // (a join that fails is the app's error, thrown as it renders, so React reports it)
31
- if (error !== undefined) throw error;
32
- return (
33
- <KeyboardControls map={CHARACTER_KEYS}>
34
- <Canvas {...groundCanvas} camera={{ fov: 60, position: [0, 6, 12] }}>
35
- <Suspense fallback={null}>
36
- <GroundEnvironment />
37
- </Suspense>
38
- <Suspense fallback={null}>
39
- <Physics>
40
- <GroundLevel />
41
- <Characters room={room} />
42
- </Physics>
43
- </Suspense>
44
- </Canvas>
45
- <GamepadControls map={CHARACTER_KEYS} joystick />
46
- <TouchControls map={CHARACTER_KEYS} />
47
- <Hud room={room} />
48
- <PlayerList room={room} />
49
- <Chat room={room} />
50
- </KeyboardControls>
51
- );
52
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * GroundEnvironment: levels/ground.glb's World, its sky and its fog, written by std level (std-dev): the
3
- * client's alone (its sky can need WebGL), beside <GroundLevel /> in the game's <Canvas>.
4
- * Export it again when the .blend changes; edit the game's code, not this file.
5
- */
6
-
7
- /** The level's World: its sky and its fog, three.js's scene's own (`background`, `environment`, `fog`). */
8
- export function GroundEnvironment() {
9
- return (
10
- <>
11
- <color attach="background" args={["#bcd7f5"]} />
12
- <ambientLight color="#bcd7f5" intensity={3.1416} />
13
- </>
14
- );
15
- }
@@ -1,35 +0,0 @@
1
- /**
2
- * GroundLevel: levels/ground.glb as a component, written by std level (std-dev) as gltfjsx writes one.
3
- * Its bodies are react-three-rapier's (from the Blender file's Rigid Body panel), its markers and its sun std's (its
4
- * `ref={stdSun}`: std fits its shadow to the view, over any shadow-camera props added to it); pure, rendering from
5
- * its props alone.
6
- * Its sky and fog are GroundEnvironment (./GroundEnvironment), the client's alone: the game's client composes both in its
7
- * <Canvas {...groundCanvas}> (./ground.canvas), <GroundEnvironment /> and <Physics><GroundLevel /></Physics>.
8
- * Export it again when the .blend changes; edit the game's code, not this file.
9
- */
10
- import { useMemo } from 'react';
11
- import type * as THREE from 'three';
12
- import { useGLTF } from '@react-three/drei';
13
- import { RigidBody } from '@react-three/rapier';
14
- import { SpawnPoint, stdSun } from '@volter-ai/std/level/client';
15
- import groundUrl from './ground.glb?url';
16
-
17
- /** The glb's nodes and materials this component reads, typed as gltfjsx's `--types` types them. */
18
- type GLTFResult = ReturnType<typeof useGLTF<string>> & { nodes: { Floor: THREE.Mesh; Sun: THREE.DirectionalLight }; materials: { Grass: THREE.Material } };
19
-
20
- /** levels/ground.glb's scene: its meshes, lights and markers, its bodies around the nodes that collide. */
21
- export function GroundLevel(props: { position?: [number, number, number]; rotation?: [number, number, number] }) {
22
- const { nodes, materials } = useGLTF(groundUrl) as GLTFResult;
23
- const targets = useMemo(() => ({ "Sun": nodes.Sun.target.clone() }), [nodes]);
24
- return (
25
- <group name="GroundLevel" {...props}>
26
- <RigidBody type="fixed" colliders="cuboid">
27
- <mesh name="Floor" geometry={nodes.Floor.geometry} material={materials.Grass} castShadow receiveShadow position={[0, -0.5, 0]} />
28
- </RigidBody>
29
- <SpawnPoint name="Spawn" position={[0, 1, 0]} />
30
- <directionalLight name="Sun" intensity={3} color="#ffffff" position={[10, 20, 8]} rotation={[-1.19029, 0.43463, 0.81106]} target={targets.Sun} ref={stdSun} castShadow shadow-mapSize={[2048, 2048]} shadow-bias={-0.0005}>
31
- <primitive object={targets.Sun} position={[0, 0, -1]} />
32
- </directionalLight>
33
- </group>
34
- );
35
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * levels/ground.glb's <Canvas> settings, from its Blender file's Color Management (the Standard view transform, exposure
3
- * 0) and render settings (shadows): `<Canvas {...groundCanvas}>`. Written by std level
4
- * (std-dev). Its renderer's shader check is std's, set as the canvas is made (`stdShaderChecks`): a dev run's,
5
- * a published page's off, as three advises for production.
6
- */
7
- import { NoToneMapping } from 'three';
8
- import { stdShaderChecks } from '@volter-ai/std/level/client';
9
-
10
- /** The <Canvas> props that draw levels/ground.glb as its Blender file renders it. */
11
- export const groundCanvas = { gl: { toneMapping: NoToneMapping, toneMappingExposure: 1 }, shadows: 'percentage' as const, onCreated: stdShaderChecks };
Binary file
@@ -1,142 +0,0 @@
1
- # SPDX-License-Identifier: GPL-3.0-or-later
2
- #
3
- # THIS FILE IS GPL, AND THE REST OF YOUR PROJECT IS NOT.
4
- #
5
- # It drives `bpy`, Blender's Python API. The Blender Foundation's stated
6
- # position — their licence page, under "Add-ons (Python scripts)" — is that
7
- # the API "is an integral part of the software" and that the GPL "therefore
8
- # requires that such scripts (if published) are being shared under a GPL
9
- # compliant license". So a bpy script is a derivative work of Blender, and
10
- # this one is licensed GNU General Public License version 3 or later,
11
- # exercising Blender's own "or later".
12
- #
13
- # WHAT THIS DOES NOT TOUCH. `ground.blend` beside this file is YOURS, and so
14
- # is anything you export from it — glTF, GLB, renders, the level's code std
15
- # writes. That is the Foundation's position too, on the same page under "Your
16
- # Artwork": what you make with Blender is your sole property, "including the
17
- # .blend files and other data files Blender can write". This licence reaches
18
- # this script and nothing else.
19
- #
20
- # If you would rather not carry it: delete this file. The `.blend` is the
21
- # document — this is only the recorded source of how it was made — and
22
- # nothing in the project reads this script at runtime. If you write your own
23
- # bpy scripts, the Foundation's position applies to them on the same terms;
24
- # it is not a rule of ours and is not ours to waive, because the copyright in
25
- # Blender is Blender's authors'.
26
- #
27
- # Copyright 2026 Volter AI, Inc.
28
-
29
- """The starter level — the bpy that made `ground.blend`, and its SOURCE.
30
-
31
- A level is a Blender file in the game's `levels/` folder: `ground.blend` is
32
- the document the editor opens, and this is the script that authored it. Each
33
- save of it in the editor runs std's level export, which writes the level's
34
- code beside it (`ground.glb`, `GroundLevel.tsx`, `GroundEnvironment.tsx`,
35
- `ground.canvas.ts`): `<GroundLevel>` is what the game's client draws. Outside
36
- the editor, the same export is std's own command:
37
-
38
- npx std level levels/ground.blend levels/ground.glb
39
-
40
- What it holds, in the terms std's export reads (std's guide, "Levels"):
41
-
42
- - `Floor`: the ground, 40 m by 40 m and 1 m thick, its top at 0, with a
43
- passive Rigid Body of shape Box (a fixed `cuboid` collider).
44
- - `Sun`: a sun casting shadows, aimed at the middle of the ground (std's
45
- `stdSun`, which fits its shadow to the view).
46
- - The World's colour: the sky's, and the scene's ambient light.
47
- - `Spawn`: where the players come in, 1 m up, an instance of the collection
48
- named `SpawnPoint` (std's `<SpawnPoint>` marker).
49
- - Color Management's Standard view transform: three.js's own, so the level
50
- needs no grading LUT.
51
-
52
- Run it headless to make the file again (Blender 5.2):
53
-
54
- blender -b --factory-startup --python levels/ground.py
55
-
56
- or through the session's Blender in the editor, which saves the open document
57
- about a second after the last call.
58
-
59
- Coordinates are metres, Z is up (Blender's), and the exporter converts to the
60
- game's Y-up on the way to glTF.
61
- """
62
-
63
- import os
64
-
65
- import bpy
66
- from mathutils import Vector
67
-
68
-
69
- def srgb(hex_colour: str) -> tuple[float, float, float, float]:
70
- """A CSS colour as Blender's linear RGBA."""
71
- def linear(c: float) -> float:
72
- return c / 12.92 if c <= 0.04045 else ((c + 0.055) / 1.055) ** 2.4
73
- value = hex_colour.lstrip("#")
74
- r, g, b = (int(value[i:i + 2], 16) / 255 for i in (0, 2, 4))
75
- return (linear(r), linear(g), linear(b), 1.0)
76
-
77
-
78
- scene = bpy.context.scene
79
-
80
- # THE LEVEL HOLDS THE LEVEL: the factory startup's cube, light and camera go,
81
- # and so does whatever an earlier run made.
82
- for obj in list(bpy.data.objects):
83
- bpy.data.objects.remove(obj, do_unlink=True)
84
- for data in (bpy.data.meshes, bpy.data.materials, bpy.data.lights, bpy.data.cameras):
85
- for block in list(data):
86
- data.remove(block)
87
- for collection in list(bpy.data.collections):
88
- bpy.data.collections.remove(collection)
89
-
90
- # THE GROUND: a 40 m square, 1 m thick, its top at 0, a fixed body.
91
- bpy.ops.mesh.primitive_cube_add(size=1.0, location=(0.0, 0.0, -0.5))
92
- floor = bpy.context.active_object
93
- floor.name = "Floor"
94
- floor.data.name = "Floor"
95
- floor.scale = (40.0, 40.0, 1.0)
96
- bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
97
- grass = bpy.data.materials.new(name="Grass")
98
- grass.use_nodes = True
99
- principled = grass.node_tree.nodes["Principled BSDF"]
100
- principled.inputs["Base Color"].default_value = srgb("#6a994e")
101
- principled.inputs["Roughness"].default_value = 1.0
102
- floor.data.materials.append(grass)
103
- bpy.ops.rigidbody.object_add()
104
- floor.rigid_body.type = "PASSIVE"
105
- floor.rigid_body.collision_shape = "BOX"
106
-
107
- # THE SUN: three's (10, 20, 8), Y up, is Blender's (10, -8, 20), aimed at the
108
- # ground's middle; it casts shadows.
109
- sun_data = bpy.data.lights.new(name="Sun", type="SUN")
110
- sun_data.energy = 3.0
111
- sun_data.use_shadow = True
112
- sun = bpy.data.objects.new("Sun", sun_data)
113
- scene.collection.objects.link(sun)
114
- sun.location = (10.0, -8.0, 20.0)
115
- sun.rotation_euler = (Vector((0.0, 0.0, 0.0)) - sun.location).to_track_quat("-Z", "Y").to_euler()
116
-
117
- # THE WORLD: the sky's colour, which also lights the scene.
118
- world = scene.world or bpy.data.worlds.new("World")
119
- scene.world = world
120
- world.use_nodes = True
121
- background = world.node_tree.nodes["Background"]
122
- background.inputs["Color"].default_value = srgb("#bcd7f5")
123
- background.inputs["Strength"].default_value = 1.0
124
-
125
- # WHERE THE PLAYERS COME IN: an instance of the collection named SpawnPoint,
126
- # std's marker, 1 m above the ground. The collection holds nothing and is in
127
- # no scene: only its instance is the level's.
128
- marker = bpy.data.collections.new("SpawnPoint")
129
- spawn = bpy.data.objects.new("Spawn", None)
130
- spawn.instance_type = "COLLECTION"
131
- spawn.instance_collection = marker
132
- spawn.location = (0.0, 0.0, 1.0)
133
- scene.collection.objects.link(spawn)
134
-
135
- # THREE'S OWN VIEW: the Standard view transform, so the level draws with no
136
- # grading LUT.
137
- scene.view_settings.view_transform = "Standard"
138
- scene.view_settings.look = "None"
139
-
140
- # Headless, with no file open, the level is written beside this script.
141
- if not bpy.data.filepath and "__file__" in globals():
142
- bpy.ops.wm.save_as_mainfile(filepath=os.path.join(os.path.dirname(os.path.abspath(__file__)), "ground.blend"))