@volter/game-editor 0.5.68 → 0.5.70

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 (551) hide show
  1. package/BUNDLED_NOTICES +10941 -5080
  2. package/LICENSE +9 -10
  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 +6 -6
  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 +4026 -4026
  21. package/dist/assets/{AssetBudgetPanel-P2PeL_X5.js → AssetBudgetPanel-DpXsaQ6w.js} +4 -4
  22. package/dist/assets/AudioViewer-BdTHfNhD.js +1 -0
  23. package/dist/assets/{CanvasBoardDocument-BFJdTVGp.js → CanvasBoardDocument-DY-7zohc.js} +1 -1
  24. package/dist/assets/CanvasSceneViewport-57CEFqSM.js +1 -0
  25. package/dist/assets/ColorInput-Co6tCY9p.js +1 -0
  26. package/dist/assets/{EntityModelDocument-Du8wIbyK.js → EntityModelDocument-C-lhKrxv.js} +1 -1
  27. package/dist/assets/{EnvironmentAssetDocument-_SttfMY_.js → EnvironmentAssetDocument-BNe6ANTN.js} +1 -1
  28. package/dist/assets/{GameplaySessionTimeline-CWudWnfd.js → GameplaySessionTimeline-CryFYfYN.js} +1 -1
  29. package/dist/assets/ImageViewer-DiD2yIG4.js +1 -0
  30. package/dist/assets/{InspectorCanvasPreview-CEr_Kxna.js → InspectorCanvasPreview-BrFjhoiD.js} +1 -1
  31. package/dist/assets/InspectorObjectPreview-BBVO8bDT.js +1 -0
  32. package/dist/assets/JsonAssetDocument-xyXetSbl.js +2 -0
  33. package/dist/assets/{LiveModuleDocument-BWjOzO_6.js → LiveModuleDocument-BiAunjHS.js} +1 -1
  34. package/dist/assets/{LutAssetDocument-DIc6nsht.js → LutAssetDocument-5sW-5rb0.js} +1 -1
  35. package/dist/assets/{ModelAssetDocument-_CqTsX_A.js → ModelAssetDocument-Bdy7x47a.js} +1 -1
  36. package/dist/assets/{NonThreeAuthoringBootstrap-C-V23E1e.js → NonThreeAuthoringBootstrap-BP-1bVEr.js} +1 -1
  37. package/dist/assets/Object3DDocumentToolbar-CvnSLDPI.js +1 -0
  38. package/dist/assets/Object3DDocumentViewport-BE_OPc8T.js +2 -0
  39. package/dist/assets/{Object3DPreview-BPHEr3vI.js → Object3DPreview-D3w_dKrX.js} +1 -1
  40. package/dist/assets/OnlineAssetDetail-BnT8_p1W.js +1 -0
  41. package/dist/assets/PlayBar-C8Mn-EI0.js +1 -0
  42. package/dist/assets/{QuarksAssetDocument-4Dne3EHx.js → QuarksAssetDocument-DLMH5Csk.js} +1 -1
  43. package/dist/assets/ReactCanvasControls-rNz8syVB.js +1 -0
  44. package/dist/assets/RootSelectionOverlay-Cn2Rbr1N.js +1 -0
  45. package/dist/assets/{ShaderAssetDocument-W3ZjLCkt.js → ShaderAssetDocument-CsJCsNfA.js} +4 -4
  46. package/dist/assets/ShadowEditor-jB05hr1W.js +1 -0
  47. package/dist/assets/{SourceAssetViewer-BGUeDAEv.js → SourceAssetViewer-D0NgGrER.js} +1 -1
  48. package/dist/assets/StageHost-B3Yt4I7r.js +2 -0
  49. package/dist/assets/{StoryPreviewMount-Di8uMovM.js → StoryPreviewMount-CzzRn24c.js} +1 -1
  50. package/dist/assets/ThreeBoardDocument-BoHTN4Vl.js +2 -0
  51. package/dist/assets/{ThreeIsolationSceneContent-BAKurKW5.js → ThreeIsolationSceneContent-BM-0S6J5.js} +1 -1
  52. package/dist/assets/{ToolObject3DPreview-CffvGJ1h.js → ToolObject3DPreview-BeM_kx_u.js} +1 -1
  53. package/dist/assets/Toolbar-BZyog9MR.js +1 -0
  54. package/dist/assets/{TransientHint-CgmkrmKF.js → TransientHint-RJEkOJoy.js} +1 -1
  55. package/dist/assets/VideoViewer-CxajgKrf.js +1 -0
  56. package/dist/assets/ViewportShadingMenu-S2lADFJg.js +1 -0
  57. package/dist/assets/active-ingest-CjZtqL7Q.js +3 -0
  58. package/dist/assets/{animation-clock-fLmY_3--.js → animation-clock-CWVW-mqY.js} +1 -1
  59. package/dist/assets/animation-mixers.service-CpoYw8cs.js +1 -0
  60. package/dist/assets/animation-timeline.utility-CEerojaB.js +1 -0
  61. package/dist/assets/{asset-budget-asset.menu-BDRDWrvx.js → asset-budget-asset.menu-Bk6scVWQ.js} +1 -1
  62. package/dist/assets/{asset-budget.action-tQmNGQHC.js → asset-budget.action-DtBDSfDj.js} +1 -1
  63. package/dist/assets/{asset-budget.document-BthgX37Z.js → asset-budget.document-R2zyoJ8E.js} +1 -1
  64. package/dist/assets/{asset-budget.menu-DfyWVH6p.js → asset-budget.menu-D6jza5Bc.js} +1 -1
  65. package/dist/assets/asset-editor-persistence-DrgwOZIW.js +1 -0
  66. package/dist/assets/asset-loaders-CUeYIjeH.js +2 -0
  67. package/dist/assets/{asset-preview-Cv7tfD98.js → asset-preview-CQfnI2cX.js} +1 -1
  68. package/dist/assets/{audio-unlock.service-BvHvZjzx.js → audio-unlock.service-W3UBKsw9.js} +1 -1
  69. package/dist/assets/audio.utility-qrXBdGXg.js +1 -0
  70. package/dist/assets/autoplay.service-DQD3Swo9.js +1 -0
  71. package/dist/assets/{babylon-authoring-adapter-Cg5ALSpr.js → babylon-authoring-adapter-CS9LZNmz.js} +1 -1
  72. package/dist/assets/binding-resolver-B9VI52zt.js +2 -0
  73. package/dist/assets/blender-emscripten-engine-Cd6az4pU.js +2 -0
  74. package/dist/assets/{blender-node-editor.document-B92MO51u.js → blender-node-editor.document-BWLFvA2g.js} +1 -1
  75. package/dist/assets/{blender-properties-tab-CDVyDAbf.js → blender-properties-tab-BSmWG9d0.js} +1 -1
  76. package/dist/assets/{blender-runtime-host-CuniE0sy.js → blender-runtime-host-Cbkie7m4.js} +2 -2
  77. package/dist/assets/{blender-runtime-skin-B_tOz5j5.js → blender-runtime-skin-C_ATCb-z.js} +7 -7
  78. package/dist/assets/{blender-runtime.document-DxUwLiEW.js → blender-runtime.document-P9zdgwMt.js} +7 -7
  79. package/dist/assets/{blender-timeline.document-BdEEoQbK.js → blender-timeline.document-DRwySEJO.js} +1 -1
  80. package/dist/assets/{blender-uv-editor.document-EMSUlRh4.js → blender-uv-editor.document-CmLoL2Vo.js} +1 -1
  81. package/dist/assets/blender-version.status-CP4Jqkry.js +1 -0
  82. package/dist/assets/blender-wali-engine-CZcS3eAd.js +2 -0
  83. package/dist/assets/{blender.command-BkBML2SY.js → blender.command-BYGm0Q_s.js} +1 -1
  84. package/dist/assets/blender.status-BMETIbb2.js +1 -0
  85. package/dist/assets/board-guides-BG-MHK2G.js +1 -0
  86. package/dist/assets/body-marks-C1LxJtQb.js +1 -0
  87. package/dist/assets/{bridge.command-VnplZ81v.js → bridge.command-DpUNErKN.js} +3 -3
  88. package/dist/assets/{browserAll-BCmkqg8n.js → browserAll-DES3i79H.js} +1 -1
  89. package/dist/assets/{build-player.document-DV7YcJQt.js → build-player.document-B42HrdSU.js} +1 -1
  90. package/dist/assets/build-profiles.document-Di5CQoH9.js +2 -0
  91. package/dist/assets/build-progress.status-B4te7-3j.js +1 -0
  92. package/dist/assets/{build-session-BGe0eGrQ.js → build-session-Yw4JoE8T.js} +2 -2
  93. package/dist/assets/{build.action-Bdj4ZEL_.js → build.action-B-DBpUj6.js} +1 -1
  94. package/dist/assets/{build.command-DAWiYvPa.js → build.command-CfWoHNp0.js} +1 -1
  95. package/dist/assets/build.header-BaURztYD.js +1 -0
  96. package/dist/assets/{build.menu-BiRNC_xc.js → build.menu-BFBn-dPJ.js} +1 -1
  97. package/dist/assets/{build.service-Dw9K6VSF.js → build.service-D8gYWB3n.js} +1 -1
  98. package/dist/assets/{camera-C-qXzXFf.js → camera-C-uR_xQp.js} +1 -1
  99. package/dist/assets/{camera-runtime.inspector-BDrwWRlU.js → camera-runtime.inspector-BOGGEqVq.js} +1 -1
  100. package/dist/assets/{canvas-design-mount-DLn49Zle.js → canvas-design-mount-DamLAaWn.js} +4 -4
  101. package/dist/assets/canvas-entry-runtime-a6N7Rsrj.js +2 -0
  102. package/dist/assets/{canvas-preview-frames-B5xFRjhQ.js → canvas-preview-frames-XbrKuyJu.js} +1 -1
  103. package/dist/assets/{canvas-story-capture.service-DQ_leYyi.js → canvas-story-capture.service-DYRdEzkG.js} +2 -2
  104. package/dist/assets/capability-coverage-7wKVA3PF.js +7 -0
  105. package/dist/assets/{collaboration-presence-BOS1t8wI.js → collaboration-presence-DaVKEfxs.js} +1 -1
  106. package/dist/assets/{collider-Bf4Uk6LW.js → collider-BEwlgkG5.js} +1 -1
  107. package/dist/assets/component-board.service-BWSBM2Bb.js +2 -0
  108. package/dist/assets/{component-board.service-DFSSCaCf.js → component-board.service-C9ZouakC.js} +2 -2
  109. package/dist/assets/{component-board.service-CpVXGhz5.js → component-board.service-D2eGKqHf.js} +2 -2
  110. package/dist/assets/component-contracts.service-D0uElctD.js +1 -0
  111. package/dist/assets/component-instance-root-C1Xf4SwR.js +1 -0
  112. package/dist/assets/{component-verbs.command-DGzZAV_Z.js → component-verbs.command-N-Tj8KOS.js} +1 -1
  113. package/dist/assets/{component-verbs.service-D1rVRogp.js → component-verbs.service-CWh4mQ7X.js} +1 -1
  114. package/dist/assets/{config-D-EAAhqP.js → config-hmmj-QHZ.js} +4 -4
  115. package/dist/assets/{configurations-_HZOWZPy.js → configurations-B9Pi_eRN.js} +1 -1
  116. package/dist/assets/connection.status-C2HPxoww.js +1 -0
  117. package/dist/assets/{constraint-5KLYpGm7.js → constraint-Bp1l8hY-.js} +1 -1
  118. package/dist/assets/constraints.inspector-D-h1f3K2.js +1 -0
  119. package/dist/assets/{content-bounds-DKBD7nsv.js → content-bounds-7UyI42Vj.js} +1 -1
  120. package/dist/assets/{contract-system-adapters-h6OUBRYA.js → contract-system-adapters-Bq1LGdjs.js} +1 -1
  121. package/dist/assets/coverage.service-BiBikIsV.js +3 -0
  122. package/dist/assets/{create-runtime-Bg2uYMfh.js → create-runtime-Cx-q5z2y.js} +2 -2
  123. package/dist/assets/curve-Co_mro-I.js +1 -0
  124. package/dist/assets/{data-asset-7Nfmx-28.js → data-asset-Ckx4D_U_.js} +1 -1
  125. package/dist/assets/data-check-core-CHqar_E8.js +1 -0
  126. package/dist/assets/data-ref-70PUrMuT.js +1 -0
  127. package/dist/assets/debug-bridge-CarsgKpm.js +1 -0
  128. package/dist/assets/debug-registry-DgYNlhH_.js +1 -0
  129. package/dist/assets/{deferred-ingest-play-Bej67_y9.js → deferred-ingest-play-Bpdhu2i-.js} +2 -2
  130. package/dist/assets/{design-time-canvas-mount-CFW9ZWuk.js → design-time-canvas-mount-Ca9Q75Ui.js} +2 -2
  131. package/dist/assets/design-time-layers-BIb71snu.js +1 -0
  132. package/dist/assets/{design-time-mount.service-DJeAPUB_.js → design-time-mount.service-DL6ZK2TQ.js} +2 -2
  133. package/dist/assets/{design-time-mount.service-_R1UDCw3.js → design-time-mount.service-zKUVjKAu.js} +2 -2
  134. package/dist/assets/design-time-react-mount-NrWimSxY.js +1 -0
  135. package/dist/assets/{document-preview-three-5cbuuJMH.js → document-preview-three-DoDs6q1q.js} +1 -1
  136. package/dist/assets/{dom-authoring-adapter-CoESNvrM.js → dom-authoring-adapter-adLQog9l.js} +1 -1
  137. package/dist/assets/{draco3d-Sk9K4AUT.js → draco3d-aUvQF1Zx.js} +1 -1
  138. package/dist/assets/{edit-mode-audio.service-CH6J-8N7.js → edit-mode-audio.service-CHZ1ultu.js} +1 -1
  139. package/dist/assets/edit-mode-authoring-ZQuUwc6e.js +1 -0
  140. package/dist/assets/{edit-mode-networking.service-C4o2pGHX.js → edit-mode-networking.service-C7fk2fL1.js} +1 -1
  141. package/dist/assets/editor-api-C8MUOrwt.js +1 -0
  142. package/dist/assets/{editor-layers-B4oYfpj8.js → editor-layers-CGX7iCSP.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-BRqB1JZO.js} +1 -1
  145. package/dist/assets/{entity-object-B_5Gc0Ky.js → entity-object--ZpqIat7.js} +1 -1
  146. package/dist/assets/{extend-DcEyE5jI.js → extend-BZQIQ18F.js} +1 -1
  147. package/dist/assets/{fork-menu-CKjNh3MO.js → fork-menu-CziehkPx.js} +1 -1
  148. package/dist/assets/{frame-debugger-store-D5YViF_8.js → frame-debugger-store-BOQjrPsh.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-Dgqv6S8X.js} +1 -1
  151. package/dist/assets/{game-css-scope-transform-8GOvVu1s.js → game-css-scope-transform-anfk8vP_.js} +2 -2
  152. package/dist/assets/game-document.service-CqmgrRUA.js +1 -0
  153. package/dist/assets/game-eval.command-CoetFm6_.js +2 -0
  154. package/dist/assets/game-module-access-Cg1EB8Mx.js +1 -0
  155. package/dist/assets/game-network-BqI-Ehz0.js +22 -0
  156. package/dist/assets/{gameplay-export-K5AcStVC.js → gameplay-export-D0hZoeSg.js} +1 -1
  157. package/dist/assets/gameplay-replay-BHz6VAVa.js +1 -0
  158. package/dist/assets/{gameplay.command-DoWqBWhH.js → gameplay.command-CPc9GKuW.js} +1 -1
  159. package/dist/assets/generation-CdOATubd.css +1 -0
  160. package/dist/assets/{generation-jobs-CiabIfR0.js → generation-jobs-D-zXQNZI.js} +1 -1
  161. package/dist/assets/generation.service-Bwt9lQEG.js +1 -0
  162. package/dist/assets/{generations-DU9rCeQR.js → generations-d-U9lCVo.js} +1 -1
  163. package/dist/assets/generations.status-BQ8xhaLN.js +1 -0
  164. package/dist/assets/hierarchy-marks-CndAXtie.js +1 -0
  165. package/dist/assets/hierarchy-marks-CsTaTkc7.js +1 -0
  166. package/dist/assets/hosted-asset-materialization-r2vKfJGY.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-BMxv2MNV.js +1 -0
  169. package/dist/assets/index-BPVnvJfX.js +1 -0
  170. package/dist/assets/{index-C4AUQbmq.js → index-BqzpzjSB.js} +1 -1
  171. package/dist/assets/{index-CC1puVjo.js → index-CMU7lnXk.js} +1 -1
  172. package/dist/assets/index-CPiRKiDC.css +1 -0
  173. package/dist/assets/{index-CaG87ZF-.js → index-Cr9NTnJp.js} +271 -270
  174. package/dist/assets/index-DSMLYme2.js +1 -0
  175. package/dist/assets/index-DoGlzvsX.js +1 -0
  176. package/dist/assets/{index-BsYc2Oyj.js → index-dlvCCB72.js} +1 -1
  177. package/dist/assets/{index-Kb9_s5aP.js → index-xjc_62Ha.js} +1 -1
  178. package/dist/assets/{index-C20Flc1s.js → index-z0_InXxO.js} +2 -2
  179. package/dist/assets/{inference-diagnostics-MGcIHEX6.js → inference-diagnostics-D5jfxI5p.js} +1 -1
  180. package/dist/assets/{ingest-boot-viewport-D2okO6JI.js → ingest-boot-viewport-Be0v44yf.js} +1 -1
  181. package/dist/assets/ingest-siblings-BowXSozE.js +1 -0
  182. package/dist/assets/ingest-source-persistence-BGIvThcv.js +1 -0
  183. package/dist/assets/ingest.service-wVm-ZcTI.js +1 -0
  184. package/dist/assets/{inspect-C8RP8G5F.js → inspect-CN92MgRT.js} +1 -1
  185. package/dist/assets/inspection-D8fZOHCM.js +1 -0
  186. package/dist/assets/instances.command-B6gJuL1Z.js +1 -0
  187. package/dist/assets/{json-history-resource-CTXRV4GD.js → json-history-resource-C9G_vCX9.js} +1 -1
  188. package/dist/assets/{layered-pick-B_-BRrRD.js → layered-pick-D9tIz_m7.js} +1 -1
  189. package/dist/assets/{light-CskDQ8gF.js → light-BGbl1a8K.js} +1 -1
  190. package/dist/assets/{live-project-verbs-BOAQN3ME.js → live-project-verbs-p1sdTwhF.js} +1 -1
  191. package/dist/assets/{machine.document-BxOoCOo9.js → machine.document-C1acXU7l.js} +1 -1
  192. package/dist/assets/{machines.finder-CqEceWzS.js → machines.finder-sOxNTYPx.js} +1 -1
  193. package/dist/assets/material-D7289cYI.js +1 -0
  194. package/dist/assets/{material-factory-qB9pzcQf.js → material-factory-D0T-DH8c.js} +1 -1
  195. package/dist/assets/{mesh-5--4qA-C.js → mesh-1A-HHxD6.js} +1 -1
  196. package/dist/assets/model-asset-sections-D1uxOu2v.css +1 -0
  197. package/dist/assets/model-asset-sections.service-DF-mllTL.js +1 -0
  198. package/dist/assets/{model-inspection-MrJY0U_-.js → model-inspection-CuVwNVvv.js} +1 -1
  199. package/dist/assets/{model-thumbnail-uk-2sblh.js → model-thumbnail-xm1Fabi2.js} +1 -1
  200. package/dist/assets/{models.finder-rk8dhgO8.js → models.finder-DrvU1qGk.js} +1 -1
  201. package/dist/assets/module-mode-BHOAAbgO.js +2 -0
  202. package/dist/assets/mount-canvas-ingest-root-aVZkVNh4.js +2 -0
  203. package/dist/assets/mount-dom-ingest-root-eOOGPaxi.js +2 -0
  204. package/dist/assets/{mount-ingest-root-BC3-1Cw1.js → mount-ingest-root-BsWbEvr_.js} +2 -2
  205. package/dist/assets/{mount-manifest-QJOB11Kv.js → mount-manifest-t6ipNsoF.js} +1 -1
  206. package/dist/assets/mount-readiness-DyAd17pe.js +4 -0
  207. package/dist/assets/mount-three-ingest-root-DIR0wKrN.js +1 -0
  208. package/dist/assets/{mounted-authoring-B7RL_V28.js → mounted-authoring-DX3DC9PJ.js} +1 -1
  209. package/dist/assets/{mounted-story-viewport-source-CnYhX3vW.js → mounted-story-viewport-source-D8FqGpci.js} +1 -1
  210. package/dist/assets/{native-debug-module-B-rWJfWE.js → native-debug-module-CB738yQu.js} +1 -1
  211. package/dist/assets/{navigation-BVu-aVmF.js → navigation-B9ihB0qU.js} +1 -1
  212. package/dist/assets/{navmesh.menu-C3M63eR4.js → navmesh.menu-CPxr9LPT.js} +1 -1
  213. package/dist/assets/{navmesh.service-B0H1fUfn.js → navmesh.service-BAtili_Y.js} +1 -1
  214. package/dist/assets/network-observer.service-CqTuZNtI.js +1 -0
  215. package/dist/assets/network.utility-CclYEmfV.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-BWeuL0nf.js} +2 -2
  219. package/dist/assets/{oid-transform-Bzc2ZJSH.js → oid-transform-BYeAsBKI.js} +1 -1
  220. package/dist/assets/{particles-Be7AvO4c.js → particles-BXiQDiB-.js} +1 -1
  221. package/dist/assets/{performance-profiler-OwnXQX0M.js → performance-profiler-CMbwGBuk.js} +1 -1
  222. package/dist/assets/pixi-authoring-adapter-CPsN0Yk7.js +1 -0
  223. package/dist/assets/pixi-live-write-target-BUbt5ixX.js +1 -0
  224. package/dist/assets/{play.command-CIGRq8ow.js → play.command-Bz5Ra6Uj.js} +2 -2
  225. package/dist/assets/pose-guard-CLabLSzf.js +1 -0
  226. package/dist/assets/presentation-C7ZHYsKF.js +1 -0
  227. package/dist/assets/{product-BN31wSnB.js → product-MSpbAqgo.js} +1 -1
  228. package/dist/assets/{profiler.action-D57Kj9ym.js → profiler.action-1Jbc-7Q4.js} +1 -1
  229. package/dist/assets/{profiler.menu-Dh9Q5DDx.js → profiler.menu-C544DxWZ.js} +1 -1
  230. package/dist/assets/profiler.utility-QnzedS3X.js +1 -0
  231. package/dist/assets/{project-authoring-session-LCJAwGrD.js → project-authoring-session-BhNfg7TY.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-DRCPfugt.js} +1 -1
  234. package/dist/assets/{properties-bone.inspector-D2fcQGMF.js → properties-bone.inspector-CYHeZX0p.js} +1 -1
  235. package/dist/assets/{properties-collection.inspector-CF5AtTAd.js → properties-collection.inspector-DtGhPkiU.js} +1 -1
  236. package/dist/assets/{properties-constraints.inspector-Bj2itDrS.js → properties-constraints.inspector-TIyIV777.js} +1 -1
  237. package/dist/assets/{properties-data.inspector-BfRqk0Xo.js → properties-data.inspector-vA0MTaup.js} +1 -1
  238. package/dist/assets/{properties-material.inspector-Bf8H0mvu.js → properties-material.inspector-C73spBQh.js} +1 -1
  239. package/dist/assets/{properties-modifiers.inspector-BKShc1TH.js → properties-modifiers.inspector-9oyLBBE0.js} +1 -1
  240. package/dist/assets/{properties-object.inspector-YBh8ABnN.js → properties-object.inspector-7BuiUgbd.js} +1 -1
  241. package/dist/assets/{properties-output.inspector-CVkzfs-l.js → properties-output.inspector-CjYAggz2.js} +1 -1
  242. package/dist/assets/{properties-particles.inspector-ChDpAq-2.js → properties-particles.inspector-DpSfjykX.js} +1 -1
  243. package/dist/assets/{properties-physics.inspector-BLEM7aMj.js → properties-physics.inspector-BUTvmfU9.js} +1 -1
  244. package/dist/assets/{properties-render.inspector-vU4D9xLL.js → properties-render.inspector-CEdsDqbI.js} +1 -1
  245. package/dist/assets/{properties-scene.inspector-C-DoN-kL.js → properties-scene.inspector-4kp0sLNw.js} +1 -1
  246. package/dist/assets/{properties-texture.inspector-DySxy1oU.js → properties-texture.inspector-Ckpqy9eo.js} +1 -1
  247. package/dist/assets/{properties-view-layer.inspector-DEKxMahJ.js → properties-view-layer.inspector-CQIFbY8-.js} +1 -1
  248. package/dist/assets/{properties-world.inspector-m5qL_TQV.js → properties-world.inspector-xZgNV6rI.js} +1 -1
  249. package/dist/assets/r3f-design-session-D8VF-hty.js +2 -0
  250. package/dist/assets/{r3f-physics-binding-Bgzzd4ol.js → r3f-physics-binding-oippu1v_.js} +1 -1
  251. package/dist/assets/{r3f-source-authoring-adapter-C8oMjdTL.js → r3f-source-authoring-adapter-CZJX6VLM.js} +1 -1
  252. package/dist/assets/react-canvas-navigation-DuzvnFoN.js +1 -0
  253. package/dist/assets/react-inspector.service-CV4p6nrb.js +1 -0
  254. package/dist/assets/react-story-board-mhldts6w.js +1 -0
  255. package/dist/assets/{react-three-rapier.esm-BR2ttgLS.js → react-three-rapier.esm-Bo9LjrZe.js} +1 -1
  256. package/dist/assets/react-world-authoring-adapter-CuyruDfq.js +1 -0
  257. package/dist/assets/{realm-services-DefTrXnY.js → realm-services-BtiLE3a-.js} +1 -1
  258. package/dist/assets/reflection-probe-capture.inspector-mrrOHs-9.js +1 -0
  259. package/dist/assets/{reflection-probe-BHNGwVyz.js → reflection-probe-sIto9mh0.js} +1 -1
  260. package/dist/assets/registry-DpUr2YIM.js +1 -0
  261. package/dist/assets/{relative-import-specifier-DQzkawgj.js → relative-import-specifier-CyT6yU4l.js} +1 -1
  262. package/dist/assets/{render-env-BZ7LsGfk.js → render-env-C63BGT5v.js} +1 -1
  263. package/dist/assets/{render-features-C7QwmhCo.js → render-features-CBl6rom9.js} +1 -1
  264. package/dist/assets/{render-settings-BBvkacR3.js → render-settings-DjarlnjI.js} +1 -1
  265. package/dist/assets/resolve-three-OiswFiIS.js +702 -0
  266. package/dist/assets/root-seam-contract-BYLQx4CQ.js +1 -0
  267. package/dist/assets/{run-selection-BUeubtHj.js → run-selection-BMu0v3qC.js} +1 -1
  268. package/dist/assets/scene-capture-BLf3lJ44.js +1 -0
  269. package/dist/assets/scene-document.service-CjPDph5k.js +2 -0
  270. package/dist/assets/{scene-framing-PVMqGU8h.js → scene-framing-BhNk0WhI.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-DmdE0u-C.js +1 -0
  274. package/dist/assets/{session-CTXsU1lK.js → session-CeyQA0Dv.js} +35 -35
  275. package/dist/assets/{setup-renderer-OOw1SykJ.js → setup-renderer-Bf8g2S0f.js} +1 -1
  276. package/dist/assets/{source-object3d-authoring-adapter-RmutT5Dt.js → source-object3d-authoring-adapter-IDRws2Nk.js} +1 -1
  277. package/dist/assets/{source-persistence-backend-HviqjKZ2.js → source-persistence-backend-Dzc6MsmN.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-CpnIYiph.js} +1 -1
  280. package/dist/assets/stage-overlay-set-BrJzOTCe.js +1 -0
  281. package/dist/assets/stage-presence-markers-BFTl9Djp.js +1 -0
  282. package/dist/assets/stage-transform-tools-QaenmSrC.js +1 -0
  283. package/dist/assets/standard-viewport-dressing-DuKH01r4.js +24 -0
  284. package/dist/assets/{state-watch.action-DEdb1mNa.js → state-watch.action-BaRZ6YII.js} +1 -1
  285. package/dist/assets/{state-watch.menu-jWbUM3kw.js → state-watch.menu-DR2AtQ6r.js} +1 -1
  286. package/dist/assets/state-watch.utility-VW8H9Fgi.js +1 -0
  287. package/dist/assets/{story-capture-Dj1xkeKH.js → story-capture-BEVV48wm.js} +1 -1
  288. package/dist/assets/story-documents-DndjqJ7Y.js +3 -0
  289. package/dist/assets/{story-documents.service-BzQCuNBu.js → story-documents.service-CPrZ7gRM.js} +1 -1
  290. package/dist/assets/{story-documents.service-iNP-ORNr.js → story-documents.service-wCVmBPhh.js} +1 -1
  291. package/dist/assets/{story-media-presence-zTPlU9HR.js → story-media-presence-BSX78yVJ.js} +1 -1
  292. package/dist/assets/{story-pixi-preview-B7THvSl7.js → story-pixi-preview-D4FuH7lJ.js} +1 -1
  293. package/dist/assets/{story-presentation-BLXYPadR.js → story-presentation-2AxtnKGb.js} +1 -1
  294. package/dist/assets/story-three-preview-DjObHSAF.js +2 -0
  295. package/dist/assets/{structural-ids-Br2zjINh.js → structural-ids-BOo2BRoY.js} +1 -1
  296. package/dist/assets/studio-environment-B--4k2mN.js +2 -0
  297. package/dist/assets/{surface-state-D9j6qNu8.js → surface-state-CQHVfsma.js} +1 -1
  298. package/dist/assets/{syntactic-prop-specs-BTnsMOvH.js → syntactic-prop-specs-CewRyC4c.js} +1 -1
  299. package/dist/assets/team-playtest.service-B9m6CNk7.js +1 -0
  300. package/dist/assets/{three-oYrcK5SQ.js → three-B86IzdNg.js} +1 -1
  301. package/dist/assets/three-authoring-adapter-BD8_MtYK.js +1 -0
  302. package/dist/assets/three-authoring.service-BjJ9wetk.js +2 -0
  303. package/dist/assets/{three-ingest-runtime-CXKjNysA.js → three-ingest-runtime-CXySzulx.js} +1 -1
  304. package/dist/assets/{three-integration-CuAnYaTW.js → three-integration-nl5TC6EF.js} +2 -2
  305. package/dist/assets/three-integration.service-BEk5QkKM.js +1 -0
  306. package/dist/assets/three-projection-core-D4m8lsPU.js +1 -0
  307. package/dist/assets/{three-state-wXRU3rLr.js → three-state-C36FeFK4.js} +1 -1
  308. package/dist/assets/{three-story-capture.service-DMJRcqjr.js → three-story-capture.service-C0icETyL.js} +2 -2
  309. package/dist/assets/{three-story-model-DgiAP-oQ.js → three-story-model-CqWu9S2a.js} +1 -1
  310. package/dist/assets/three-viewport-presentation-CCMgGLI2.js +141 -0
  311. package/dist/assets/tools-BnE3UWVA.js +1 -0
  312. package/dist/assets/transform-mode-request-CIgYj1Qb.js +1 -0
  313. package/dist/assets/transport-strip-B1AJKpn-.js +1 -0
  314. package/dist/assets/transport.header-D-n6dQ5n.js +1 -0
  315. package/dist/assets/{trigger-volume-DP0G1VBe.js → trigger-volume-BLkHmfm9.js} +1 -1
  316. package/dist/assets/tuples-uyiMYXrv.js +1 -0
  317. package/dist/assets/ui-board-document-6e4w4a8B.js +2 -0
  318. package/dist/assets/{user-data-CqOoAowZ.js → user-data-BXFD1jg-.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-I_o0WThv.js} +1 -1
  321. package/dist/assets/viewport-door-AsLxGhLN.js +1 -0
  322. package/dist/assets/{viewport-root-presentation-B35t51xX.js → viewport-root-presentation-B1qtThOB.js} +1 -1
  323. package/dist/assets/{viewport-surface-status-D5kZtFW5.js → viewport-surface-status-CWmQeKTO.js} +1 -1
  324. package/dist/assets/{webworkerAll-CfKEb4Ao.js → webworkerAll-DC445ANd.js} +1 -1
  325. package/dist/assets/worker-jepHAPPr.js +2 -0
  326. package/dist/assets/workspace-arrangement-dkubzCff.js +1 -0
  327. package/dist/assets/world-documents-psBK5u_2.js +1 -0
  328. package/dist/assets/world-root-stage-binding-BrvO8VMz.js +1 -0
  329. package/dist/assets/{xstate-animation-binding-aQEmNSpm.js → xstate-animation-binding-ChVFHSlM.js} +1 -1
  330. package/dist/assets/{xstate-animation-meta-CnMX1Sc1.js → xstate-animation-meta-D7xnhyCE.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 +247 -209
  334. package/dist-node/create.js +90 -74
  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 -18
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +25 -25
  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 -13
  372. package/template/check-idioms.ts +71 -95
  373. package/template/manifest-entry-modules-plugin.ts +17 -4
  374. package/template/package.json +13 -15
  375. package/template/server/colyseus-setup.ts +1 -9
  376. package/template/server/main.ts +4 -9
  377. package/template/server/rooms/arena-room.ts +10 -10
  378. package/template/server/rooms/game-room.ts +10 -10
  379. package/template/server/rooms.ts +3 -5
  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/net/NetworkedPlayers.tsx +3 -3
  396. package/template/src/prefabs/HeroBox.stories.tsx +1 -1
  397. package/template/src/world.tsx +1 -1
  398. package/template/tsconfig.json +1 -1
  399. package/template/validate-manifest.ts +3 -3
  400. package/template/vite.config.ts +12 -12
  401. package/template/{vgai.adapter.ts → volter.adapter.ts} +1 -1
  402. package/template/{vgai.project.json → volter.project.json} +2 -2
  403. package/template-dotfiles/gitignore +27 -27
  404. package/workbench/src/media/game-cover.css +11 -11
  405. package/workbench/src/product.contribution.ts +28 -28
  406. package/workbench/src/{vgaiGameSkew.ts → volterGameSkew.ts} +16 -16
  407. package/dist/assets/AudioViewer-xFb5Wv7A.js +0 -1
  408. package/dist/assets/CanvasSceneViewport-vqBlOz8P.js +0 -1
  409. package/dist/assets/ColorInput-CX1UZjYO.js +0 -1
  410. package/dist/assets/ImageViewer-shZzMd91.js +0 -1
  411. package/dist/assets/InspectorObjectPreview-BMOvJaOw.js +0 -1
  412. package/dist/assets/JsonAssetDocument-D_HXneWE.js +0 -2
  413. package/dist/assets/Object3DDocumentToolbar-BfPH9jz5.js +0 -1
  414. package/dist/assets/Object3DDocumentViewport-BaXWtATg.js +0 -2
  415. package/dist/assets/OnlineAssetDetail-BxibUH6K.js +0 -1
  416. package/dist/assets/PlayBar-DRANyO01.js +0 -1
  417. package/dist/assets/ReactCanvasControls-K98jOX9b.js +0 -1
  418. package/dist/assets/RootSelectionOverlay-BQC12Gdd.js +0 -1
  419. package/dist/assets/ShadowEditor-DP1LWynl.js +0 -1
  420. package/dist/assets/StageHost-V_0opXFt.js +0 -2
  421. package/dist/assets/ThreeBoardDocument-tgcaZDqQ.js +0 -2
  422. package/dist/assets/Toolbar-uLgsrB2z.js +0 -1
  423. package/dist/assets/VideoViewer-ClUJ6_uy.js +0 -1
  424. package/dist/assets/ViewportShadingMenu-Bdkc6jcd.js +0 -1
  425. package/dist/assets/active-ingest-CnAeQcuQ.js +0 -3
  426. package/dist/assets/animation-mixers.service-DiecMX_A.js +0 -1
  427. package/dist/assets/animation-timeline.utility-C71vPJgs.js +0 -1
  428. package/dist/assets/asset-editor-persistence-BQgjOCrm.js +0 -1
  429. package/dist/assets/asset-loaders-5PIUVvmH.js +0 -2
  430. package/dist/assets/audio.utility-D9Vk_WYS.js +0 -1
  431. package/dist/assets/autoplay.service-CFJoLPLw.js +0 -1
  432. package/dist/assets/binding-resolver-C_9MBSMa.js +0 -2
  433. package/dist/assets/blender-emscripten-engine-BeWFjMn-.js +0 -2
  434. package/dist/assets/blender-version.status-DtfwUahB.js +0 -1
  435. package/dist/assets/blender-wali-engine-da698rDf.js +0 -2
  436. package/dist/assets/blender.status-ujwGU6dU.js +0 -1
  437. package/dist/assets/board-guides-_3R1t_-2.js +0 -1
  438. package/dist/assets/body-marks-RKb_LTwL.js +0 -1
  439. package/dist/assets/build-profiles.document-CZxDuhzz.js +0 -2
  440. package/dist/assets/build-progress.status-Dk5u3C67.js +0 -1
  441. package/dist/assets/build.header--xqH6uTP.js +0 -1
  442. package/dist/assets/canvas-entry-runtime-DVeh71nC.js +0 -2
  443. package/dist/assets/capability-coverage-DQgg6UJe.js +0 -7
  444. package/dist/assets/component-board.service-DgujG90T.js +0 -2
  445. package/dist/assets/component-contracts.service-Bc_2Xxh_.js +0 -1
  446. package/dist/assets/component-instance-root-df4ofoOR.js +0 -1
  447. package/dist/assets/connection.status-CCX-mgmr.js +0 -1
  448. package/dist/assets/constraints.inspector-CwEEREsf.js +0 -1
  449. package/dist/assets/coverage.service-CV7b5Sqn.js +0 -3
  450. package/dist/assets/curve-BKuiAPpj.js +0 -1
  451. package/dist/assets/data-check-core-CQEjuFyt.js +0 -1
  452. package/dist/assets/data-ref-DyFQqqX6.js +0 -1
  453. package/dist/assets/debug-bridge-CESAxmlz.js +0 -1
  454. package/dist/assets/debug-registry-l7k5Hjc8.js +0 -1
  455. package/dist/assets/design-time-layers-CQgnmqc8.js +0 -1
  456. package/dist/assets/design-time-react-mount-CFvIk_rV.js +0 -1
  457. package/dist/assets/edit-mode-authoring-DBjaBTxM.js +0 -1
  458. package/dist/assets/editor-api-D2azVray.js +0 -1
  459. package/dist/assets/editor-presentation-activity-C7SNSmTd.js +0 -1
  460. package/dist/assets/game-audio-CaGKzia4.js +0 -1
  461. package/dist/assets/game-document.service-FdG_gFPU.js +0 -1
  462. package/dist/assets/game-eval.command-4wa9vqWE.js +0 -2
  463. package/dist/assets/game-module-access-DulnT3NH.js +0 -1
  464. package/dist/assets/game-network-Bo_nlDR5.js +0 -22
  465. package/dist/assets/gameplay-replay-CnWnlogY.js +0 -1
  466. package/dist/assets/generation-DhwCUHPf.css +0 -1
  467. package/dist/assets/generation.service-D2yeZaJu.js +0 -1
  468. package/dist/assets/generations.status-3CrPw_n5.js +0 -1
  469. package/dist/assets/hierarchy-marks-BLPfSIym.js +0 -1
  470. package/dist/assets/hierarchy-marks-C25dY2fR.js +0 -1
  471. package/dist/assets/hosted-asset-materialization-DYdcFlDf.js +0 -2
  472. package/dist/assets/index-B5WjeCHm.css +0 -1
  473. package/dist/assets/index-BcH5GC3b.js +0 -1
  474. package/dist/assets/index-CwCDkEl1.js +0 -1
  475. package/dist/assets/index-n3QdTv-T.js +0 -1
  476. package/dist/assets/index.module-Ycad3DJq.js +0 -1
  477. package/dist/assets/ingest-siblings-CkxW__go.js +0 -1
  478. package/dist/assets/ingest-source-persistence-6peGfPAS.js +0 -1
  479. package/dist/assets/ingest.service-Cc73WMIW.js +0 -1
  480. package/dist/assets/inspection-CObLhnrs.js +0 -1
  481. package/dist/assets/instances.command-CxKGnrNl.js +0 -1
  482. package/dist/assets/material-BwFzKPi0.js +0 -1
  483. package/dist/assets/model-asset-sections-CFvvihfx.css +0 -1
  484. package/dist/assets/model-asset-sections.service-TZ2SaBmH.js +0 -1
  485. package/dist/assets/module-mode-B79jV5tQ.js +0 -2
  486. package/dist/assets/mount-canvas-ingest-root-BhaYNuhY.js +0 -2
  487. package/dist/assets/mount-dom-ingest-root-BQb1u0LX.js +0 -2
  488. package/dist/assets/mount-readiness-Ds0HvvLH.js +0 -4
  489. package/dist/assets/mount-three-ingest-root-DIDBfvIH.js +0 -1
  490. package/dist/assets/network-observer.service-CiR4Q9Q0.js +0 -1
  491. package/dist/assets/network.utility-CNG3eJ0E.js +0 -1
  492. package/dist/assets/object-marks-DwvIEBOK.js +0 -1
  493. package/dist/assets/pixi-authoring-adapter-B42K4md-.js +0 -1
  494. package/dist/assets/pixi-live-write-target-D56tQEe_.js +0 -1
  495. package/dist/assets/pose-guard-DILO6gGq.js +0 -1
  496. package/dist/assets/presentation-DGBuGP6i.js +0 -1
  497. package/dist/assets/profiler.utility-DLNySW3w.js +0 -1
  498. package/dist/assets/project-provenance-4ldz-EOG.js +0 -1
  499. package/dist/assets/r3f-design-session-C0DPEChS.js +0 -2
  500. package/dist/assets/react-canvas-navigation-Jowa_lJq.js +0 -1
  501. package/dist/assets/react-inspector.service-TfTdj_Qk.js +0 -1
  502. package/dist/assets/react-story-board-Bx7qYytV.js +0 -1
  503. package/dist/assets/react-world-authoring-adapter-C1jPW_cN.js +0 -1
  504. package/dist/assets/reflection-probe-capture.inspector-C-6zrzZb.js +0 -1
  505. package/dist/assets/registry-Z28XSZHF.js +0 -1
  506. package/dist/assets/resolve-three-C7zDbK29.js +0 -702
  507. package/dist/assets/root-seam-contract-rGNbiX6q.js +0 -1
  508. package/dist/assets/scene-capture-BTWgUzhI.js +0 -1
  509. package/dist/assets/scene-document.service-DJJp-la1.js +0 -2
  510. package/dist/assets/seeded-random-38To73fI.js +0 -1
  511. package/dist/assets/stage-overlay-set-olkNSZmq.js +0 -1
  512. package/dist/assets/stage-presence-markers-cznMN_qq.js +0 -1
  513. package/dist/assets/stage-transform-tools-BDUZqRIR.js +0 -1
  514. package/dist/assets/standard-viewport-dressing-BZyuxyVl.js +0 -24
  515. package/dist/assets/state-watch.utility-DDmn3G25.js +0 -1
  516. package/dist/assets/story-documents-8ehMyYHo.js +0 -3
  517. package/dist/assets/story-three-preview-B1nNiPwP.js +0 -2
  518. package/dist/assets/studio-environment-yaKaHPxH.js +0 -2
  519. package/dist/assets/team-playtest.service-Ds9tkO4q.js +0 -1
  520. package/dist/assets/three-authoring-adapter-BrkGH4cd.js +0 -1
  521. package/dist/assets/three-authoring.service-DoamZDMx.js +0 -2
  522. package/dist/assets/three-integration.service-Db-VabIm.js +0 -1
  523. package/dist/assets/three-projection-core-jBJVt6O0.js +0 -1
  524. package/dist/assets/three-viewport-presentation-CgO3eWJ-.js +0 -141
  525. package/dist/assets/tools-B_NJsk05.js +0 -1
  526. package/dist/assets/transform-mode-request-BnKpgRUW.js +0 -1
  527. package/dist/assets/transport-strip-a9yLoPsI.js +0 -1
  528. package/dist/assets/transport.header-CpfoppXc.js +0 -1
  529. package/dist/assets/tuples-CKsHOV9T.js +0 -1
  530. package/dist/assets/ui-board-document-DtTR_mBr.js +0 -2
  531. package/dist/assets/user-data-dHvLdpwM.js +0 -1
  532. package/dist/assets/viewport-door-DVkMQazS.js +0 -1
  533. package/dist/assets/worker-CC9Ug5Ei.js +0 -2
  534. package/dist/assets/workspace-arrangement-DIMM7ska.js +0 -1
  535. package/dist/assets/world-documents-C4t3iOD-.js +0 -1
  536. package/dist/assets/world-root-stage-binding-ydl3JN1a.js +0 -1
  537. package/dist/vgai-shared-react.json +0 -10
  538. package/dist/vgai-shared-three.json +0 -3
  539. package/template/.agents/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  540. package/template/.claude/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  541. package/template/.github/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  542. package/template/server/loopback.ts +0 -76
  543. /package/dist/assets/{vgai-shared-fontawesome-CU65D4Ij.js → volter-shared-fontawesome-CU65D4Ij.js} +0 -0
  544. /package/dist/assets/{vgai-shared-jsx-dev-runtime-DFDKL7fx.js → volter-shared-jsx-dev-runtime-DFDKL7fx.js} +0 -0
  545. /package/dist/assets/{vgai-shared-jsx-runtime-DIqBpTut.js → volter-shared-jsx-runtime-DIqBpTut.js} +0 -0
  546. /package/dist/assets/{vgai-shared-react-BT7rMc2H.js → volter-shared-react-BT7rMc2H.js} +0 -0
  547. /package/dist/assets/{vgai-shared-react-dom-DFajMqMT.js → volter-shared-react-dom-DFajMqMT.js} +0 -0
  548. /package/dist/assets/{vgai-shared-react-dom-client-S0ozfl6_.js → volter-shared-react-dom-client-S0ozfl6_.js} +0 -0
  549. /package/dist/assets/{vgai-shared-three-DH4yxKwt.js → volter-shared-three-DH4yxKwt.js} +0 -0
  550. /package/template/{.vgai → .volter}/assets.json +0 -0
  551. /package/template/{.vgai → .volter}/provenance.json +0 -0
package/LICENSE CHANGED
@@ -1,25 +1,24 @@
1
1
  NOTICE — ONE SUBTREE IS EXCLUDED FROM THIS GRANT
2
2
 
3
- `packages/editor` is licensed under the GNU Affero General Public License,
3
+ `packages/game-editor` is licensed under the GNU Affero General Public License,
4
4
  version 3 only, whose text follows — with ONE exception, stated here because a
5
5
  reader who finds our code inside their own MIT game needs to find this line.
6
- `packages/editor/catalog/project-source/` IS NOT UNDER THE AGPL. It is
7
- licensed MIT (`packages/editor/catalog/project-source/LICENSE`, the same text
8
- the starter template carries), and it is excluded from the grant below.
6
+ `packages/game-editor/catalog/project-source/` IS NOT UNDER THE AGPL. It is
7
+ licensed MIT (`packages/game-editor/catalog/project-source/LICENSE`, the same
8
+ text the starter template carries), and it is excluded from the grant below.
9
9
 
10
10
  That subtree is the CAPABILITY DISTRIBUTION: source whose whole purpose is to
11
11
  be copied, byte for byte, out of this package and into projects that are not
12
- ours. `vgai add <id>` copies a capability's declared files into a user's game,
13
- and `npm run capabilities:sync` copies the same bytes into the MIT starter
14
- template (`packages/editor/template/`) — the two copies are identical, which
15
- `capabilities:sync -- --check` proves file by file. The copy becomes the
12
+ ours. `volter-game-editor add <id>` copies a capability's declared files into a
13
+ user's game, and the MIT starter template (`packages/game-editor/template/`)
14
+ carries the same bytes for the capabilities it starts with. The copy becomes the
16
15
  project's, editing it is the entire point, and a person must be able to
17
16
  relicense their game under any terms they choose. So the licence is attached at
18
17
  the source: the file does not change licence on the way into a game, because it
19
18
  was never AGPL to begin with.
20
19
 
21
- Everything else in `packages/editor` — the editor application that does the
22
- copying — is governed by the AGPL text below.
20
+ Everything else in `packages/game-editor` — the editor application that does
21
+ the copying — is governed by the AGPL text below.
23
22
 
24
23
  --------------------------------------------------------------------------
25
24
 
package/LICENSE-BLENDER CHANGED
@@ -1,6 +1,6 @@
1
1
  NOTICE — WHAT THIS PACKAGE IS, AND WHOSE IT IS
2
2
 
3
- This package (`@vgai/blender`) is the EDITOR-SIDE half of Blender in the tab:
3
+ This package (`@volter/editor-blender`) is the EDITOR-SIDE half of Blender in the tab:
4
4
  the Model document and its presenters, the Properties tabs, the outliner, the
5
5
  node and UV editors, the display transforms, the sky, the status items, the
6
6
  layouts, the finder and the Blender LOOK. Our code here is ours. Its ICON
@@ -57,7 +57,7 @@ package is:
57
57
  that means the whole package must be conveyed under terms that satisfy both.
58
58
  Both licence texts follow: the AGPL first, then the GPL.
59
59
 
60
- This package is NOT `@vgai/blender-engine`, which is Blender ITSELF compiled to
60
+ This package is NOT `@volter/blender-engine`, which is Blender ITSELF compiled to
61
61
  WebAssembly and is GPL-3.0-or-later in whole (`packages/blender-engine/LICENSE`).
62
62
  This package imports only that engine's wire TYPES plus the one tab-side handle
63
63
  that owns the worker; the process boundary is the package boundary
package/NOTICE CHANGED
@@ -6,10 +6,10 @@ LICENSE-BLENDER preserves the integration license and attribution. The
6
6
  separately installed Blender engine has its own GPL license and
7
7
  corresponding-source requirements.
8
8
 
9
- Transferred from the AGPL-3.0-only vgai-engine repository at revision
9
+ Transferred from the AGPL-3.0-only volter-engine repository at revision
10
10
  09c2749ce:
11
11
  - packages/game-editor (the product entry and its create presets)
12
- - packages/create-vgai-project (the project scaffolder, in node/scaffold)
12
+ - the project scaffolder package (now node/scaffold)
13
13
  - packages/editor/template (template/)
14
14
  - packages/editor/template-dotfiles (template-dotfiles/)
15
15
  - packages/editor/catalog/project-source and catalog/entries (catalog/)
@@ -0,0 +1,8 @@
1
+ {
2
+ "private": true,
3
+ "description": "The `canvas` addition's files and the packages they import, merged into a project scaffolded with a 2D scene.",
4
+ "dependencies": {
5
+ "@pixi/react": "8.0.5",
6
+ "pixi.js": "^8.6.0"
7
+ }
8
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The standalone boot's `canvas` root mount: a `@pixi/react` `<Application>` with every `pixi.js`
3
+ * class registered first, as the editor's own canvas mount registers them (so a node the editor
4
+ * created, a TilingSprite or a BitmapText, mounts here too). Only a project with a `canvas` root
5
+ * carries this file and the two packages; `main.ts` reaches it through the manifest's generated
6
+ * module, so a game without a 2D scene imports no Pixi at all.
7
+ */
8
+
9
+ import { Application, extend } from '@pixi/react';
10
+ import * as PIXI from 'pixi.js';
11
+ import { type ComponentType, createElement } from 'react';
12
+ import { createRoot } from 'react-dom/client';
13
+
14
+ extend(PIXI as unknown as Parameters<typeof extend>[0]);
15
+
16
+ export interface CanvasMountOptions {
17
+ /** The bottom world clears opaque; a world stacked above it clears transparent. */
18
+ readonly bottom: boolean;
19
+ /** Pixi's own hit test for interactive objects, handed to the boot's input routing. */
20
+ readonly onHitTest: (canvas: HTMLCanvasElement, hit: (x: number, y: number) => boolean) => void;
21
+ }
22
+
23
+ export function mountCanvasRoot(layer: HTMLElement, Entry: ComponentType, options: CanvasMountOptions): void {
24
+ createRoot(layer).render(
25
+ createElement(
26
+ Application,
27
+ {
28
+ resizeTo: layer,
29
+ antialias: true,
30
+ resolution: globalThis.devicePixelRatio ?? 1,
31
+ autoDensity: true,
32
+ backgroundAlpha: options.bottom ? 1 : 0,
33
+ onInit: (app) => {
34
+ // Pixi points its boundary at the last rendered scene inside its own pointer handlers.
35
+ options.onHitTest(app.canvas, (x, y) => {
36
+ const rendered = app.renderer.lastObjectRendered;
37
+ if (!rendered) return false;
38
+ app.renderer.events.rootBoundary.rootTarget = rendered;
39
+ return app.renderer.events.rootBoundary.hitTest(x, y) !== null;
40
+ });
41
+ },
42
+ },
43
+ createElement(Entry),
44
+ ),
45
+ );
46
+ }
@@ -0,0 +1,18 @@
1
+ import type { Graphics } from 'pixi.js';
2
+ import { useCallback } from 'react';
3
+
4
+ /**
5
+ * This game's 2D scene: a `canvas` root, ordinary `@pixi/react` source, 2D game rendering (sprites,
6
+ * tilemaps, the 2D world). Not its UI: menus and the HUD are the React `dom` root.
7
+ */
8
+ export default function Scene2D() {
9
+ const draw = useCallback((graphics: Graphics) => {
10
+ graphics.clear();
11
+ graphics.rect(-40, -40, 80, 80).fill({ color: 0x579eff });
12
+ }, []);
13
+ return (
14
+ <pixiContainer label="Scene">
15
+ <pixiGraphics label="Block" x={160} y={120} draw={draw} />
16
+ </pixiContainer>
17
+ );
18
+ }
@@ -26,7 +26,7 @@
26
26
  "three-bvh-csg": "^0.0.18",
27
27
  "three-mesh-bvh": "^0.9.12"
28
28
  },
29
- "vgaiTools": ["./src/tools/bake-module.tool.ts", "./src/tools/bake-preview.tool.ts"]
29
+ "volterTools": ["./src/tools/bake-module.tool.ts", "./src/tools/bake-preview.tool.ts"]
30
30
  },
31
31
  "requires": [],
32
32
  "skills": [],
@@ -1,11 +1,11 @@
1
1
  {
2
- "description": "Blender-style modeling \u2014 TWO PACKAGES. `@volter/blender-engine` is Blender itself, compiled to WebAssembly and running headless in the editor tab's worker (GPL-3.0-or-later, because Blender is); `@volter/editor-blender` is the editor-side half that drives it: the Model document (a `.blend` the engine opens, edits and saves), the `modelsFromBlendFiles` finder, the display transforms and the Blender look \u2014 style, keymap, palette, icons and the Model/Sculpt/Texture layouts (ARCHITECTURE-CORE \u00a7Blender north star). Adding this capability declares both dependencies and copies in the starter model: `src/models/cube.blend` \u2014 a real Blender document \u2014 and `src/models/cube.py`, the bpy script that authored it, which stays in the project as the asset's source. Select the finder in `vgai.adapter.ts`: `{ finder: 'modelsFromBlendFiles', include: ['src/models/**/*.blend'] }`.",
2
+ "description": "Blender-style modeling \u2014 TWO PACKAGES. `@volter/blender-engine` is Blender itself, compiled to WebAssembly and running headless in the editor tab's worker (GPL-3.0-or-later, because Blender is); `@volter/editor-blender` is the editor-side half that drives it: the Model document (a `.blend` the engine opens, edits and saves), the `modelsFromBlendFiles` finder, the display transforms and the Blender look \u2014 style, keymap, palette, icons and the Model/Sculpt/Texture layouts (ARCHITECTURE-CORE \u00a7Blender north star). Adding this capability declares both dependencies and copies in the starter model: `src/models/cube.blend` \u2014 a real Blender document \u2014 and `src/models/cube.py`, the bpy script that authored it, which stays in the project as the asset's source. Select the finder in `volter.adapter.ts`: `{ finder: 'modelsFromBlendFiles', include: ['src/models/**/*.blend'] }`.",
3
3
  "files": [],
4
4
  "id": "blender",
5
5
  "packageJson": {
6
6
  "dependencies": {
7
- "@volter/editor-blender": "0.1.11",
8
- "@volter/blender-engine": "0.1.9"
7
+ "@volter/editor-blender": "0.1.13",
8
+ "@volter/blender-engine": "0.1.11"
9
9
  }
10
10
  },
11
11
  "requires": [
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "Music composed as code with the editor's DAW, delivered as mastered audio. Adds @volter/dawproject (a piece is a React component of DAWproject elements) and @volter/editor-dawproject (the piece document, the renderer and the checks), the vgai-music skill, and src/lib/music/music-player.ts, which plays a render's loops, section loops switched on the bar line, stems and stingers through the game's own Web Audio graph. Selects the piece finder (src/music/**/*.tsx) in vgai.adapter.ts.",
2
+ "description": "Music composed as code with the editor's DAW, delivered as mastered audio. Adds @volter/dawproject (a piece is a React component of DAWproject elements) and @volter/editor-dawproject (the piece document, the renderer and the checks), the volter-music skill, and src/lib/music/music-player.ts, which plays a render's loops, section loops switched on the bar line, stems and stingers through the game's own Web Audio graph. Selects the piece finder (src/music/**/*.tsx) in volter.adapter.ts.",
3
3
  "documents": [
4
4
  {
5
5
  "finder": "piecesFromModules",
@@ -15,16 +15,16 @@
15
15
  "id": "music",
16
16
  "packageJson": {
17
17
  "dependencies": {
18
- "@volter/dawproject": "0.5.68",
19
- "@volter/editor-dawproject": "0.5.68"
18
+ "@volter/dawproject": "0.5.70",
19
+ "@volter/editor-dawproject": "0.5.70"
20
20
  },
21
- "vgaiTools": [
21
+ "volterTools": [
22
22
  "./src/tools/music-render.tool.ts"
23
23
  ]
24
24
  },
25
25
  "requires": [],
26
26
  "skills": [
27
- "vgai-music"
27
+ "volter-music"
28
28
  ],
29
29
  "title": "Music (rendered pieces)",
30
30
  "version": "0.4.2"
@@ -2,20 +2,20 @@ MIT License
2
2
 
3
3
  Copyright (c) 2026 Volter AI, Inc.
4
4
 
5
- THIS SUBTREE IS NOT AGPL. It sits inside `packages/editor`, which is
5
+ THIS SUBTREE IS NOT AGPL. It sits inside `packages/game-editor`, which is
6
6
  AGPL-3.0-only, and it is deliberately excluded from that grant and licensed MIT
7
7
  instead — because every file here is COPIED, byte for byte, into projects that
8
- are not ours. `vgai add <id>` copies a capability's declared files into a user's
9
- game; `npm run capabilities:sync` copies the same bytes into the MIT starter
10
- template (`packages/editor/template/`). The copy becomes the project's, editing
8
+ are not ours. `volter-game-editor add <id>` copies a capability's declared files into a user's
9
+ game, and the MIT starter template (`packages/game-editor/template/`) carries
10
+ the same bytes for the capabilities it starts with. The copy becomes the project's, editing
11
11
  it is the entire point (the shadcn model), and the person who edits it must be
12
12
  able to relicense their game under any terms they choose. Source that lands in
13
13
  someone's game under the editor's copyleft would be a trap, so it is MIT at the
14
14
  source: the licence of the file does not change on the way in.
15
15
 
16
- The AGPL continues to govern the rest of `packages/editor` — the editor
16
+ The AGPL continues to govern the rest of `packages/game-editor` — the editor
17
17
  application that does the copying. See LICENSE.md at the repository root for
18
- the per-package map, and `packages/editor/template/LICENSE` for the template's
18
+ the per-package map, and `packages/game-editor/template/LICENSE` for the template's
19
19
  own copy of this grant.
20
20
 
21
21
  Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -2,11 +2,11 @@
2
2
  * The `bake` CONFIGURATION KIND (ARCHITECTURE-CORE §The project model): a
3
3
  * build-role configuration that bakes one project-authored Object3D module
4
4
  * into a GLB — the bake capability's own `project.bake.module` tool, run by
5
- * the host as a build. Declare one in `vgai.project.json`:
5
+ * the host as a build. Declare one in `volter.project.json`:
6
6
  *
7
7
  * { "id": "cube-glb", "kind": "bake", "modulePath": "src/models/cube.ts", "name": "cube" }
8
8
  *
9
- * and `vgai build cage-glb` (or Export) bakes it. This module is a plain
9
+ * and Build Profiles (Export) bakes it. This module is a plain
10
10
  * object the HOST registers; it mounts no UI.
11
11
  */
12
12
 
@@ -10,7 +10,7 @@ import type { BuilderState } from './builder-state';
10
10
  *
11
11
  * This is a plain helper with explicit inputs and outputs — NOT a registry, base
12
12
  * class, or generator kind. Each lib still owns its own contribution file and
13
- * its own `vgaiTools` entry; the file just shrinks to the handful of facts that
13
+ * its own `volterTools` entry; the file just shrinks to the handful of facts that
14
14
  * are genuinely its own (what to build, what it is called, and where its
15
15
  * source lives).
16
16
  */
@@ -1,6 +1,6 @@
1
1
  import type { CSSProperties } from 'react';
2
2
 
3
- export const hintStyle: CSSProperties = { color: 'var(--vgai-content-muted)', fontSize: 11 };
3
+ export const hintStyle: CSSProperties = { color: 'var(--volter-content-muted)', fontSize: 11 };
4
4
  export const fieldLabelStyle: CSSProperties = { fontSize: 12, fontWeight: 600 };
5
5
  export const inputStyle: CSSProperties = { width: '100%', minWidth: 0, boxSizing: 'border-box' };
6
6
 
@@ -36,10 +36,10 @@ export function BuilderSliderRow({
36
36
  step={step}
37
37
  value={value}
38
38
  onChange={(event) => onChange(Number(event.target.value))}
39
- style={{ width: '100%', minWidth: 0, accentColor: 'var(--vgai-accent)' }}
39
+ style={{ width: '100%', minWidth: 0, accentColor: 'var(--volter-accent)' }}
40
40
  />
41
41
  <input
42
- className="vgai-input"
42
+ className="volter-input"
43
43
  type="number"
44
44
  min={min}
45
45
  max={max}
@@ -115,8 +115,8 @@ export async function resolveProjectModule(
115
115
  * from them). It is not a new convention invented here: `bakeObject3DSource`
116
116
  * has always taken exactly `{ root, animations, dispose }` from its `build`
117
117
  * callback, so the bake lane consumed this shape while the MODULE lane —
118
- * `project.bake.module`, `project.bake.preview`, `vgai screenshot <module>`
119
- * — refused it. Measured (cold fox, 2026-08-29): `vgai screenshot
118
+ * `project.bake.module`, `project.bake.preview`, `volter-game-editor screenshot <module>`
119
+ * — refused it. Measured (cold fox, 2026-08-29): `volter-game-editor screenshot
120
120
  * src/lib/fox/generate.ts` died with "export 'createFox' must return a
121
121
  * THREE.Object3D, got object", closing the fast look door to every
122
122
  * parametric lib including the kit's own worked examples.
@@ -172,7 +172,7 @@ function asModuleBuild(built: unknown): ModuleBuild | undefined {
172
172
  * editor server, and it is a ONE-SHOT door: Node's ESM cache keys on the URL
173
173
  * and never invalidates, so inside a long-lived server it returned the first
174
174
  * version of `src/models/barrel.ts` for every later look until the server was
175
- * restarted (the blind modeling bench measured three `vgai restart`s in one
175
+ * restarted (the blind modeling bench measured three `volter-game-editor restart`s in one
176
176
  * barrel, 2026-09-05).
177
177
  */
178
178
  export async function buildFromModule(
@@ -198,7 +198,7 @@ export async function buildFromModule(
198
198
  }
199
199
  // A MODEL MODULE's builder is `build` (`lib/mesh/geometry`'s contract), so a
200
200
  // caller asking for the default export of a module that has none but has
201
- // `build` gets the model — `vgai screenshot src/models/cube.ts` needs no flag.
201
+ // `build` gets the model — `volter-game-editor screenshot src/models/cube.ts` needs no flag.
202
202
  const exp = mod[exportName] ?? (exportName === 'default' ? mod['build'] : undefined);
203
203
  if (exp === undefined) {
204
204
  throw new ToolError(
@@ -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
 
@@ -10,14 +10,14 @@
10
10
  * asset namespace is untouched — a look is not an export
11
11
  * (ARCHITECTURE-CORE §Agent surface, the look-verb decision).
12
12
  *
13
- * The PNGs land under `<project>/.vgai/screenshots/` — the same
14
- * machine-written-evidence namespace `vgai screenshot` already writes to,
13
+ * The PNGs land under `<project>/.volter/screenshots/` — the same
14
+ * machine-written-evidence namespace `volter-game-editor screenshot` already writes to,
15
15
  * beside the run artifacts and the session file, and gitignored like the rest of
16
16
  * it.
17
17
  *
18
18
  * A live session is REQUIRED and cannot be worked around: Node has no GPU, so
19
19
  * "build the model here, photograph it there" is the whole shape of this
20
- * tool. With no session it refuses by name and points at `vgai edit`, rather
20
+ * tool. With no session it refuses by name and points at `volter-game-editor edit`, rather
21
21
  * than building an Object3D nobody will ever see.
22
22
  */
23
23
 
@@ -47,7 +47,7 @@ export const NO_EDITOR_SESSION_ERROR: ToolErrorDefinition = {
47
47
  code: 'NO_EDITOR_SESSION',
48
48
  summary:
49
49
  'No live editor session for this project — rasterization happens in the editor, so a look ' +
50
- 'is impossible without one. Run `vgai edit <project>`.',
50
+ 'is impossible without one. Run `volter-game-editor edit <project>`.',
51
51
  data: z.object({ projectRoot: z.string(), reason: z.string() }),
52
52
  };
53
53
 
@@ -155,7 +155,7 @@ export function orbitShotSet(frames: number): {
155
155
  export const BakePreviewResultSchema = z.object({
156
156
  directory: z
157
157
  .string()
158
- .describe('Project-relative directory the PNGs were written to, under .vgai/screenshots/.'),
158
+ .describe('Project-relative directory the PNGs were written to, under .volter/screenshots/.'),
159
159
  files: z
160
160
  .array(z.string())
161
161
  .describe(
@@ -326,7 +326,7 @@ export const tool = defineTool({
326
326
  'builder to get a native THREE.Object3D, exports it to an IN-MEMORY GLB, and hands those ' +
327
327
  "bytes to the live editor session's Asset Lab for the standard four-view contact sheet — " +
328
328
  'or, with `orbit`, for that many evenly spaced headings around the subject. ' +
329
- 'The PNGs are written under <project>/.vgai/screenshots/. Nothing is written under ' +
329
+ 'The PNGs are written under <project>/.volter/screenshots/. Nothing is written under ' +
330
330
  'public/, no provenance record is created, and no GLB reaches disk — this is the read-only ' +
331
331
  'sibling of project.bake.module, for looking at a builder while iterating on it.',
332
332
  input: BakePreviewInputSchema,
@@ -348,7 +348,7 @@ export const tool = defineTool({
348
348
  permission: {
349
349
  risk: 'read',
350
350
  summary:
351
- 'Imports and runs a project module, then writes look-only PNGs under .vgai/screenshots/. ' +
351
+ 'Imports and runs a project module, then writes look-only PNGs under .volter/screenshots/. ' +
352
352
  'Never touches the project asset namespace.',
353
353
  },
354
354
  async impl(input, ctx) {
@@ -371,7 +371,7 @@ export const tool = defineTool({
371
371
  throw new ToolError(
372
372
  NO_EDITOR_SESSION_ERROR.code,
373
373
  'project.bake.preview renders through the live editor session (Node has no GPU), and ' +
374
- `none is open for this project. Run \`vgai edit ${projectRoot}\` first. (${reason})`,
374
+ `none is open for this project. Run \`volter-game-editor edit ${projectRoot}\` first. (${reason})`,
375
375
  { projectRoot, reason },
376
376
  );
377
377
  }
@@ -424,7 +424,7 @@ export const tool = defineTool({
424
424
  const capture = orbit ?? (await session.editor.assetPreview(source, options));
425
425
 
426
426
  const directory = join(
427
- '.vgai',
427
+ '.volter',
428
428
  'screenshots',
429
429
  `${bakePreviewSlug(input.modulePath, input.exportName)}-${new Date()
430
430
  .toISOString()