@volter/game-editor 0.5.68 → 0.5.69

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 (548) hide show
  1. package/BUNDLED_NOTICES +10954 -5077
  2. package/LICENSE +1 -1
  3. package/LICENSE-BLENDER +2 -2
  4. package/NOTICE +2 -2
  5. package/additions/canvas/package.json +8 -0
  6. package/additions/canvas/src/canvas-mount.ts +46 -0
  7. package/additions/canvas/src/scene2d.tsx +18 -0
  8. package/catalog/entries/bake.json +1 -1
  9. package/catalog/entries/blender.json +3 -3
  10. package/catalog/entries/music.json +5 -5
  11. package/catalog/project-source/LICENSE +1 -1
  12. package/catalog/project-source/src/contributions/bake.kind.ts +2 -2
  13. package/catalog/project-source/src/contributions/builder-document.tsx +1 -1
  14. package/catalog/project-source/src/contributions/builder-ui.tsx +3 -3
  15. package/catalog/project-source/src/contributions/module-source.ts +4 -4
  16. package/catalog/project-source/src/lib/reflections/volume-reflection-material.ts +59 -59
  17. package/catalog/project-source/src/lib/static-batch/Frozen.tsx +1 -1
  18. package/catalog/project-source/src/lib/static-batch/mutation-watch.ts +1 -1
  19. package/catalog/project-source/src/tools/bake-preview.tool.ts +9 -9
  20. package/dist/.vite/manifest.json +3999 -3999
  21. package/dist/assets/{AssetBudgetPanel-P2PeL_X5.js → AssetBudgetPanel-BMR3AQhc.js} +4 -4
  22. package/dist/assets/AudioViewer-DESxi7pU.js +1 -0
  23. package/dist/assets/{CanvasBoardDocument-BFJdTVGp.js → CanvasBoardDocument-Q_nrYFlB.js} +1 -1
  24. package/dist/assets/CanvasSceneViewport-WZMoKy_F.js +1 -0
  25. package/dist/assets/ColorInput-C2EK-OnD.js +1 -0
  26. package/dist/assets/{EntityModelDocument-Du8wIbyK.js → EntityModelDocument-B_4ENTCq.js} +1 -1
  27. package/dist/assets/{EnvironmentAssetDocument-_SttfMY_.js → EnvironmentAssetDocument-BZBp6OFJ.js} +1 -1
  28. package/dist/assets/{GameplaySessionTimeline-CWudWnfd.js → GameplaySessionTimeline-1ivaucpv.js} +1 -1
  29. package/dist/assets/ImageViewer-D16OExYu.js +1 -0
  30. package/dist/assets/{InspectorCanvasPreview-CEr_Kxna.js → InspectorCanvasPreview-BrFjhoiD.js} +1 -1
  31. package/dist/assets/InspectorObjectPreview-CY5xVsPR.js +1 -0
  32. package/dist/assets/JsonAssetDocument-CvjTlcdr.js +2 -0
  33. package/dist/assets/{LiveModuleDocument-BWjOzO_6.js → LiveModuleDocument-ne1o9giX.js} +1 -1
  34. package/dist/assets/{LutAssetDocument-DIc6nsht.js → LutAssetDocument-Cp0v-O7q.js} +1 -1
  35. package/dist/assets/{ModelAssetDocument-_CqTsX_A.js → ModelAssetDocument-Ceu7OIN9.js} +1 -1
  36. package/dist/assets/{NonThreeAuthoringBootstrap-C-V23E1e.js → NonThreeAuthoringBootstrap-DiElZf-e.js} +1 -1
  37. package/dist/assets/Object3DDocumentToolbar-BLNamqii.js +1 -0
  38. package/dist/assets/Object3DDocumentViewport-D6QoHfa_.js +2 -0
  39. package/dist/assets/{Object3DPreview-BPHEr3vI.js → Object3DPreview-ZVokr044.js} +1 -1
  40. package/dist/assets/OnlineAssetDetail-Dnckd7zB.js +1 -0
  41. package/dist/assets/PlayBar-DsMitSgy.js +1 -0
  42. package/dist/assets/{QuarksAssetDocument-4Dne3EHx.js → QuarksAssetDocument-B5J8uHFM.js} +1 -1
  43. package/dist/assets/ReactCanvasControls-CmfvxJYY.js +1 -0
  44. package/dist/assets/RootSelectionOverlay-BWsNiSuM.js +1 -0
  45. package/dist/assets/{ShaderAssetDocument-W3ZjLCkt.js → ShaderAssetDocument-CT7XzsZq.js} +4 -4
  46. package/dist/assets/ShadowEditor-YO5KEfnz.js +1 -0
  47. package/dist/assets/{SourceAssetViewer-BGUeDAEv.js → SourceAssetViewer-FSLup2km.js} +1 -1
  48. package/dist/assets/StageHost-DYfGYwvq.js +2 -0
  49. package/dist/assets/{StoryPreviewMount-Di8uMovM.js → StoryPreviewMount-BhvT5QlB.js} +1 -1
  50. package/dist/assets/ThreeBoardDocument-B-z2nwnH.js +2 -0
  51. package/dist/assets/{ThreeIsolationSceneContent-BAKurKW5.js → ThreeIsolationSceneContent-B5pU4Y6k.js} +1 -1
  52. package/dist/assets/{ToolObject3DPreview-CffvGJ1h.js → ToolObject3DPreview-VtraiQ4Q.js} +1 -1
  53. package/dist/assets/Toolbar-M62Gob9T.js +1 -0
  54. package/dist/assets/{TransientHint-CgmkrmKF.js → TransientHint-Cc40mHWE.js} +1 -1
  55. package/dist/assets/VideoViewer-BxcUwXQm.js +1 -0
  56. package/dist/assets/ViewportShadingMenu-BoMPnTVh.js +1 -0
  57. package/dist/assets/active-ingest-0QjJWb7i.js +3 -0
  58. package/dist/assets/{animation-clock-fLmY_3--.js → animation-clock-BXEwUJtz.js} +1 -1
  59. package/dist/assets/animation-mixers.service-C-Ko4KzM.js +1 -0
  60. package/dist/assets/animation-timeline.utility-Bl15-rYb.js +1 -0
  61. package/dist/assets/{asset-budget-asset.menu-BDRDWrvx.js → asset-budget-asset.menu-BUa3g0Wy.js} +1 -1
  62. package/dist/assets/{asset-budget.action-tQmNGQHC.js → asset-budget.action-Dl5eVPIo.js} +1 -1
  63. package/dist/assets/{asset-budget.document-BthgX37Z.js → asset-budget.document-DJylQ-0h.js} +1 -1
  64. package/dist/assets/{asset-budget.menu-DfyWVH6p.js → asset-budget.menu-BJtvNMLj.js} +1 -1
  65. package/dist/assets/asset-editor-persistence-BIbf5u0Q.js +1 -0
  66. package/dist/assets/asset-loaders-DoNflsHL.js +2 -0
  67. package/dist/assets/{asset-preview-Cv7tfD98.js → asset-preview-DxlSdRZn.js} +1 -1
  68. package/dist/assets/{audio-unlock.service-BvHvZjzx.js → audio-unlock.service-CTaiyXF9.js} +1 -1
  69. package/dist/assets/audio.utility-CEmNc68t.js +1 -0
  70. package/dist/assets/autoplay.service-BZLSUyL8.js +1 -0
  71. package/dist/assets/{babylon-authoring-adapter-Cg5ALSpr.js → babylon-authoring-adapter-BZvV2bz_.js} +1 -1
  72. package/dist/assets/binding-resolver-DGbk9_XR.js +2 -0
  73. package/dist/assets/blender-emscripten-engine-B7lfg-RX.js +2 -0
  74. package/dist/assets/{blender-node-editor.document-B92MO51u.js → blender-node-editor.document-wXJobGNH.js} +1 -1
  75. package/dist/assets/{blender-properties-tab-CDVyDAbf.js → blender-properties-tab-7GFf80ev.js} +1 -1
  76. package/dist/assets/{blender-runtime-host-CuniE0sy.js → blender-runtime-host-CILxrx5T.js} +2 -2
  77. package/dist/assets/{blender-runtime-skin-B_tOz5j5.js → blender-runtime-skin-Cd5lQYsC.js} +7 -7
  78. package/dist/assets/{blender-runtime.document-DxUwLiEW.js → blender-runtime.document-C0r_R49S.js} +7 -7
  79. package/dist/assets/{blender-timeline.document-BdEEoQbK.js → blender-timeline.document-BaISZMBc.js} +1 -1
  80. package/dist/assets/{blender-uv-editor.document-EMSUlRh4.js → blender-uv-editor.document-CT_fsyyA.js} +1 -1
  81. package/dist/assets/blender-version.status-DzEx7u7k.js +1 -0
  82. package/dist/assets/blender-wali-engine-DOiQCBXH.js +2 -0
  83. package/dist/assets/{blender.command-BkBML2SY.js → blender.command-DdiKd8mZ.js} +1 -1
  84. package/dist/assets/blender.status-BMETIbb2.js +1 -0
  85. package/dist/assets/board-guides-CjHQ9Ynm.js +1 -0
  86. package/dist/assets/body-marks-C1LxJtQb.js +1 -0
  87. package/dist/assets/{bridge.command-VnplZ81v.js → bridge.command-DXUeavn5.js} +3 -3
  88. package/dist/assets/{browserAll-BCmkqg8n.js → browserAll-Dg46xT22.js} +1 -1
  89. package/dist/assets/{build-player.document-DV7YcJQt.js → build-player.document-BHwVV3K0.js} +1 -1
  90. package/dist/assets/build-profiles.document-HkpS-Kxa.js +2 -0
  91. package/dist/assets/build-progress.status-u1J0Rm1D.js +1 -0
  92. package/dist/assets/{build-session-BGe0eGrQ.js → build-session-BLboUUbw.js} +2 -2
  93. package/dist/assets/{build.action-Bdj4ZEL_.js → build.action-C00DL83N.js} +1 -1
  94. package/dist/assets/{build.command-DAWiYvPa.js → build.command-Cjk_NY75.js} +1 -1
  95. package/dist/assets/build.header-BWNmNWFT.js +1 -0
  96. package/dist/assets/{build.menu-BiRNC_xc.js → build.menu-BBYtqCIq.js} +1 -1
  97. package/dist/assets/{build.service-Dw9K6VSF.js → build.service-DOU15tKN.js} +1 -1
  98. package/dist/assets/{camera-C-qXzXFf.js → camera-7DGyYW7Y.js} +1 -1
  99. package/dist/assets/{camera-runtime.inspector-BDrwWRlU.js → camera-runtime.inspector-n-jiOR-3.js} +1 -1
  100. package/dist/assets/{canvas-design-mount-DLn49Zle.js → canvas-design-mount-CSRHU-ag.js} +4 -4
  101. package/dist/assets/canvas-entry-runtime-BST8yRuK.js +2 -0
  102. package/dist/assets/{canvas-preview-frames-B5xFRjhQ.js → canvas-preview-frames-Cja32aW2.js} +1 -1
  103. package/dist/assets/{canvas-story-capture.service-DQ_leYyi.js → canvas-story-capture.service-D5R5HJ8n.js} +2 -2
  104. package/dist/assets/capability-coverage-ByWftxk4.js +7 -0
  105. package/dist/assets/{collaboration-presence-BOS1t8wI.js → collaboration-presence-D6MC9xJN.js} +1 -1
  106. package/dist/assets/{collider-Bf4Uk6LW.js → collider-B78EcUc9.js} +1 -1
  107. package/dist/assets/{component-board.service-DFSSCaCf.js → component-board.service-BaQI5Oas.js} +2 -2
  108. package/dist/assets/component-board.service-CkjrsD8x.js +2 -0
  109. package/dist/assets/{component-board.service-CpVXGhz5.js → component-board.service-Dvjz_g-x.js} +2 -2
  110. package/dist/assets/component-contracts.service-C3-AXQp7.js +1 -0
  111. package/dist/assets/component-instance-root-DLI40MiB.js +1 -0
  112. package/dist/assets/{component-verbs.command-DGzZAV_Z.js → component-verbs.command-Brr_WcaR.js} +1 -1
  113. package/dist/assets/{component-verbs.service-D1rVRogp.js → component-verbs.service-DC2sC3j3.js} +1 -1
  114. package/dist/assets/{config-D-EAAhqP.js → config-BI_7osdR.js} +4 -4
  115. package/dist/assets/{configurations-_HZOWZPy.js → configurations-XP9YLkrt.js} +1 -1
  116. package/dist/assets/connection.status-BhRwcFx0.js +1 -0
  117. package/dist/assets/{constraint-5KLYpGm7.js → constraint-Bp1l8hY-.js} +1 -1
  118. package/dist/assets/constraints.inspector-Dm1cycK3.js +1 -0
  119. package/dist/assets/{content-bounds-DKBD7nsv.js → content-bounds-DROIchTa.js} +1 -1
  120. package/dist/assets/{contract-system-adapters-h6OUBRYA.js → contract-system-adapters-Cn7OW_ay.js} +1 -1
  121. package/dist/assets/coverage.service-l42ty7lr.js +3 -0
  122. package/dist/assets/{create-runtime-Bg2uYMfh.js → create-runtime-B_uTwsmi.js} +2 -2
  123. package/dist/assets/curve-THOUsg-j.js +1 -0
  124. package/dist/assets/{data-asset-7Nfmx-28.js → data-asset-DAANayR6.js} +1 -1
  125. package/dist/assets/data-check-core-CHqar_E8.js +1 -0
  126. package/dist/assets/data-ref-CN34UeVw.js +1 -0
  127. package/dist/assets/debug-bridge-BD1XVAIB.js +1 -0
  128. package/dist/assets/debug-registry-ggQWxtu-.js +1 -0
  129. package/dist/assets/{deferred-ingest-play-Bej67_y9.js → deferred-ingest-play-B2JUlwlT.js} +2 -2
  130. package/dist/assets/{design-time-canvas-mount-CFW9ZWuk.js → design-time-canvas-mount-as9cN9I6.js} +2 -2
  131. package/dist/assets/design-time-layers-BRseeSmV.js +1 -0
  132. package/dist/assets/{design-time-mount.service-DJeAPUB_.js → design-time-mount.service-BTVu3yKo.js} +2 -2
  133. package/dist/assets/{design-time-mount.service-_R1UDCw3.js → design-time-mount.service-DKvc7lVK.js} +2 -2
  134. package/dist/assets/design-time-react-mount-C7rB56QD.js +1 -0
  135. package/dist/assets/{document-preview-three-5cbuuJMH.js → document-preview-three-CxmRhCcV.js} +1 -1
  136. package/dist/assets/{dom-authoring-adapter-CoESNvrM.js → dom-authoring-adapter-L8OzXfmE.js} +1 -1
  137. package/dist/assets/{draco3d-Sk9K4AUT.js → draco3d-BjNuXv66.js} +1 -1
  138. package/dist/assets/{edit-mode-audio.service-CH6J-8N7.js → edit-mode-audio.service-BwI5u845.js} +1 -1
  139. package/dist/assets/edit-mode-authoring-D5f7aHHl.js +1 -0
  140. package/dist/assets/{edit-mode-networking.service-C4o2pGHX.js → edit-mode-networking.service-DqP_4lbI.js} +1 -1
  141. package/dist/assets/editor-api-BM7H_F4G.js +1 -0
  142. package/dist/assets/{editor-layers-B4oYfpj8.js → editor-layers-D-CTUqco.js} +1 -1
  143. package/dist/assets/editor-presentation-activity-CqJH4G9t.js +1 -0
  144. package/dist/assets/{editor-shell-store-Bh1S7M54.js → editor-shell-store-DHVWS8cE.js} +1 -1
  145. package/dist/assets/{entity-object-B_5Gc0Ky.js → entity-object-MKYemTFM.js} +1 -1
  146. package/dist/assets/{extend-DcEyE5jI.js → extend-BrgqZiMY.js} +1 -1
  147. package/dist/assets/{fork-menu-CKjNh3MO.js → fork-menu-DE2MK3Nq.js} +1 -1
  148. package/dist/assets/{frame-debugger-store-D5YViF_8.js → frame-debugger-store-BXoLKTdZ.js} +1 -1
  149. package/dist/assets/game-audio-BeCyd0Ha.js +1 -0
  150. package/dist/assets/{game-contract-seams-C0AVYwvO.js → game-contract-seams-tyKDsfaP.js} +1 -1
  151. package/dist/assets/{game-css-scope-transform-8GOvVu1s.js → game-css-scope-transform-DcjrwtVc.js} +2 -2
  152. package/dist/assets/game-document.service-CTb2itHQ.js +1 -0
  153. package/dist/assets/{game-eval.command-4wa9vqWE.js → game-eval.command-CpDKXOQU.js} +2 -2
  154. package/dist/assets/game-module-access-BTInp2NG.js +1 -0
  155. package/dist/assets/game-network-DW5ARz4R.js +22 -0
  156. package/dist/assets/{gameplay-export-K5AcStVC.js → gameplay-export-cHk3v9y-.js} +1 -1
  157. package/dist/assets/gameplay-replay-HRenPTtU.js +1 -0
  158. package/dist/assets/{gameplay.command-DoWqBWhH.js → gameplay.command-DcY2lKKX.js} +1 -1
  159. package/dist/assets/generation-CdOATubd.css +1 -0
  160. package/dist/assets/{generation-jobs-CiabIfR0.js → generation-jobs-CJBehuUp.js} +1 -1
  161. package/dist/assets/generation.service-BMOc-C9i.js +1 -0
  162. package/dist/assets/{generations-DU9rCeQR.js → generations-ssgVOe_6.js} +1 -1
  163. package/dist/assets/generations.status-B_SmPReI.js +1 -0
  164. package/dist/assets/hierarchy-marks-BuCO8Ke-.js +1 -0
  165. package/dist/assets/hierarchy-marks-CsTaTkc7.js +1 -0
  166. package/dist/assets/hosted-asset-materialization-CiXZI85V.js +2 -0
  167. package/dist/assets/{ibl-override-material-CiKkaOTW.js → ibl-override-material-CMo_a49U.js} +1 -1
  168. package/dist/assets/index-B0S4fQQV.js +1 -0
  169. package/dist/assets/{index-Kb9_s5aP.js → index-B9bd4k-t.js} +1 -1
  170. package/dist/assets/index-BMxv2MNV.js +1 -0
  171. package/dist/assets/{index-CC1puVjo.js → index-Bm4_DmRO.js} +1 -1
  172. package/dist/assets/{index-BsYc2Oyj.js → index-BvBlIRwM.js} +1 -1
  173. package/dist/assets/{index-C4AUQbmq.js → index-BweKDdi_.js} +1 -1
  174. package/dist/assets/{index-CaG87ZF-.js → index-C5ZAyrKq.js} +271 -270
  175. package/dist/assets/index-CPiRKiDC.css +1 -0
  176. package/dist/assets/index-CfpGZrbC.js +1 -0
  177. package/dist/assets/index-Czvj6whv.js +1 -0
  178. package/dist/assets/{index-C20Flc1s.js → index-DgPDGGSV.js} +2 -2
  179. package/dist/assets/{inference-diagnostics-MGcIHEX6.js → inference-diagnostics-DLt9ql9I.js} +1 -1
  180. package/dist/assets/{ingest-boot-viewport-D2okO6JI.js → ingest-boot-viewport-BXVXjYpG.js} +1 -1
  181. package/dist/assets/ingest-siblings-DWJ7OGB_.js +1 -0
  182. package/dist/assets/ingest-source-persistence-6ShMoSCa.js +1 -0
  183. package/dist/assets/ingest.service-BBbX8ibg.js +1 -0
  184. package/dist/assets/{inspect-C8RP8G5F.js → inspect-Cz3Zyx_1.js} +1 -1
  185. package/dist/assets/inspection-D8fZOHCM.js +1 -0
  186. package/dist/assets/instances.command-BrdlngrL.js +1 -0
  187. package/dist/assets/{json-history-resource-CTXRV4GD.js → json-history-resource-Uqrihfc8.js} +1 -1
  188. package/dist/assets/{layered-pick-B_-BRrRD.js → layered-pick-CAVQMPI7.js} +1 -1
  189. package/dist/assets/{light-CskDQ8gF.js → light-CqzsCWeJ.js} +1 -1
  190. package/dist/assets/{live-project-verbs-BOAQN3ME.js → live-project-verbs-CdFmLYOo.js} +1 -1
  191. package/dist/assets/{machine.document-BxOoCOo9.js → machine.document-DRIFOVaa.js} +1 -1
  192. package/dist/assets/{machines.finder-CqEceWzS.js → machines.finder-DPCT6few.js} +1 -1
  193. package/dist/assets/material-BVApn1V_.js +1 -0
  194. package/dist/assets/{material-factory-qB9pzcQf.js → material-factory-B_75xxFD.js} +1 -1
  195. package/dist/assets/{mesh-5--4qA-C.js → mesh-DdA3mExo.js} +1 -1
  196. package/dist/assets/model-asset-sections-D1uxOu2v.css +1 -0
  197. package/dist/assets/model-asset-sections.service-CJnSIckZ.js +1 -0
  198. package/dist/assets/{model-inspection-MrJY0U_-.js → model-inspection-DvspbmJl.js} +1 -1
  199. package/dist/assets/{model-thumbnail-uk-2sblh.js → model-thumbnail-BmQs-h6t.js} +1 -1
  200. package/dist/assets/{models.finder-rk8dhgO8.js → models.finder-Qv_Hsccy.js} +1 -1
  201. package/dist/assets/module-mode-MJ4Gbsry.js +2 -0
  202. package/dist/assets/mount-canvas-ingest-root-BxtM8OaB.js +2 -0
  203. package/dist/assets/mount-dom-ingest-root-pGatqO46.js +2 -0
  204. package/dist/assets/{mount-ingest-root-BC3-1Cw1.js → mount-ingest-root-C7jb-mCl.js} +2 -2
  205. package/dist/assets/{mount-manifest-QJOB11Kv.js → mount-manifest-BfoHBuzn.js} +1 -1
  206. package/dist/assets/mount-readiness-DyAd17pe.js +4 -0
  207. package/dist/assets/mount-three-ingest-root-Boa5mcaF.js +1 -0
  208. package/dist/assets/{mounted-authoring-B7RL_V28.js → mounted-authoring-DxMISwvR.js} +1 -1
  209. package/dist/assets/{mounted-story-viewport-source-CnYhX3vW.js → mounted-story-viewport-source-DfnLxI1f.js} +1 -1
  210. package/dist/assets/{native-debug-module-B-rWJfWE.js → native-debug-module-BlrALjM3.js} +1 -1
  211. package/dist/assets/{navigation-BVu-aVmF.js → navigation-CqG5o5AR.js} +1 -1
  212. package/dist/assets/{navmesh.menu-C3M63eR4.js → navmesh.menu-D4TdVDhe.js} +1 -1
  213. package/dist/assets/{navmesh.service-B0H1fUfn.js → navmesh.service-DWKT5ruQ.js} +1 -1
  214. package/dist/assets/network-observer.service-ZRAquNq4.js +1 -0
  215. package/dist/assets/network.utility-DjeOEvAY.js +1 -0
  216. package/dist/assets/object-marks-BnvSuCTt.js +1 -0
  217. package/dist/assets/{object3d-authoring-subject-BDrxd1GA.js → object3d-authoring-subject-XccsO0xG.js} +1 -1
  218. package/dist/assets/{object3d-document-session-registry-OjqzJ86S.js → object3d-document-session-registry-CMRJdFp6.js} +2 -2
  219. package/dist/assets/{oid-transform-Bzc2ZJSH.js → oid-transform-DaA6yW6o.js} +1 -1
  220. package/dist/assets/{particles-Be7AvO4c.js → particles-DsQRcDBY.js} +1 -1
  221. package/dist/assets/{performance-profiler-OwnXQX0M.js → performance-profiler-CMbwGBuk.js} +1 -1
  222. package/dist/assets/pixi-authoring-adapter-BoBt8bB5.js +1 -0
  223. package/dist/assets/pixi-live-write-target-CYZgvC6U.js +1 -0
  224. package/dist/assets/{play.command-CIGRq8ow.js → play.command-D9JGJP-e.js} +2 -2
  225. package/dist/assets/pose-guard-CLabLSzf.js +1 -0
  226. package/dist/assets/presentation-COhHQdmR.js +1 -0
  227. package/dist/assets/{product-BN31wSnB.js → product-CaRGoiIH.js} +1 -1
  228. package/dist/assets/{profiler.action-D57Kj9ym.js → profiler.action-Cz7HYWjh.js} +1 -1
  229. package/dist/assets/{profiler.menu-Dh9Q5DDx.js → profiler.menu-D5aR_FBy.js} +1 -1
  230. package/dist/assets/profiler.utility-KwxlIPKb.js +1 -0
  231. package/dist/assets/{project-authoring-session-LCJAwGrD.js → project-authoring-session-DKXHVwxO.js} +2 -2
  232. package/dist/assets/project-provenance-BGnJXJwa.js +1 -0
  233. package/dist/assets/{properties-bone-constraints.inspector-CaIDq5nN.js → properties-bone-constraints.inspector-Bo-sU8eR.js} +1 -1
  234. package/dist/assets/{properties-bone.inspector-D2fcQGMF.js → properties-bone.inspector-BQiWplQv.js} +1 -1
  235. package/dist/assets/{properties-collection.inspector-CF5AtTAd.js → properties-collection.inspector-C5BnR-GE.js} +1 -1
  236. package/dist/assets/{properties-constraints.inspector-Bj2itDrS.js → properties-constraints.inspector-CyheU12R.js} +1 -1
  237. package/dist/assets/{properties-data.inspector-BfRqk0Xo.js → properties-data.inspector-CkycARja.js} +1 -1
  238. package/dist/assets/{properties-material.inspector-Bf8H0mvu.js → properties-material.inspector-Bl_PUmY-.js} +1 -1
  239. package/dist/assets/{properties-modifiers.inspector-BKShc1TH.js → properties-modifiers.inspector-j7SnOxQq.js} +1 -1
  240. package/dist/assets/{properties-object.inspector-YBh8ABnN.js → properties-object.inspector-DcR3MGLK.js} +1 -1
  241. package/dist/assets/{properties-output.inspector-CVkzfs-l.js → properties-output.inspector-BLjw6K4b.js} +1 -1
  242. package/dist/assets/{properties-particles.inspector-ChDpAq-2.js → properties-particles.inspector-BUIm2-Jf.js} +1 -1
  243. package/dist/assets/{properties-physics.inspector-BLEM7aMj.js → properties-physics.inspector-DNvRcxb6.js} +1 -1
  244. package/dist/assets/{properties-render.inspector-vU4D9xLL.js → properties-render.inspector-8FMZ-qoZ.js} +1 -1
  245. package/dist/assets/{properties-scene.inspector-C-DoN-kL.js → properties-scene.inspector-Dx7_z75k.js} +1 -1
  246. package/dist/assets/{properties-texture.inspector-DySxy1oU.js → properties-texture.inspector-WT15951-.js} +1 -1
  247. package/dist/assets/{properties-view-layer.inspector-DEKxMahJ.js → properties-view-layer.inspector-P7VNTdqr.js} +1 -1
  248. package/dist/assets/{properties-world.inspector-m5qL_TQV.js → properties-world.inspector-B3t1q8TF.js} +1 -1
  249. package/dist/assets/r3f-design-session-lsbFnoWH.js +2 -0
  250. package/dist/assets/{r3f-physics-binding-Bgzzd4ol.js → r3f-physics-binding-Cx8yhuwt.js} +1 -1
  251. package/dist/assets/{r3f-source-authoring-adapter-C8oMjdTL.js → r3f-source-authoring-adapter-jH3G0TeH.js} +1 -1
  252. package/dist/assets/react-canvas-navigation-B_gOe3CI.js +1 -0
  253. package/dist/assets/react-inspector.service-CZf1vfdX.js +1 -0
  254. package/dist/assets/react-story-board-CCm2Opwn.js +1 -0
  255. package/dist/assets/{react-three-rapier.esm-BR2ttgLS.js → react-three-rapier.esm-CHXGG51p.js} +1 -1
  256. package/dist/assets/react-world-authoring-adapter-CnzxMtYz.js +1 -0
  257. package/dist/assets/{realm-services-DefTrXnY.js → realm-services-Do9J6nsb.js} +1 -1
  258. package/dist/assets/reflection-probe-capture.inspector-BAjjIybz.js +1 -0
  259. package/dist/assets/{reflection-probe-BHNGwVyz.js → reflection-probe-sIto9mh0.js} +1 -1
  260. package/dist/assets/registry-Xnduk02T.js +1 -0
  261. package/dist/assets/{relative-import-specifier-DQzkawgj.js → relative-import-specifier-CPFTrxi4.js} +1 -1
  262. package/dist/assets/{render-env-BZ7LsGfk.js → render-env-YJlI8K0i.js} +1 -1
  263. package/dist/assets/{render-features-C7QwmhCo.js → render-features-DMSV2qKJ.js} +1 -1
  264. package/dist/assets/{render-settings-BBvkacR3.js → render-settings-CRyDhHyz.js} +1 -1
  265. package/dist/assets/resolve-three-D27rMc37.js +702 -0
  266. package/dist/assets/root-seam-contract-gjWUd5uu.js +1 -0
  267. package/dist/assets/{run-selection-BUeubtHj.js → run-selection-B0jOdyYt.js} +1 -1
  268. package/dist/assets/scene-capture-Di9cM1p4.js +1 -0
  269. package/dist/assets/scene-document.service-XxGs4HHE.js +2 -0
  270. package/dist/assets/{scene-framing-PVMqGU8h.js → scene-framing-DkZKDwH3.js} +1 -1
  271. package/dist/assets/{scene-index--lRWLEmW.js → scene-index-DHeKmalD.js} +1 -1
  272. package/dist/assets/{scene-query-s1y04OVB.js → scene-query-ByZtXA2m.js} +1 -1
  273. package/dist/assets/seeded-random-BJthDRMu.js +1 -0
  274. package/dist/assets/{session-CTXsU1lK.js → session-x8E_NJk2.js} +34 -34
  275. package/dist/assets/{setup-renderer-OOw1SykJ.js → setup-renderer-F9mG7t6r.js} +1 -1
  276. package/dist/assets/{source-object3d-authoring-adapter-RmutT5Dt.js → source-object3d-authoring-adapter-CvmFpSUj.js} +1 -1
  277. package/dist/assets/{source-persistence-backend-HviqjKZ2.js → source-persistence-backend-au3WtEn6.js} +1 -1
  278. package/dist/assets/{spark-renderer-lifecycle-DfYpvEJa.js → spark-renderer-lifecycle-B6Axb6jm.js} +1 -1
  279. package/dist/assets/{stage-keyboard-DDi7S27C.js → stage-keyboard-BQkndG_D.js} +1 -1
  280. package/dist/assets/stage-overlay-set-g6eWhuRv.js +1 -0
  281. package/dist/assets/stage-presence-markers-0CDfO5f4.js +1 -0
  282. package/dist/assets/stage-transform-tools-BzPl7OIo.js +1 -0
  283. package/dist/assets/standard-viewport-dressing-BW-dM_1h.js +24 -0
  284. package/dist/assets/{state-watch.action-DEdb1mNa.js → state-watch.action-Z1nQ5awu.js} +1 -1
  285. package/dist/assets/{state-watch.menu-jWbUM3kw.js → state-watch.menu-CQHGUF3W.js} +1 -1
  286. package/dist/assets/state-watch.utility-DCIg2i79.js +1 -0
  287. package/dist/assets/{story-capture-Dj1xkeKH.js → story-capture-BIrjDKeY.js} +1 -1
  288. package/dist/assets/story-documents-BvG2xeaR.js +3 -0
  289. package/dist/assets/{story-documents.service-iNP-ORNr.js → story-documents.service-DOSEa3ja.js} +1 -1
  290. package/dist/assets/{story-documents.service-BzQCuNBu.js → story-documents.service-y1m7XGMJ.js} +1 -1
  291. package/dist/assets/{story-media-presence-zTPlU9HR.js → story-media-presence-HLV-KaMj.js} +1 -1
  292. package/dist/assets/{story-pixi-preview-B7THvSl7.js → story-pixi-preview-CMhho2gG.js} +1 -1
  293. package/dist/assets/{story-presentation-BLXYPadR.js → story-presentation-CYhVv8Ku.js} +1 -1
  294. package/dist/assets/story-three-preview-CgcLF5lE.js +2 -0
  295. package/dist/assets/{structural-ids-Br2zjINh.js → structural-ids-BOo2BRoY.js} +1 -1
  296. package/dist/assets/studio-environment-R9qXUUcC.js +2 -0
  297. package/dist/assets/{surface-state-D9j6qNu8.js → surface-state-D8Qnowo6.js} +1 -1
  298. package/dist/assets/{syntactic-prop-specs-BTnsMOvH.js → syntactic-prop-specs-8gkBuc5j.js} +1 -1
  299. package/dist/assets/team-playtest.service-BBMZ2iyk.js +1 -0
  300. package/dist/assets/{three-oYrcK5SQ.js → three-DiL6vMXq.js} +1 -1
  301. package/dist/assets/three-authoring-adapter-CkLR2zGf.js +1 -0
  302. package/dist/assets/three-authoring.service-CovhlCGx.js +2 -0
  303. package/dist/assets/{three-ingest-runtime-CXKjNysA.js → three-ingest-runtime-CwTqAHgX.js} +1 -1
  304. package/dist/assets/{three-integration-CuAnYaTW.js → three-integration-DXOFI88n.js} +2 -2
  305. package/dist/assets/three-integration.service-rCAqpqSp.js +1 -0
  306. package/dist/assets/three-projection-core-B7Lf8tOp.js +1 -0
  307. package/dist/assets/{three-state-wXRU3rLr.js → three-state-BCACvUtm.js} +1 -1
  308. package/dist/assets/{three-story-capture.service-DMJRcqjr.js → three-story-capture.service-rTFKNtHA.js} +2 -2
  309. package/dist/assets/{three-story-model-DgiAP-oQ.js → three-story-model-BjKr7OMn.js} +1 -1
  310. package/dist/assets/three-viewport-presentation-CBzvc2v2.js +141 -0
  311. package/dist/assets/tools-DfctM216.js +1 -0
  312. package/dist/assets/transform-mode-request-DlEApNrA.js +1 -0
  313. package/dist/assets/transport-strip-xCg94CuI.js +1 -0
  314. package/dist/assets/transport.header-BRtdky0x.js +1 -0
  315. package/dist/assets/{trigger-volume-DP0G1VBe.js → trigger-volume-BLkHmfm9.js} +1 -1
  316. package/dist/assets/tuples-BDz3wbQL.js +1 -0
  317. package/dist/assets/ui-board-document-DvbK_HVN.js +2 -0
  318. package/dist/assets/{user-data-CqOoAowZ.js → user-data-C84W0V47.js} +1 -1
  319. package/dist/assets/user-data-CODoGZqA.js +1 -0
  320. package/dist/assets/{utility-view-state-Db97zwDz.js → utility-view-state-CDRxZSo-.js} +1 -1
  321. package/dist/assets/viewport-door-BARIpMu-.js +1 -0
  322. package/dist/assets/{viewport-root-presentation-B35t51xX.js → viewport-root-presentation-hRLF0BeO.js} +1 -1
  323. package/dist/assets/{viewport-surface-status-D5kZtFW5.js → viewport-surface-status-TUfhXKR9.js} +1 -1
  324. package/dist/assets/{webworkerAll-CfKEb4Ao.js → webworkerAll-PJtcQ1FD.js} +1 -1
  325. package/dist/assets/worker-BtXrsgFy.js +2 -0
  326. package/dist/assets/workspace-arrangement-DqG5sUns.js +1 -0
  327. package/dist/assets/world-documents-D69XaqUX.js +1 -0
  328. package/dist/assets/world-root-stage-binding-BgZWZEuD.js +1 -0
  329. package/dist/assets/{xstate-animation-binding-aQEmNSpm.js → xstate-animation-binding-CIyLzGHs.js} +1 -1
  330. package/dist/assets/{xstate-animation-meta-CnMX1Sc1.js → xstate-animation-meta-CbYWup3R.js} +1 -1
  331. package/dist/volter-shared-react.json +10 -0
  332. package/dist/volter-shared-three.json +3 -0
  333. package/dist-node/cli.js +239 -201
  334. package/dist-node/create.js +89 -73
  335. package/package.json +20 -19
  336. package/src/contributions.d.ts +1 -1
  337. package/src/index.ts +10 -10
  338. package/starter/cube.py +1 -1
  339. package/template/.agents/references/project-manual.md +17 -17
  340. package/template/.agents/skills/editor/SKILL.md +6 -6
  341. package/template/.agents/skills/editor/agents/openai.yaml +3 -3
  342. package/template/.agents/skills/editor/references/editor-control.md +62 -62
  343. package/template/.agents/skills/{vgai-3d-models → volter-3d-models}/SKILL.md +3 -3
  344. package/template/.agents/skills/{vgai-ingest-existing-game → volter-ingest-existing-game}/SKILL.md +2 -2
  345. package/template/.agents/skills/{vgai-music → volter-music}/SKILL.md +7 -7
  346. package/template/{.github/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/SKILL.md +9 -9
  347. package/template/.agents/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
  348. package/template/{.claude/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
  349. package/template/.claude/skills/editor/SKILL.md +6 -6
  350. package/template/.claude/skills/editor/agents/openai.yaml +3 -3
  351. package/template/.claude/skills/editor/references/editor-control.md +62 -62
  352. package/template/{.github/skills/vgai-3d-models → .claude/skills/volter-3d-models}/SKILL.md +3 -3
  353. package/template/{.github/skills/vgai-ingest-existing-game → .claude/skills/volter-ingest-existing-game}/SKILL.md +2 -2
  354. package/template/.claude/skills/{vgai-threejs-authoring → volter-threejs-authoring}/SKILL.md +9 -9
  355. package/template/.claude/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
  356. package/template/{.agents/skills/vgai-threejs-authoring → .claude/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
  357. package/template/.github/copilot-instructions.md +1 -1
  358. package/template/.github/skills/editor/SKILL.md +6 -6
  359. package/template/.github/skills/editor/agents/openai.yaml +3 -3
  360. package/template/.github/skills/editor/references/editor-control.md +62 -62
  361. package/template/{.claude/skills/vgai-3d-models → .github/skills/volter-3d-models}/SKILL.md +3 -3
  362. package/template/{.claude/skills/vgai-ingest-existing-game → .github/skills/volter-ingest-existing-game}/SKILL.md +2 -2
  363. package/template/{.agents/skills/vgai-threejs-authoring → .github/skills/volter-threejs-authoring}/SKILL.md +9 -9
  364. package/template/.github/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
  365. package/template/.github/skills/{vgai-threejs-authoring → volter-threejs-authoring}/references/helper-catalog.md +1 -1
  366. package/template/.mcp.json +3 -3
  367. package/template/AGENTS.md +24 -23
  368. package/template/DEVLOG.md +1 -1
  369. package/template/IDIOMS.md +3 -3
  370. package/template/LICENSE +3 -3
  371. package/template/README.md +12 -12
  372. package/template/check-idioms.ts +51 -51
  373. package/template/manifest-entry-modules-plugin.ts +17 -4
  374. package/template/package.json +13 -15
  375. package/template/server/loopback.ts +1 -1
  376. package/template/server/main.ts +4 -4
  377. package/template/server/rooms/arena-room.ts +8 -8
  378. package/template/server/rooms/game-room.ts +8 -8
  379. package/template/server/rooms.ts +2 -2
  380. package/template/src/bot/QaTester.tsx +1 -1
  381. package/template/src/bot/bot-station.ts +2 -2
  382. package/template/src/bot/tester-station.ts +1 -1
  383. package/template/src/contributions/README.md +1 -1
  384. package/template/src/contributions/analytics.analytics.tsx +1 -1
  385. package/template/src/contributions/data.document.tsx +2 -2
  386. package/template/src/contributions/pages.finder.ts +1 -1
  387. package/template/src/contributions/tester.inspector.tsx +2 -2
  388. package/template/src/contributions/use-game-modules.ts +1 -1
  389. package/template/src/input.ts +1 -1
  390. package/template/src/lib/reflections/volume-reflection-material.ts +59 -59
  391. package/template/src/lib/static-batch/Frozen.tsx +1 -1
  392. package/template/src/lib/static-batch/mutation-watch.ts +1 -1
  393. package/template/src/main.ts +19 -38
  394. package/template/src/manifest-entry-modules.d.ts +12 -1
  395. package/template/src/prefabs/HeroBox.stories.tsx +1 -1
  396. package/template/src/world.tsx +1 -1
  397. package/template/tsconfig.json +1 -1
  398. package/template/validate-manifest.ts +3 -3
  399. package/template/vite.config.ts +11 -11
  400. package/template/{vgai.adapter.ts → volter.adapter.ts} +1 -1
  401. package/template/{vgai.project.json → volter.project.json} +2 -2
  402. package/template-dotfiles/gitignore +27 -27
  403. package/workbench/src/media/game-cover.css +11 -11
  404. package/workbench/src/product.contribution.ts +28 -28
  405. package/workbench/src/{vgaiGameSkew.ts → volterGameSkew.ts} +16 -16
  406. package/dist/assets/AudioViewer-xFb5Wv7A.js +0 -1
  407. package/dist/assets/CanvasSceneViewport-vqBlOz8P.js +0 -1
  408. package/dist/assets/ColorInput-CX1UZjYO.js +0 -1
  409. package/dist/assets/ImageViewer-shZzMd91.js +0 -1
  410. package/dist/assets/InspectorObjectPreview-BMOvJaOw.js +0 -1
  411. package/dist/assets/JsonAssetDocument-D_HXneWE.js +0 -2
  412. package/dist/assets/Object3DDocumentToolbar-BfPH9jz5.js +0 -1
  413. package/dist/assets/Object3DDocumentViewport-BaXWtATg.js +0 -2
  414. package/dist/assets/OnlineAssetDetail-BxibUH6K.js +0 -1
  415. package/dist/assets/PlayBar-DRANyO01.js +0 -1
  416. package/dist/assets/ReactCanvasControls-K98jOX9b.js +0 -1
  417. package/dist/assets/RootSelectionOverlay-BQC12Gdd.js +0 -1
  418. package/dist/assets/ShadowEditor-DP1LWynl.js +0 -1
  419. package/dist/assets/StageHost-V_0opXFt.js +0 -2
  420. package/dist/assets/ThreeBoardDocument-tgcaZDqQ.js +0 -2
  421. package/dist/assets/Toolbar-uLgsrB2z.js +0 -1
  422. package/dist/assets/VideoViewer-ClUJ6_uy.js +0 -1
  423. package/dist/assets/ViewportShadingMenu-Bdkc6jcd.js +0 -1
  424. package/dist/assets/active-ingest-CnAeQcuQ.js +0 -3
  425. package/dist/assets/animation-mixers.service-DiecMX_A.js +0 -1
  426. package/dist/assets/animation-timeline.utility-C71vPJgs.js +0 -1
  427. package/dist/assets/asset-editor-persistence-BQgjOCrm.js +0 -1
  428. package/dist/assets/asset-loaders-5PIUVvmH.js +0 -2
  429. package/dist/assets/audio.utility-D9Vk_WYS.js +0 -1
  430. package/dist/assets/autoplay.service-CFJoLPLw.js +0 -1
  431. package/dist/assets/binding-resolver-C_9MBSMa.js +0 -2
  432. package/dist/assets/blender-emscripten-engine-BeWFjMn-.js +0 -2
  433. package/dist/assets/blender-version.status-DtfwUahB.js +0 -1
  434. package/dist/assets/blender-wali-engine-da698rDf.js +0 -2
  435. package/dist/assets/blender.status-ujwGU6dU.js +0 -1
  436. package/dist/assets/board-guides-_3R1t_-2.js +0 -1
  437. package/dist/assets/body-marks-RKb_LTwL.js +0 -1
  438. package/dist/assets/build-profiles.document-CZxDuhzz.js +0 -2
  439. package/dist/assets/build-progress.status-Dk5u3C67.js +0 -1
  440. package/dist/assets/build.header--xqH6uTP.js +0 -1
  441. package/dist/assets/canvas-entry-runtime-DVeh71nC.js +0 -2
  442. package/dist/assets/capability-coverage-DQgg6UJe.js +0 -7
  443. package/dist/assets/component-board.service-DgujG90T.js +0 -2
  444. package/dist/assets/component-contracts.service-Bc_2Xxh_.js +0 -1
  445. package/dist/assets/component-instance-root-df4ofoOR.js +0 -1
  446. package/dist/assets/connection.status-CCX-mgmr.js +0 -1
  447. package/dist/assets/constraints.inspector-CwEEREsf.js +0 -1
  448. package/dist/assets/coverage.service-CV7b5Sqn.js +0 -3
  449. package/dist/assets/curve-BKuiAPpj.js +0 -1
  450. package/dist/assets/data-check-core-CQEjuFyt.js +0 -1
  451. package/dist/assets/data-ref-DyFQqqX6.js +0 -1
  452. package/dist/assets/debug-bridge-CESAxmlz.js +0 -1
  453. package/dist/assets/debug-registry-l7k5Hjc8.js +0 -1
  454. package/dist/assets/design-time-layers-CQgnmqc8.js +0 -1
  455. package/dist/assets/design-time-react-mount-CFvIk_rV.js +0 -1
  456. package/dist/assets/edit-mode-authoring-DBjaBTxM.js +0 -1
  457. package/dist/assets/editor-api-D2azVray.js +0 -1
  458. package/dist/assets/editor-presentation-activity-C7SNSmTd.js +0 -1
  459. package/dist/assets/game-audio-CaGKzia4.js +0 -1
  460. package/dist/assets/game-document.service-FdG_gFPU.js +0 -1
  461. package/dist/assets/game-module-access-DulnT3NH.js +0 -1
  462. package/dist/assets/game-network-Bo_nlDR5.js +0 -22
  463. package/dist/assets/gameplay-replay-CnWnlogY.js +0 -1
  464. package/dist/assets/generation-DhwCUHPf.css +0 -1
  465. package/dist/assets/generation.service-D2yeZaJu.js +0 -1
  466. package/dist/assets/generations.status-3CrPw_n5.js +0 -1
  467. package/dist/assets/hierarchy-marks-BLPfSIym.js +0 -1
  468. package/dist/assets/hierarchy-marks-C25dY2fR.js +0 -1
  469. package/dist/assets/hosted-asset-materialization-DYdcFlDf.js +0 -2
  470. package/dist/assets/index-B5WjeCHm.css +0 -1
  471. package/dist/assets/index-BcH5GC3b.js +0 -1
  472. package/dist/assets/index-CwCDkEl1.js +0 -1
  473. package/dist/assets/index-n3QdTv-T.js +0 -1
  474. package/dist/assets/index.module-Ycad3DJq.js +0 -1
  475. package/dist/assets/ingest-siblings-CkxW__go.js +0 -1
  476. package/dist/assets/ingest-source-persistence-6peGfPAS.js +0 -1
  477. package/dist/assets/ingest.service-Cc73WMIW.js +0 -1
  478. package/dist/assets/inspection-CObLhnrs.js +0 -1
  479. package/dist/assets/instances.command-CxKGnrNl.js +0 -1
  480. package/dist/assets/material-BwFzKPi0.js +0 -1
  481. package/dist/assets/model-asset-sections-CFvvihfx.css +0 -1
  482. package/dist/assets/model-asset-sections.service-TZ2SaBmH.js +0 -1
  483. package/dist/assets/module-mode-B79jV5tQ.js +0 -2
  484. package/dist/assets/mount-canvas-ingest-root-BhaYNuhY.js +0 -2
  485. package/dist/assets/mount-dom-ingest-root-BQb1u0LX.js +0 -2
  486. package/dist/assets/mount-readiness-Ds0HvvLH.js +0 -4
  487. package/dist/assets/mount-three-ingest-root-DIDBfvIH.js +0 -1
  488. package/dist/assets/network-observer.service-CiR4Q9Q0.js +0 -1
  489. package/dist/assets/network.utility-CNG3eJ0E.js +0 -1
  490. package/dist/assets/object-marks-DwvIEBOK.js +0 -1
  491. package/dist/assets/pixi-authoring-adapter-B42K4md-.js +0 -1
  492. package/dist/assets/pixi-live-write-target-D56tQEe_.js +0 -1
  493. package/dist/assets/pose-guard-DILO6gGq.js +0 -1
  494. package/dist/assets/presentation-DGBuGP6i.js +0 -1
  495. package/dist/assets/profiler.utility-DLNySW3w.js +0 -1
  496. package/dist/assets/project-provenance-4ldz-EOG.js +0 -1
  497. package/dist/assets/r3f-design-session-C0DPEChS.js +0 -2
  498. package/dist/assets/react-canvas-navigation-Jowa_lJq.js +0 -1
  499. package/dist/assets/react-inspector.service-TfTdj_Qk.js +0 -1
  500. package/dist/assets/react-story-board-Bx7qYytV.js +0 -1
  501. package/dist/assets/react-world-authoring-adapter-C1jPW_cN.js +0 -1
  502. package/dist/assets/reflection-probe-capture.inspector-C-6zrzZb.js +0 -1
  503. package/dist/assets/registry-Z28XSZHF.js +0 -1
  504. package/dist/assets/resolve-three-C7zDbK29.js +0 -702
  505. package/dist/assets/root-seam-contract-rGNbiX6q.js +0 -1
  506. package/dist/assets/scene-capture-BTWgUzhI.js +0 -1
  507. package/dist/assets/scene-document.service-DJJp-la1.js +0 -2
  508. package/dist/assets/seeded-random-38To73fI.js +0 -1
  509. package/dist/assets/stage-overlay-set-olkNSZmq.js +0 -1
  510. package/dist/assets/stage-presence-markers-cznMN_qq.js +0 -1
  511. package/dist/assets/stage-transform-tools-BDUZqRIR.js +0 -1
  512. package/dist/assets/standard-viewport-dressing-BZyuxyVl.js +0 -24
  513. package/dist/assets/state-watch.utility-DDmn3G25.js +0 -1
  514. package/dist/assets/story-documents-8ehMyYHo.js +0 -3
  515. package/dist/assets/story-three-preview-B1nNiPwP.js +0 -2
  516. package/dist/assets/studio-environment-yaKaHPxH.js +0 -2
  517. package/dist/assets/team-playtest.service-Ds9tkO4q.js +0 -1
  518. package/dist/assets/three-authoring-adapter-BrkGH4cd.js +0 -1
  519. package/dist/assets/three-authoring.service-DoamZDMx.js +0 -2
  520. package/dist/assets/three-integration.service-Db-VabIm.js +0 -1
  521. package/dist/assets/three-projection-core-jBJVt6O0.js +0 -1
  522. package/dist/assets/three-viewport-presentation-CgO3eWJ-.js +0 -141
  523. package/dist/assets/tools-B_NJsk05.js +0 -1
  524. package/dist/assets/transform-mode-request-BnKpgRUW.js +0 -1
  525. package/dist/assets/transport-strip-a9yLoPsI.js +0 -1
  526. package/dist/assets/transport.header-CpfoppXc.js +0 -1
  527. package/dist/assets/tuples-CKsHOV9T.js +0 -1
  528. package/dist/assets/ui-board-document-DtTR_mBr.js +0 -2
  529. package/dist/assets/user-data-dHvLdpwM.js +0 -1
  530. package/dist/assets/viewport-door-DVkMQazS.js +0 -1
  531. package/dist/assets/worker-CC9Ug5Ei.js +0 -2
  532. package/dist/assets/workspace-arrangement-DIMM7ska.js +0 -1
  533. package/dist/assets/world-documents-C4t3iOD-.js +0 -1
  534. package/dist/assets/world-root-stage-binding-ydl3JN1a.js +0 -1
  535. package/dist/vgai-shared-react.json +0 -10
  536. package/dist/vgai-shared-three.json +0 -3
  537. package/template/.agents/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  538. package/template/.claude/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  539. package/template/.github/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  540. /package/dist/assets/{vgai-shared-fontawesome-CU65D4Ij.js → volter-shared-fontawesome-CU65D4Ij.js} +0 -0
  541. /package/dist/assets/{vgai-shared-jsx-dev-runtime-DFDKL7fx.js → volter-shared-jsx-dev-runtime-DFDKL7fx.js} +0 -0
  542. /package/dist/assets/{vgai-shared-jsx-runtime-DIqBpTut.js → volter-shared-jsx-runtime-DIqBpTut.js} +0 -0
  543. /package/dist/assets/{vgai-shared-react-BT7rMc2H.js → volter-shared-react-BT7rMc2H.js} +0 -0
  544. /package/dist/assets/{vgai-shared-react-dom-DFajMqMT.js → volter-shared-react-dom-DFajMqMT.js} +0 -0
  545. /package/dist/assets/{vgai-shared-react-dom-client-S0ozfl6_.js → volter-shared-react-dom-client-S0ozfl6_.js} +0 -0
  546. /package/dist/assets/{vgai-shared-three-DH4yxKwt.js → volter-shared-three-DH4yxKwt.js} +0 -0
  547. /package/template/{.vgai → .volter}/assets.json +0 -0
  548. /package/template/{.vgai → .volter}/provenance.json +0 -0
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Messages (client → server only):
9
9
  * position { x, y, z } — client movement input
10
- * __vgai:debugCommand { name, args, requestId } — a `locus: 'server'`
10
+ * __volter:debugCommand { name, args, requestId } — a `locus: 'server'`
11
11
  * debug command's client leg (the "Multiplayer locus" note,
12
12
  * build plan Task 4.2); see
13
13
  * `DEBUG_COMMANDS`/`onCreate` below.
@@ -155,9 +155,9 @@ export class GameRoom extends Room {
155
155
  // Off by default (FROZEN DECISION: env-var OR room-option) — the loopback harness/
156
156
  // the loopback harness (`../loopback.ts`) opt in via the room option; a
157
157
  // plain `npm run server` boot never accepts debug commands unless
158
- // VGAI_ALLOW_DEBUG_COMMANDS is set in its environment.
158
+ // VOLTER_ALLOW_DEBUG_COMMANDS is set in its environment.
159
159
  const debugCommandsAllowed =
160
- options?.allowDebugCommands === true || Boolean(process.env['VGAI_ALLOW_DEBUG_COMMANDS']);
160
+ options?.allowDebugCommands === true || Boolean(process.env['VOLTER_ALLOW_DEBUG_COMMANDS']);
161
161
 
162
162
  // Handle client messages
163
163
  this.onMessage('position', (client, position: { x: number; y: number; z: number }) => {
@@ -170,10 +170,10 @@ export class GameRoom extends Room {
170
170
  });
171
171
 
172
172
  this.onMessage(
173
- '__vgai:debugCommand',
173
+ '__volter:debugCommand',
174
174
  (client, message: { name: string; args?: unknown[]; requestId: string }) => {
175
175
  if (!debugCommandsAllowed) {
176
- client.send('__vgai:debugCommandResult', {
176
+ client.send('__volter:debugCommandResult', {
177
177
  requestId: message.requestId,
178
178
  ok: false,
179
179
  error: 'debug commands disabled',
@@ -182,7 +182,7 @@ export class GameRoom extends Room {
182
182
  }
183
183
  const handler = DEBUG_COMMANDS[message.name];
184
184
  if (!handler) {
185
- client.send('__vgai:debugCommandResult', {
185
+ client.send('__volter:debugCommandResult', {
186
186
  requestId: message.requestId,
187
187
  ok: false,
188
188
  error: `debug: no server command registered under "${message.name}"`,
@@ -191,13 +191,13 @@ export class GameRoom extends Room {
191
191
  }
192
192
  try {
193
193
  const result = handler(this, client, message.args ?? []);
194
- client.send('__vgai:debugCommandResult', {
194
+ client.send('__volter:debugCommandResult', {
195
195
  requestId: message.requestId,
196
196
  ok: true,
197
197
  result,
198
198
  });
199
199
  } catch (err) {
200
- client.send('__vgai:debugCommandResult', {
200
+ client.send('__volter:debugCommandResult', {
201
201
  requestId: message.requestId,
202
202
  ok: false,
203
203
  error: err instanceof Error ? err.message : String(err),
@@ -10,6 +10,6 @@ import { ArenaRoom } from './rooms/arena-room.js';
10
10
  import { GameRoom } from './rooms/game-room.js';
11
11
 
12
12
  export const rooms = [
13
- { name: 'game_room', handler: GameRoom, matchBy: ['vgaiPlaytest'] },
14
- { name: 'arena_room', handler: ArenaRoom, matchBy: ['vgaiPlaytest'] },
13
+ { name: 'game_room', handler: GameRoom, matchBy: ['volterPlaytest'] },
14
+ { name: 'arena_room', handler: ArenaRoom, matchBy: ['volterPlaytest'] },
15
15
  ];
@@ -4,7 +4,7 @@
4
4
  * tick IS frame work. Everything else about the tester (its doors, its run
5
5
  * state, its repertoire) is plain application code in
6
6
  * `src/bot/tester-station.ts`, reached directly as a running module by the
7
- * Tester contribution and `vgai eval`.
7
+ * Tester contribution and `volter-game-editor eval`.
8
8
  *
9
9
  * The tester's hands run in the INPUT phase — before everything. Fiber sorts
10
10
  * `useFrame` callbacks ascending, and this world's own behavior hooks sit at
@@ -3,10 +3,10 @@
3
3
  *
4
4
  * The resident QA tester (`src/bot/tester-station.ts`) plays this game from
5
5
  * INSIDE the page, directed live from the REPL through `hireTester`. This module
6
- * holds what it is doing so the game's Tester surface and `vgai eval`
6
+ * holds what it is doing so the game's Tester surface and `volter-game-editor eval`
7
7
  * both watch one run, and it implements the operator controls the tester
8
8
  * honors between steps. This module is plain application state and imports no
9
- * vgai API; its exports are the whole control surface.
9
+ * volter API; its exports are the whole control surface.
10
10
  *
11
11
  * `getBotStatus()` reads `{active, seat, goal, step, phase, progress,
12
12
  * waitingOn, note, seed, directive}`. `pauseBot()`, `resumeBot()`,
@@ -23,7 +23,7 @@
23
23
  * (`seatTester`) and gives it back (`releaseTester`); it never reasons about
24
24
  * the rule itself.
25
25
  *
26
- * No vgai import anywhere: the tester's hands are the project's own input
26
+ * No volter import anywhere: the tester's hands are the project's own input
27
27
  * store (`src/input.ts`), typed through `tester-run.ts`'s narrow
28
28
  * `TesterInputTarget`.
29
29
  */
@@ -87,7 +87,7 @@ project inherits may error, and these three THROW until they are rewritten
87
87
  answers this game's development questions. A raw event listing does not
88
88
  fulfill the contribution; never import live simulation state into Analytics.
89
89
 
90
- All three stubs emit `VGAI_STUB_UNIMPLEMENTED`. That warning keeps the live
90
+ All three stubs emit `VOLTER_STUB_UNIMPLEMENTED`. That warning keeps the live
91
91
  console red, and `npm run check-idioms` reports it as unfinished work. Remove
92
92
  the sentinel only by replacing the stub with the game's real surface (or by
93
93
  honestly deleting the optional Data surface), not by silencing the warning.
@@ -16,7 +16,7 @@ export const point = 'workspace.analytics';
16
16
  export const title = 'Analytics';
17
17
 
18
18
  const unfinished =
19
- 'VGAI_STUB_UNIMPLEMENTED: src/contributions/analytics.analytics.tsx — replace this stub with game-specific analysis of recorded Gameplay Sessions; playback is provided by the editor.';
19
+ 'VOLTER_STUB_UNIMPLEMENTED: src/contributions/analytics.analytics.tsx — replace this stub with game-specific analysis of recorded Gameplay Sessions; playback is provided by the editor.';
20
20
 
21
21
  // biome-ignore lint/suspicious/noConsole: unopened starter obligations remain visible in the editor console
22
22
  console.error(unfinished);
@@ -4,7 +4,7 @@
4
4
  * An OBLIGATION, not an implementation: the game's numbers and content
5
5
  * tables (`src/data/` — plain typed TS literals) must be viewable, with
6
6
  * their derived picture, by the humans collaborating on this game. How is
7
- * yours. REWRITE THIS FILE WHOLE; the error below holds `vgai console`
7
+ * yours. REWRITE THIS FILE WHOLE; the error below holds `volter-game-editor console`
8
8
  * red until you do.
9
9
  *
10
10
  * The method: render the data modules as tables (a plain `<table>` until a
@@ -25,7 +25,7 @@ export const title = 'Data';
25
25
 
26
26
  // Module-scope on purpose — the demand is visible from editor boot.
27
27
  const unfinished =
28
- "VGAI_STUB_UNIMPLEMENTED: src/contributions/data.document.tsx — render this game's data (src/data/) with its derived columns, or delete this file if the game truly has no content tables (its header says how).";
28
+ "VOLTER_STUB_UNIMPLEMENTED: src/contributions/data.document.tsx — render this game's data (src/data/) with its derived columns, or delete this file if the game truly has no content tables (its header says how).";
29
29
 
30
30
  // biome-ignore lint/suspicious/noConsole: unopened starter obligations remain visible in the editor console
31
31
  console.error(unfinished);
@@ -3,7 +3,7 @@
3
3
  * "Documents, not scenes"): every project module under the selection's
4
4
  * `include` globs that exports a React component is a `page` document —
5
5
  * what a website is made of, the way a game is made of scenes. Select it
6
- * in `vgai.adapter.ts`:
6
+ * in `volter.adapter.ts`:
7
7
  *
8
8
  * documents: { find: [{ finder: 'pagesFromUiModules', include: ['src/ui/**\/*page.tsx'] }] }
9
9
  *
@@ -7,7 +7,7 @@
7
7
  * difficult situations, and judge the mechanic under test. It says nothing
8
8
  * about HOW. REWRITE THIS FILE WHOLE in the game's own vocabulary: rename it,
9
9
  * split it into several faces, and structure it the way THIS game's studio
10
- * would. The error below holds `vgai console` red until you do; delete it
10
+ * would. The error below holds `volter-game-editor console` red until you do; delete it
11
11
  * with the stub.
12
12
  *
13
13
  * Make the controller's current owner and the tester's repertoire legible.
@@ -54,7 +54,7 @@ export function match(
54
54
  // Module-scope on purpose: fires the moment the editor loads this game's
55
55
  // contributions, so the demand is visible before anyone opens the panel.
56
56
  const unfinished =
57
- "VGAI_STUB_UNIMPLEMENTED: src/contributions/tester.inspector.tsx — imagine this game's tester helper surface and rewrite the file whole (its header says how).";
57
+ "VOLTER_STUB_UNIMPLEMENTED: src/contributions/tester.inspector.tsx — imagine this game's tester helper surface and rewrite the file whole (its header says how).";
58
58
 
59
59
  // biome-ignore lint/suspicious/noConsole: unopened starter obligations remain visible in the editor console
60
60
  console.error(unfinished);
@@ -9,7 +9,7 @@
9
9
  * `*.utility.tsx`, `*.document.tsx`), in the game's own vocabulary, added
10
10
  * when there is something to show. A contribution is ordinary React
11
11
  * reading the game's own exported modules through this hook; agents reach
12
- * the same modules through `vgai eval`'s
12
+ * the same modules through `volter-game-editor eval`'s
13
13
  * `game.run(async ({ modules }) => await modules('src/sim/host.ts'))` — `modules` is an
14
14
  * ASYNC RESOLVER taking a served path, never a table: the `await` is not
15
15
  * optional, and reading a member off the unawaited promise throws a message
@@ -3,7 +3,7 @@
3
3
  * held. Mechanics read it directly ({@link actionPressed}); the QA tester
4
4
  * actuates it ({@link setVirtualAction}); the session input door
5
5
  * reaches the SAME store by importing this running module through
6
- * `game.run(({ modules }) => ...)`. No vgai import anywhere — input is
6
+ * `game.run(({ modules }) => ...)`. No volter import anywhere — input is
7
7
  * application state, and the host merely gives the developer access to the
8
8
  * module instance the game already uses.
9
9
  *
@@ -81,13 +81,13 @@ function cubeUvSamplingFunctions(): string {
81
81
  .replace(
82
82
  /\b(textureCubeUV|bilinearCubeUV)\(([^)]*)\)/g,
83
83
  (_match, name: string, args: string) =>
84
- `${name === 'textureCubeUV' ? 'vgaiTextureCubeUV' : 'vgaiBilinearCubeUV'}(${args.trim()}, ${args.includes('sampler2D') ? 'vec3 ' : ''}vgaiAtlasSize)`,
84
+ `${name === 'textureCubeUV' ? 'volterTextureCubeUV' : 'volterBilinearCubeUV'}(${args.trim()}, ${args.includes('sampler2D') ? 'vec3 ' : ''}volterAtlasSize)`,
85
85
  )
86
- .replace(/\b(getFace|getUV|roughnessToMip)\b/g, 'vgai$1')
87
- .replace(/\bcubeUV_(\w+)\b/g, 'vgaiCubeUV_$1')
88
- .replaceAll('CUBEUV_MAX_MIP', 'vgaiAtlasSize.z')
89
- .replaceAll('CUBEUV_TEXEL_WIDTH', 'vgaiAtlasSize.x')
90
- .replaceAll('CUBEUV_TEXEL_HEIGHT', 'vgaiAtlasSize.y');
86
+ .replace(/\b(getFace|getUV|roughnessToMip)\b/g, 'volter$1')
87
+ .replace(/\bcubeUV_(\w+)\b/g, 'volterCubeUV_$1')
88
+ .replaceAll('CUBEUV_MAX_MIP', 'volterAtlasSize.z')
89
+ .replaceAll('CUBEUV_TEXEL_WIDTH', 'volterAtlasSize.x')
90
+ .replaceAll('CUBEUV_TEXEL_HEIGHT', 'volterAtlasSize.y');
91
91
  }
92
92
 
93
93
  /**
@@ -104,21 +104,21 @@ function atlasSizeOf(texture: Texture | null): Vector3 {
104
104
 
105
105
  function probeWeight(index: number): string {
106
106
  return `
107
- vec3 lp = (vgaiProbeWorldToLocal[${index}] * vec4(${IBL_WORLD_POSITION}, 1.0)).xyz;
107
+ vec3 lp = (volterProbeWorldToLocal[${index}] * vec4(${IBL_WORLD_POSITION}, 1.0)).xyz;
108
108
  float weight = 0.0;
109
- if (vgaiProbeShape[${index}] < 0.5) {
110
- vec3 edge = vgaiProbeExtents[${index}] - abs(lp);
109
+ if (volterProbeShape[${index}] < 0.5) {
110
+ vec3 edge = volterProbeExtents[${index}] - abs(lp);
111
111
  if (all(greaterThanEqual(edge, vec3(0.0)))) {
112
112
  float nearest = min(edge.x, min(edge.y, edge.z));
113
- weight = vgaiProbeBlendDistance[${index}] > 0.0001
114
- ? clamp(nearest / vgaiProbeBlendDistance[${index}], 0.0, 1.0)
113
+ weight = volterProbeBlendDistance[${index}] > 0.0001
114
+ ? clamp(nearest / volterProbeBlendDistance[${index}], 0.0, 1.0)
115
115
  : 1.0;
116
116
  }
117
117
  } else {
118
- float edge = vgaiProbeRadius[${index}] - length(lp);
118
+ float edge = volterProbeRadius[${index}] - length(lp);
119
119
  if (edge >= 0.0) {
120
- weight = vgaiProbeBlendDistance[${index}] > 0.0001
121
- ? clamp(edge / vgaiProbeBlendDistance[${index}], 0.0, 1.0)
120
+ weight = volterProbeBlendDistance[${index}] > 0.0001
121
+ ? clamp(edge / volterProbeBlendDistance[${index}], 0.0, 1.0)
122
122
  : 1.0;
123
123
  }
124
124
  }`;
@@ -126,29 +126,29 @@ function probeWeight(index: number): string {
126
126
 
127
127
  function probeWeightBlock(index: number): string {
128
128
  return `
129
- if (vgaiProbeReady[${index}] > 0.5) {${probeWeight(index)}
130
- if (weight > 0.0) bestPriority = max(bestPriority, vgaiProbePriority[${index}]);
129
+ if (volterProbeReady[${index}] > 0.5) {${probeWeight(index)}
130
+ if (weight > 0.0) bestPriority = max(bestPriority, volterProbePriority[${index}]);
131
131
  }`;
132
132
  }
133
133
 
134
134
  function probeSampleBlock(index: number, roughness: string, direction: string): string {
135
135
  return `
136
- if (vgaiProbeReady[${index}] > 0.5 && abs(vgaiProbePriority[${index}] - bestPriority) < 0.001) {${probeWeight(index)}
136
+ if (volterProbeReady[${index}] > 0.5 && abs(volterProbePriority[${index}] - bestPriority) < 0.001) {${probeWeight(index)}
137
137
  if (weight > 0.0) {
138
- vec3 probeDirection = (vgaiProbeWorldToLocal[${index}] * vec4(${direction}, 0.0)).xyz;
139
- if (vgaiProbeParallax[${index}] > 0.5) {
140
- vec3 boxPos = lp - vgaiProbeParallaxOffset[${index}];
138
+ vec3 probeDirection = (volterProbeWorldToLocal[${index}] * vec4(${direction}, 0.0)).xyz;
139
+ if (volterProbeParallax[${index}] > 0.5) {
140
+ vec3 boxPos = lp - volterProbeParallaxOffset[${index}];
141
141
  vec3 safeDirection = sign(probeDirection) * max(abs(probeDirection), vec3(0.00001));
142
- vec3 rayMax = (vgaiProbeParallaxExtents[${index}] - boxPos) / safeDirection;
143
- vec3 rayMin = (-vgaiProbeParallaxExtents[${index}] - boxPos) / safeDirection;
142
+ vec3 rayMax = (volterProbeParallaxExtents[${index}] - boxPos) / safeDirection;
143
+ vec3 rayMin = (-volterProbeParallaxExtents[${index}] - boxPos) / safeDirection;
144
144
  vec3 rayDistance = mix(rayMin, rayMax, greaterThan(safeDirection, vec3(0.0)));
145
145
  float nearestFace = min(rayDistance.x, min(rayDistance.y, rayDistance.z));
146
146
  probeDirection = boxPos + safeDirection * nearestFace
147
- + vgaiProbeParallaxOffset[${index}] - vgaiProbeCaptureOffset[${index}];
147
+ + volterProbeParallaxOffset[${index}] - volterProbeCaptureOffset[${index}];
148
148
  }
149
- accumulated += vgaiTextureCubeUV(
150
- vgaiProbeMap${index}, probeDirection, ${roughness}, vgaiProbeAtlasSize[${index}]
151
- ).rgb * vgaiProbeIntensity[${index}] * weight;
149
+ accumulated += volterTextureCubeUV(
150
+ volterProbeMap${index}, probeDirection, ${roughness}, volterProbeAtlasSize[${index}]
151
+ ).rgb * volterProbeIntensity[${index}] * weight;
152
152
  totalWeight += weight;
153
153
  }
154
154
  }`;
@@ -157,7 +157,7 @@ function probeSampleBlock(index: number, roughness: string, direction: string):
157
157
  function volumeReflectionShader(probeCount: number): string {
158
158
  const samplers = Array.from(
159
159
  { length: probeCount },
160
- (_, index) => `uniform sampler2D vgaiProbeMap${index};`,
160
+ (_, index) => `uniform sampler2D volterProbeMap${index};`,
161
161
  ).join('\n');
162
162
  const weights = Array.from({ length: probeCount }, (_, index) => probeWeightBlock(index)).join(
163
163
  '\n',
@@ -171,25 +171,25 @@ function volumeReflectionShader(probeCount: number): string {
171
171
  return `${baseIblFunctions()}
172
172
  ${cubeUvSamplingFunctions()}
173
173
  #ifdef USE_ENVMAP
174
- uniform float vgaiProbeReady[${probeCount}];
175
- uniform mat4 vgaiProbeWorldToLocal[${probeCount}];
176
- uniform vec3 vgaiProbeExtents[${probeCount}];
177
- uniform vec3 vgaiProbeParallaxExtents[${probeCount}];
178
- uniform vec3 vgaiProbeParallaxOffset[${probeCount}];
179
- uniform vec3 vgaiProbeCaptureOffset[${probeCount}];
180
- uniform vec3 vgaiProbeAtlasSize[${probeCount}];
181
- uniform float vgaiProbeShape[${probeCount}];
182
- uniform float vgaiProbeRadius[${probeCount}];
183
- uniform float vgaiProbeBlendDistance[${probeCount}];
184
- uniform float vgaiProbePriority[${probeCount}];
185
- uniform float vgaiProbeIntensity[${probeCount}];
186
- uniform float vgaiProbeParallax[${probeCount}];
187
- uniform float vgaiBaseEnvironment;
174
+ uniform float volterProbeReady[${probeCount}];
175
+ uniform mat4 volterProbeWorldToLocal[${probeCount}];
176
+ uniform vec3 volterProbeExtents[${probeCount}];
177
+ uniform vec3 volterProbeParallaxExtents[${probeCount}];
178
+ uniform vec3 volterProbeParallaxOffset[${probeCount}];
179
+ uniform vec3 volterProbeCaptureOffset[${probeCount}];
180
+ uniform vec3 volterProbeAtlasSize[${probeCount}];
181
+ uniform float volterProbeShape[${probeCount}];
182
+ uniform float volterProbeRadius[${probeCount}];
183
+ uniform float volterProbeBlendDistance[${probeCount}];
184
+ uniform float volterProbePriority[${probeCount}];
185
+ uniform float volterProbeIntensity[${probeCount}];
186
+ uniform float volterProbeParallax[${probeCount}];
187
+ uniform float volterBaseEnvironment;
188
188
  ${samplers}
189
189
 
190
190
  vec3 getIBLIrradiance(const in vec3 normal) {
191
191
  #ifdef ENVMAP_TYPE_CUBE_UV
192
- vec3 baseIrradiance = getBaseIBLIrradiance(normal) * vgaiBaseEnvironment;
192
+ vec3 baseIrradiance = getBaseIBLIrradiance(normal) * volterBaseEnvironment;
193
193
  vec3 worldNormal = inverseTransformDirection(normal, viewMatrix);
194
194
  float bestPriority = -1000000.0;
195
195
  ${weights}
@@ -206,7 +206,7 @@ ${irradiance}
206
206
 
207
207
  vec3 getIBLRadiance(const in vec3 viewDir, const in vec3 normal, const in float roughness) {
208
208
  #ifdef ENVMAP_TYPE_CUBE_UV
209
- vec3 baseRadiance = getBaseIBLRadiance(viewDir, normal, roughness) * vgaiBaseEnvironment;
209
+ vec3 baseRadiance = getBaseIBLRadiance(viewDir, normal, roughness) * volterBaseEnvironment;
210
210
  vec3 reflected = reflect(-viewDir, normal);
211
211
  reflected = normalize(mix(reflected, normal, roughness * roughness));
212
212
  vec3 worldReflect = inverseTransformDirection(reflected, viewMatrix);
@@ -236,60 +236,60 @@ function writeProbeUniforms(
236
236
  shader.uniforms[name] = { value };
237
237
  };
238
238
  values(
239
- 'vgaiProbeReady',
239
+ 'volterProbeReady',
240
240
  probes.map((probe) => Number(probe.ready && !capturing)),
241
241
  );
242
242
  values(
243
- 'vgaiProbeWorldToLocal',
243
+ 'volterProbeWorldToLocal',
244
244
  probes.map((probe) => probe.worldToLocal),
245
245
  );
246
246
  values(
247
- 'vgaiProbeExtents',
247
+ 'volterProbeExtents',
248
248
  probes.map((probe) => probe.extents),
249
249
  );
250
250
  values(
251
- 'vgaiProbeParallaxExtents',
251
+ 'volterProbeParallaxExtents',
252
252
  probes.map((probe) => probe.parallaxExtents),
253
253
  );
254
254
  values(
255
- 'vgaiProbeParallaxOffset',
255
+ 'volterProbeParallaxOffset',
256
256
  probes.map((probe) => probe.parallaxOffset),
257
257
  );
258
258
  values(
259
- 'vgaiProbeCaptureOffset',
259
+ 'volterProbeCaptureOffset',
260
260
  probes.map((probe) => probe.captureOffset),
261
261
  );
262
262
  values(
263
- 'vgaiProbeAtlasSize',
263
+ 'volterProbeAtlasSize',
264
264
  probes.map((probe) => atlasSizeOf(probe.texture)),
265
265
  );
266
266
  values(
267
- 'vgaiProbeShape',
267
+ 'volterProbeShape',
268
268
  probes.map((probe) => Number(probe.mark.config.shape === 'sphere')),
269
269
  );
270
270
  values(
271
- 'vgaiProbeRadius',
271
+ 'volterProbeRadius',
272
272
  probes.map((probe) => Math.max(0.01, probe.mark.config.radius)),
273
273
  );
274
274
  values(
275
- 'vgaiProbeBlendDistance',
275
+ 'volterProbeBlendDistance',
276
276
  probes.map((probe) => Math.max(0, probe.mark.config.blendDistance)),
277
277
  );
278
278
  values(
279
- 'vgaiProbePriority',
279
+ 'volterProbePriority',
280
280
  probes.map((probe) => probe.mark.config.priority),
281
281
  );
282
282
  values(
283
- 'vgaiProbeIntensity',
283
+ 'volterProbeIntensity',
284
284
  probes.map((probe) => Math.max(0, probe.mark.config.intensity)),
285
285
  );
286
286
  values(
287
- 'vgaiProbeParallax',
287
+ 'volterProbeParallax',
288
288
  probes.map((probe) => Number(probe.mark.config.parallaxProjection)),
289
289
  );
290
- values('vgaiBaseEnvironment', baseEnvironment ? 1 : 0);
290
+ values('volterBaseEnvironment', baseEnvironment ? 1 : 0);
291
291
  probes.forEach((probe, index) => {
292
- values(`vgaiProbeMap${index}`, probe.texture);
292
+ values(`volterProbeMap${index}`, probe.texture);
293
293
  });
294
294
  }
295
295
 
@@ -377,7 +377,7 @@ function ownVolumeReflectionMaterial<T extends MeshStandardMaterial>(
377
377
  installedCount = count;
378
378
  override = overrideMaterialIbl(material, {
379
379
  fragment: () => volumeReflectionShader(count),
380
- cacheKey: () => `vgai-volume-reflections:${count}`,
380
+ cacheKey: () => `volter-volume-reflections:${count}`,
381
381
  onCompile: (shader) =>
382
382
  writeProbeUniforms(shader, eligible, hasBaseEnvironment(), isCapturing),
383
383
  });
@@ -64,7 +64,7 @@ export function Frozen({ name = 'Frozen', children, ...props }: FrozenProps) {
64
64
  const batch = freezeSubtree(root, name);
65
65
  // Degrade LOUDLY — a wrapper that silently declined most of its subtree
66
66
  // looks identical to one that worked. Under the dev gate, though: this is
67
- // an authoring signal (`vgai status` reports console warnings, which is
67
+ // an authoring signal (`volter-game-editor status` reports console warnings, which is
68
68
  // where the building agent already looks), and a player's console is not
69
69
  // where it belongs.
70
70
  if (import.meta.env.DEV) {
@@ -82,7 +82,7 @@ export interface FrozenMutationWatch {
82
82
  }
83
83
 
84
84
  function warnOnConsole(message: string): void {
85
- // biome-ignore lint/suspicious/noConsole: console is this tripwire's vgai-status channel.
85
+ // biome-ignore lint/suspicious/noConsole: console is this tripwire's volter-status channel.
86
86
  console.warn(message);
87
87
  }
88
88
 
@@ -1,16 +1,15 @@
1
1
  /**
2
2
  * Standalone entry point: this game's own boot, in its own libraries.
3
3
  *
4
- * Every root `vgai.project.json` declares gets one layer in `#game-canvas`,
4
+ * Every root `volter.project.json` declares gets one layer in `#game-canvas`,
5
5
  * stacked by `zOrder`. A `three` root's entry default-exports a React Three
6
6
  * Fiber component and renders inside `<Canvas>`; a `dom` root's entry
7
7
  * default-exports a React component and renders with react-dom, in a layer
8
8
  * that lets pointer events fall through to the world except where its own
9
- * elements claim them (`pointer-events: auto`); a `canvas` root's entry default-exports a
10
- * `@pixi/react` component and renders inside `<Application>`, with every `pixi.js` class
11
- * registered first, as the editor's own canvas mount registers them (so a node the editor created,
12
- * a TilingSprite or a BitmapText, mounts here too). The editor mounts the same entries itself;
13
- * nothing here runs inside it.
9
+ * elements claim them (`pointer-events: auto`): a game's UI is that `dom` root.
10
+ * A `canvas` root (2D game rendering) mounts through `src/canvas-mount.ts`, which
11
+ * only a project with a canvas root carries, so a game without one imports no Pixi.
12
+ * The editor mounts the same entries itself; nothing here runs inside it.
14
13
  *
15
14
  * `manifestEntryModules` is generated from the manifest's `entry` paths
16
15
  * (`manifest-entry-modules-plugin.ts`), so the manifest stays the one list of
@@ -20,8 +19,8 @@
20
19
  import { Canvas } from '@react-three/fiber';
21
20
  import { type ComponentType, createElement } from 'react';
22
21
  import { createRoot } from 'react-dom/client';
23
- import { manifestEntryModules } from 'virtual:vgai-manifest-entries';
24
- import manifest from '../vgai.project.json';
22
+ import { manifestEntryModules, mountCanvasRoot } from 'virtual:volter-manifest-entries';
23
+ import manifest from '../volter.project.json';
25
24
 
26
25
  interface DeclaredRoot {
27
26
  readonly id: string;
@@ -51,7 +50,7 @@ const roots = [...(manifest.roots as readonly DeclaredRoot[])].sort(
51
50
  const bottomWorld = roots.find((root) => root.adapter === 'three' || root.adapter === 'canvas');
52
51
 
53
52
  // A `canvas` world above the bottom one claims the points where Pixi finds an interactive object (a
54
- // HUD's button), as the editor's input router does: the press goes to that world alone, and every
53
+ // sprite the player taps), as the editor's input router does: the press goes to that world alone, and every
55
54
  // other point falls through to the world beneath. Topmost first.
56
55
  const claims: { readonly zOrder: number; readonly canvas: HTMLCanvasElement; readonly hit: (x: number, y: number) => boolean }[] = [];
57
56
  const forwarded = new WeakSet<Event>();
@@ -95,36 +94,18 @@ for (const root of roots) {
95
94
  layer.style.pointerEvents = 'none';
96
95
  createRoot(layer).render(createElement(Entry));
97
96
  } else if (root.adapter === 'canvas') {
98
- const [{ Application, extend }, PIXI] = await Promise.all([import('@pixi/react'), import('pixi.js')]);
99
- extend(PIXI as unknown as Parameters<typeof extend>[0]);
100
- createRoot(layer).render(
101
- createElement(
102
- Application,
103
- {
104
- resizeTo: layer,
105
- antialias: true,
106
- resolution: globalThis.devicePixelRatio ?? 1,
107
- autoDensity: true,
108
- backgroundAlpha: root === bottomWorld ? 1 : 0,
109
- onInit: (app) => {
110
- if (root === bottomWorld) return;
111
- claims.push({
112
- zOrder: root.zOrder ?? 0,
113
- canvas: app.canvas,
114
- // Pixi points its boundary at the last rendered scene inside its own pointer handlers.
115
- hit: (x, y) => {
116
- const rendered = app.renderer.lastObjectRendered;
117
- if (!rendered) return false;
118
- app.renderer.events.rootBoundary.rootTarget = rendered;
119
- return app.renderer.events.rootBoundary.hitTest(x, y) !== null;
120
- },
121
- });
122
- claims.sort((a, b) => b.zOrder - a.zOrder);
123
- },
97
+ if (!mountCanvasRoot) {
98
+ throw new Error(`main.ts: root "${root.id}" is a canvas root, and this project carries no src/canvas-mount.ts.`);
99
+ }
100
+ if (root === bottomWorld) mountCanvasRoot(layer, Entry, { bottom: true, onHitTest: () => {} });
101
+ else
102
+ mountCanvasRoot(layer, Entry, {
103
+ bottom: false,
104
+ onHitTest: (canvas, hit) => {
105
+ claims.push({ zOrder: root.zOrder ?? 0, canvas, hit });
106
+ claims.sort((a, b) => b.zOrder - a.zOrder);
124
107
  },
125
- createElement(Entry),
126
- ),
127
- );
108
+ });
128
109
  } else {
129
110
  throw new Error(
130
111
  `main.ts: root "${root.id}" declares adapter ${JSON.stringify(root.adapter)}, which this boot does not mount.`,
@@ -1,3 +1,14 @@
1
- declare module 'virtual:vgai-manifest-entries' {
1
+ declare module 'virtual:volter-manifest-entries' {
2
2
  export const manifestEntryModules: Readonly<Record<string, unknown>>;
3
+ /** `src/canvas-mount.ts`'s mount when the manifest declares a `canvas` root, else `undefined`. */
4
+ export const mountCanvasRoot:
5
+ | ((
6
+ layer: HTMLElement,
7
+ Entry: import('react').ComponentType,
8
+ options: {
9
+ readonly bottom: boolean;
10
+ readonly onHitTest: (canvas: HTMLCanvasElement, hit: (x: number, y: number) => boolean) => void;
11
+ },
12
+ ) => void)
13
+ | undefined;
3
14
  }
@@ -19,5 +19,5 @@ export default meta;
19
19
  type Story = StoryObj<typeof meta>;
20
20
 
21
21
  export const Default: Story = {
22
- parameters: { vgai: { default: true } },
22
+ parameters: { volter: { default: true } },
23
23
  };
@@ -74,7 +74,7 @@ function World() {
74
74
  <GameKeyboard />
75
75
  {/* The resident QA tester's hands on the frame — everything else about
76
76
  the playtesting loop (the seat, the repertoire, pause/handoff) is
77
- plain application code in src/bot/, reached from `vgai eval` via
77
+ plain application code in src/bot/, reached from `volter-game-editor eval` via
78
78
  `game.run(({ modules }) => …)` like every other module. */}
79
79
  <QaTester />
80
80
  <Scene name="Main Scene" />
@@ -31,6 +31,6 @@
31
31
  "@editor/*": ["node_modules/@volter/editor-core/src/*"]
32
32
  }
33
33
  },
34
- "include": ["src", "vgai.adapter.ts"],
34
+ "include": ["src", "volter.adapter.ts"],
35
35
  "exclude": ["src/tools", "src/contributions"]
36
36
  }
@@ -9,18 +9,18 @@ import { loadGameManifestFile } from '@volter/editor-project/manifest/load-file'
9
9
  // Single source of truth for game-manifest validation, shipped IN the
10
10
  // project template so every scaffolded game
11
11
  // gets a working `npm run validate-manifest`. Validates each given
12
- // `vgai.project.json` path via `loadGameManifestFile` (parse -> cross-field
12
+ // `volter.project.json` path via `loadGameManifestFile` (parse -> cross-field
13
13
  // checks -> resolution) and prints the
14
14
  // resolved adapter-root list (id, adapter identity) on success. Any failure
15
15
  // prints a descriptive error and
16
16
  // exits 1.
17
17
  //
18
- // Defaults to THIS template's own manifest (`vgai.project.json`, a sibling of
18
+ // Defaults to THIS template's own manifest (`volter.project.json`, a sibling of
19
19
  // this script) when no path is given, so `npm run validate-manifest` works
20
20
  // out of the box both from the monorepo root and from a scaffolded project.
21
21
  // ---------------------------------------------------------------------------
22
22
 
23
- const defaultManifestPath = fileURLToPath(new URL('./vgai.project.json', import.meta.url));
23
+ const defaultManifestPath = fileURLToPath(new URL('./volter.project.json', import.meta.url));
24
24
 
25
25
  const args = process.argv.slice(2);
26
26
  const manifestPaths = args.length > 0 ? args.map((p) => resolve(p)) : [defaultManifestPath];