@volter/cyclotron 0.0.0-stage → 0.5.192

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 (607) hide show
  1. package/BUNDLED_NOTICES +6877 -0
  2. package/LICENSE +670 -0
  3. package/LICENSE-BLENDER +1409 -0
  4. package/LICENSE-MCP +21 -0
  5. package/NOTICE +20 -0
  6. package/README.md +91 -2
  7. package/dist/.vite/manifest.json +5432 -0
  8. package/dist/assets/BVHLoader-Dxn1IBPh.js +1 -0
  9. package/dist/assets/ColladaLoader-FWjhft-R.js +3 -0
  10. package/dist/assets/EntityModelDocument-KYkNDaSy.js +1 -0
  11. package/dist/assets/EnvironmentAssetDocument-Bn36-K03.js +1 -0
  12. package/dist/assets/FBXLoader-B6D0-2sM.js +1 -0
  13. package/dist/assets/InspectorObjectPreview-CQMs9zha.js +1 -0
  14. package/dist/assets/LineSegments2-D1_2s-N-.js +370 -0
  15. package/dist/assets/LiveModuleDocument-ye1IT-i6.js +2 -0
  16. package/dist/assets/LutAssetDocument-CouZZubV.js +1 -0
  17. package/dist/assets/MTLLoader-BwtVpZY2.js +2 -0
  18. package/dist/assets/ModelAssetDocument-SpE-ctRj.js +1 -0
  19. package/dist/assets/NonThreeAuthoringBootstrap-BAe_hy9t.js +1 -0
  20. package/dist/assets/OBJLoader-Cwe-BN99.js +5 -0
  21. package/dist/assets/Object3DDocumentToolbar-Bfm-RTS8.js +1 -0
  22. package/dist/assets/Object3DPreview-C4Ai3BNI.js +2 -0
  23. package/dist/assets/OrbitControls-Cn2q_IQK.js +1 -0
  24. package/dist/assets/PLYLoader-DOl6qb2a.js +2 -0
  25. package/dist/assets/QuarksAssetDocument-CqYjSnLo.js +2 -0
  26. package/dist/assets/RectAreaLightUniformsLib-CobhIWNK.js +1 -0
  27. package/dist/assets/STLLoader-B5YpfCGT.js +1 -0
  28. package/dist/assets/ShaderAssetDocument-BBT3ENGG.js +1 -0
  29. package/dist/assets/StageHost-qZAn6HZ3.js +1179 -0
  30. package/dist/assets/TDSLoader-BdQ2M2WU.js +1 -0
  31. package/dist/assets/ToolObject3DPreview-ClIcOYFk.js +1 -0
  32. package/dist/assets/ViewportShadingMenu-DmM-Odyl.js +1 -0
  33. package/dist/assets/animation-mixers.service-CsBdF1O3.js +1 -0
  34. package/dist/assets/animation-timeline.utility-DRfepAbV.js +1 -0
  35. package/dist/assets/anthropic-DwpKRVGM.svg +1 -0
  36. package/dist/assets/asset-preview-jtcCFntF.js +4 -0
  37. package/dist/assets/blender-display-shaders-BpnqnkG8.lut +0 -0
  38. package/dist/assets/blender-emscripten-engine-DEk9HdR1.js +2 -0
  39. package/dist/assets/blender-motion-worker-CtT2cV3V.js +1 -0
  40. package/dist/assets/blender-node-editor.document-Bi2T12bG.js +1 -0
  41. package/dist/assets/blender-properties-model-Yj49RcLm.js +1 -0
  42. package/dist/assets/blender-properties-tab-Dtap7p2U.js +3 -0
  43. package/dist/assets/blender-runtime-host-CMI7ldx1.js +17 -0
  44. package/dist/assets/blender-runtime.document-D0NB4iPR.js +13 -0
  45. package/dist/assets/blender-screenshot.menu-D0-n31XK.js +1 -0
  46. package/dist/assets/blender-timeline.document-_1xorgQ6.js +1 -0
  47. package/dist/assets/blender-uv-editor.document-Dki4Ui-b.js +1 -0
  48. package/dist/assets/blender-version.status-DlBU0k-r.js +1 -0
  49. package/dist/assets/blender-wali-engine-D2ymLooc.js +2 -0
  50. package/dist/assets/blender.command-BcpIwWTF.js +1 -0
  51. package/dist/assets/blender.environment-CG-pC7sk.js +1 -0
  52. package/dist/assets/blender.keymap-BmOBRY7p.js +1 -0
  53. package/dist/assets/blender.status-B1L-FZyU.js +1 -0
  54. package/dist/assets/blender.style-DaIh9SiA.js +1 -0
  55. package/dist/assets/city-EkhAOo5s.exr +0 -0
  56. package/dist/assets/clip-planes-CmZu3QTO.js +8 -0
  57. package/dist/assets/content-bounds-Dg9hT5Gp.js +85 -0
  58. package/dist/assets/courtyard-DqlebbpC.exr +0 -0
  59. package/dist/assets/forest-P_CQY3b_.exr +0 -0
  60. package/dist/assets/icon-BkiLD9ed.png +0 -0
  61. package/dist/assets/index-7vd2obXq.js +3 -0
  62. package/dist/assets/index-BP6wv2A0.js +5 -0
  63. package/dist/assets/index-BRLA7zdc.js +7 -0
  64. package/dist/assets/index-BxW3iIJI.js +952 -0
  65. package/dist/assets/index-CnvSS9lU.js +2 -0
  66. package/dist/assets/index-DYNMP0kE.js +1 -0
  67. package/dist/assets/index-Dz8qGBZc.js +13 -0
  68. package/dist/assets/index-Fv4R0cYr.js +1 -0
  69. package/dist/assets/index-f-MQ14bP.js +1 -0
  70. package/dist/assets/index-ux8XhRyW.js +1 -0
  71. package/dist/assets/interior-Bo_lba15.exr +0 -0
  72. package/dist/assets/live-mixers-B-bwLZ7c.js +1 -0
  73. package/dist/assets/model-inspection-jRplyguX.js +1 -0
  74. package/dist/assets/model.layout-BpZE1W9V.js +1 -0
  75. package/dist/assets/models.finder-jvcjSDNd.js +1 -0
  76. package/dist/assets/night-CvV4Gybt.exr +0 -0
  77. package/dist/assets/object3d-document-session-registry-_NnPOZmk.js +2 -0
  78. package/dist/assets/openai-DHNKzFtc.svg +1 -0
  79. package/dist/assets/play-mode-DljPhCBr.js +7208 -0
  80. package/dist/assets/png-encode.worker-E8zk28Vl.js +1 -0
  81. package/dist/assets/product-BxXXdFxI.css +1 -0
  82. package/dist/assets/product-Dcs9ogdH.js +14 -0
  83. package/dist/assets/properties-bone-constraints.inspector-sNOrOqmn.js +1 -0
  84. package/dist/assets/properties-bone.inspector-DrRAhkXh.js +1 -0
  85. package/dist/assets/properties-collection.inspector-D2bNhLqd.js +1 -0
  86. package/dist/assets/properties-constraints.inspector-CGTEqVBY.js +1 -0
  87. package/dist/assets/properties-data.inspector-nwiHdy4s.js +1 -0
  88. package/dist/assets/properties-material.inspector-CPW_Te19.js +1 -0
  89. package/dist/assets/properties-modifiers.inspector-CsIgxGPe.js +1 -0
  90. package/dist/assets/properties-object.inspector-Cwx4QctT.js +1 -0
  91. package/dist/assets/properties-output.inspector-CgChOQat.js +1 -0
  92. package/dist/assets/properties-particles.inspector-B8j59UFB.js +1 -0
  93. package/dist/assets/properties-physics.inspector-ComSsHn6.js +1 -0
  94. package/dist/assets/properties-render.inspector-BTqY-F5-.js +1 -0
  95. package/dist/assets/properties-scene.inspector-C-R7eu1o.js +1 -0
  96. package/dist/assets/properties-texture.inspector-CFmTTdHS.js +1 -0
  97. package/dist/assets/properties-view-layer.inspector-BvMUCTd_.js +1 -0
  98. package/dist/assets/properties-world.inspector-Dpb6EWk8.js +1 -0
  99. package/dist/assets/react-18-BDYozTc0.js +1 -0
  100. package/dist/assets/regions-DWeEBnE2.js +1 -0
  101. package/dist/assets/sculpt.layout-D-K5cLw6.js +1 -0
  102. package/dist/assets/session-C0OdhDD8.js +5393 -0
  103. package/dist/assets/shading.layout-CZZHKBer.js +1 -0
  104. package/dist/assets/sky-precompute-worker-CPGW9t_C.js +1 -0
  105. package/dist/assets/spark.module-GpLuSFtI.js +12120 -0
  106. package/dist/assets/stage-keyboard-Cjy_uKPi.js +1 -0
  107. package/dist/assets/stage-overlay-set-BV78wZfK.js +1 -0
  108. package/dist/assets/stage-presence-markers-CJVuC1Vh.js +1 -0
  109. package/dist/assets/stage-transform-tools-B21BRk-L.js +1 -0
  110. package/dist/assets/standard-viewport-dressing-zXbS_1ew.js +24 -0
  111. package/dist/assets/studio-CysTBGIb.exr +0 -0
  112. package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
  113. package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
  114. package/dist/assets/texture.layout-DASpHVht.js +1 -0
  115. package/dist/assets/three-integration.service-Bfy6rPSh.js +2 -0
  116. package/dist/assets/three.module-dk_BdrjN.js +3840 -0
  117. package/dist/assets/uv-editing.layout-A8RA-cbM.js +1 -0
  118. package/dist/assets/volter-sdk-BwU3fa6G.js +2358 -0
  119. package/dist/assets/volter-sdk-account-BlUZdl9g.js +1 -0
  120. package/dist/assets/volter-sdk-client-C_pM7u8F.js +1 -0
  121. package/dist/assets/volter-sdk-contributions-CyyzzsHD.js +1 -0
  122. package/dist/assets/volter-sdk-css-numeric-style-B404pZI8.js +1 -0
  123. package/dist/assets/volter-sdk-document-probe-DAjYzNFt.js +1 -0
  124. package/dist/assets/volter-sdk-editor-view-suHsPgK2.js +1 -0
  125. package/dist/assets/volter-sdk-host-58UWGff-.js +1 -0
  126. package/dist/assets/volter-sdk-http-transport.browser-VJksIuNN.js +1 -0
  127. package/dist/assets/volter-sdk-index-DQpzb0WD.js +1 -0
  128. package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-C41uHAFx.js +1 -0
  129. package/dist/assets/volter-sdk-kit-account-client-BnrRHdPV.js +1 -0
  130. package/dist/assets/volter-sdk-kit-action-registry-Co0Hbo6i.js +1 -0
  131. package/dist/assets/volter-sdk-kit-active-product-7gseHcVz.js +1 -0
  132. package/dist/assets/volter-sdk-kit-active-project-Bmrlj0XL.js +1 -0
  133. package/dist/assets/volter-sdk-kit-adapter-editor-config-DqGAdw2_.js +1 -0
  134. package/dist/assets/volter-sdk-kit-adapter-observation-Y-Cr3BiX.js +1 -0
  135. package/dist/assets/volter-sdk-kit-animation-animation-clock-BYmBGV0P.js +1 -0
  136. package/dist/assets/volter-sdk-kit-animation-stage-transport-CY7-VoVp.js +1 -0
  137. package/dist/assets/volter-sdk-kit-api-assets-CRsoN16p.js +1 -0
  138. package/dist/assets/volter-sdk-kit-api-base-Dw9L5xJS.js +1 -0
  139. package/dist/assets/volter-sdk-kit-api-build-BapF1Knc.js +1 -0
  140. package/dist/assets/volter-sdk-kit-api-logs-ClNHtQ6y.js +1 -0
  141. package/dist/assets/volter-sdk-kit-api-project-identity-CLam3F93.js +1 -0
  142. package/dist/assets/volter-sdk-kit-api-project-open-D9BK6gAR.js +1 -0
  143. package/dist/assets/volter-sdk-kit-api-project-source-B4ZDf1-O.js +1 -0
  144. package/dist/assets/volter-sdk-kit-api-project-state-Q0gbhHMy.js +1 -0
  145. package/dist/assets/volter-sdk-kit-api-relay-CEs5T2gc.js +1 -0
  146. package/dist/assets/volter-sdk-kit-api-settings-DQhJJaCN.js +1 -0
  147. package/dist/assets/volter-sdk-kit-api-themes-CK0mpUed.js +1 -0
  148. package/dist/assets/volter-sdk-kit-api-worktrees-CZAcA-yg.js +1 -0
  149. package/dist/assets/volter-sdk-kit-asset-capabilities-BH2tqp_X.js +1 -0
  150. package/dist/assets/volter-sdk-kit-asset-compare-core-CO4rbaNo.js +1 -0
  151. package/dist/assets/volter-sdk-kit-asset-editor-context-Crd2QR_x.js +1 -0
  152. package/dist/assets/volter-sdk-kit-asset-events-Cfuds14S.js +1 -0
  153. package/dist/assets/volter-sdk-kit-asset-inspector-actions-BOh3j-zP.js +1 -0
  154. package/dist/assets/volter-sdk-kit-asset-selection-UhfuT50E.js +1 -0
  155. package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-EWMtCoHo.js +1 -0
  156. package/dist/assets/volter-sdk-kit-asset-thumbnails-CzMUys7a.js +1 -0
  157. package/dist/assets/volter-sdk-kit-asset-viewers-Cf_KVYEv.js +1 -0
  158. package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-CBNjRa8N.js +1 -0
  159. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-_i8-7mdV.js +1 -0
  160. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-C20xqeUO.js +1 -0
  161. package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-Dech0lQC.js +1 -0
  162. package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-pPS9qzPW.js +1 -0
  163. package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-0wPh24zI.js +1 -0
  164. package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-BAY5AA4K.js +1 -0
  165. package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-DRc8hWEO.js +1 -0
  166. package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-BW7Al90A.js +1 -0
  167. package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-DNIgToKY.js +1 -0
  168. package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-DT7NxaAG.js +1 -0
  169. package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-F0tDOvEn.js +1 -0
  170. package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-BvmHntAY.js +1 -0
  171. package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-Dar362Gf.js +1 -0
  172. package/dist/assets/volter-sdk-kit-asset-workflow-project-content-DAMV_NEZ.js +1 -0
  173. package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-D9b6o-CL.js +1 -0
  174. package/dist/assets/volter-sdk-kit-authoring-active-adapter-BZ9hzFLG.js +1 -0
  175. package/dist/assets/volter-sdk-kit-authoring-active-systems-Cpbjxaoi.js +1 -0
  176. package/dist/assets/volter-sdk-kit-authoring-adapter-key-CNJDTSi4.js +1 -0
  177. package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-BnteIxrT.js +1 -0
  178. package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-DMaoNrQW.js +1 -0
  179. package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-DBAwTDuf.js +1 -0
  180. package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-DWrvby2w.js +1 -0
  181. package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-C4-Kp99J.js +1 -0
  182. package/dist/assets/volter-sdk-kit-authoring-consumer-actions-CBBDoLEX.js +1 -0
  183. package/dist/assets/volter-sdk-kit-authoring-design-time-layers-DuxPqGrN.js +1 -0
  184. package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-Div61xFj.js +1 -0
  185. package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-lp1HgOZY.js +1 -0
  186. package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-DESJUilA.js +1 -0
  187. package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-Yw8ilOpP.js +1 -0
  188. package/dist/assets/volter-sdk-kit-authoring-layered-pick-CnFv-JJ4.js +1 -0
  189. package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-BG3VV4R2.js +1 -0
  190. package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-DdsbWdzA.js +1 -0
  191. package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-Cz3dTWOm.js +1 -0
  192. package/dist/assets/volter-sdk-kit-authoring-panel-authoring-CVVMuMz7.js +1 -0
  193. package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-Dr97ZYKO.js +1 -0
  194. package/dist/assets/volter-sdk-kit-authoring-provenance-B5PenuKN.js +1 -0
  195. package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-C-FLncdT.js +1 -0
  196. package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-mWGHuhfC.js +1 -0
  197. package/dist/assets/volter-sdk-kit-authoring-react-story-board-BJdVcnM0.js +1 -0
  198. package/dist/assets/volter-sdk-kit-authoring-seam-evidence-kaO6Kcw3.js +1 -0
  199. package/dist/assets/volter-sdk-kit-authoring-selection-scope-MaPGsoaC.js +1 -0
  200. package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-fzF3ajnE.js +1 -0
  201. package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-BmaeUc2Q.js +1 -0
  202. package/dist/assets/volter-sdk-kit-authoring-three-root-_Iik8VOw.js +1 -0
  203. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-BMaVuFyB.js +1 -0
  204. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-D7gzEf8Y.js +1 -0
  205. package/dist/assets/volter-sdk-kit-authoring-world-session-state-DHU1uP-A.js +1 -0
  206. package/dist/assets/volter-sdk-kit-availability-tick-mnrfOjCO.js +1 -0
  207. package/dist/assets/volter-sdk-kit-bitmap-label-tfpyi7Ai.js +1 -0
  208. package/dist/assets/volter-sdk-kit-boot-routing-BHPc5GLo.js +1 -0
  209. package/dist/assets/volter-sdk-kit-breakpoint-state-Db1oqXJX.js +1 -0
  210. package/dist/assets/volter-sdk-kit-build-identity-BTQ1Xdpa.js +1 -0
  211. package/dist/assets/volter-sdk-kit-bytes-codec-DvWCmxma.js +1 -0
  212. package/dist/assets/volter-sdk-kit-cancellation-reason-BEjzQjCf.js +1 -0
  213. package/dist/assets/volter-sdk-kit-canvas-frames-BJEuXRrc.js +1 -0
  214. package/dist/assets/volter-sdk-kit-capture-camera-pose-YJBoQ23O.js +1 -0
  215. package/dist/assets/volter-sdk-kit-capture-size-EmnVLs8n.js +1 -0
  216. package/dist/assets/volter-sdk-kit-chrome-registry-Cs0k1OX1.js +1 -0
  217. package/dist/assets/volter-sdk-kit-chrome-slot-registry-BwDDbLjQ.js +1 -0
  218. package/dist/assets/volter-sdk-kit-collaboration-client-C2jtyYW3.js +1 -0
  219. package/dist/assets/volter-sdk-kit-collaboration-presence-D3UftauX.js +1 -0
  220. package/dist/assets/volter-sdk-kit-command-dispatch-BZWUjbx5.js +1 -0
  221. package/dist/assets/volter-sdk-kit-command-listener-CfFEgEYh.js +1 -0
  222. package/dist/assets/volter-sdk-kit-command-registry-CxqLDZ_t.js +1 -0
  223. package/dist/assets/volter-sdk-kit-component-board-registry-wPpm4hz2.js +1 -0
  224. package/dist/assets/volter-sdk-kit-component-states-registry-DUnoMxYg.js +1 -0
  225. package/dist/assets/volter-sdk-kit-components-AlignToolbar-kgkYRPYY.js +1 -0
  226. package/dist/assets/volter-sdk-kit-components-ApplicationMenus-DSUoF1z8.js +1 -0
  227. package/dist/assets/volter-sdk-kit-components-AssetEditorShell-BsmfaAE9.js +1 -0
  228. package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-GxYRyjBh.js +1 -0
  229. package/dist/assets/volter-sdk-kit-components-BoardRulers-XXJ7RCz4.js +1 -0
  230. package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-DSg-5iRY.js +1 -0
  231. package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-C8suTPNd.js +1 -0
  232. package/dist/assets/volter-sdk-kit-components-ChromeSlot-kgnOcXb4.js +1 -0
  233. package/dist/assets/volter-sdk-kit-components-CodeView-8_n22zvN.js +1 -0
  234. package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-DkR_oNfI.js +1 -0
  235. package/dist/assets/volter-sdk-kit-components-ConsolePanel-DiI4aQRP.js +1 -0
  236. package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-BwzyAzUn.js +1 -0
  237. package/dist/assets/volter-sdk-kit-components-InspectionProjection-Cz94_Rt7.js +1 -0
  238. package/dist/assets/volter-sdk-kit-components-Inspector-BPFGLp3d.js +1 -0
  239. package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-CA1NTcqw.js +1 -0
  240. package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-BuwRGDJ0.js +1 -0
  241. package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-BsVaquIj.js +1 -0
  242. package/dist/assets/volter-sdk-kit-components-InspectorToolSection-Di0bMd01.js +1 -0
  243. package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-_E4Y2mdm.js +1 -0
  244. package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-4D34umvc.js +1 -0
  245. package/dist/assets/volter-sdk-kit-components-MediaProperties-BtpXA40W.js +1 -0
  246. package/dist/assets/volter-sdk-kit-components-ProjectHeader-COVqavbg.js +1 -0
  247. package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-lvb140oy.js +1 -0
  248. package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-BWDtha0N.js +1 -0
  249. package/dist/assets/volter-sdk-kit-components-RootTextEditor-E99FydcX.js +1 -0
  250. package/dist/assets/volter-sdk-kit-components-SaveStatus-DolfRGCT.js +1 -0
  251. package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-BHtKccFF.js +1 -0
  252. package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-D02jF-QD.js +1 -0
  253. package/dist/assets/volter-sdk-kit-components-ToolHost-xY2N5GR3.js +1 -0
  254. package/dist/assets/volter-sdk-kit-components-Toolbar-XTw72bRl.js +1 -0
  255. package/dist/assets/volter-sdk-kit-components-TransientHint-LyCJ6M5h.js +1 -0
  256. package/dist/assets/volter-sdk-kit-components-VersionControlSection-CaUBgU7Q.js +1 -0
  257. package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-DJm0Vtra.js +1 -0
  258. package/dist/assets/volter-sdk-kit-components-VolterLogo-7QJN2Aue.js +1 -0
  259. package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-Cm6EQlo9.js +1 -0
  260. package/dist/assets/volter-sdk-kit-components-account-documents-C1w8-N3m.js +1 -0
  261. package/dist/assets/volter-sdk-kit-components-asset-documents-o5P9hniy.js +1 -0
  262. package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-DLsU0r1E.js +1 -0
  263. package/dist/assets/volter-sdk-kit-components-asset-selection-section-BYEwJfLy.js +1 -0
  264. package/dist/assets/volter-sdk-kit-components-asset-thumbnails-C-LgDd2_.js +1 -0
  265. package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-BR48_QX5.js +1 -0
  266. package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-C9IP9LWM.js +1 -0
  267. package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-Dffdgv60.js +1 -0
  268. package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-ChmgYQAP.js +1 -0
  269. package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-Bdpm--Jx.js +1 -0
  270. package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-DdJX9xCd.js +1 -0
  271. package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-DYXAuujE.js +1 -0
  272. package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-6xqrjETd.js +1 -0
  273. package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-cHZlxpZt.js +1 -0
  274. package/dist/assets/volter-sdk-kit-components-board-guides-7WFdaGRg.js +1 -0
  275. package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-CnxAX0SN.js +1 -0
  276. package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-CtpM87Bn.js +1 -0
  277. package/dist/assets/volter-sdk-kit-components-core-utilities-CHVzLxwg.js +1 -0
  278. package/dist/assets/volter-sdk-kit-components-inspector-preview-section-B8TaQyFK.js +1 -0
  279. package/dist/assets/volter-sdk-kit-components-inspector-revert-label-BNzoXVNS.js +1 -0
  280. package/dist/assets/volter-sdk-kit-components-inspector-selection-BpPShgrU.js +1 -0
  281. package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-DiH66VA6.js +1 -0
  282. package/dist/assets/volter-sdk-kit-components-inspector-transform-CmjteW7M.js +1 -0
  283. package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-DrIk_jIn.js +1 -0
  284. package/dist/assets/volter-sdk-kit-components-kind-documents-BK3KZxJA.js +1 -0
  285. package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-1nPD0Wmj.js +1 -0
  286. package/dist/assets/volter-sdk-kit-components-project-tool-documents-DJ4Ucdcc.js +1 -0
  287. package/dist/assets/volter-sdk-kit-components-scene-documents-D0S3Ip8u.js +1 -0
  288. package/dist/assets/volter-sdk-kit-components-status-contributions-CnD50KDE.js +1 -0
  289. package/dist/assets/volter-sdk-kit-components-tool-documents-CFPlSwI0.js +1 -0
  290. package/dist/assets/volter-sdk-kit-components-tool-schema-form-DDm00y0g.js +1 -0
  291. package/dist/assets/volter-sdk-kit-components-use-after-paint-DvCjTL4J.js +1 -0
  292. package/dist/assets/volter-sdk-kit-components-use-project-image-assets-C2yOGb4T.js +1 -0
  293. package/dist/assets/volter-sdk-kit-components-workspace-history-cK1qO4Ko.js +1 -0
  294. package/dist/assets/volter-sdk-kit-components-world-documents-Ca0Kvd6F.js +1 -0
  295. package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-D9tS4EXa.js +1 -0
  296. package/dist/assets/volter-sdk-kit-composite-screenshot-DrxN3o4m.js +1 -0
  297. package/dist/assets/volter-sdk-kit-content-entry-source-registry-WrKmcDj4.js +1 -0
  298. package/dist/assets/volter-sdk-kit-contribution-surfaces-DkZ0OqGh.js +1 -0
  299. package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-C8pETRas.js +1 -0
  300. package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-BEEt0Akm.js +1 -0
  301. package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-Bxd6b-Me.js +1 -0
  302. package/dist/assets/volter-sdk-kit-coverage-session-vitals-C_KOh0vV.js +1 -0
  303. package/dist/assets/volter-sdk-kit-creation-site-registry-xToT1mgQ.js +1 -0
  304. package/dist/assets/volter-sdk-kit-delegate-harness-registry-BQ2Z3x4u.js +1 -0
  305. package/dist/assets/volter-sdk-kit-document-areas-BoFteXyg.js +1 -0
  306. package/dist/assets/volter-sdk-kit-document-context-registry-DCltdAwX.js +1 -0
  307. package/dist/assets/volter-sdk-kit-document-open-registry-nUKbpgXi.js +1 -0
  308. package/dist/assets/volter-sdk-kit-document-play-extension-LhA9YSwP.js +1 -0
  309. package/dist/assets/volter-sdk-kit-document-preview-source-BjKu56A5.js +1 -0
  310. package/dist/assets/volter-sdk-kit-document-renderer-session-CmO67Fns.js +1 -0
  311. package/dist/assets/volter-sdk-kit-document-stage-sessions-DhjElggV.js +1 -0
  312. package/dist/assets/volter-sdk-kit-document-viewports-JkYxkBPk.js +1 -0
  313. package/dist/assets/volter-sdk-kit-editor-api-CkTONSnh.js +1 -0
  314. package/dist/assets/volter-sdk-kit-editor-chrome-capture-Ryy6MFML.js +1 -0
  315. package/dist/assets/volter-sdk-kit-editor-commands-A6xFbhNt.js +1 -0
  316. package/dist/assets/volter-sdk-kit-editor-console-CfXqiRHJ.js +1 -0
  317. package/dist/assets/volter-sdk-kit-editor-current-view-Blu4WXH4.js +1 -0
  318. package/dist/assets/volter-sdk-kit-editor-document-probe-DLQ4_TGz.js +1 -0
  319. package/dist/assets/volter-sdk-kit-editor-git-client-79qLddTa.js +1 -0
  320. package/dist/assets/volter-sdk-kit-editor-hotkeys-Bf8x8pPR.js +1 -0
  321. package/dist/assets/volter-sdk-kit-editor-lease-DnDA6DTK.js +1 -0
  322. package/dist/assets/volter-sdk-kit-editor-lease-view-DnYNNuac.js +1 -0
  323. package/dist/assets/volter-sdk-kit-editor-mode-TyppF_mm.js +1 -0
  324. package/dist/assets/volter-sdk-kit-editor-notifications-DbJyIY8R.js +1 -0
  325. package/dist/assets/volter-sdk-kit-editor-presence-CDht_mUS.js +1 -0
  326. package/dist/assets/volter-sdk-kit-editor-presentation-activity-BAw4OBGu.js +1 -0
  327. package/dist/assets/volter-sdk-kit-editor-presentation-notice-vPwlLZpU.js +1 -0
  328. package/dist/assets/volter-sdk-kit-editor-runtime-BM50QyRE.js +1 -0
  329. package/dist/assets/volter-sdk-kit-editor-server-response-BMR_IEYq.js +1 -0
  330. package/dist/assets/volter-sdk-kit-editor-session-attribution-GlzM29Xi.js +1 -0
  331. package/dist/assets/volter-sdk-kit-editor-session-mode-zTS3Hh7x.js +1 -0
  332. package/dist/assets/volter-sdk-kit-editor-state-facets-iq5aCQYy.js +1 -0
  333. package/dist/assets/volter-sdk-kit-editor-view-presentation-D-Zr2xsr.js +1 -0
  334. package/dist/assets/volter-sdk-kit-environment-images-BBbuCQN0.js +1 -0
  335. package/dist/assets/volter-sdk-kit-eyedropper-session-CVQTFAKM.js +1 -0
  336. package/dist/assets/volter-sdk-kit-files-file-provider-DnQAC1u2.js +1 -0
  337. package/dist/assets/volter-sdk-kit-files-project-files-CwASwqrX.js +1 -0
  338. package/dist/assets/volter-sdk-kit-finders-index-CclbaymG.js +1 -0
  339. package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-B17U2yvo.js +1 -0
  340. package/dist/assets/volter-sdk-kit-frame-frame-parts-VVzfs78H.js +1 -0
  341. package/dist/assets/volter-sdk-kit-framed-document-capture-Cha1yjuL.js +1 -0
  342. package/dist/assets/volter-sdk-kit-game-surface-defaults-CsAR7C_G.js +1 -0
  343. package/dist/assets/volter-sdk-kit-gameplay-export-state-D2gCoh9n.js +1 -0
  344. package/dist/assets/volter-sdk-kit-gameplay-replay-DkkfYYwX.js +1 -0
  345. package/dist/assets/volter-sdk-kit-gameplay-session-time-Dht9eZ_4.js +1 -0
  346. package/dist/assets/volter-sdk-kit-gameplay-sessions-CCOOL4Eg.js +1 -0
  347. package/dist/assets/volter-sdk-kit-hierarchy-component-marks-CTw2KFgo.js +1 -0
  348. package/dist/assets/volter-sdk-kit-hierarchy-internals-D8gRo1WQ.js +1 -0
  349. package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-D0OctdvL.js +1 -0
  350. package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-DwA4Z2A9.js +1 -0
  351. package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BGNi2kxs.js +1 -0
  352. package/dist/assets/volter-sdk-kit-hierarchy-panel-view-Bb1EP0Bk.js +1 -0
  353. package/dist/assets/volter-sdk-kit-hierarchy-projection-BtCzTzOY.js +1 -0
  354. package/dist/assets/volter-sdk-kit-hierarchy-row-media-CnHgcQM8.js +1 -0
  355. package/dist/assets/volter-sdk-kit-hierarchy-row-model-l7Qbe9Dk.js +1 -0
  356. package/dist/assets/volter-sdk-kit-hierarchy-rows-C20aO3up.js +1 -0
  357. package/dist/assets/volter-sdk-kit-hierarchy-walk-CE_FQf5c.js +1 -0
  358. package/dist/assets/volter-sdk-kit-history-editor-session-CS5IwxZx.js +1 -0
  359. package/dist/assets/volter-sdk-kit-history-history-commands-VU0Tf0lj.js +1 -0
  360. package/dist/assets/volter-sdk-kit-history-history-delegate-ZQwI-0MR.js +1 -0
  361. package/dist/assets/volter-sdk-kit-history-history-limit-notices-BrhHiRSY.js +1 -0
  362. package/dist/assets/volter-sdk-kit-history-history-service-BZ4AidfS.js +1 -0
  363. package/dist/assets/volter-sdk-kit-history-persistence-coordinator-Bpi3os_u.js +1 -0
  364. package/dist/assets/volter-sdk-kit-history-project-file-history-hDI70zmi.js +1 -0
  365. package/dist/assets/volter-sdk-kit-history-project-root-history-backends-BAfTGdrX.js +1 -0
  366. package/dist/assets/volter-sdk-kit-history-resource-registry-CGjyTLt-.js +1 -0
  367. package/dist/assets/volter-sdk-kit-history-snapshot-store-BgZ7Byks.js +1 -0
  368. package/dist/assets/volter-sdk-kit-history-source-history-backend-B25Z4lQz.js +1 -0
  369. package/dist/assets/volter-sdk-kit-hmr-registration-group-CiEUgAw2.js +1 -0
  370. package/dist/assets/volter-sdk-kit-hmr-stable-react-context-AymxVJvR.js +1 -0
  371. package/dist/assets/volter-sdk-kit-hotkeys-DlADec38.js +1 -0
  372. package/dist/assets/volter-sdk-kit-inference-diagnostics-GA9FnyOh.js +1 -0
  373. package/dist/assets/volter-sdk-kit-initial-project-zsKWa81T.js +1 -0
  374. package/dist/assets/volter-sdk-kit-inspection-active-subject-qZ5hTw90.js +1 -0
  375. package/dist/assets/volter-sdk-kit-inspection-active-surface-PhQ5uNsI.js +1 -0
  376. package/dist/assets/volter-sdk-kit-inspection-compose-subject-BgSCqJ-r.js +1 -0
  377. package/dist/assets/volter-sdk-kit-inspection-display-D8Nr6_ES.js +1 -0
  378. package/dist/assets/volter-sdk-kit-inspection-document-subject-DGznaZh-.js +1 -0
  379. package/dist/assets/volter-sdk-kit-inspection-game-subject-N0AxqX7G.js +1 -0
  380. package/dist/assets/volter-sdk-kit-inspection-model-hQetv0U9.js +1 -0
  381. package/dist/assets/volter-sdk-kit-inspection-node-media-fGRDtgJj.js +1 -0
  382. package/dist/assets/volter-sdk-kit-inspection-null-subject-ClNE9x2e.js +1 -0
  383. package/dist/assets/volter-sdk-kit-inspection-serialize-CpExrPTA.js +1 -0
  384. package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-CRPvV320.js +1 -0
  385. package/dist/assets/volter-sdk-kit-inspector-presentation-BFfpxT4_.js +1 -0
  386. package/dist/assets/volter-sdk-kit-inspector-property-grouping-o7vgYhKg.js +1 -0
  387. package/dist/assets/volter-sdk-kit-inspector-section-registry-R5_0mSBl.js +1 -0
  388. package/dist/assets/volter-sdk-kit-instance-source-actions-B0lePqHO.js +1 -0
  389. package/dist/assets/volter-sdk-kit-js-heap-BpRVEyaI.js +1 -0
  390. package/dist/assets/volter-sdk-kit-key-actions-BEL1ou9N.js +1 -0
  391. package/dist/assets/volter-sdk-kit-keymap-presets-Qdpmq1MJ.js +1 -0
  392. package/dist/assets/volter-sdk-kit-layout-policy-CoLfPtzo.js +1 -0
  393. package/dist/assets/volter-sdk-kit-light-explorer-model-lqJF5X7X.js +1 -0
  394. package/dist/assets/volter-sdk-kit-live-canvas-frame-DdlhSZOw.js +1 -0
  395. package/dist/assets/volter-sdk-kit-live-document-MPCQkIxv.js +1 -0
  396. package/dist/assets/volter-sdk-kit-live-gesture-lock-BGiQikS-.js +1 -0
  397. package/dist/assets/volter-sdk-kit-live-seam-evidence-HsOKXOM-.js +1 -0
  398. package/dist/assets/volter-sdk-kit-live-session-registry-DPshp-zS.js +1 -0
  399. package/dist/assets/volter-sdk-kit-live-transition-SzISwcSc.js +1 -0
  400. package/dist/assets/volter-sdk-kit-manifest-project-BaQmD3cM.js +1 -0
  401. package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-DVmHXvNS.js +1 -0
  402. package/dist/assets/volter-sdk-kit-mount-failure-report-Dk4LNPuk.js +1 -0
  403. package/dist/assets/volter-sdk-kit-native-selection-style-Bz3kzLsL.js +1 -0
  404. package/dist/assets/volter-sdk-kit-object3d-document-write-policy-yZfQc3Ch.js +1 -0
  405. package/dist/assets/volter-sdk-kit-packaged-runtime-Bofk4pL5.js +1 -0
  406. package/dist/assets/volter-sdk-kit-performance-profiler-BCQbvJC2.js +1 -0
  407. package/dist/assets/volter-sdk-kit-performance-sources-DmFnsOyy.js +1 -0
  408. package/dist/assets/volter-sdk-kit-photograph-notice-Ba8RTcKf.js +1 -0
  409. package/dist/assets/volter-sdk-kit-play-boot-phase-BtZNGfEm.js +1 -0
  410. package/dist/assets/volter-sdk-kit-play-camera-flight-DyDq7TW9.js +1 -0
  411. package/dist/assets/volter-sdk-kit-presentation-surface-CcUgETps.js +1 -0
  412. package/dist/assets/volter-sdk-kit-product-command-CTGtMf--.js +1 -0
  413. package/dist/assets/volter-sdk-kit-project-adapter-CncSm07i.js +1 -0
  414. package/dist/assets/volter-sdk-kit-project-asset-refresh-ff5GvzjI.js +1 -0
  415. package/dist/assets/volter-sdk-kit-project-asset-roots-2I55e0Tl.js +1 -0
  416. package/dist/assets/volter-sdk-kit-project-local-state-CoOxczZf.js +1 -0
  417. package/dist/assets/volter-sdk-kit-project-manager-CXwXszeS.js +1 -0
  418. package/dist/assets/volter-sdk-kit-project-module-changes-Df7bwGJA.js +1 -0
  419. package/dist/assets/volter-sdk-kit-project-module-split-CoOXmcMq.js +1 -0
  420. package/dist/assets/volter-sdk-kit-project-provenance-CsWz3dFr.js +1 -0
  421. package/dist/assets/volter-sdk-kit-project-ready-CEngokqw.js +1 -0
  422. package/dist/assets/volter-sdk-kit-project-shape-Bnk7IlEF.js +1 -0
  423. package/dist/assets/volter-sdk-kit-project-tools-CIrlsLd2.js +1 -0
  424. package/dist/assets/volter-sdk-kit-readiness-8iK1xUw-.js +1 -0
  425. package/dist/assets/volter-sdk-kit-renderer-resource-counts-BRlynwAB.js +1 -0
  426. package/dist/assets/volter-sdk-kit-reported-play-state-CdpNf7iS.js +1 -0
  427. package/dist/assets/volter-sdk-kit-resolve-contributed-command-CAPTMDEe.js +1 -0
  428. package/dist/assets/volter-sdk-kit-resolve-relative-specifier-CQavCIRh.js +1 -0
  429. package/dist/assets/volter-sdk-kit-retained-document-states-CkXz8CLe.js +1 -0
  430. package/dist/assets/volter-sdk-kit-scene-document-plan-C29w0uq_.js +1 -0
  431. package/dist/assets/volter-sdk-kit-scene-live-open-fodeYzCv.js +1 -0
  432. package/dist/assets/volter-sdk-kit-scoped-game-css-C2WRruBw.js +1 -0
  433. package/dist/assets/volter-sdk-kit-served-url-C17qOcC3.js +1 -0
  434. package/dist/assets/volter-sdk-kit-session-close-BKSX8DPi.js +1 -0
  435. package/dist/assets/volter-sdk-kit-session-tombstone-CQ1abA0T.js +1 -0
  436. package/dist/assets/volter-sdk-kit-settings-settings-provider-Drp8Ja5S.js +1 -0
  437. package/dist/assets/volter-sdk-kit-settings-store-DVv602rH.js +1 -0
  438. package/dist/assets/volter-sdk-kit-shell-store-Dwkc4LeK.js +1 -0
  439. package/dist/assets/volter-sdk-kit-shell-store-door-D6VAgShZ.js +1 -0
  440. package/dist/assets/volter-sdk-kit-source-conflict-BsgmQDuR.js +1 -0
  441. package/dist/assets/volter-sdk-kit-stage-context-CF3ATuJX.js +1 -0
  442. package/dist/assets/volter-sdk-kit-stage-invalidation-D1EKNjPS.js +1 -0
  443. package/dist/assets/volter-sdk-kit-stage-store-registry-DMqC8KJA.js +1 -0
  444. package/dist/assets/volter-sdk-kit-startup-failure-CJjXtSxT.js +1 -0
  445. package/dist/assets/volter-sdk-kit-state-report-deferral-BZ1Gll2x.js +1 -0
  446. package/dist/assets/volter-sdk-kit-storage-host-files-storage-BeBBCrF4.js +1 -0
  447. package/dist/assets/volter-sdk-kit-storage-http-storage-DMwE4aCU.js +1 -0
  448. package/dist/assets/volter-sdk-kit-storage-index-85BJsCgw.js +1 -0
  449. package/dist/assets/volter-sdk-kit-storage-mem-storage-Cp5EThww.js +1 -0
  450. package/dist/assets/volter-sdk-kit-storage-path-lock-BEHmTQkG.js +1 -0
  451. package/dist/assets/volter-sdk-kit-storage-paths-GkBBUtDn.js +1 -0
  452. package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-D07t88Iu.js +1 -0
  453. package/dist/assets/volter-sdk-kit-stories-compose-project-stories-BAw1haKj.js +1 -0
  454. package/dist/assets/volter-sdk-kit-stories-prefabs-finder-EMDMwLXg.js +1 -0
  455. package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-CEQekPVJ.js +1 -0
  456. package/dist/assets/volter-sdk-kit-stories-project-story-regions-m9-rTkrt.js +1 -0
  457. package/dist/assets/volter-sdk-kit-stories-scope-PLybjgWr.js +1 -0
  458. package/dist/assets/volter-sdk-kit-stories-story-capture-B3uLpufo.js +1 -0
  459. package/dist/assets/volter-sdk-kit-stories-story-declared-medium-D92bJmIo.js +1 -0
  460. package/dist/assets/volter-sdk-kit-stories-story-discovery-DtaxRT_i.js +1 -0
  461. package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-BjR7PW3K.js +1 -0
  462. package/dist/assets/volter-sdk-kit-stories-story-grouping-BibwARwc.js +1 -0
  463. package/dist/assets/volter-sdk-kit-stories-story-presentation-DaweRLV-.js +1 -0
  464. package/dist/assets/volter-sdk-kit-stories-story-registry-BuTw7T27.js +1 -0
  465. package/dist/assets/volter-sdk-kit-story-document-openers-COzuCirA.js +1 -0
  466. package/dist/assets/volter-sdk-kit-story-thumbnails-DsLqdnDq.js +1 -0
  467. package/dist/assets/volter-sdk-kit-surface-keyboard-RiClmb_a.js +1 -0
  468. package/dist/assets/volter-sdk-kit-surface-state-DjeLKyCd.js +1 -0
  469. package/dist/assets/volter-sdk-kit-system-seam-evidence-omzWuzNM.js +1 -0
  470. package/dist/assets/volter-sdk-kit-tab-census-C8mQ0l9z.js +1 -0
  471. package/dist/assets/volter-sdk-kit-tab-lifecycle-client-28DSypwI.js +1 -0
  472. package/dist/assets/volter-sdk-kit-theme-library-DCToyXQ0.js +1 -0
  473. package/dist/assets/volter-sdk-kit-theme-preference-Dc-_5b1n.js +1 -0
  474. package/dist/assets/volter-sdk-kit-three-viewport-presentation-1LxA9rSc.js +1 -0
  475. package/dist/assets/volter-sdk-kit-tool-contribution-play--JvesPkN.js +1 -0
  476. package/dist/assets/volter-sdk-kit-tool-loader-LTQw0aL4.js +1 -0
  477. package/dist/assets/volter-sdk-kit-transform-mode-request-BY9JxShG.js +1 -0
  478. package/dist/assets/volter-sdk-kit-transient-hint-CM0bpYj2.js +1 -0
  479. package/dist/assets/volter-sdk-kit-transport-strip-5bUygAkv.js +1 -0
  480. package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-CQMWmqhP.js +1 -0
  481. package/dist/assets/volter-sdk-kit-ui-source-inspect-CfayTFdC.js +1 -0
  482. package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-DzQseyn4.js +1 -0
  483. package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-3NgYZbUE.js +1 -0
  484. package/dist/assets/volter-sdk-kit-user-local-state-BZf1C-cO.js +1 -0
  485. package/dist/assets/volter-sdk-kit-viewport-activation-timings-C-7ETz2q.js +1 -0
  486. package/dist/assets/volter-sdk-kit-viewport-editor-controls-f4cwlOWa.js +1 -0
  487. package/dist/assets/volter-sdk-kit-viewport-presentation-Il1TLCMT.js +1 -0
  488. package/dist/assets/volter-sdk-kit-viewport-surface-status-CXyJJGil.js +1 -0
  489. package/dist/assets/volter-sdk-kit-wait-until-D3i87ehY.js +1 -0
  490. package/dist/assets/volter-sdk-kit-worker-call-metrics-DAK8SW-7.js +1 -0
  491. package/dist/assets/volter-sdk-kit-workspace-areas-DxhakPE3.js +1 -0
  492. package/dist/assets/volter-sdk-kit-workspace-aux-commands-j3FyV7Rh.js +1 -0
  493. package/dist/assets/volter-sdk-kit-workspace-available-documents-DS5ZkDU4.js +1 -0
  494. package/dist/assets/volter-sdk-kit-workspace-core-utilities-BbuDHrHq.js +1 -0
  495. package/dist/assets/volter-sdk-kit-workspace-document-ids-Bm3qMqdx.js +1 -0
  496. package/dist/assets/volter-sdk-kit-workspace-document-registry-CfkdJLBO.js +1 -0
  497. package/dist/assets/volter-sdk-kit-workspace-document-restore-BqBMoUhE.js +1 -0
  498. package/dist/assets/volter-sdk-kit-workspace-host-commands-BC-mYI2s.js +1 -0
  499. package/dist/assets/volter-sdk-kit-workspace-persistence-gate-CN-Z9G7V.js +1 -0
  500. package/dist/assets/volter-sdk-kit-workspace-play-utilities-C5iNgpyt.js +1 -0
  501. package/dist/assets/volter-sdk-kit-workspace-presets-B6MKS0jx.js +1 -0
  502. package/dist/assets/volter-sdk-kit-workspace-regions-DZevxGmg.js +1 -0
  503. package/dist/assets/volter-sdk-kit-workspace-static-panels-CUVjETSY.js +1 -0
  504. package/dist/assets/volter-sdk-kit-workspace-status-registry-Cim_nGuV.js +1 -0
  505. package/dist/assets/volter-sdk-kit-workspace-storage-B9Vf07gg.js +1 -0
  506. package/dist/assets/volter-sdk-kit-workspace-style-yCExFcBd.js +1 -0
  507. package/dist/assets/volter-sdk-kit-workspace-utility-commands-C3a_TCq8.js +1 -0
  508. package/dist/assets/volter-sdk-kit-workspace-utility-registry-CmYswBtf.js +1 -0
  509. package/dist/assets/volter-sdk-kit-world-adoption-1Q7uBdLI.js +1 -0
  510. package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-DaZzYmQU.js +1 -0
  511. package/dist/assets/volter-sdk-kit-world-document-routing-d9K0XNhN.js +1 -0
  512. package/dist/assets/volter-sdk-kit-world-pan-state-Bui5iuls.js +1 -0
  513. package/dist/assets/volter-sdk-kit-write-pipe-BMOSwffA.js +1 -0
  514. package/dist/assets/volter-sdk-layout-arrangements-DMEnPpvu.js +1 -0
  515. package/dist/assets/volter-sdk-layouts-DKIqaCd4.js +1 -0
  516. package/dist/assets/volter-sdk-selection-DM8JuNxQ.js +1 -0
  517. package/dist/assets/volter-sdk-session-command-table-G119qBvl.js +1 -0
  518. package/dist/assets/volter-sdk-session-editor-brand-DCHKPDxT.js +1 -0
  519. package/dist/assets/volter-sdk-session-editor-compatibility-B165I_B1.js +1 -0
  520. package/dist/assets/volter-sdk-session-editor-control-protocol-DwV-576_.js +1 -0
  521. package/dist/assets/volter-sdk-session-entrypoint-selection-readers-D88QrS-p.js +1 -0
  522. package/dist/assets/volter-sdk-session-game-css-scope-UkCRVi6L.js +1 -0
  523. package/dist/assets/volter-sdk-session-project-module-url-B49W1ltn.js +1 -0
  524. package/dist/assets/volter-sdk-session-relative-path-guard-Bk6lCH4Z.js +1 -0
  525. package/dist/assets/volter-sdk-session-tool-contribution-convention-QXzdw52f.js +1 -0
  526. package/dist/assets/volter-sdk-types-yKC1STwH.js +1 -0
  527. package/dist/assets/volter-sdk-views-CLPSu14j.js +1 -0
  528. package/dist/assets/volter-sdk-widgets-design-system-842xdooz.js +1 -0
  529. package/dist/assets/volter-sdk-widgets-editor-appearance-CoihkoDV.js +1 -0
  530. package/dist/assets/volter-sdk-widgets-editor-material-B4PbVOyD.js +1 -0
  531. package/dist/assets/volter-sdk-widgets-icon-set-registry-DzBkVTxs.js +1 -0
  532. package/dist/assets/volter-sdk-widgets-index-DRlEnpTD.js +1 -0
  533. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-DKC7RjtF.js +1 -0
  534. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-CGyznIv-.js +1 -0
  535. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-C74QsfSH.js +1 -0
  536. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-Czwcm_Fi.js +1 -0
  537. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-Tij7lXpB.js +1 -0
  538. package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-CY45gPqT.js +1 -0
  539. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BnGlrZAL.js +1 -0
  540. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-uN_3-0Hz.js +1 -0
  541. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-kk1HfmXA.js +1 -0
  542. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-OuqeQbiU.js +1 -0
  543. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-BArl9zsg.js +1 -0
  544. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-C9xyDCr6.js +1 -0
  545. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-DCEai530.js +1 -0
  546. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CJSGOgSm.js +1 -0
  547. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-6PmN1jnt.js +1 -0
  548. package/dist/assets/volter-sdk-widgets-patterns-Dialog-CnuLoAXX.js +1 -0
  549. package/dist/assets/volter-sdk-widgets-patterns-Fields-wFJZE-ci.js +1 -0
  550. package/dist/assets/volter-sdk-widgets-patterns-List-DNL6_6To.js +1 -0
  551. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-Ih0mzWk7.js +1 -0
  552. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-07TRSs2c.js +1 -0
  553. package/dist/assets/volter-sdk-widgets-patterns-Tabs-BKYsTo--.js +1 -0
  554. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-BxOrCYIs.js +1 -0
  555. package/dist/assets/volter-sdk-widgets-patterns-Tree-BfYgX2pa.js +1 -0
  556. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-BgHf-cYK.js +1 -0
  557. package/dist/assets/volter-sdk-widgets-primitives-Button-BUrjXrb8.js +1 -0
  558. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-BiRkft3M.js +1 -0
  559. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-B1KK1N_R.js +1 -0
  560. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-CP8wT6d7.js +1 -0
  561. package/dist/assets/volter-sdk-widgets-primitives-FormControls-ScHBA1o4.js +1 -0
  562. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-CSS-glOy.js +1 -0
  563. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-C0TAVCVh.js +1 -0
  564. package/dist/assets/volter-sdk-widgets-primitives-Layout-CfLBd5Or.js +1 -0
  565. package/dist/assets/volter-sdk-widgets-primitives-Menu-C-Wd4QZF.js +1 -0
  566. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-sPbmhEcp.js +1 -0
  567. package/dist/assets/volter-sdk-widgets-primitives-Panel-CssQZiuw.js +1 -0
  568. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-CCbuJZbe.js +1 -0
  569. package/dist/assets/volter-sdk-widgets-primitives-Text-CnnND9sI.js +1 -0
  570. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-DmN1LfqW.js +1 -0
  571. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D9uLAtac.js +1 -0
  572. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-CbkOGVMc.js +1 -0
  573. package/dist/assets/volter-sdk-widgets-primitives-banner-tones-D4w8jWDq.js +1 -0
  574. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DUn6HqOF.js +1 -0
  575. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-Dw62jIE_.js +1 -0
  576. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BsPj50mE.js +1 -0
  577. package/dist/assets/volter-sdk-widgets-theme-CWND6gaS.js +1 -0
  578. package/dist/assets/volter-sdk-widgets-z-index-CAROhwsS.js +1 -0
  579. package/dist/assets/volter-shared-fontawesome-CU2fjApc.js +1 -0
  580. package/dist/assets/volter-shared-jsx-dev-runtime-CSjBZz-G.js +1 -0
  581. package/dist/assets/volter-shared-jsx-runtime-BfW1mwnX.js +1 -0
  582. package/dist/assets/volter-shared-react-B7X6VYnC.js +1 -0
  583. package/dist/assets/volter-shared-react-dom-DjKMQVYW.js +1 -0
  584. package/dist/assets/volter-shared-react-dom-client-76WJXUTi.js +1 -0
  585. package/dist/assets/volter-shared-three-wYzUWvH9.js +1 -0
  586. package/dist/assets/worker-D1j8wqVo.js +4 -0
  587. package/dist/volter-shared-react.json +10 -0
  588. package/dist/volter-shared-sdk.json +462 -0
  589. package/dist/volter-shared-three.json +3 -0
  590. package/dist-node/cli.js +21181 -0
  591. package/dist-node/create.js +14272 -0
  592. package/package.json +84 -4
  593. package/presets.mjs +2 -0
  594. package/src/contributions.d.ts +4 -0
  595. package/src/index.ts +10 -0
  596. package/starter/AGENTS.md +400 -0
  597. package/starter/CLAUDE.md +1 -0
  598. package/starter/cube.blend +0 -0
  599. package/starter/cube.py +82 -0
  600. package/starter/package.json +9 -0
  601. package/starter/race-state.ts +22 -0
  602. package/starter/track.blend +0 -0
  603. package/starter/track.play.ts +343 -0
  604. package/starter/track.py +324 -0
  605. package/starter/ui/game.stories.tsx +12 -0
  606. package/starter/ui/game.tsx +10 -0
  607. package/starter/ui/race-hud.tsx +29 -0
package/package.json CHANGED
@@ -1,6 +1,86 @@
1
1
  {
2
2
  "name": "@volter/cyclotron",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "author": "Volter AI, Inc.",
4
+ "version": "0.5.192",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "type": "module",
9
+ "engines": {
10
+ "node": ">=24"
11
+ },
12
+ "license": "AGPL-3.0-only AND GPL-3.0-or-later AND MIT",
13
+ "description": "A free, open-source game editor by VideoGame AI using Blender 5.2 compiled to WebAssembly, Code-OSS, three.js, TypeScript and React.",
14
+ "keywords": [
15
+ "blender",
16
+ "three.js",
17
+ "game editor",
18
+ "webassembly",
19
+ "code-oss",
20
+ "react",
21
+ "mcp",
22
+ "codex",
23
+ "claude-code"
24
+ ],
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/volter-ai/editor.git",
28
+ "directory": "packages/cyclotron"
29
+ },
30
+ "files": [
31
+ "README.md",
32
+ "dist",
33
+ "src",
34
+ "LICENSE",
35
+ "LICENSE-BLENDER",
36
+ "NOTICE",
37
+ "dist-node",
38
+ "presets.mjs",
39
+ "starter",
40
+ "LICENSE-MCP",
41
+ "BUNDLED_NOTICES"
42
+ ],
43
+ "scripts": {
44
+ "build": "vite build --config vite.config.ts",
45
+ "build:node": "node scripts/build-node.mjs",
46
+ "typecheck": "tsc -p tsconfig.node.json",
47
+ "test": "npm run build:node && node --test test/first-run.test.mjs"
48
+ },
49
+ "volter": {
50
+ "product": {
51
+ "entry": "./src/index.ts",
52
+ "displayName": "Volter Cyclotron",
53
+ "install": "npx @volter/cyclotron create my-game",
54
+ "colorTheme": "dark",
55
+ "upgrade": true,
56
+ "workbench": {
57
+ "darwin-arm64": {
58
+ "release": "cyclotron-f16dc165c0df-336473f30026-darwin-arm64",
59
+ "tarballSha256": "e7cbbbcd353057db1a0490888a3b300b3020d97f9fd8b4bb4aa7d6bfe9e36319"
60
+ },
61
+ "linux-x64": {
62
+ "release": "cyclotron-f16dc165c0df-336473f30026-linux-x64",
63
+ "tarballSha256": "54759a22c26ce8f6dfd0a155bbf0ee86013ca2d8b5f3648713d1cc1e313b6afc"
64
+ },
65
+ "win32-x64": {
66
+ "release": "cyclotron-f16dc165c0df-336473f30026-win32-x64",
67
+ "tarballSha256": "28e2995d1a28490be99064cce9898a98e95ff2f053279cf694e9df1f9393fa1a"
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "dependencies": {
73
+ "@volter/editor-core": "0.5.192",
74
+ "@volter/editor-blender": "0.1.131",
75
+ "@volter/editor-threejs": "0.5.192",
76
+ "@volter/blender-engine": "0.1.129",
77
+ "@volter/editor-project": "0.5.192",
78
+ "@volter/editor-sdk": "0.5.192",
79
+ "@volter/editor-live": "0.5.192",
80
+ "@modelcontextprotocol/sdk": "1.32.1",
81
+ "undici": "7.29.1"
82
+ },
83
+ "bin": {
84
+ "cyclotron": "./dist-node/cli.js"
85
+ }
86
+ }
package/presets.mjs ADDED
@@ -0,0 +1,2 @@
1
+ // Node-executable product code, shared by the CLI and the New Project screen.
2
+ export { declaration as default } from './dist-node/create.js';
@@ -0,0 +1,4 @@
1
+ declare module 'volter:contributions/*' {
2
+ const contributions: readonly { readonly entryPath: string; readonly load: () => Promise<unknown> }[];
3
+ export default contributions;
4
+ }
package/src/index.ts ADDED
@@ -0,0 +1,10 @@
1
+ import blender from 'volter:contributions/@volter/editor-blender';
2
+ import threejs from 'volter:contributions/@volter/editor-threejs';
3
+ import { product } from '@volter/editor-core/frame/product';
4
+
5
+ export const { mountVolter } = product({
6
+ id: 'cyclotron',
7
+ packages: { '@volter/editor-blender': blender, '@volter/editor-threejs': threejs },
8
+ look: 'blender',
9
+ workspace: 'model',
10
+ });
@@ -0,0 +1,400 @@
1
+ # Cyclotron project
2
+
3
+ This project opens in Volter Cyclotron. Blender runs in the editor's live
4
+ worker; the project-local `blender` MCP server connects to that same session.
5
+
6
+ ## You are working in front of an audience
7
+
8
+ A person is watching this editor window the whole time you work, the way they
9
+ would watch someone build at a desk beside them. What they see on screen is your
10
+ work; a file written off screen or a long silent run of commands looks to them
11
+ like nothing is happening. Make every action legible to them:
12
+
13
+ - Show before you change. Open and frame the document you are about to edit
14
+ before reading packages, writing scripts or running Blender code against it.
15
+ - Build in small steps they can follow, and show each step's result before the
16
+ next. Never leave the starter placeholder on screen while the real work
17
+ happens elsewhere.
18
+ - Say what you are doing and why in Chat as you go, in a sentence they can read
19
+ while watching, and keep a readable plan with the current step beside the
20
+ work (see "Keep the work visible to a person watching").
21
+ - Check what they actually see: inspect editor captures for framing and for text
22
+ they can read at normal size, and fix what is cut off, tilted or cramped.
23
+
24
+ Research the project as you need it, but keep it short between visible steps;
25
+ the person should rarely wait more than a minute without seeing the work move.
26
+
27
+ ### Your first minute
28
+
29
+ 1. Say in Chat, in a sentence or two, what you are going to build.
30
+ 2. Open the document you will work in and frame it:
31
+ `npx --no-install cyclotron camera --position x,y,z --target x,y,z`
32
+ (Blender metres, Z up). For a game in a models-only project, run
33
+ `npx --no-install cyclotron add-play` first, then `npm install`,
34
+ and reload the editor once as `add-play` says, before your first build step.
35
+ 3. Put the `Build Notes` board beside the work with the plan and current step.
36
+ 4. Check what the person sees:
37
+ `npx --no-install cyclotron capture --region document`.
38
+
39
+ Only then read packages or write scripts. The editor nudges you in Chat when
40
+ nothing visible has changed for a minute during your turn; treat that as the
41
+ person asking what is happening.
42
+
43
+ ## Match the requested result
44
+
45
+ Read the request and inspect the project before choosing a workflow. Continue
46
+ in the current project and preserve user-authored content and manual edits.
47
+ Replace unused scaffold placeholders as the requested result calls for.
48
+
49
+ - **A model or asset:** author the requested object in `src/models/*.blend`.
50
+ Check its silhouette, proportions, topology, materials, dimensions and origin
51
+ from several useful angles. Keep its organization suitable for reuse.
52
+ - **A scene or environment:** compose the requested set of objects in a saved
53
+ `.blend` document. Address layout, scale relationships, materials, lighting
54
+ and the intended viewpoints; add cameras when the requested shot needs them.
55
+ A game-like reference can describe a static scene. Implement playable behavior
56
+ when the user asks for a working game or interactive mechanics.
57
+ - **An animation or interactive model:** implement the requested motion or
58
+ interaction and preview it in the editor. Inspect representative poses or
59
+ moments, and verify the requested controls and transitions.
60
+ - **A working game:** follow the gameplay workflow below, including live Play,
61
+ autoplay and manual controls. Match the mechanics and success/failure behavior
62
+ to the requested game.
63
+ - **UI or a HUD:** follow the React UI workflow below. A standalone screen needs
64
+ its own visual and interaction checks; UI attached to a game also needs checks
65
+ during Play.
66
+ - **An edit or repair:** inspect the existing result first and change the
67
+ requested parts. Capture its existing appearance before visual edits and use
68
+ it as a reference for continuity. For behavior-only, setup or diagnostic
69
+ work, focus on the requested behavior; the image-reference
70
+ steps apply when designing or changing appearance.
71
+
72
+ ## Author in the live editor
73
+
74
+ Apply this section to models, scenes and the Blender parts of games.
75
+
76
+ - `src/models/*.blend` are the saved documents, including full scenes.
77
+ `*.py` beside them record how they were authored. Editing a script alone does
78
+ not update the document.
79
+ - Inspect the open scene with `get_scene_info` and `get_object_info` before
80
+ changing it. Rerunning a script that clears the scene replaces existing work.
81
+ Update scripts to preserve user edits and the `References` and `Notes` collections when
82
+ rebuilding procedural content.
83
+ - For procedural changes, update the relevant `.py` and execute it through
84
+ `execute_blender_code` in the project Blender MCP, running the file itself:
85
+ `exec(open("<project root>/src/models/<name>.py").read())`, with the root the
86
+ tool's description names (source files you just wrote are in place when the
87
+ call runs; keep scripts out of dot-directories, `node_modules`, `dist`,
88
+ `coverage` and `logs`, which are not copied in). Pass the user's request
89
+ verbatim as `user_prompt` when the tool asks for it. Use the existing editor
90
+ session rather than a separate Blender process. If the tool says Blender is
91
+ editing another document, wait and retry, then switch to another document
92
+ and back or run `editor.reloadPage()` in eval; do not build through `eval`
93
+ instead.
94
+ - Orient procedural closed-mesh faces outward and inspect their exterior in
95
+ Rendered shading before building many copies. Recalculate normals when needed.
96
+ - Verify object properties and inspect screenshots after meaningful changes.
97
+ The editor autosaves edits to the open `.blend`; confirm the saved file
98
+ before reporting completion. Arbitrary Python execution creates an undo step,
99
+ so prefer the inspection tools for reads.
100
+ - Blender coordinates are metres with Z up. The glTF exporter converts to Y up.
101
+ Preserve the existing script license headers.
102
+ - Blender mounts project files at the project's actual absolute filesystem
103
+ path. Use that path for image loads, saves and exports; `/project` is not an
104
+ alias. Derive it from the project folder rather than guessing a virtual root.
105
+ - For large scenes, build mesh data in batches and reuse meshes/materials.
106
+ Thousands of separate `bpy.ops` primitive and modifier calls can keep the
107
+ editor's Blender worker occupied for minutes. Inspect worker-call timing in
108
+ `status().tabs[].census` and let an active call finish before retrying it.
109
+
110
+ ## Keep the work visible to a person watching
111
+
112
+ Apply this throughout authoring, not only when taking a screenshot or presenting
113
+ the finished result. Someone watching the editor should be able to see what you
114
+ are changing, why, and how far along it is.
115
+
116
+ - Before changing an asset, open its live document and frame the relevant work
117
+ at a useful scale and angle. Keep that view visible while editing source or
118
+ running Blender operations. After each meaningful change, show the result
119
+ before moving on; do not leave a placeholder, an unrelated document or an
120
+ obstructed view on screen while building elsewhere.
121
+ - Arrange the layout for the current task. Use a whole-object view and a detail
122
+ view when helpful, show the reference beside the work, and show React UI work
123
+ in the UI canvas. For gameplay, keep the running game and HUD visible during
124
+ observation. Use the model's View → Area → Vertical Split when two 3D views
125
+ help; each area has its own camera. Preserve deliberate human layout and
126
+ camera changes, and avoid needless switching or cramped panels.
127
+ - At the start of substantial work, store a concise plan as an internal Blender
128
+ Text data-block named `Build Notes`, with a fake user so it survives saving.
129
+ Keep a readable version visible beside the work, such as Text objects in a
130
+ `Notes` collection; an embedded text buffer alone is not visible in this
131
+ editor's 3D viewport. Include the current step, pending steps, and verified
132
+ completed steps with their completion times. Update both versions at real
133
+ milestones. Preserve these notes across procedural rebuilds and reopening.
134
+ Read the actual words in an editor capture at the normal viewing size;
135
+ adjust text size, framing and foreground/background contrast until legible.
136
+ - Keep authoring notes outside the intended shot and out of rendered/exported
137
+ assets and gameplay. Verify this in the actual output; `hide_render` alone
138
+ does not guarantee every export or Play path excludes an object.
139
+ - Before the first substantial build, inspect an editor capture that shows
140
+ the work, reference and readable current-step notes together. Creating a
141
+ reference or notes collection does not satisfy this if it is offscreen,
142
+ behind the camera or too small to read. When the target camera excludes
143
+ them, use a second authoring view for reference and notes, and keep the
144
+ working view framed on the asset. Recheck this arrangement before each
145
+ substantial build step; retain it while comparing the clean target shot.
146
+ - Prefer bounded visible milestones over one long opaque build. While an
147
+ operation is busy, leave the relevant work and its current-step note visible
148
+ and explain what is running. Inspect meaningful editor captures to check
149
+ framing, reference and note legibility; do not claim progress or completion
150
+ before the corresponding result is verified.
151
+
152
+ ## Understand the references
153
+
154
+ - Inspect the supplied images, videos, written specifications, linked sources
155
+ and relevant existing project assets. Open the actual content rather than
156
+ inferring it from filenames or descriptions. Read written constraints and
157
+ inspect multiple useful moments in motion references. If a reference is
158
+ inaccessible, state that limitation rather than claiming to have inspected it.
159
+ - Derive appearance directly from the references: composition and camera,
160
+ silhouette and proportions, relative scale, palette, material finish,
161
+ texture detail, lighting and shadows, background, and UI placement and density.
162
+ Record a concise working interpretation for your own comparison; the user
163
+ should not need to spell out what is visible in their reference.
164
+ - Combine references according to their purpose: an image may define style,
165
+ a video motion and timing, and a specification mechanics or dimensions.
166
+ The user's explicit changes take precedence. Preserve unaffected details
167
+ from existing work. Ask only when conflicting references or a missing detail
168
+ materially prevent progress; use reasonable assumptions for other gaps.
169
+ - Requests for original or different characters and objects change their
170
+ identities, not the reference's art style. Preserve proportions, curvature,
171
+ material finish, surface detail and lighting unless the user requests a
172
+ different treatment. A stylized reference still has a specific visual style.
173
+ - Distinguish visible evidence from assumptions. A still image does not prove
174
+ controls, collisions, unseen geometry or gameplay rules. Infer appropriate
175
+ conventions from the requested kind of result, then verify implemented
176
+ behavior in the editor. Do not promise an unseen feature based on an image.
177
+
178
+ ## Visual references
179
+
180
+ - Use supplied visual references for the requested model, scene, game or UI.
181
+ Reuse relevant existing references when continuing a project. Extract useful
182
+ frames from video references for side-by-side comparison. For new visual
183
+ work with no image reference and an available image-generation tool, generate a
184
+ reference from the user's requested appearance before building. If that tool
185
+ is unavailable, tell the user and continue using their description.
186
+ - Save references in the project's `references/` folder and add them to the
187
+ live Blender scene as named image Empties in a `References` collection.
188
+ Arrange them beside the work for comparison, with their viewport display
189
+ enabled. Pack the images into the `.blend` so they survive reopening;
190
+ preserve the original files too.
191
+ - Capture and inspect the visible editor document with
192
+ `editor.captureEditorChrome({ region: 'document' })` for side-by-side
193
+ comparisons. Image Empties are editor overlays and may be absent from render
194
+ captures such as `get_viewport_screenshot`. Use that MCP tool for clean 3D
195
+ views, and the editor capture to verify the reference is actually visible.
196
+ - Compare composition, silhouette, proportions, colors and materials after
197
+ meaningful visual changes, then correct visible differences. For UI work,
198
+ also open the reference as an editor image document alongside the UI canvas.
199
+ - Choose capture scope deliberately. A full editor-page capture shows authoring,
200
+ chat and panels; a game comparison needs the composed 3D scene and React UI
201
+ in `editor.captureEditorChrome({ region: 'play' })` when using Model Play.
202
+ That capture uses the live Play frame and includes its React HUD; a document
203
+ capture also includes the surrounding authoring viewport. A raw game-canvas
204
+ capture omits the React UI.
205
+ Label these separately when saving evidence. Editor chrome capture reconstructs
206
+ DOM and canvas pixels; it is not a browser/CDP or desktop screenshot.
207
+
208
+ ## Establish the visual match first
209
+
210
+ For new visual work, match the requested view before adding behavior. For a new
211
+ game, this first pass is the authored 3D scene and React UI, composed as a static
212
+ game screenshot; movement, scoring, opponents and item logic come afterward.
213
+ For a behavior-only repair, preserve the established appearance.
214
+
215
+ - Match the reference's aspect ratio, crop, camera angle, perspective and object
216
+ scale. Capture the actual composed scene and UI at comparable resolution;
217
+ editor chrome and unrelated panels are outside this comparison. Use the real
218
+ 3D model and React components, keeping the reference beside the scene.
219
+ For Model Play, declare the reference dimensions in the project's `resolution`
220
+ so the game frame and camera keep that aspect ratio as editor panels resize.
221
+ - Seek the closest practical pixel and color match. Compare large shapes and
222
+ their screen positions first, then regional colors, brightness, contrast,
223
+ saturation, shadows and highlights, and finally texture and small details.
224
+ Use aligned overlays, difference images or sampled colors when available,
225
+ alongside direct visual inspection. Account for explicitly requested changes.
226
+ Judge the rendered silhouettes, curvature, proportions and surface detail,
227
+ as well as which objects are present. Preserve the reference's fidelity
228
+ unless the user requests a different treatment; a simpler interpretation
229
+ does not resolve a visible mismatch.
230
+ - Compare images in a consistent display color space. Inspect texture color
231
+ spaces, renderer output, exposure and tone mapping when colors differ;
232
+ do not compensate for a rendering-pipeline defect by repainting the assets.
233
+ - Capture, compare and revise the model, materials, lighting, camera and UI
234
+ until visible mismatches are resolved before implementing gameplay. If an
235
+ editor or renderer limitation prevents the match, identify it and report the
236
+ blocker instead of burying the mismatch under additional mechanics. Recheck
237
+ the reference view after behavior is added.
238
+ - Before moving to gameplay, save and inspect a comparison of the reference
239
+ and static scene with React UI at matching crop, aspect ratio and resolution.
240
+ Track capture, comparison and visual match as separate results. Saving a
241
+ comparison proves the images were captured; it does not prove a match.
242
+ Record the largest remaining differences in shape, screen position, regional
243
+ color, lighting and UI scale in Build Notes, with actual observations rather
244
+ than a list of categories. Use pixel measurements for representative regions
245
+ and landmark positions when available. Resolve those differences or
246
+ report the specific rendering limitation before checking off the visual pass.
247
+ Support a claimed renderer limitation with a focused comparison or reproduction.
248
+ Continue correcting authorable geometry, framing, materials and UI differences.
249
+ Keep this milestone pending while those differences remain. Continue the
250
+ visual work before adding gameplay instead of checking off object coverage
251
+ as a completed visual match. Calling the result a stylized recreation or
252
+ simpler interpretation does not satisfy a request to match the reference.
253
+
254
+ ## Working games
255
+
256
+ - Complete the visual pass above before implementing gameplay for a new game.
257
+ - Implement and run the game inside the editor. Continue an existing game's
258
+ runtime and source organization. For a new model-based game,
259
+ use the `playable` template; in an existing models-only project run
260
+ `npx --no-install cyclotron add-play` (it never overwrites files).
261
+ Its `src/models/*.play.ts` scripts implement
262
+ gameplay; the Play control runs them on a detached copy of the model.
263
+ When extending an existing model-based project, declare `@volter/editor-model-play`
264
+ and the React/UI dependencies with compatible project versions, and add the
265
+ UI root as needed. Preserve its models, source and settings.
266
+ - Register your bot with `play.autoplay(controller)`; never bind autoplay to a
267
+ game key or start it yourself; the person turns it on in the Game panel (or
268
+ you, with `play autoplay on`). The controller is a plain function called
269
+ before each `update` while autoplay is on, given `{ dt, simT, tick, keys }`
270
+ (`keys` are the person's), and returns the `KeyboardEvent.code` keys it holds
271
+ for that update; they are merged into `keys`, so the bot drives through the
272
+ same movement, collision and scoring code as manual play. Autoplay is off at
273
+ every Play and Restart, and any key or click in the game hands control back
274
+ to the person (`autoplay-off` with `by: 'takeover'` in the play log).
275
+ - Keep a gameplay log while the game runs; without it, autoplay is a black box
276
+ and a final position or screenshot cannot tell you what went wrong. Use the
277
+ play script's built-in log, `play.log(kind, facts)`: it stamps each entry
278
+ with simulation time and tick, keeps a bounded history, and records Play
279
+ start, stop, script reloads and script errors itself. Give each entry a kind
280
+ and the facts needed to explain it: phase changes and
281
+ restarts; autoplay's decisions and the inputs it held; manual inputs that
282
+ start an action; contacts that matter (landing on, leaving or being pushed
283
+ by a surface, by object name); checkpoints, pickups, score and inventory
284
+ changes; deaths, failures and finishes with their cause and position. Log
285
+ transitions rather than every frame, so a full run stays readable.
286
+ - Read the gameplay log with `npx --no-install cyclotron play-log
287
+ [--since <simTime>] [--kind <kind>]` during and after each autoplay or manual
288
+ run, and explain what happened from it before
289
+ changing code: where autoplay stalled or died and why, and whether that is a
290
+ level, physics or controller problem. `console.log` lines do not reach the
291
+ session's console feed (only warnings and errors do), so the play log is
292
+ what you can read back. Keep logging read-only: it must not change
293
+ timing, inputs or game state.
294
+ - Run autoplay in Play (`play autoplay on`) and observe representative actions, objectives,
295
+ progression and any relevant failure/restart behavior. Exercise manual
296
+ controls too. Inspect runtime errors and game state alongside screenshots;
297
+ a still image alone does not verify gameplay.
298
+ - Observe a complete session through every relevant participant's terminal
299
+ state. Check finish, failure and post-finish clearance as appropriate. Use
300
+ the actual Restart control and complete another session; reset every entity's
301
+ position, movement, progression, inventory, effects and terminal state.
302
+ Stop/Play alone does not verify the game's restart behavior.
303
+ - During active gameplay, verify pause freezes simulation time, entity state,
304
+ effects and inventory. Gameplay input while paused must preserve that state;
305
+ resume must restore normal controls. Presenting another editor document can
306
+ stop Model Play and does not verify an in-game pause.
307
+ - Verify manual controls through representative continuous play, including
308
+ turning, braking and the game's special actions. Inspect movement while a
309
+ key is held when testing sustained actions such as reverse; a stopped sample
310
+ after release is insufficient. Use public controls and observational game
311
+ state, rather than private state writes that skip the behavior being checked.
312
+ - Make meaningful race or game state observable through the live HUD or a
313
+ read-only public inspection surface: phase, simulation time, participant
314
+ positions and signed movement, progression, terminal states and inventory
315
+ as applicable. Observation must not bypass normal controls or mutate state.
316
+ - Capture and inspect the running game at the start, during representative
317
+ actions and after gameplay or visual changes. Include the HUD in these
318
+ captures using the visible editor document. Fix observed problems, play again
319
+ and report what was actually observed.
320
+
321
+ ## React UI
322
+
323
+ - Build HUDs, menus and screens as React components in `src/ui/`. A game's
324
+ DOM root is `src/ui/game.tsx`; the playable template includes the required
325
+ React/UI tools and manifest root. Existing projects need `react`, `react-dom`,
326
+ `@volter/editor-ui` and `@volter/editor-react`, with compatible project versions.
327
+ Declare the UI story region in `volter.adapter.ts` (the playable template uses
328
+ `regionIncludes.ui` for `src/ui/**/*.tsx`). Preserve the project's other content.
329
+ - Add `.stories.tsx` states and open them in the editor's UI canvas/component
330
+ board. Show representative states such as normal, empty, error and active
331
+ states as appropriate, and inspect their screenshots and interactions.
332
+ Reveal the board through the ordinary eval door with
333
+ `editor.present({ version: 1, document: { kind: 'workspace', id: 'workspace:ui-components' } })`.
334
+ The board becomes available after UI story discovery; read console errors if
335
+ it is missing. A declared UI root alone does not supply component stories.
336
+ - Give the intended initial state an explicit default and inspect opening the
337
+ canvas without selecting a story. Keep previews deterministic and isolated:
338
+ a timer in one mounted preview must not advance it into another state or
339
+ change another preview. Inspect each selected state's pixels and interactions,
340
+ and keep its entities, inventory and results consistent with the real game.
341
+ - For a game HUD, verify the same components over the running game and check
342
+ they reflect live game state. For standalone UI, verify its own interactions
343
+ and state changes in the UI canvas.
344
+
345
+ ## Session controls
346
+
347
+ Drive this editor through its public SDK/CLI and project Blender MCP. Keep the
348
+ existing editor session and native Chat; private browser automation or a separate
349
+ browser profile would bypass the user's actual authoring experience.
350
+ Work in the authored project's source and assets. Diagnose and report failures
351
+ in editor/runtime dependencies to their owning repository; preserve installed
352
+ packages rather than patching them inside the project.
353
+
354
+ Source, manifest and reference edits update the running editor through its normal
355
+ watchers. Inspect the current document and console before attempting recovery.
356
+ Open model documents with `editor.open("model:src/models/example.blend")`.
357
+ Blender files are Model documents: use their `model:` document IDs with
358
+ `editor.open`. `openAsset` opens generic assets such as images and audio; supplying
359
+ `"model"` as its kind does not turn a `.blend` into the live Blender document.
360
+ Closing the entire editor also ends its hosted AI runtime and can abort your own
361
+ turn. Recover the document or page through its scoped controls, and preserve the
362
+ active conversation when diagnosing a problem.
363
+ Do not call `editor.reloadPage()` just to reveal new files, UI boards, references
364
+ or gameplay scripts. A page reload interrupts the visible editor and its chat;
365
+ reserve it for an explicitly requested reload or a diagnosed problem that needs it.
366
+
367
+ The project-local CLI is `npx --no-install cyclotron`: `status`,
368
+ `console`, `eval --list`, and `chat status` expose the current editor and AI
369
+ session. `chat send "your prompt"` sends to the same visible conversation;
370
+ `chat stop` stops its current turn. Inspect the transcript and pending requests
371
+ for the outcome. A dispatch receipt does not mean an edit has completed.
372
+ In `eval`, explicitly `return` any result you need to inspect; for example,
373
+ `eval 'return await editor.currentView()'`. Read `eval --list` for available
374
+ objects rather than assuming globals from another tool runner.
375
+ If the project uses a Volter World, run app and test commands through that World.
376
+
377
+ Common commands, all through `npx --no-install cyclotron`:
378
+ `camera --position x,y,z --target x,y,z [--fov n]` poses the open document's
379
+ view in Blender metres, Z up. In eval, `editor.present({ version: 1, viewport:
380
+ { camera } })` takes stage space, Y up: a Blender point (x, y, z) is
381
+ `{ x, y: z, z: -y }`, so prefer the `camera` command, which converts for you.
382
+ `capture --region document|play [--out file.png [--force]]` saves what the person sees (default under
383
+ `.volter/captures/`); `add-play` makes a models project playable; `play-log`
384
+ reads the running game's log. The Game panel's controls, each printing its state:
385
+ `play autoplay on|off` switches the game's bot (the Game panel's Autoplay toggle);
386
+ `play pause` holds the game (no `update` calls; its clock stops);
387
+ `play resume` lets it run again;
388
+ `play step [count]` runs one 1/60 s update of a paused game per count;
389
+ `play speed 0.25|0.5|1|2|4` scales the `dt` the script is handed;
390
+ `play restart` begins again on a fresh copy of the model, the clock at zero;
391
+ `play mode game|movie` swaps the bottom area between the Game panel and the Timeline.
392
+ In a play script, recolour or fade an object with
393
+ `play.tint(object, color)` and `play.setOpacity(object, value)`: Blender meshes
394
+ carry one material per slot and the presenter reapplies its own materials, so
395
+ editing `mesh.material.color` does not show.
396
+
397
+ Keep the project clean. Once the real document exists, remove the template
398
+ placeholder (`cube.blend`, `cube.py`) unless the person is using it. Put your
399
+ own helper scripts and evidence images under `.volter/scratch/`, not in the
400
+ project's source folders, and do not leave them behind as project files.
@@ -0,0 +1 @@
1
+ @AGENTS.md
Binary file
@@ -0,0 +1,82 @@
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. `cube.blend` beside this file is YOURS, and so is
14
+ # anything you export from it — glTF, GLB, renders. That is the Foundation's
15
+ # position too, on the same page under "Your Artwork": what you make with
16
+ # Blender is your sole property, "including the .blend files and other data
17
+ # files Blender can write". Every other file the template gave you is MIT.
18
+ # This licence reaches 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 model — the bpy that made `cube.blend`, and its SOURCE.
30
+
31
+ A model is Blender data: `cube.blend` beside this file is the document the
32
+ editor opens, and this is the script that authored it. Run it again and you
33
+ get the same file; edit it and re-run it, or open the `.blend` and model in
34
+ Blender's own Edit Mode — both are authoring, and the `.blend` is the truth
35
+ either way.
36
+
37
+ Run it through the session's Blender, from this project:
38
+
39
+ # The agent uses the blender server declared in .mcp.json. It starts
40
+ # Node with this project's installed Cyclotron CLI (no npm/bin shim).
41
+ # Or, in a live editor session:
42
+ # editor.blender('blender-execute', { code: open('src/models/cube.py').read() })
43
+
44
+ The session saves the open document about a second after the last call, so a
45
+ script that models is a script that saves.
46
+
47
+ Coordinates are metres, Z is up (Blender's), and the exporter converts to the
48
+ game's Y-up on the way to glTF.
49
+ """
50
+
51
+ import bpy
52
+
53
+ # ONE DATABLOCK, AT THE ORIGIN. A model file holds the model, not a set: the
54
+ # factory startup's Light and Camera belong to a scene, and a model that
55
+ # carries them exports them too.
56
+ for obj in list(bpy.data.objects):
57
+ bpy.data.objects.remove(obj, do_unlink=True)
58
+ for mesh in list(bpy.data.meshes):
59
+ bpy.data.meshes.remove(mesh)
60
+ # Materials too, or a re-run appends `Material.001` beside the one it made
61
+ # last time and the Shader Editor shows whichever slot happens to be active.
62
+ for material in list(bpy.data.materials):
63
+ bpy.data.materials.remove(material)
64
+
65
+ # Blender opens on a cube; so does this. `size` is the full width, so 1.0 is
66
+ # a 1 m box — the starter's own scale, not the factory cube's 2 m.
67
+ bpy.ops.mesh.primitive_cube_add(size=1.0, location=(0.0, 0.0, 0.0))
68
+ cube = bpy.context.active_object
69
+ cube.name = "Cube"
70
+ cube.data.name = "Cube"
71
+
72
+ # AND BLENDER'S OWN DEFAULT MATERIAL, because Blender's own default cube has
73
+ # one. Without it the Shading workspace opens on `Shader Editor · No material`
74
+ # with nothing drawn and nothing a person can click to change that — its one
75
+ # control, Use Nodes, correctly refuses, because this view inspects a node
76
+ # tree and never writes one (walk 3, beat 4). `materials.new` leaves
77
+ # `use_nodes` FALSE, which is a material the header names and the canvas still
78
+ # cannot draw; setting it True is what builds the pair Blender builds —
79
+ # Principled BSDF into Material Output, 2 nodes and 37 sockets.
80
+ material = bpy.data.materials.new(name="Material")
81
+ material.use_nodes = True
82
+ cube.data.materials.append(material)
@@ -0,0 +1,9 @@
1
+ {
2
+ "private": true,
3
+ "type": "module",
4
+ "dependencies": {
5
+ "react": "~19.2.4",
6
+ "react-dom": "~19.2.4",
7
+ "three": "~0.180.0"
8
+ }
9
+ }
@@ -0,0 +1,22 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright 2026 Volter AI, Inc.
3
+ /** One race's state, shared by its play script and React DOM root in one mount. */
4
+ export interface RaceState {
5
+ readonly lap: number;
6
+ readonly lapTime: number;
7
+ readonly lastLap: number;
8
+ readonly speed: number;
9
+ readonly fps: number;
10
+ readonly airborne: boolean;
11
+ }
12
+ let state: RaceState = { lap: 1, lapTime: 0, lastLap: 0, speed: 0, fps: 0, airborne: false };
13
+ const listeners = new Set<() => void>();
14
+ export const getRaceState = (): RaceState => state;
15
+ export const subscribeRaceState = (listener: () => void): (() => void) => {
16
+ listeners.add(listener);
17
+ return () => { listeners.delete(listener); };
18
+ };
19
+ export function publishRaceState(next: RaceState): void {
20
+ state = next;
21
+ for (const listener of [...listeners]) listener();
22
+ }
Binary file