@volter/game-editor 0.5.65 → 0.5.66

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 (544) hide show
  1. package/BUNDLED_NOTICES +1962 -363
  2. package/catalog/entries/bake.json +0 -1
  3. package/catalog/entries/blender.json +2 -2
  4. package/catalog/entries/reflections.json +2 -4
  5. package/catalog/project-source/src/lib/bake/asset-seed.ts +1 -2
  6. package/catalog/project-source/src/lib/bake/clip-layering.ts +3 -4
  7. package/catalog/project-source/src/lib/bake/gltf-bake.ts +1 -1
  8. package/catalog/project-source/src/lib/bake/params.ts +3 -5
  9. package/catalog/project-source/src/lib/bake/rest-relative-animation.ts +2 -3
  10. package/dist/.vite/manifest.json +2406 -2182
  11. package/dist/assets/{AssetBudgetPanel-J9--TZPU.js → AssetBudgetPanel-csYWK2H4.js} +8 -8
  12. package/dist/assets/{AudioViewer-CR7333fe.js → AudioViewer-BH_LUYs5.js} +1 -1
  13. package/dist/assets/{BVHLoader-6bQIXhMX.js → BVHLoader-Jkzh8hMf.js} +1 -1
  14. package/dist/assets/BufferGeometryUtils-CAbuTPOA.js +1 -0
  15. package/dist/assets/{CCDIKSolver-CD7vLpsK.js → CCDIKSolver-D4NvkJ8d.js} +1 -1
  16. package/dist/assets/{CSS3DRenderer-CL7ABLVK.js → CSS3DRenderer-CAS2WZZy.js} +1 -1
  17. package/dist/assets/CanvasSceneViewport-BlsRTk-X.js +1 -0
  18. package/dist/assets/ColladaLoader-DxYB89DA.js +3 -0
  19. package/dist/assets/{ColorInput-DQBNrW-K.js → ColorInput-CPQNsDf1.js} +1 -1
  20. package/dist/assets/{ConvexGeometry-CAzXlPVG.js → ConvexGeometry-Dinf-sev.js} +1 -1
  21. package/dist/assets/{ConvexHull-BINCESFp.js → ConvexHull-CrJ8FY-w.js} +1 -1
  22. package/dist/assets/{DecalGeometry-160KRdfg.js → DecalGeometry-owkbefLa.js} +1 -1
  23. package/dist/assets/EffectComposer-BHDH-NLz.js +1 -0
  24. package/dist/assets/EntityModelDocument-DuQivdvc.js +1 -0
  25. package/dist/assets/EnvironmentAssetDocument-CnTEMn3A.js +1 -0
  26. package/dist/assets/FBXLoader-BMUbIhtE.js +1 -0
  27. package/dist/assets/Fbo-DrK7CWlB.js +1 -0
  28. package/dist/assets/{FontLoader-CvGoVI5a.js → FontLoader-BR_K6Baw.js} +2 -2
  29. package/dist/assets/GLTFExporter-BZqAQJbw.js +1 -0
  30. package/dist/assets/{GameplaySessionTimeline-B52W3FVZ.js → GameplaySessionTimeline-Crqwv2fP.js} +1 -1
  31. package/dist/assets/Gltf-7cVbZUzT.js +2 -0
  32. package/dist/assets/ImageViewer-BkFie7Hm.js +1 -0
  33. package/dist/assets/InspectorObjectPreview-Dl3tyJBn.js +1 -0
  34. package/dist/assets/JsonAssetDocument-BUFzubHM.js +2 -0
  35. package/dist/assets/{LineSegments2-CsOpKSiM.js → LineSegments2-Cicm_Hu1.js} +2 -2
  36. package/dist/assets/LiveModuleDocument-C3OQxiba.js +1 -0
  37. package/dist/assets/LutAssetDocument-DVzd1RZ9.js +1 -0
  38. package/dist/assets/{MTLLoader-_Xzd4_0p.js → MTLLoader-Bg_grNiT.js} +2 -2
  39. package/dist/assets/{MarchingCubes-Bsp4wrzd.js → MarchingCubes-a78AL3HB.js} +1 -1
  40. package/dist/assets/MeshBVH-BCSLNEeP.js +1 -0
  41. package/dist/assets/ModelAssetDocument-pN84goRT.js +1 -0
  42. package/dist/assets/{NonThreeAuthoringBootstrap-C3woOMxX.js → NonThreeAuthoringBootstrap-BKNejRiW.js} +1 -1
  43. package/dist/assets/{OBJLoader-BhIC6Hwo.js → OBJLoader-BiwzVj5b.js} +2 -2
  44. package/dist/assets/Object3DDocumentToolbar-D5Bg5FEf.js +1 -0
  45. package/dist/assets/Object3DDocumentViewport-DFHqru3a.js +2 -0
  46. package/dist/assets/Object3DPreview-BTtZ-41z.js +2 -0
  47. package/dist/assets/OnlineAssetDetail-BAqozdAp.js +1 -0
  48. package/dist/assets/{OrbitControls-DLpayAaK.js → OrbitControls-CzKVCORl.js} +1 -1
  49. package/dist/assets/{OrbitControls-CM3bPray.js → OrbitControls-CzTRRI7x.js} +1 -1
  50. package/dist/assets/{OrthographicCamera-bQozawrh.js → OrthographicCamera-CSDDsvu7.js} +1 -1
  51. package/dist/assets/{PLYLoader-DYQqs5Ik.js → PLYLoader-QxrxxMpE.js} +2 -2
  52. package/dist/assets/{PerspectiveCamera-CQ2lh01o.js → PerspectiveCamera-DzD_NfVh.js} +1 -1
  53. package/dist/assets/PlayBar-qVJpgwJt.js +2 -0
  54. package/dist/assets/QuarksAssetDocument-B4vBlUsS.js +2 -0
  55. package/dist/assets/RGBELoader-WQ7xZofE.js +1 -0
  56. package/dist/assets/RectAreaLightUniformsLib-CwcuoVqt.js +1 -0
  57. package/dist/assets/{RenderPass-DPrn-Uky.js → RenderPass-C_CeQNdh.js} +1 -1
  58. package/dist/assets/{ResolutionPicker-C67vs1F3.js → ResolutionPicker-DpHVJxn5.js} +1 -1
  59. package/dist/assets/RootSelectionOverlay-BxvsunO4.js +1 -0
  60. package/dist/assets/{RoundedBox-BDGBg6QZ.js → RoundedBox-B_cZ0NFy.js} +1 -1
  61. package/dist/assets/{RoundedBoxGeometry-CyUuYPfW.js → RoundedBoxGeometry-Y4rcSIvX.js} +1 -1
  62. package/dist/assets/STLLoader-Bej_Nkpr.js +1 -0
  63. package/dist/assets/{SelectionBox-D_75KrNW.js → SelectionBox-Cn9vm7f9.js} +1 -1
  64. package/dist/assets/ShaderAssetDocument-Dx2x8CLr.js +12 -0
  65. package/dist/assets/{ShaderPass-QYRpPuFJ.js → ShaderPass-qtkA7CQ8.js} +1 -1
  66. package/dist/assets/{ShadowEditor-DkImwu1Y.js → ShadowEditor-BEIUkrHL.js} +1 -1
  67. package/dist/assets/SimplifyModifier-D2EesGr2.js +1 -0
  68. package/dist/assets/{SkeletonUtils-Cps8GOC6.js → SkeletonUtils-C8ayciDc.js} +1 -1
  69. package/dist/assets/{Sky-CQKCgYDs.js → Sky-BBpnAJZV.js} +1 -1
  70. package/dist/assets/SourceAssetViewer-BpMbbuy6.js +1 -0
  71. package/dist/assets/StageHost-lB8f---y.js +2 -0
  72. package/dist/assets/{StoryPreviewMount-DjyxRCXu.js → StoryPreviewMount-BIfxmkYh.js} +1 -1
  73. package/dist/assets/{TDSLoader-D_T8XJ81.js → TDSLoader-rHl5Uwc0.js} +1 -1
  74. package/dist/assets/{TextGeometry-DOWAEUV0.js → TextGeometry-BRHSufuM.js} +1 -1
  75. package/dist/assets/ThreeBoardDocument-BHV92Ia3.js +2 -0
  76. package/dist/assets/{ThreeIsolationSceneContent-C8C8whSF.js → ThreeIsolationSceneContent-BqtgDHBK.js} +1 -1
  77. package/dist/assets/{ToolObject3DPreview-BRoDWe4Q.js → ToolObject3DPreview-CcaPJTyH.js} +1 -1
  78. package/dist/assets/Toolbar-keHcSvDD.js +1 -0
  79. package/dist/assets/{TrackballControls-DfznuQTh.js → TrackballControls-Cce-6Ff5.js} +1 -1
  80. package/dist/assets/{TransientHint-BB1fwrvK.js → TransientHint-Dlslh3oX.js} +1 -1
  81. package/dist/assets/{UnrealBloomPass-CR-cS_K5.js → UnrealBloomPass-DiseEiFK.js} +2 -2
  82. package/dist/assets/{VideoViewer-C6kocgIU.js → VideoViewer-naGSXHd6.js} +1 -1
  83. package/dist/assets/ViewportShadingMenu-C7Hdhtca.js +1 -0
  84. package/dist/assets/{active-ingest-CT6jSGhr.js → active-ingest-DEgq9JiA.js} +3 -3
  85. package/dist/assets/{animation-clock-CnjZqfJp.js → animation-clock-lTIb6nk3.js} +1 -1
  86. package/dist/assets/animation-mixers.service-2O2rVwQf.js +1 -0
  87. package/dist/assets/asset-budget-asset.menu-9NhdHAC9.js +1 -0
  88. package/dist/assets/asset-budget.action-yg6-luUJ.js +1 -0
  89. package/dist/assets/asset-budget.document-B46_VFqa.js +1 -0
  90. package/dist/assets/asset-budget.menu-DuH07N-e.js +1 -0
  91. package/dist/assets/{asset-editor-persistence-BBaONOJt.js → asset-editor-persistence-BVtzjadu.js} +1 -1
  92. package/dist/assets/{asset-loaders-BOy5Ss8k.js → asset-loaders-BxG1LykH.js} +2 -2
  93. package/dist/assets/{assets-BuSoGjBX.js → assets-Do88ZdV_.js} +1 -1
  94. package/dist/assets/{audio-unlock.service-CfUgUQVy.js → audio-unlock.service-BJH0mWvX.js} +1 -1
  95. package/dist/assets/{audio.utility-C6K6jem8.js → audio.utility-Cp4aVYFU.js} +1 -1
  96. package/dist/assets/autoplay.service-FxpRy7Ev.js +1 -0
  97. package/dist/assets/{babylon-authoring-adapter-CL02gWDn.js → babylon-authoring-adapter-B_8iE8fK.js} +1 -1
  98. package/dist/assets/{binding-resolver-Dsh-6Vor.js → binding-resolver-BWwG10zJ.js} +2 -2
  99. package/dist/assets/blender-emscripten-engine-CEsWgnR7.js +2 -0
  100. package/dist/assets/{blender-node-editor.document-iIDkB9sI.js → blender-node-editor.document-DTgwy8KC.js} +1 -1
  101. package/dist/assets/blender-properties-tab-DWSJpkxq.js +3 -0
  102. package/dist/assets/blender-runtime-host-OGjPjTrG.js +4 -0
  103. package/dist/assets/{blender-runtime-skin-DyQ9B6CR.js → blender-runtime-skin-DymtXlpt.js} +37 -39
  104. package/dist/assets/blender-runtime.document-CzH2ohHR.js +8 -0
  105. package/dist/assets/{blender-timeline.document-77fx96N7.js → blender-timeline.document-BRy_QPHt.js} +1 -1
  106. package/dist/assets/{blender-uv-editor.document-fsT7B4gV.js → blender-uv-editor.document-D-AbUCqz.js} +1 -1
  107. package/dist/assets/{blender-version.status-o6dBm3n6.js → blender-version.status-B7flzX_7.js} +1 -1
  108. package/dist/assets/{blender-wali-engine-wTOcrOMC.js → blender-wali-engine-D3iKpzn9.js} +1 -1
  109. package/dist/assets/blender.command-BVHtgTQy.js +1 -0
  110. package/dist/assets/blender.environment-CG-pC7sk.js +1 -0
  111. package/dist/assets/{blender.style-Dcem5f_T.js → blender.style-CxfbTFcE.js} +1 -1
  112. package/dist/assets/{board-guides-DziKSTss.js → board-guides-C3usUZZk.js} +1 -1
  113. package/dist/assets/body-marks-D8iaje6y.js +1 -0
  114. package/dist/assets/bridge.command-BF9u6r0A.js +3 -0
  115. package/dist/assets/browserAll-38aBu-cf.js +1 -0
  116. package/dist/assets/{build-profiles.document-kW8iw8Xj.js → build-profiles.document-DO7oNRuo.js} +2 -2
  117. package/dist/assets/{build-progress.status-BNRLytg2.js → build-progress.status-COeNVhYd.js} +1 -1
  118. package/dist/assets/{build-session-C_sg3CEn.js → build-session-IWIriS5P.js} +1 -1
  119. package/dist/assets/{build.action-lYjTLb7K.js → build.action-DlkFvZf6.js} +1 -1
  120. package/dist/assets/{build.command-DIGgUPU_.js → build.command-DPqQIYj_.js} +1 -1
  121. package/dist/assets/{build.header-CKajx5U3.js → build.header-CNLG-pV8.js} +1 -1
  122. package/dist/assets/{build.menu-BdU0QXny.js → build.menu-hUlH6loi.js} +1 -1
  123. package/dist/assets/{build.service-CbBAyeu3.js → build.service-C86Td3_9.js} +1 -1
  124. package/dist/assets/{camera-KEsKvOL7.js → camera-CKbyBXMe.js} +1 -1
  125. package/dist/assets/camera-authoring-Ci3KnE-W.js +1 -0
  126. package/dist/assets/{camera-runtime.inspector-B7unX4g1.js → camera-runtime.inspector-DdR3P2BF.js} +1 -1
  127. package/dist/assets/canvas-entry-runtime-E5YjSgre.js +2 -0
  128. package/dist/assets/canvas-preview-frames-CiAx7dpV.js +1 -0
  129. package/dist/assets/{capability-coverage-Czas4C18.js → capability-coverage-CfUeULDN.js} +5 -5
  130. package/dist/assets/city-EkhAOo5s.exr +0 -0
  131. package/dist/assets/{collaboration-presence-DLoZ7EA3.js → collaboration-presence-CSLFNT7m.js} +1 -1
  132. package/dist/assets/{collider-Bw0mXlsW.js → collider-DRSaLRM9.js} +1 -1
  133. package/dist/assets/{component-board.service-DCwcUssB.js → component-board.service-B7Sv8b7m.js} +2 -2
  134. package/dist/assets/component-board.service-B8UHw8dn.js +2 -0
  135. package/dist/assets/component-contracts.service-LFGekycZ.js +1 -0
  136. package/dist/assets/{component-verbs.command-7xzfjGMZ.js → component-verbs.command-D4SvFjfG.js} +1 -1
  137. package/dist/assets/component-verbs.service-TGvWxf2b.js +1 -0
  138. package/dist/assets/{config-CEZk921y.js → config-DB_RH-hO.js} +3 -3
  139. package/dist/assets/{configurations-DTBMdaTL.js → configurations-C2qgJNnW.js} +1 -1
  140. package/dist/assets/{connection.status-BifnQdOs.js → connection.status-CG7X2brL.js} +1 -1
  141. package/dist/assets/{console-bridge-CHcb-xk5.js → console-bridge-B5Ltae37.js} +1 -1
  142. package/dist/assets/{constraint-De8f1Uiq.js → constraint-C_Jj7dXy.js} +1 -1
  143. package/dist/assets/constraints.inspector-D6QZJS4b.js +1 -0
  144. package/dist/assets/courtyard-DqlebbpC.exr +0 -0
  145. package/dist/assets/coverage.service-Clo86874.js +3 -0
  146. package/dist/assets/{create-runtime-CVCc1BDx.js → create-runtime-lmA910XT.js} +1 -1
  147. package/dist/assets/{curve-7Q79VgU4.js → curve-6-TR6dNb.js} +1 -1
  148. package/dist/assets/{data-asset-4hjS642k.js → data-asset-BNbd309U.js} +1 -1
  149. package/dist/assets/{data-ref-CQI28C0D.js → data-ref-Dvmd7eb1.js} +1 -1
  150. package/dist/assets/{debug-bridge-CCohG-d-.js → debug-bridge-BUNhgyY6.js} +1 -1
  151. package/dist/assets/{debug-registry-Dgvitx8M.js → debug-registry-B3Cnne3x.js} +1 -1
  152. package/dist/assets/deferred-ingest-play-7V8OrW3e.js +2 -0
  153. package/dist/assets/design-time-layers-g9VS6amb.js +1 -0
  154. package/dist/assets/design-time-mount.service-HtMr_vBd.js +2 -0
  155. package/dist/assets/design-time-react-mount-Dx6fJ-Hg.js +1 -0
  156. package/dist/assets/{directional-shadow-fit-BVkOKAv2.js → directional-shadow-fit-Cjz_Eg2b.js} +1 -1
  157. package/dist/assets/{document-preview-three-Kbg2GCLm.js → document-preview-three-C3y0syYQ.js} +1 -1
  158. package/dist/assets/{dom-authoring-adapter-CY8C7f4T.js → dom-authoring-adapter-CEeFyatF.js} +1 -1
  159. package/dist/assets/{draco3d-BBUTcNkz.js → draco3d-FKy0apkb.js} +1 -1
  160. package/dist/assets/drei-asset-caches-jJoHXbTj.js +2 -0
  161. package/dist/assets/{edit-mode-audio.service-Bzetwd5B.js → edit-mode-audio.service-DZTnrW6t.js} +1 -1
  162. package/dist/assets/edit-mode-authoring-D_BiHCQj.js +1 -0
  163. package/dist/assets/{edit-mode-networking.service-YCX6RRb_.js → edit-mode-networking.service-BzMI2VxO.js} +1 -1
  164. package/dist/assets/editor-api-Bzmo0o8_.js +1 -0
  165. package/dist/assets/{entry-adjudication-Cq8Yeb74.js → entry-adjudication-BYy7TXOB.js} +1 -1
  166. package/dist/assets/{events-156d8d12.esm-ErOhDXXB.js → events-156d8d12.esm-C734MYnx.js} +7 -7
  167. package/dist/assets/{extend-B-eOccUm.js → extend-CLG0ymiX.js} +1 -1
  168. package/dist/assets/forest-P_CQY3b_.exr +0 -0
  169. package/dist/assets/fork-menu-De7HU6_H.js +1 -0
  170. package/dist/assets/{frame-debugger-store-D1Mf_5up.js → frame-debugger-store-BZgIOlU6.js} +1 -1
  171. package/dist/assets/{game-DHOZVb-7.js → game-D5EJoILQ.js} +1 -1
  172. package/dist/assets/{game-contract-seams-a5YXejOu.js → game-contract-seams-TCpIMmHP.js} +1 -1
  173. package/dist/assets/{game-css-scope-transform-Eng4wS8E.js → game-css-scope-transform-NbpajQr-.js} +1 -1
  174. package/dist/assets/game-document.service-6eRlrI-d.js +1 -0
  175. package/dist/assets/game-eval.command-hKnSMlX0.js +2 -0
  176. package/dist/assets/{game-input-seams-CIQdetRw.js → game-input-seams-BC6xhZy3.js} +1 -1
  177. package/dist/assets/{game-module-access-B2mFxv-i.js → game-module-access-ry3xb1Ix.js} +1 -1
  178. package/dist/assets/{gameplay-export-BoKXm51x.js → gameplay-export-DiLQuPpn.js} +1 -1
  179. package/dist/assets/gameplay-replay-Bsre-1K8.js +1 -0
  180. package/dist/assets/{gameplay-rng-trap-CTNhm-UW.js → gameplay-rng-trap-BhRx_CtU.js} +1 -1
  181. package/dist/assets/gameplay.command-BqiyGn-I.js +1 -0
  182. package/dist/assets/{generation-jobs-BQrXbGp_.js → generation-jobs-BYcpgeGk.js} +1 -1
  183. package/dist/assets/generation.service-O81IqA-6.js +1 -0
  184. package/dist/assets/{generations-DzUogZsM.js → generations-CsGQ3twi.js} +1 -1
  185. package/dist/assets/{generations.status-CgOUBCum.js → generations.status-C3YU0_ml.js} +1 -1
  186. package/dist/assets/godot.style-DxJaFWOP.js +1 -0
  187. package/dist/assets/godot.view-BFsHk8b2.js +1 -0
  188. package/dist/assets/{hosted-asset-materialization-CiIvWkGU.js → hosted-asset-materialization-Bk-plQF6.js} +2 -2
  189. package/dist/assets/{ibl-override-material-BlmCxFKq.js → ibl-override-material-BhbGwgS1.js} +1 -1
  190. package/dist/assets/{index-mjWQmGhM.js → index-0n9eSzwT.js} +1 -1
  191. package/dist/assets/index-B4bmKkgY.css +1 -0
  192. package/dist/assets/index-BLo2LE8C.js +3404 -0
  193. package/dist/assets/index-BWW4-DBH.js +1 -0
  194. package/dist/assets/index-CLcsjKUs.js +1 -0
  195. package/dist/assets/index-CU5YUq-x.js +134 -0
  196. package/dist/assets/{index-DUpHH6JR.js → index-Cb6o_Td_.js} +1 -1
  197. package/dist/assets/index-Ckxb31Yz.js +1500 -0
  198. package/dist/assets/index-CnpsJMao.js +1 -0
  199. package/dist/assets/index-Cr23XhNm.js +1 -0
  200. package/dist/assets/index-DO1rWQ_r.js +487 -0
  201. package/dist/assets/{index-BcCBqgM_.js → index-DUh02lTr.js} +1 -1
  202. package/dist/assets/index-DXEHfb0b.js +1 -0
  203. package/dist/assets/{index-V1R-e5Bd.js → index-wRCvCebM.js} +1 -1
  204. package/dist/assets/{inference-diagnostics-Dhmtfbq_.js → inference-diagnostics-YW0yJkKx.js} +1 -1
  205. package/dist/assets/{ingest-BbYMC2vQ.js → ingest-BlQnR7s3.js} +1 -1
  206. package/dist/assets/ingest-boot-viewport-uG9jQ1zm.js +1 -0
  207. package/dist/assets/ingest-siblings-DRQXSWax.js +1 -0
  208. package/dist/assets/{ingest-source-persistence-C_6Hiyra.js → ingest-source-persistence-DH6ioCOu.js} +1 -1
  209. package/dist/assets/{ingest.service-BTDnQfM1.js → ingest.service-GeaWMaZX.js} +1 -1
  210. package/dist/assets/{input-manager-DH_hGW6d.js → input-manager-Cxx3RJgG.js} +1 -1
  211. package/dist/assets/{input-router-BNQvtIqw.js → input-router-FzxO5ld6.js} +1 -1
  212. package/dist/assets/{inspect-BZfi3mmo.js → inspect-BRgDdtVk.js} +1 -1
  213. package/dist/assets/instances.command-CFOMPSj3.js +1 -0
  214. package/dist/assets/{instruments-CKR02Y8I.js → instruments-IKn-vvNb.js} +1 -1
  215. package/dist/assets/interior-Bo_lba15.exr +0 -0
  216. package/dist/assets/{json-history-resource-BbxllWfV.js → json-history-resource-r-9q_hxP.js} +1 -1
  217. package/dist/assets/{light-D-_wsKTq.js → light-CFAor97k.js} +1 -1
  218. package/dist/assets/light-camera-factory-D1sgz3YB.js +1 -0
  219. package/dist/assets/live-mixers-BRkRHd6g.js +1 -0
  220. package/dist/assets/{loader-CaF_I7Yt.js → loader-BbMsvIxP.js} +1 -1
  221. package/dist/assets/machine.document-CgmsOh-s.js +24 -0
  222. package/dist/assets/machines.finder-nxiCgQc2.js +1 -0
  223. package/dist/assets/matcap-texture-Dh65bX5V.js +1 -0
  224. package/dist/assets/{material-CpAdjDxn.js → material-D5kXEZWQ.js} +1 -1
  225. package/dist/assets/{material-factory-Bz6h__6g.js → material-factory-0Qb0VuZ5.js} +1 -1
  226. package/dist/assets/material-preview.view-DqNcpd_b.js +1 -0
  227. package/dist/assets/{mesh-B3WPtNKO.js → mesh-BKPgNTwh.js} +1 -1
  228. package/dist/assets/{mesh-shadow-CZnXrw_l.js → mesh-shadow-BDQP4mHs.js} +1 -1
  229. package/dist/assets/model-asset-sections.service-DWPLmkqa.js +1 -0
  230. package/dist/assets/model-inspection-Cxfg_Fei.js +1 -0
  231. package/dist/assets/model.layout-BpZE1W9V.js +1 -0
  232. package/dist/assets/{models.finder-G2jQgIRu.js → models.finder-DHW17ZEa.js} +1 -1
  233. package/dist/assets/module-mode-CRfHyIMS.js +2 -0
  234. package/dist/assets/mount-canvas-ingest-root-BZZ8M3Lu.js +2 -0
  235. package/dist/assets/mount-dom-ingest-root-D1GV6Jjt.js +2 -0
  236. package/dist/assets/{mount-game-6t9cKNo4.js → mount-game-F9e76auh.js} +1 -1
  237. package/dist/assets/mount-ingest-root-B5D-Lmmk.js +2 -0
  238. package/dist/assets/{mount-manifest-CGVxhmAw.js → mount-manifest-cYRhgHfo.js} +1 -1
  239. package/dist/assets/mount-three-ingest-root-BNnouaBn.js +1 -0
  240. package/dist/assets/{mounted-authoring-Dmg5xmhP.js → mounted-authoring-TIN5EnCb.js} +1 -1
  241. package/dist/assets/{mounted-story-viewport-source-DjP6RA9U.js → mounted-story-viewport-source-CAlEmE0_.js} +1 -1
  242. package/dist/assets/{native-debug-module-CWicoSGD.js → native-debug-module-j-MekcLS.js} +1 -1
  243. package/dist/assets/{navigation-CIiCx-SM.js → navigation-DmR1BDVo.js} +1 -1
  244. package/dist/assets/{navmesh.menu-CAKiH8PW.js → navmesh.menu-FhL1pGx1.js} +1 -1
  245. package/dist/assets/{navmesh.service-jgDWlgj1.js → navmesh.service-usyDeJlm.js} +1 -1
  246. package/dist/assets/{network.utility-CEu5nHf7.js → network.utility-BPh4hTmh.js} +1 -1
  247. package/dist/assets/night-CvV4Gybt.exr +0 -0
  248. package/dist/assets/{object3d-authoring-subject-CH5sI2oP.js → object3d-authoring-subject-CyE4rQ2A.js} +1 -1
  249. package/dist/assets/oid-transform-BOqL6YH6.js +2 -0
  250. package/dist/assets/{particles-Y626p22p.js → particles-C47L-dda.js} +1 -1
  251. package/dist/assets/particles-factory-CRqPLdS7.js +1 -0
  252. package/dist/assets/pixi-authoring-adapter-C5Ikqj5-.js +1 -0
  253. package/dist/assets/{pixi-live-write-target-DuWydlWb.js → pixi-live-write-target-OWBk79dp.js} +1 -1
  254. package/dist/assets/pixi-primitive-D5igywJ_.js +1 -0
  255. package/dist/assets/pixi-react-root-factory-9lZ0Yz-n.js +1 -0
  256. package/dist/assets/play-mode-DomOvQie.js +22 -0
  257. package/dist/assets/play.command-DoqjH-Pp.js +2 -0
  258. package/dist/assets/{playtest-BXIL1JEF.js → playtest-BnFenMBW.js} +1 -1
  259. package/dist/assets/{pose-guard-6Osb2cFu.js → pose-guard-Bb3gZOzk.js} +1 -1
  260. package/dist/assets/{product-DFhyARJj.js → product-CTDJoVo5.js} +1 -1
  261. package/dist/assets/{profiler.action-CaXJDp3t.js → profiler.action-C_OFGkDw.js} +1 -1
  262. package/dist/assets/{profiler.menu-BIMF6Bi4.js → profiler.menu-BJbnVoo4.js} +1 -1
  263. package/dist/assets/{profiler.utility-BExw9wBO.js → profiler.utility-qpfhuwRw.js} +1 -1
  264. package/dist/assets/project-authoring-session-BV-MM8Fl.js +2 -0
  265. package/dist/assets/{project-provenance-BoP3nrle.js → project-provenance-4ldz-EOG.js} +1 -1
  266. package/dist/assets/{properties-bone-constraints.inspector-ByT6p7S-.js → properties-bone-constraints.inspector-C-ByIdg1.js} +1 -1
  267. package/dist/assets/{properties-bone.inspector-z4qJwKO5.js → properties-bone.inspector-CXY0xCQB.js} +1 -1
  268. package/dist/assets/{properties-collection.inspector-D0_3ijWU.js → properties-collection.inspector-DIfkZAel.js} +1 -1
  269. package/dist/assets/{properties-constraints.inspector-CESzjuls.js → properties-constraints.inspector-BaunL5nT.js} +1 -1
  270. package/dist/assets/{properties-data.inspector-hG8Wgyzb.js → properties-data.inspector-DQD-jfO2.js} +1 -1
  271. package/dist/assets/{properties-material.inspector-CzY0JCQ6.js → properties-material.inspector-A0HZ4SX6.js} +1 -1
  272. package/dist/assets/{properties-modifiers.inspector-3dDhwf7g.js → properties-modifiers.inspector-GUnVhVwZ.js} +1 -1
  273. package/dist/assets/{properties-object.inspector-CiarfxkT.js → properties-object.inspector-Chsfa4Xa.js} +1 -1
  274. package/dist/assets/{properties-output.inspector-DKJxmKSD.js → properties-output.inspector-U7ZmD0Me.js} +1 -1
  275. package/dist/assets/{properties-particles.inspector-CCEdYWGm.js → properties-particles.inspector-umkW-OlI.js} +1 -1
  276. package/dist/assets/{properties-physics.inspector-B2c0KUyA.js → properties-physics.inspector-CLVBlWwL.js} +1 -1
  277. package/dist/assets/{properties-render.inspector-Bcm0HLRW.js → properties-render.inspector-D0u9taKy.js} +1 -1
  278. package/dist/assets/{properties-scene.inspector-PIM_eTb_.js → properties-scene.inspector-JwGCZQAx.js} +1 -1
  279. package/dist/assets/{properties-texture.inspector-CgFlnyr8.js → properties-texture.inspector-B1vC28pw.js} +1 -1
  280. package/dist/assets/{properties-view-layer.inspector-DGjF_Aqo.js → properties-view-layer.inspector-BuUKyBFp.js} +1 -1
  281. package/dist/assets/{properties-world.inspector-CrMvaRvB.js → properties-world.inspector-VXUj4dT4.js} +1 -1
  282. package/dist/assets/r3f-design-session-qJ2v5SrB.js +2 -0
  283. package/dist/assets/r3f-physics-binding-C8OqNRG2.js +1 -0
  284. package/dist/assets/{r3f-root-factory-z9llD1OU.js → r3f-root-factory-DjGnbU4n.js} +1 -1
  285. package/dist/assets/r3f-source-authoring-adapter-CG9heazM.js +12 -0
  286. package/dist/assets/{rapier-physics-bridge-CMoeVo3Y.js → rapier-physics-bridge-B-EK7KYV.js} +1 -1
  287. package/dist/assets/react-inspector.service-DWeXDHJq.js +1 -0
  288. package/dist/assets/{react-root-CEz5NTck.js → react-root-DGLRLr-F.js} +1 -1
  289. package/dist/assets/react-story-board-CSqHY0Cg.js +1 -0
  290. package/dist/assets/{react-three-fiber.esm-CycrbDlA.js → react-three-fiber.esm-BxIoqVh1.js} +1 -1
  291. package/dist/assets/{react-three-rapier.esm-CEfKpvxT.js → react-three-rapier.esm-BYzLhdSV.js} +1 -1
  292. package/dist/assets/react-world-authoring-adapter-BMT9kLWU.js +1 -0
  293. package/dist/assets/{realm-services-CobQsq_X.js → realm-services-D25JHoqD.js} +1 -1
  294. package/dist/assets/{reflection-probe-Don-M3Fj.js → reflection-probe-CqXWlicu.js} +1 -1
  295. package/dist/assets/{reflection-probe-capture.inspector-CmFUoJCx.js → reflection-probe-capture.inspector-B7Qa30vB.js} +1 -1
  296. package/dist/assets/regions-DWeEBnE2.js +1 -0
  297. package/dist/assets/{register-render-vitals-BiZk29b2.js → register-render-vitals-BO7x64kR.js} +1 -1
  298. package/dist/assets/{registry-02YZjMNp.js → registry-DlTluc4x.js} +1 -1
  299. package/dist/assets/{render-audio-control-vMRlePWb.js → render-audio-control-DCa_bOBI.js} +1 -1
  300. package/dist/assets/{render-batch-system-0vq7p0VC.js → render-batch-system-CzCp9YKM.js} +1 -1
  301. package/dist/assets/{render-control-Df3yTiyr.js → render-control-BNQr1eNO.js} +1 -1
  302. package/dist/assets/{render-env-D2IV2x5k.js → render-env-emvlfeTG.js} +1 -1
  303. package/dist/assets/{render-features-CPQ_e568.js → render-features-COF7MSQ9.js} +1 -1
  304. package/dist/assets/{render-settings-Bw4W9SYF.js → render-settings-C_kIMq8Y.js} +1 -1
  305. package/dist/assets/{resolve-three-SZE_WWUM.js → resolve-three-C-nx-QdA.js} +13 -13
  306. package/dist/assets/{root-seam-contract-Z0VWX3Bk.js → root-seam-contract-C7GOxf5x.js} +1 -1
  307. package/dist/assets/{run-ticks-settled-C4ksViyA.js → run-ticks-settled-B0cTtmhQ.js} +1 -1
  308. package/dist/assets/{scene-capture-CGYF-Viw.js → scene-capture-CLOc7GXc.js} +1 -1
  309. package/dist/assets/{scene-capture-BQKzU0NT.js → scene-capture-D10Nxkvp.js} +1 -1
  310. package/dist/assets/scene-document.service-B7kAVTko.js +2 -0
  311. package/dist/assets/{scene-framing-Cat0GtyJ.js → scene-framing-50N7SKuX.js} +1 -1
  312. package/dist/assets/{scene-index-B6BZOHMk.js → scene-index-Bce459yu.js} +1 -1
  313. package/dist/assets/{scene-query-C7_N-TpI.js → scene-query-IUZhw6pA.js} +1 -1
  314. package/dist/assets/{schema-kl9-2B_J.js → schema-Iy-mbzll.js} +1 -1
  315. package/dist/assets/sculpt.layout-D-K5cLw6.js +1 -0
  316. package/dist/assets/{seeded-random-i3mtgBKZ.js → seeded-random-CN0scLZj.js} +1 -1
  317. package/dist/assets/{session-CZ5JPg-z.js → session-CsR0lApe.js} +24 -15
  318. package/dist/assets/{setup-audio-S8GQF91f.js → setup-audio-BJ18gvXZ.js} +1 -1
  319. package/dist/assets/setup-particles-B6H-GbAA.js +1 -0
  320. package/dist/assets/{setup-physics-BeZ7-LKD.js → setup-physics-GugbTT0J.js} +1 -1
  321. package/dist/assets/{setup-renderer-DVXaSGin.js → setup-renderer-wt_a-p8r.js} +20 -20
  322. package/dist/assets/shading.layout-CZZHKBer.js +1 -0
  323. package/dist/assets/{sim-clock-CLflx7kg.js → sim-clock-DEfbb_-P.js} +1 -1
  324. package/dist/assets/{soft-particle-depth-DGvfQDi1.js → soft-particle-depth-CKUS1j0Y.js} +1 -1
  325. package/dist/assets/source-object3d-authoring-adapter-CfHQLFAL.js +1 -0
  326. package/dist/assets/{source-persistence-backend-C-aR-B_Y.js → source-persistence-backend-_-JMEXxE.js} +1 -1
  327. package/dist/assets/{spark-renderer-lifecycle-ynWESJcv.js → spark-renderer-lifecycle-9mnMW3Z4.js} +1 -1
  328. package/dist/assets/{spark.module-4pXQoz5d.js → spark.module-CXth-y_a.js} +1 -1
  329. package/dist/assets/stage-keyboard-C0FdDLOQ.js +1 -0
  330. package/dist/assets/stage-overlay-set-CwhCzbOy.js +1 -0
  331. package/dist/assets/stage-presence-markers-DVMDKiB-.js +1 -0
  332. package/dist/assets/stage-transform-tools-B09Z7v0o.js +1 -0
  333. package/dist/assets/standard-viewport-dressing-GUUr6GuK.js +20 -0
  334. package/dist/assets/{state-watch.action-BOvQR2qt.js → state-watch.action-CgF8qoFC.js} +1 -1
  335. package/dist/assets/{state-watch.menu-CNLvDeeY.js → state-watch.menu-CIMncESW.js} +1 -1
  336. package/dist/assets/{state-watch.utility-Bg1tTTQU.js → state-watch.utility-zTHkUALC.js} +1 -1
  337. package/dist/assets/static-batch-advisor-DqfXWRUq.js +1 -0
  338. package/dist/assets/story-capture-COQgezzl.js +1 -0
  339. package/dist/assets/story-documents-DQ0KORmd.js +3 -0
  340. package/dist/assets/story-documents.service-DOSaqPqv.js +1 -0
  341. package/dist/assets/story-documents.service-Gb7oUkbg.js +1 -0
  342. package/dist/assets/{story-media-presence-BHzk2IV5.js → story-media-presence-nW3zJqKv.js} +1 -1
  343. package/dist/assets/story-pixi-preview-COPTEsHo.js +1 -0
  344. package/dist/assets/story-presentation-CxADj5oz.js +1 -0
  345. package/dist/assets/{story-three-preview-BHEDZzcl.js → story-three-preview-C9W__8Or.js} +2 -2
  346. package/dist/assets/{structural-ids-Dc-7rEwi.js → structural-ids-CblajJQK.js} +1 -1
  347. package/dist/assets/studio-CysTBGIb.exr +0 -0
  348. package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
  349. package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
  350. package/dist/assets/{surface-state-DaxyruCj.js → surface-state-BAUJu6GY.js} +1 -1
  351. package/dist/assets/{system-runner-DkOjxEBt.js → system-runner-D_DtVrer.js} +1 -1
  352. package/dist/assets/team-playtest.service--79O6xkx.js +1 -0
  353. package/dist/assets/{three-CDSueJyJ.js → three-DSsr_Lvp.js} +1 -1
  354. package/dist/assets/{three-authoring-adapter-CmSQ3Vui.js → three-authoring-adapter-Yqsank46.js} +1 -1
  355. package/dist/assets/three-authoring.service-BDos-bRt.js +2 -0
  356. package/dist/assets/{three-ingest-runtime-QzDYk6tU.js → three-ingest-runtime-DWijtqQ8.js} +1 -1
  357. package/dist/assets/{three-projection-core-BmKMZ-nf.js → three-projection-core-kubBTx0s.js} +1 -1
  358. package/dist/assets/three-story-model-BraQFA9h.js +1 -0
  359. package/dist/assets/three-viewport-presentation-BL7Uc2i6.js +1 -0
  360. package/dist/assets/{three.module-D396a9Mn.js → three.module-IFn-4i31.js} +1 -1
  361. package/dist/assets/three.quarks.esm-CRKGjKAH.js +1039 -0
  362. package/dist/assets/transform-mode-request-Cu7ewbtr.js +1 -0
  363. package/dist/assets/{transform-writer-BhBBTx33.js → transform-writer-DXxrI4t7.js} +1 -1
  364. package/dist/assets/transport.header-CeND8Vzh.js +1 -0
  365. package/dist/assets/{trigger-volume-BNK2XzPL.js → trigger-volume-BCVRS3NM.js} +1 -1
  366. package/dist/assets/{tuples-CIQ4Bn1U.js → tuples-DKDGrN1t.js} +1 -1
  367. package/dist/assets/ui-board-document-DD2CAEAo.js +2 -0
  368. package/dist/assets/unity.style-vCmLw4gI.js +1 -0
  369. package/dist/assets/unity.view-DIn2S6Do.js +1 -0
  370. package/dist/assets/unreal.style-BQn-HhOX.js +1 -0
  371. package/dist/assets/unreal.view-adNBETZK.js +1 -0
  372. package/dist/assets/user-data-CZqsJDk-.js +1 -0
  373. package/dist/assets/{utility-view-state-BHypxA33.js → utility-view-state-DYJY8V8O.js} +1 -1
  374. package/dist/assets/uv-editing.layout-A8RA-cbM.js +1 -0
  375. package/dist/assets/{vgai-shared-three-Bc5PvpLM.js → vgai-shared-three-D_RAEumG.js} +1 -1
  376. package/dist/assets/{viewport-root-presentation-CWsE56K6.js → viewport-root-presentation-C9M98VNM.js} +1 -1
  377. package/dist/assets/{viewport-shading-BuA88e_A.js → viewport-shading-BzcvgJhK.js} +1 -1
  378. package/dist/assets/viewport-shading-boundary-CBvvzS-p.js +84 -0
  379. package/dist/assets/{viewport-surface-status-B3om4Kcf.js → viewport-surface-status-BFmnWp7z.js} +1 -1
  380. package/dist/assets/voxel-surface-ROWYug7H.js +1 -0
  381. package/dist/assets/webgl-frame-capture-CRKX73E9.js +1 -0
  382. package/dist/assets/webworkerAll-CehoCtFb.js +1 -0
  383. package/dist/assets/{worker-UrMcrc5_.js → worker-B7zhIsFh.js} +2 -2
  384. package/dist/assets/world-documents-DErHq15h.js +1 -0
  385. package/dist/assets/world-root-stage-binding-BIymcQ4K.js +1 -0
  386. package/dist/assets/{world-state-BWG-IcOd.js → world-state-ZGDGY_Xl.js} +1 -1
  387. package/dist/assets/{writer-B-KovzkA.js → writer-BPbm4_my.js} +5 -5
  388. package/dist/assets/xstate-animation-binding-Cvd4JbEY.js +1 -0
  389. package/dist/assets/{xstate-animation-meta-Q3u9zh_m.js → xstate-animation-meta-B3OZR8Q2.js} +1 -1
  390. package/dist/vgai-shared-three.json +1 -1
  391. package/dist-node/cli.js +317 -73
  392. package/dist-node/create.js +59 -19
  393. package/package.json +16 -13
  394. package/src/index.ts +6 -0
  395. package/template/.agents/skills/vgai-3d-models/SKILL.md +3 -3
  396. package/template/.agents/skills/vgai-threejs-authoring/SKILL.md +4 -9
  397. package/template/.claude/skills/vgai-3d-models/SKILL.md +3 -3
  398. package/template/.claude/skills/vgai-threejs-authoring/SKILL.md +4 -9
  399. package/template/.github/skills/vgai-3d-models/SKILL.md +3 -3
  400. package/template/.github/skills/vgai-threejs-authoring/SKILL.md +4 -9
  401. package/template/AGENTS.md +1 -1
  402. package/template/check-idioms.ts +4 -5
  403. package/template/package.json +9 -9
  404. package/template/tsconfig.json +1 -0
  405. package/template/vgai.adapter.ts +1 -0
  406. package/template-dotfiles/gitignore +2 -0
  407. package/workbench/src/media/game-cover.css +1 -1
  408. package/catalog/project-source/src/lib/bake/mesh-slice.ts +0 -157
  409. package/dist/assets/BufferGeometryUtils-Nz37EVXf.js +0 -1
  410. package/dist/assets/CanvasSceneViewport-Bpi6gVTC.js +0 -1
  411. package/dist/assets/ColladaLoader-aVOPIsCh.js +0 -3
  412. package/dist/assets/EXRLoader-Cdans_oJ.js +0 -1
  413. package/dist/assets/EffectComposer-DQxfsXBZ.js +0 -1
  414. package/dist/assets/EntityModelDocument-Ccvw66N9.js +0 -1
  415. package/dist/assets/EnvironmentAssetDocument-Dg-Qq6O6.js +0 -1
  416. package/dist/assets/FBXLoader-B4MoUtAn.js +0 -1
  417. package/dist/assets/Fbo-Dz-Soul3.js +0 -1
  418. package/dist/assets/GLTFExporter-HgrCle4L.js +0 -1
  419. package/dist/assets/Gltf-UHVWKz65.js +0 -2
  420. package/dist/assets/HDRLoader-THU88oVD.js +0 -5
  421. package/dist/assets/ImageViewer-Tn7s_MnW.js +0 -1
  422. package/dist/assets/InspectorObjectPreview-CVejvLRg.js +0 -1
  423. package/dist/assets/JsonAssetDocument-C7VGcLhu.js +0 -3
  424. package/dist/assets/MeshBVH-BiDHDcu-.js +0 -1
  425. package/dist/assets/ModelAssetDocument-F5GACirk.js +0 -1
  426. package/dist/assets/Object3DDocumentViewport-DB7T0NTl.js +0 -2
  427. package/dist/assets/Object3DPreview-DL8oi7Xs.js +0 -2
  428. package/dist/assets/OnlineAssetDetail-C6z9RvYK.js +0 -2
  429. package/dist/assets/PlayBar-BR-Vg3Jb.js +0 -2
  430. package/dist/assets/RGBELoader-BgBcQv8j.js +0 -1
  431. package/dist/assets/RectAreaLightUniformsLib-CMMoWfll.js +0 -1
  432. package/dist/assets/RootSelectionOverlay-BZPlxmXU.js +0 -1
  433. package/dist/assets/STLLoader-Dyv3lsxY.js +0 -1
  434. package/dist/assets/SimplifyModifier-C8ayvRzd.js +0 -1
  435. package/dist/assets/SourceAssetViewer-2SWQoUut.js +0 -12
  436. package/dist/assets/StageHost-BN-IoTef.js +0 -2
  437. package/dist/assets/ThreeBoardDocument-CVncZyIq.js +0 -2
  438. package/dist/assets/asset-budget-asset.menu-Di3KiQCd.js +0 -1
  439. package/dist/assets/asset-budget.action-DCzzcuTh.js +0 -1
  440. package/dist/assets/asset-budget.document-BWU8wnVW.js +0 -1
  441. package/dist/assets/asset-budget.menu-BGZpT_31.js +0 -1
  442. package/dist/assets/autoplay.service-BZBGNSvt.js +0 -1
  443. package/dist/assets/blender-emscripten-engine-9ZIRYNhe.js +0 -2
  444. package/dist/assets/blender-properties-tab-C5CyPydi.js +0 -3
  445. package/dist/assets/blender-runtime-host-BpBwGv7r.js +0 -4
  446. package/dist/assets/blender-runtime.document-lIYhhPtv.js +0 -8
  447. package/dist/assets/blender.command-BtJeWk-A.js +0 -1
  448. package/dist/assets/body-marks-h_xDxiDE.js +0 -1
  449. package/dist/assets/bridge.command-o5gDNEwa.js +0 -3
  450. package/dist/assets/browserAll-DeWblVez.js +0 -1
  451. package/dist/assets/canvas-entry-runtime-SfBxaR9M.js +0 -2
  452. package/dist/assets/component-board.service-DidCyM4O.js +0 -2
  453. package/dist/assets/component-verbs.service-Bv9jId3q.js +0 -1
  454. package/dist/assets/constraints.inspector-B9U9Yj-u.js +0 -1
  455. package/dist/assets/coverage.service-VTX5Mcsx.js +0 -3
  456. package/dist/assets/deferred-ingest-play-DCJi_Pgu.js +0 -2
  457. package/dist/assets/design-time-layers-wYgOTgni.js +0 -1
  458. package/dist/assets/design-time-mount.service-BzY21e1F.js +0 -2
  459. package/dist/assets/design-time-react-mount-DM9WLrF2.js +0 -1
  460. package/dist/assets/edit-mode-authoring-B47TfLqu.js +0 -1
  461. package/dist/assets/editor-api-BoJIcyZG.js +0 -1
  462. package/dist/assets/fflate.module-DPuTF8aG.js +0 -6
  463. package/dist/assets/fork-menu-BoVyw2Wu.js +0 -1
  464. package/dist/assets/game-document.service-DbRfx2V0.js +0 -1
  465. package/dist/assets/game-eval.command-D-7Dxbj_.js +0 -2
  466. package/dist/assets/gameplay-replay-e5umMlXv.js +0 -1
  467. package/dist/assets/gameplay.command-DxcVYX6F.js +0 -1
  468. package/dist/assets/generation.service-CDIgObuw.js +0 -1
  469. package/dist/assets/index-96FBF1Oj.js +0 -1
  470. package/dist/assets/index-BAWkB0dv.js +0 -1
  471. package/dist/assets/index-BDnS2b6S.js +0 -1
  472. package/dist/assets/index-BjTCPEQ7.js +0 -134
  473. package/dist/assets/index-CVCb_ImQ.js +0 -1
  474. package/dist/assets/index-CZd9o7Lu.js +0 -1
  475. package/dist/assets/index-D2fNXpHa.css +0 -1
  476. package/dist/assets/index-GIL7oGEO.js +0 -4894
  477. package/dist/assets/index-OrYXPk3Z.js +0 -487
  478. package/dist/assets/ingest-boot-viewport-D5rI_Kk_.js +0 -1
  479. package/dist/assets/ingest-siblings-Bop2kqVl.js +0 -1
  480. package/dist/assets/instances.command-D6UkZNO8.js +0 -1
  481. package/dist/assets/light-camera-factory-CWbbe9gI.js +0 -1
  482. package/dist/assets/live-behaviors-Bxq49Maz.js +0 -1
  483. package/dist/assets/matcap-texture-CVfalpWT.js +0 -1
  484. package/dist/assets/model-asset-sections.service-CHhFS3ZX.js +0 -1
  485. package/dist/assets/model.layout-BJUEQYUI.js +0 -1
  486. package/dist/assets/module-mode-DVBLT9d-.js +0 -2
  487. package/dist/assets/mount-canvas-ingest-root-DDuAWf_C.js +0 -2
  488. package/dist/assets/mount-dom-ingest-root-D_EiBgpn.js +0 -2
  489. package/dist/assets/mount-ingest-root-glv2SSWf.js +0 -2
  490. package/dist/assets/mount-three-ingest-root-hrUt9VVU.js +0 -1
  491. package/dist/assets/particles-factory-DnLOHXT8.js +0 -1
  492. package/dist/assets/pasteboard-materialize-BqSS4QzV.js +0 -20
  493. package/dist/assets/pasteboard.action-DU3UHtJG.js +0 -2
  494. package/dist/assets/pixi-authoring-adapter-CjibysC3.js +0 -1
  495. package/dist/assets/pixi-primitive-DlWbUPN9.js +0 -1
  496. package/dist/assets/pixi-react-root-factory-DYsznYRQ.js +0 -1
  497. package/dist/assets/play-mode-BFU2PCkG.js +0 -22
  498. package/dist/assets/play.command-BpqqLqkq.js +0 -2
  499. package/dist/assets/project-authoring-session-Bnt6icLr.js +0 -2
  500. package/dist/assets/r3f-design-session-D-4yyDO9.js +0 -2
  501. package/dist/assets/r3f-physics-binding-BBo8oma9.js +0 -1
  502. package/dist/assets/r3f-source-authoring-adapter-w6Bc60K-.js +0 -13
  503. package/dist/assets/react-inspector.service-B_neRnSK.js +0 -1
  504. package/dist/assets/react-story-board-BDDwiE2H.js +0 -1
  505. package/dist/assets/react-world-authoring-adapter-DmrwM3py.js +0 -1
  506. package/dist/assets/runtime-inspection-l2iFQSsg.js +0 -1
  507. package/dist/assets/scene-document.service-qkDjUrlP.js +0 -2
  508. package/dist/assets/sculpt.layout-zJF55yCR.js +0 -1
  509. package/dist/assets/setup-particles-GCXlnkj_.js +0 -1
  510. package/dist/assets/shading.layout-DULYZV6M.js +0 -1
  511. package/dist/assets/source-object3d-authoring-adapter-B-L6Ha6f.js +0 -1
  512. package/dist/assets/stage-invalidation-DBg3C3Ta.js +0 -1
  513. package/dist/assets/stage-keyboard-n-5kKH-m.js +0 -1
  514. package/dist/assets/stage-overlay-set-B9zp2sLB.js +0 -1
  515. package/dist/assets/stage-presence-markers-DiGI6A45.js +0 -1
  516. package/dist/assets/standard-viewport-dressing-CzjAe_0A.js +0 -7
  517. package/dist/assets/static-batch-advisor-B13QEH7d.js +0 -1
  518. package/dist/assets/story-capture-_gC8dXV-.js +0 -1
  519. package/dist/assets/story-documents--TDLaPeL.js +0 -3
  520. package/dist/assets/story-documents.service-BiS_YbNQ.js +0 -1
  521. package/dist/assets/story-documents.service-CxOPYJ2j.js +0 -1
  522. package/dist/assets/story-pixi-preview-BUrOJZXS.js +0 -1
  523. package/dist/assets/story-presentation-j2AVN-mK.js +0 -1
  524. package/dist/assets/team-playtest.service-DqOinFVA.js +0 -1
  525. package/dist/assets/three-authoring.service-iuHLwtf1.js +0 -2
  526. package/dist/assets/three-viewport-presentation-QBQpSdMh.js +0 -1
  527. package/dist/assets/three.quarks.esm-B1C61jGo.js +0 -1039
  528. package/dist/assets/transport.header-B-6HQlU2.js +0 -1
  529. package/dist/assets/ui-board-document-Bwtt--xp.js +0 -2
  530. package/dist/assets/use-live-actor-state-DErbWQWF.js +0 -1
  531. package/dist/assets/user-data-BB2Of6Ht.js +0 -1
  532. package/dist/assets/uv-editing.layout-BEKHxmHw.js +0 -1
  533. package/dist/assets/viewport-shading-boundary-B_-_gABg.js +0 -82
  534. package/dist/assets/voxel-surface-DtcsSWRL.js +0 -1
  535. package/dist/assets/webgl-frame-capture-FlF9zQmW.js +0 -1
  536. package/dist/assets/webworkerAll-CM2o_dnz.js +0 -1
  537. package/dist/assets/world-documents-147tiFZe.js +0 -1
  538. package/dist/assets/world-root-stage-binding-vwTrtBz6.js +0 -1
  539. package/dist/assets/xstate-animation-binding-Brd0NST6.js +0 -1
  540. package/dist/assets/xstate-behavior.action-B8UluFBK.js +0 -1
  541. package/dist/assets/xstate-behavior.document-CKAsE45I.js +0 -1
  542. package/dist/assets/xstate-behavior.inspector-vJJyuifc.js +0 -1
  543. package/dist/assets/xstate-behavior.menu-BXbPICIh.js +0 -1
  544. package/dist/assets/xstate-inspection-BsZv8LS9.js +0 -1
@@ -1 +1 @@
1
- import{i as e}from"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";const f=e()({id:{optional:!1,kind:"value",required:"shape"},mount:{optional:!1,kind:"function",required:"effect"}}),s=e()({drivesOwnLoop:{optional:!1,kind:"value",required:"shape"},updateCadence:{optional:!0,kind:"value",required:"shape"},update:{optional:!0,kind:"function",required:"effect"},fixedUpdate:{optional:!0,kind:"function",required:"effect"},setPaused:{optional:!0,kind:"function",required:"effect"},step:{optional:!0,kind:"function",required:"effect"},resize:{optional:!0,kind:"function",required:"effect"},dispose:{optional:!1,kind:"function",required:"effect"},disposeComplete:{optional:!0,kind:"value",required:"effect"},authoring:{optional:!0,kind:"value",required:"operation"},systems:{optional:!0,kind:"value",required:"operation"},systemScope:{optional:!0,kind:"value",required:"operation"},observe:{optional:!0,kind:"value",required:"effect"}}),c=e()({subscribe:{optional:!1,kind:"function",required:"effect"},snapshot:{optional:!1,kind:"function",required:"operation"}}),k=e()({kind:{optional:!1,kind:"value",required:"shape"},scene:{optional:!1,kind:"value",required:"effect"},camera:{optional:!1,kind:"value",required:"effect"},rendererConfig:{optional:!0,kind:"value",required:"shape"}}),q=e()({kind:{optional:!1,kind:"value",required:"shape"},canvas:{optional:!1,kind:"value",required:"effect"},substrate:{optional:!1,kind:"value",required:"effect"}}),v=e()({kind:{optional:!1,kind:"value",required:"shape"},container:{optional:!1,kind:"value",required:"effect"}});export{q as MOUNTED_CANVAS_SURFACE_SHAPE,v as MOUNTED_DOM_SURFACE_SHAPE,s as MOUNTED_ROOT_BASE_SHAPE,k as MOUNTED_THREE_SURFACE_SHAPE,f as ROOT_ADAPTER_SHAPE,c as ROOT_STATE_OBSERVER_SHAPE};
1
+ import{i as e}from"./index-Ckxb31Yz.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-IFn-4i31.js";const f=e()({id:{optional:!1,kind:"value",required:"shape"},mount:{optional:!1,kind:"function",required:"effect"}}),s=e()({drivesOwnLoop:{optional:!1,kind:"value",required:"shape"},updateCadence:{optional:!0,kind:"value",required:"shape"},update:{optional:!0,kind:"function",required:"effect"},fixedUpdate:{optional:!0,kind:"function",required:"effect"},setPaused:{optional:!0,kind:"function",required:"effect"},step:{optional:!0,kind:"function",required:"effect"},resize:{optional:!0,kind:"function",required:"effect"},dispose:{optional:!1,kind:"function",required:"effect"},disposeComplete:{optional:!0,kind:"value",required:"effect"},authoring:{optional:!0,kind:"value",required:"operation"},systems:{optional:!0,kind:"value",required:"operation"},systemScope:{optional:!0,kind:"value",required:"operation"},observe:{optional:!0,kind:"value",required:"effect"}}),c=e()({subscribe:{optional:!1,kind:"function",required:"effect"},snapshot:{optional:!1,kind:"function",required:"operation"}}),k=e()({kind:{optional:!1,kind:"value",required:"shape"},scene:{optional:!1,kind:"value",required:"effect"},camera:{optional:!1,kind:"value",required:"effect"},rendererConfig:{optional:!0,kind:"value",required:"shape"}}),q=e()({kind:{optional:!1,kind:"value",required:"shape"},canvas:{optional:!1,kind:"value",required:"effect"},substrate:{optional:!1,kind:"value",required:"effect"}}),v=e()({kind:{optional:!1,kind:"value",required:"shape"},container:{optional:!1,kind:"value",required:"effect"}});export{q as MOUNTED_CANVAS_SURFACE_SHAPE,v as MOUNTED_DOM_SURFACE_SHAPE,s as MOUNTED_ROOT_BASE_SHAPE,k as MOUNTED_THREE_SURFACE_SHAPE,f as ROOT_ADAPTER_SHAPE,c as ROOT_STATE_OBSERVER_SHAPE};
@@ -1 +1 @@
1
- import{D as l}from"./debug-registry-Dgvitx8M.js";import"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";const u=4,w=1e4;async function g(t,o,a,n){const r=t.getRunTicksTarget();if(r===null)throw new l("RUN_TICKS_UNAVAILABLE","runTicksWhenSettled: no run-ticks target is wired — no Game has mounted yet");const i=n?.timeoutMs??w,c=n?.pollMs??u,s=a?.render??"last";for(let e=0;e<o;e++){if(!t.worldSettled()){const T=Date.now()+i;for(;!t.worldSettled();){if(Date.now()>T)throw new l("WORLD_UNSETTLED_TIMEOUT",`runTicksWhenSettled: a world-settled probe still answers false after ${i}ms — a scene remount (or a broken probe) is stuck, and driving ticks into it would race it`);await new Promise(p=>setTimeout(p,c))}}const d=e===o-1,m=s==="all"?"all":s==="none"?"none":d?"last":"none";r.runTicks(1,{render:m})}}export{g as runTicksWhenSettled};
1
+ import{D as l}from"./debug-registry-B3Cnne3x.js";import"./index-Ckxb31Yz.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-IFn-4i31.js";const u=4,w=1e4;async function g(t,o,a,n){const r=t.getRunTicksTarget();if(r===null)throw new l("RUN_TICKS_UNAVAILABLE","runTicksWhenSettled: no run-ticks target is wired — no Game has mounted yet");const i=n?.timeoutMs??w,c=n?.pollMs??u,s=a?.render??"last";for(let e=0;e<o;e++){if(!t.worldSettled()){const T=Date.now()+i;for(;!t.worldSettled();){if(Date.now()>T)throw new l("WORLD_UNSETTLED_TIMEOUT",`runTicksWhenSettled: a world-settled probe still answers false after ${i}ms — a scene remount (or a broken probe) is stuck, and driving ticks into it would race it`);await new Promise(p=>setTimeout(p,c))}}const d=e===o-1,m=s==="all"?"all":s==="none"?"none":d?"last":"none";r.runTicks(1,{render:m})}}export{g as runTicksWhenSettled};
@@ -1 +1 @@
1
- import{s as w,d as h}from"./resolve-three-SZE_WWUM.js";import"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";import"./capability-coverage-Czas4C18.js";import"./game-contract-seams-a5YXejOu.js";import"./json-history-resource-BbxllWfV.js";import"./dom-authoring-adapter-CY8C7f4T.js";import"./react-world-authoring-adapter-DmrwM3py.js";import"./board-guides-DziKSTss.js";import"./writer-B-KovzkA.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-BZfi3mmo.js";import"./inference-diagnostics-Dhmtfbq_.js";import"./debug-registry-Dgvitx8M.js";import"./playtest-BXIL1JEF.js";import"./webgl-frame-capture-FlF9zQmW.js";import"./active-ingest-CT6jSGhr.js";import"./ingest-source-persistence-C_6Hiyra.js";function J(l,f={}){const i=l.Application.prototype;let t=null,u=0;const n=[],m=Object.getOwnPropertyDescriptor(i,"render"),s=i.render;return Object.defineProperty(i,"render",{configurable:!0,writable:!0,value:function(...r){u++;const e=this.stage;if(!t&&e){const o={stage:e,renderer:this.renderer,app:this};if(f.accept?.(o)??!0){t=o;for(const c of n.splice(0))c(t)}}return s?.apply(this,r)}}),{get captured(){return t},getDrawCount(){return u},setPaused(r){const e=t?.app;e?.ticker&&(r?e.ticker.stop():e.ticker.start())},waitForCapture(r){const e=typeof r=="number"?{timeoutMs:r}:r??{},o=e.timeoutMs??1e4;return t?Promise.resolve(t):new Promise((c,b)=>{const a=w({budgetMs:o,clock:e.visibility??h(),onExpire:()=>{const p=n.indexOf(d);p>=0&&n.splice(p,1),e.onWait?.(null),b(new Error(`pixi scene capture timed out after ${o}ms of VISIBLE time (${Math.round(a.elapsedHiddenMs())}ms browser-suspended, which is not counted because no frame can be presented) — the game never rendered, or it bundles its own (un-shared) copy of pixi.js.`))}}),d=p=>{a.cancel(),e.onWait?.(null),c(p)};n.push(d),e.onWait?.(a)})},uninstall(){m?Object.defineProperty(i,"render",m):s&&Object.defineProperty(i,"render",{configurable:!0,writable:!0,value:s})}}}export{J as installSceneCapture2D};
1
+ import{s as w,d as h}from"./resolve-three-C-nx-QdA.js";import"./index-Ckxb31Yz.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-IFn-4i31.js";import"./capability-coverage-CfUeULDN.js";import"./game-contract-seams-TCpIMmHP.js";import"./json-history-resource-r-9q_hxP.js";import"./dom-authoring-adapter-CEeFyatF.js";import"./react-world-authoring-adapter-BMT9kLWU.js";import"./board-guides-C3usUZZk.js";import"./writer-BPbm4_my.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-BRgDdtVk.js";import"./inference-diagnostics-YW0yJkKx.js";import"./debug-registry-B3Cnne3x.js";import"./playtest-BnFenMBW.js";import"./webgl-frame-capture-CRKX73E9.js";import"./active-ingest-DEgq9JiA.js";import"./ingest-source-persistence-DH6ioCOu.js";function J(l,f={}){const i=l.Application.prototype;let t=null,u=0;const n=[],m=Object.getOwnPropertyDescriptor(i,"render"),s=i.render;return Object.defineProperty(i,"render",{configurable:!0,writable:!0,value:function(...r){u++;const e=this.stage;if(!t&&e){const o={stage:e,renderer:this.renderer,app:this};if(f.accept?.(o)??!0){t=o;for(const c of n.splice(0))c(t)}}return s?.apply(this,r)}}),{get captured(){return t},getDrawCount(){return u},setPaused(r){const e=t?.app;e?.ticker&&(r?e.ticker.stop():e.ticker.start())},waitForCapture(r){const e=typeof r=="number"?{timeoutMs:r}:r??{},o=e.timeoutMs??1e4;return t?Promise.resolve(t):new Promise((c,b)=>{const a=w({budgetMs:o,clock:e.visibility??h(),onExpire:()=>{const p=n.indexOf(d);p>=0&&n.splice(p,1),e.onWait?.(null),b(new Error(`pixi scene capture timed out after ${o}ms of VISIBLE time (${Math.round(a.elapsedHiddenMs())}ms browser-suspended, which is not counted because no frame can be presented) — the game never rendered, or it bundles its own (un-shared) copy of pixi.js.`))}}),d=p=>{a.cancel(),e.onWait?.(null),c(p)};n.push(d),e.onWait?.(a)})},uninstall(){m?Object.defineProperty(i,"render",m):s&&Object.defineProperty(i,"render",{configurable:!0,writable:!0,value:s})}}}export{J as installSceneCapture2D};
@@ -1 +1 @@
1
- import{s as z,d as N}from"./resolve-three-SZE_WWUM.js";import"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";import"./capability-coverage-Czas4C18.js";import"./game-contract-seams-a5YXejOu.js";import"./json-history-resource-BbxllWfV.js";import"./dom-authoring-adapter-CY8C7f4T.js";import"./react-world-authoring-adapter-DmrwM3py.js";import"./board-guides-DziKSTss.js";import"./writer-B-KovzkA.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-BZfi3mmo.js";import"./inference-diagnostics-Dhmtfbq_.js";import"./debug-registry-Dgvitx8M.js";import"./playtest-BXIL1JEF.js";import"./webgl-frame-capture-FlF9zQmW.js";import"./active-ingest-CT6jSGhr.js";import"./ingest-source-persistence-C_6Hiyra.js";const F=8;function _(l){const d=l,c=typeof d?.type=="string"?d.type:"unknown",w=typeof d?.uuid=="string"?d.uuid:"(no uuid)";return`${c}:${w}`}function q(l){const d=globalThis;if(typeof EventTarget!="function")return()=>{};const c=d.__THREE_DEVTOOLS__===void 0;c&&(d.__THREE_DEVTOOLS__=new EventTarget);const w=d.__THREE_DEVTOOLS__;if(!w)return()=>{};const u=[];function f(p,o,h){const m=p[o];Object.defineProperty(p,o,{configurable:!0,writable:!0,value:h}),u.push(()=>{Object.defineProperty(p,o,{configurable:!0,writable:!0,value:m})})}const n=p=>{const o=p.detail;if(!o||typeof o!="object"||typeof o.render!="function"||!o.domElement||l.alreadyTrapped(o)||l.isHostRenderer(o))return;const h=o.render;f(o,"render",function(...b){return l.observeRender(o,h,b)});const m=o.setAnimationLoop;if(typeof m=="function"){const b=m;f(o,"setAnimationLoop",function(E){return typeof E=="function"&&l.recordLoop(o,E),b.call(o,E)})}};return w.addEventListener("observe",n),()=>{w.removeEventListener("observe",n);for(const p of u.splice(0))p();c&&delete d.__THREE_DEVTOOLS__}}function he(l,d,c){const u=l.WebGLRenderer.prototype,f=Symbol("vgai.realRender");let n=null,p=0,o=null;const h=new Set;let m=null;const b=[],E=Object.getOwnPropertyDescriptor(u,"render"),S=Symbol("vgai.realSetAnimationLoop"),A=new WeakMap,j=new Set;let v=null;const H=Object.getOwnPropertyDescriptor(u,"setAnimationLoop");function D(){if(!(n||!v||!(v.suspended?.()??v.hidden())))for(const e of j){try{A.get(e)?.(0)}catch{}if(n)return}}Object.defineProperty(u,"setAnimationLoop",{configurable:!0,set(e){this[S]=e},get(){const e=this;return function(t){t&&k(e,t);const i=e[S];return typeof i=="function"?i.call(e,t):void 0}}});function C(e,r,t){const i=m;if(i===null||!n||e!==n.renderer)return r.apply(e,t);i.before();try{return r.apply(e,t)}finally{i.after()}}function W(e,r){return C(e,e[f],r)}function k(e,r){A.set(e,r),j.add(e),queueMicrotask(D)}function V(e,r,t){if(o===null&&(o=c?.declaredScene?.()??null),!(o!==null&&o!==r)){n={scene:r,camera:t,renderer:e},c?.onWorldAdoption?.({phase:"adopted",source:o===null?"measured":"declared",sceneId:_(r),cameraId:_(t)});for(const i of b.splice(0))i(n)}}function I(e,r,t){if(!n||h.size>=F||r===n.scene&&t===n.camera)return;const i=e===n.renderer,a=`${_(r)}|${_(t)}|${i}`;h.has(a)||(h.add(a),c?.onWorldAdoption?.({phase:"alternate",sceneId:_(r),cameraId:_(t),sameRenderer:i,drawCount:p}))}function L(e,r,t){(!n||e===n.renderer)&&p++,c?.isHostRenderer?.(e)!==!0&&r?.isScene&&(n?I(e,r,t):V(e,r,t))}Object.defineProperty(u,"render",{configurable:!0,set(e){this[f]=e},get(){const e=this;return function(...t){const[i,a]=t;return L(e,i,a),W(e,t)}}});const M=new WeakSet,$=q({alreadyTrapped:e=>e[f]!==void 0,isHostRenderer:e=>c?.isHostRenderer?.(e)===!0,observeRender:(e,r,t)=>(M.add(e),L(e,t[0],t[1]),C(e,r,t)),recordLoop:k}),T=[];for(const e of c?.additionalRendererCtors??[]){const t=e?.prototype;if(!t||t===u)continue;const i=t.render;if(typeof i=="function"){t.render=function(...s){L(this,s[0],s[1]);const R=m;if(R===null||!n||this!==n.renderer)return i.apply(this,s);R.before();try{return i.apply(this,s)}finally{R.after()}},T.push(()=>{t.render=i});continue}const a=Object.getOwnPropertyDescriptor(t,"render");Object.defineProperty(t,"render",{configurable:!0,set(s){this[f]=s},get(){const s=this;return function(...y){return L(s,y[0],y[1]),W(s,y)}}}),T.push(()=>{a?Object.defineProperty(t,"render",a):delete t.render})}const P=new Set;let O,g;d&&(O=d.prototype,g=O.render,O.render=function(...r){const t=g?.apply(this,r);return n&&this.renderer===n.renderer&&P.add(this),t});function x(){O&&(g?O.render=g:delete O.render)}return{get captured(){return n},get capturedVia(){return n?M.has(n.renderer)?"devtools-observer":"shared-three":null},getDrawCount(){return p},setRenderPassHooks(e){m=e},getAnimationLoop(e){return A.get(e)??null},resizeComposers(e,r){if(!n||P.size===0)return;const t=n.renderer.getPixelRatio?.();if(t!==void 0)for(const i of P)i.setSize(e,r),i.setPixelRatio(t)},waitForCapture(e){const r=typeof e=="number"?{timeoutMs:e}:e??{},t=r.timeoutMs??1e4;return n?Promise.resolve(n):new Promise((i,a)=>{const s=z({budgetMs:t,...r.visibility!==void 0?{clock:r.visibility}:{},onExpire:()=>{const y=b.indexOf(R);y>=0&&b.splice(y,1),v=null,r.onWait?.(null),a(new Error(`Scene capture timed out after ${t}ms of VISIBLE time (${Math.round(s.elapsedHiddenMs())}ms browser-suspended, which is not counted because no frame can be presented) — no three renderer of ANY instance drew a scene: neither the host's own \`three\` (the shared prototype trap) nor a renderer announcing itself on three's \`__THREE_DEVTOOLS__\` seam, which is what reaches a game that bundles its own copy. The game never rendered.`))}}),R=y=>{s.cancel(),v=null,r.onWait?.(null),i(y)};b.push(R),v=r.visibility??N(),r.onWait?.(s),queueMicrotask(D)})},uninstall(){if(n){const r=n.renderer[f];typeof r=="function"&&Object.defineProperty(n.renderer,"render",{configurable:!0,writable:!0,value:r})}if(E?Object.defineProperty(u,"render",E):delete u.render,n){const r=n.renderer[S];typeof r=="function"&&Object.defineProperty(n.renderer,"setAnimationLoop",{configurable:!0,writable:!0,value:r})}H?Object.defineProperty(u,"setAnimationLoop",H):delete u.setAnimationLoop,x(),$();for(const e of T)e()}}}export{F as MAX_RECORDED_ALTERNATES,he as installSceneCapture};
1
+ import{s as z,d as N}from"./resolve-three-C-nx-QdA.js";import"./index-Ckxb31Yz.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-IFn-4i31.js";import"./capability-coverage-CfUeULDN.js";import"./game-contract-seams-TCpIMmHP.js";import"./json-history-resource-r-9q_hxP.js";import"./dom-authoring-adapter-CEeFyatF.js";import"./react-world-authoring-adapter-BMT9kLWU.js";import"./board-guides-C3usUZZk.js";import"./writer-BPbm4_my.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-BRgDdtVk.js";import"./inference-diagnostics-YW0yJkKx.js";import"./debug-registry-B3Cnne3x.js";import"./playtest-BnFenMBW.js";import"./webgl-frame-capture-CRKX73E9.js";import"./active-ingest-DEgq9JiA.js";import"./ingest-source-persistence-DH6ioCOu.js";const F=8;function _(l){const d=l,c=typeof d?.type=="string"?d.type:"unknown",w=typeof d?.uuid=="string"?d.uuid:"(no uuid)";return`${c}:${w}`}function q(l){const d=globalThis;if(typeof EventTarget!="function")return()=>{};const c=d.__THREE_DEVTOOLS__===void 0;c&&(d.__THREE_DEVTOOLS__=new EventTarget);const w=d.__THREE_DEVTOOLS__;if(!w)return()=>{};const u=[];function f(p,o,h){const m=p[o];Object.defineProperty(p,o,{configurable:!0,writable:!0,value:h}),u.push(()=>{Object.defineProperty(p,o,{configurable:!0,writable:!0,value:m})})}const n=p=>{const o=p.detail;if(!o||typeof o!="object"||typeof o.render!="function"||!o.domElement||l.alreadyTrapped(o)||l.isHostRenderer(o))return;const h=o.render;f(o,"render",function(...b){return l.observeRender(o,h,b)});const m=o.setAnimationLoop;if(typeof m=="function"){const b=m;f(o,"setAnimationLoop",function(E){return typeof E=="function"&&l.recordLoop(o,E),b.call(o,E)})}};return w.addEventListener("observe",n),()=>{w.removeEventListener("observe",n);for(const p of u.splice(0))p();c&&delete d.__THREE_DEVTOOLS__}}function he(l,d,c){const u=l.WebGLRenderer.prototype,f=Symbol("vgai.realRender");let n=null,p=0,o=null;const h=new Set;let m=null;const b=[],E=Object.getOwnPropertyDescriptor(u,"render"),S=Symbol("vgai.realSetAnimationLoop"),A=new WeakMap,j=new Set;let v=null;const H=Object.getOwnPropertyDescriptor(u,"setAnimationLoop");function D(){if(!(n||!v||!(v.suspended?.()??v.hidden())))for(const e of j){try{A.get(e)?.(0)}catch{}if(n)return}}Object.defineProperty(u,"setAnimationLoop",{configurable:!0,set(e){this[S]=e},get(){const e=this;return function(t){t&&k(e,t);const i=e[S];return typeof i=="function"?i.call(e,t):void 0}}});function C(e,r,t){const i=m;if(i===null||!n||e!==n.renderer)return r.apply(e,t);i.before();try{return r.apply(e,t)}finally{i.after()}}function W(e,r){return C(e,e[f],r)}function k(e,r){A.set(e,r),j.add(e),queueMicrotask(D)}function V(e,r,t){if(o===null&&(o=c?.declaredScene?.()??null),!(o!==null&&o!==r)){n={scene:r,camera:t,renderer:e},c?.onWorldAdoption?.({phase:"adopted",source:o===null?"measured":"declared",sceneId:_(r),cameraId:_(t)});for(const i of b.splice(0))i(n)}}function I(e,r,t){if(!n||h.size>=F||r===n.scene&&t===n.camera)return;const i=e===n.renderer,a=`${_(r)}|${_(t)}|${i}`;h.has(a)||(h.add(a),c?.onWorldAdoption?.({phase:"alternate",sceneId:_(r),cameraId:_(t),sameRenderer:i,drawCount:p}))}function L(e,r,t){(!n||e===n.renderer)&&p++,c?.isHostRenderer?.(e)!==!0&&r?.isScene&&(n?I(e,r,t):V(e,r,t))}Object.defineProperty(u,"render",{configurable:!0,set(e){this[f]=e},get(){const e=this;return function(...t){const[i,a]=t;return L(e,i,a),W(e,t)}}});const M=new WeakSet,$=q({alreadyTrapped:e=>e[f]!==void 0,isHostRenderer:e=>c?.isHostRenderer?.(e)===!0,observeRender:(e,r,t)=>(M.add(e),L(e,t[0],t[1]),C(e,r,t)),recordLoop:k}),T=[];for(const e of c?.additionalRendererCtors??[]){const t=e?.prototype;if(!t||t===u)continue;const i=t.render;if(typeof i=="function"){t.render=function(...s){L(this,s[0],s[1]);const R=m;if(R===null||!n||this!==n.renderer)return i.apply(this,s);R.before();try{return i.apply(this,s)}finally{R.after()}},T.push(()=>{t.render=i});continue}const a=Object.getOwnPropertyDescriptor(t,"render");Object.defineProperty(t,"render",{configurable:!0,set(s){this[f]=s},get(){const s=this;return function(...y){return L(s,y[0],y[1]),W(s,y)}}}),T.push(()=>{a?Object.defineProperty(t,"render",a):delete t.render})}const P=new Set;let O,g;d&&(O=d.prototype,g=O.render,O.render=function(...r){const t=g?.apply(this,r);return n&&this.renderer===n.renderer&&P.add(this),t});function x(){O&&(g?O.render=g:delete O.render)}return{get captured(){return n},get capturedVia(){return n?M.has(n.renderer)?"devtools-observer":"shared-three":null},getDrawCount(){return p},setRenderPassHooks(e){m=e},getAnimationLoop(e){return A.get(e)??null},resizeComposers(e,r){if(!n||P.size===0)return;const t=n.renderer.getPixelRatio?.();if(t!==void 0)for(const i of P)i.setSize(e,r),i.setPixelRatio(t)},waitForCapture(e){const r=typeof e=="number"?{timeoutMs:e}:e??{},t=r.timeoutMs??1e4;return n?Promise.resolve(n):new Promise((i,a)=>{const s=z({budgetMs:t,...r.visibility!==void 0?{clock:r.visibility}:{},onExpire:()=>{const y=b.indexOf(R);y>=0&&b.splice(y,1),v=null,r.onWait?.(null),a(new Error(`Scene capture timed out after ${t}ms of VISIBLE time (${Math.round(s.elapsedHiddenMs())}ms browser-suspended, which is not counted because no frame can be presented) — no three renderer of ANY instance drew a scene: neither the host's own \`three\` (the shared prototype trap) nor a renderer announcing itself on three's \`__THREE_DEVTOOLS__\` seam, which is what reaches a game that bundles its own copy. The game never rendered.`))}}),R=y=>{s.cancel(),v=null,r.onWait?.(null),i(y)};b.push(R),v=r.visibility??N(),r.onWait?.(s),queueMicrotask(D)})},uninstall(){if(n){const r=n.renderer[f];typeof r=="function"&&Object.defineProperty(n.renderer,"render",{configurable:!0,writable:!0,value:r})}if(E?Object.defineProperty(u,"render",E):delete u.render,n){const r=n.renderer[S];typeof r=="function"&&Object.defineProperty(n.renderer,"setAnimationLoop",{configurable:!0,writable:!0,value:r})}H?Object.defineProperty(u,"setAnimationLoop",H):delete u.setAnimationLoop,x(),$();for(const e of T)e()}}}export{F as MAX_RECORDED_ALTERNATES,he as installSceneCapture};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ThreeIsolationSceneContent-BqtgDHBK.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-Ckxb31Yz.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/three.module-IFn-4i31.js","assets/index-B4bmKkgY.css","assets/document-preview-three-C3y0syYQ.js","assets/scene-framing-50N7SKuX.js","assets/mounted-story-viewport-source-CAlEmE0_.js","assets/story-three-preview-C9W__8Or.js","assets/crash-null-boundary-v3a0uEgw.js","assets/events-156d8d12.esm-C734MYnx.js","assets/index-bQE2NA0D.js","assets/story-mount-turn-DFRTj5hi.js","assets/Object3DDocumentViewport-DFHqru3a.js","assets/viewport-surface-status-BFmnWp7z.js","assets/world-root-stage-binding-BIymcQ4K.js","assets/RootSelectionOverlay-BxvsunO4.js","assets/eyedropper-session-bjPXnfeX.js","assets/react-story-board-CSqHY0Cg.js","assets/viewport-pick-context-DkawXbEi.js","assets/inspect-BRgDdtVk.js","assets/inference-diagnostics-YW0yJkKx.js","assets/surface-state-BAUJu6GY.js","assets/surface-content-Dg9Kkazf.js","assets/camera-authoring-Ci3KnE-W.js","assets/performance-profiler-D_Jey87L.js","assets/webgl-gpu-timer-D3YX7RaD.js","assets/renderer-config-BqG4O8i9.js","assets/user-data-CZqsJDk-.js","assets/object-marks-DwvIEBOK.js","assets/loader-BbMsvIxP.js","assets/render-settings-C_kIMq8Y.js","assets/render-features-COF7MSQ9.js","assets/soft-particle-depth-CKUS1j0Y.js","assets/viewport-shading-BzcvgJhK.js","assets/matcap-texture-Dh65bX5V.js","assets/setup-renderer-wt_a-p8r.js","assets/index-DUh02lTr.js","assets/defaults-DKiBJCPN.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/project-authoring-session-BV-MM8Fl.js","assets/edit-mode-authoring-D_BiHCQj.js","assets/canvas-preview-frames-CiAx7dpV.js","assets/index-BLo2LE8C.js","assets/editor-presentation-activity-C7SNSmTd.js","assets/viewport-shading-boundary-CBvvzS-p.js","assets/standard-viewport-dressing-GUUr6GuK.js","assets/clip-planes-CnAI6DZn.js","assets/three-DSsr_Lvp.js","assets/OrbitControls-CzTRRI7x.js","assets/LineSegments2-Cicm_Hu1.js","assets/three.quarks.esm-CRKGjKAH.js","assets/live-gesture-lock-DJbrjOqf.js","assets/live-mixers-BRkRHd6g.js","assets/three-viewport-presentation-BL7Uc2i6.js","assets/viewport-root-presentation-C9M98VNM.js","assets/mounted-authoring-TIN5EnCb.js","assets/asset-editor-persistence-BVtzjadu.js","assets/stage-presence-markers-DVMDKiB-.js","assets/collaboration-presence-CSLFNT7m.js"])))=>i.map(i=>d[i]);
2
+ import{F as m,dA as c,aG as g,E as h,eQ as T,I as y,e3 as R,eR as S,eS as v,aQ as b,dB as P,eT as w,eU as E,_ as f,X as D,ap as l,a5 as _,eV as x,eW as N}from"./index-Ckxb31Yz.js";import{a as s}from"./jsx-runtime-DPjLkJKQ.js";import{O as C}from"./Object3DDocumentViewport-DFHqru3a.js";import{r as d}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{s as k}from"./after-paint-CB4bz1-e.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./three.module-IFn-4i31.js";import"./viewport-surface-status-BFmnWp7z.js";const p="Scene";function A(e){const t=()=>{const r=h()?.scenes,n=(r?y(r).find(u=>u.plan.kind==="root-document"):void 0)?.entry.source,a=n?.path??e.sourcePath??e.savePath;return a?{path:a,...n?.export===void 0?{}:{exportName:n.export}}:null};return{revision:()=>{const r=t();return r?`${r.path}:${r.exportName??"default"}`:"unavailable"},subscribe:r=>{let o=JSON.stringify(t());const n=()=>{const i=JSON.stringify(t());i!==o&&(o=i,r())},a=e.subscribe(n),u=m(n);return()=>{a(),u()}},capture:async r=>{const o=t();if(!o)throw new Error("The Scene has no declared source module to preview.");return(await f(()=>import("./ThreeIsolationSceneContent-BqtgDHBK.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]))).captureThreeIsolationScenePreview({path:o.path,exportName:o.exportName,label:p},r)}}}const I=/creating WebGL context/i,j=/null \(reading 'precision'\)/;function V(e){return I.test(e.message)||j.test(e.message)}const O=3;class W extends d.Component{state={error:null,autoRetryPending:!1};autoRetryCount=0;retryTimer=null;static getDerivedStateFromError(t){return{error:t,autoRetryPending:!1}}clearPendingRetry(){this.retryTimer!==null&&(window.clearTimeout(this.retryTimer),this.retryTimer=null)}componentDidCatch(t,r){if(D.error(`Viewport failed to start: ${t.message}`,"editor"),console.error("[vgai] Viewport failed to start",t,r.componentStack),V(t)&&this.autoRetryCount<O){this.clearPendingRetry();const o=500*2**this.autoRetryCount;this.autoRetryCount++,this.retryTimer=window.setTimeout(()=>{this.retryTimer=null,this.setState({error:null,autoRetryPending:!1})},o),this.setState({autoRetryPending:!0})}}componentWillUnmount(){this.clearPendingRetry()}handleManualRetry=()=>{this.clearPendingRetry(),this.setState({error:null,autoRetryPending:!1})};render(){if(!this.state.error)return this.props.children;const t=this.state.autoRetryPending;return s.jsxs("div",{"data-testid":"viewport-startup-error",role:"alert",style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,background:l.surface.shell,color:l.content.muted,textAlign:"center"},children:[s.jsx("div",{style:{color:l.content.primary,fontSize:14},children:t?"Viewport unavailable — retrying…":"Viewport unavailable"}),s.jsx("div",{style:{maxWidth:520,color:l.content.dim,fontSize:11},children:this.state.error.message}),s.jsx(_,{type:"button",className:"vgai-btn","data-testid":"retry-viewport",onClick:this.handleManualRetry,children:"Retry Viewport"})]})}}const U={kind:"world-root",load:()=>f(()=>import("./world-root-stage-binding-BIymcQ4K.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10,11,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,13,60,61,62,63,64,65,66])).then(e=>e.worldRootStageBinding)};function M({documentId:e,active:t}){const[r,o]=d.useState(!1);return d.useEffect(()=>k(()=>o(!0)),[]),s.jsx(W,{children:r?s.jsx(C,{documentId:e,active:t,content:U,displayName:p}):null})}function F(e){const t=e.sourcePath??e.savePath;return{scene:{id:c,title:p,kind:"scene",workspaceRole:"authored-subject",...t?{provenance:{sourcePath:t}}:{},Content:M,preview:A(e),presentation:()=>e.savePath?{kind:"scene",path:e.savePath}:{kind:"workspace",id:c}}}}function L(e,t,r=!0){const o=h()?.scenes;if(r&&!(o&&T(o))){const n=o?y(o).find(a=>a.plan.kind==="root-document"):void 0;R({...t.scene,title:n?.plan.kind==="root-document"?n.plan.title:t.scene.title,provenance:{...t.scene.provenance,...n?.entry.source?.path?{sourcePath:n.entry.source.path}:{},...n?.plan.kind==="root-document"?{rootId:n.plan.regionId}:{}}},{category:"scene",rootId:n?.plan.kind==="root-document"?n.plan.regionId:void 0,default:o!==void 0&&(n?.isDefault??o.entries.length===0)}),S(c,e.isDirty)}else v(c);r&&b()===null&&P(c)}function B(e){let t=null;const r={subscribe:i=>e.subscribe(i),get playState(){return e.playState},get activeViewportTab(){return e.activeViewportTab},get savePath(){return E(e)},get sourcePath(){const i=w(e);return i&&(t=i),t},get isDirty(){return x(e)==="unsaved"}},o=F(r),n=()=>L(r,o,g()?.config.hasThreeRoot!==!1);n();const a=e.subscribe(n),u=m(n);return()=>{a(),u()}}const re="workspace.service";function ne(){let e=null;const t=N(r=>{e?.(),e=B(r)});return()=>{t(),e?.(),e=null,v(c)}}export{re as point,ne as start};
@@ -1 +1 @@
1
- import{aH as w}from"./index-GIL7oGEO.js";import{V as d,s as O,g as F,t as x,u as C}from"./three.module-D396a9Mn.js";const E={maxOutlierFraction:.1,minGapFraction:.2,minSampleSize:8,maxPasses:8},_=10,v=.01,I=["x","y","z"];function p(r,t){const e=new C;for(const n of t)e.union(r[n]);return e}function N(r,t,e){let n=null;for(const a of I)for(const s of["min","max"]){const i=[];for(const o of t)i.push({i:o,v:r[o][s][a]});i.sort((o,l)=>s==="min"?o.v-l.v:l.v-o.v);const c=Math.min(e,i.length-1);for(let o=0;o<c;o++){const l=Math.abs(i[o+1].v-i[o].v);n&&l<=n.gap||(n={gap:l,discard:i.slice(0,o+1).map(f=>f.i)})}}return n}function P(r,t={}){const e={...E,...t},n=r.filter(f=>!f.isEmpty()),a=n.map((f,u)=>u),s=p(n,a);if(n.length<e.minSampleSize)return s;let i=Math.floor(n.length*e.maxOutlierFraction);if(i<1)return s;const c=new Set(a);let o=s;const l=new d;for(let f=0;f<e.maxPasses&&i>0;f++){const u=o.getSize(l).length();if(!(u>0))break;const m=N(n,c,i);if(!m||m.gap<=e.minGapFraction*u)break;for(const b of m.discard)c.delete(b);i-=m.discard.length,o=p(n,c)}return o.isEmpty()?s:o}function k(r,t){const e=r.getWorldDirection(new d),n=new d().setFromMatrixPosition(r.matrixWorld);if(!Number.isFinite(n.lengthSq())||e.lengthSq()===0)return null;if(t.isEmpty())return{position:n,target:n.clone().addScaledVector(e,_)};const a=t.getBoundingSphere(new O),s=a.center.clone().sub(n).dot(e);return s>a.radius*v?{position:n,target:n.clone().addScaledVector(e,s)}:null}const T=[[0,0],[-.6,.6],[.6,.6],[-.6,-.6],[.6,-.6],[0,.6],[0,-.6],[-.6,0],[.6,0]],V=.02,g=new x,h=new F;function A(r){for(let t=r;t;t=t.parent)if(!t.visible)return!1;return!0}function z(r,t,e){if(!(e>0)||t.length===0)return!0;const n=e*V;for(const[a,s]of T){h.set(a,s),g.setFromCamera(h,r);const c=g.intersectObjects(t,!0).find(o=>A(o.object));if(!c||c.distance>n)return!0}return!1}function S(r,t=[]){if(w(r))return t;r.isCamera&&t.push(r);for(const e of r.children)S(e,t);return t}function G(r,t){const e=S(t);return e.length===0?null:r&&e.includes(r)?r:e[0]}export{P as f,G as p,z as s,k as v};
1
+ import{aJ as w}from"./index-Ckxb31Yz.js";import{V as d,p as O,g as F,q as x,j as C}from"./three.module-IFn-4i31.js";const E={maxOutlierFraction:.1,minGapFraction:.2,minSampleSize:8,maxPasses:8},_=10,v=.01,I=["x","y","z"];function p(r,t){const e=new C;for(const n of t)e.union(r[n]);return e}function N(r,t,e){let n=null;for(const a of I)for(const s of["min","max"]){const i=[];for(const o of t)i.push({i:o,v:r[o][s][a]});i.sort((o,l)=>s==="min"?o.v-l.v:l.v-o.v);const c=Math.min(e,i.length-1);for(let o=0;o<c;o++){const l=Math.abs(i[o+1].v-i[o].v);n&&l<=n.gap||(n={gap:l,discard:i.slice(0,o+1).map(f=>f.i)})}}return n}function P(r,t={}){const e={...E,...t},n=r.filter(f=>!f.isEmpty()),a=n.map((f,u)=>u),s=p(n,a);if(n.length<e.minSampleSize)return s;let i=Math.floor(n.length*e.maxOutlierFraction);if(i<1)return s;const c=new Set(a);let o=s;const l=new d;for(let f=0;f<e.maxPasses&&i>0;f++){const u=o.getSize(l).length();if(!(u>0))break;const m=N(n,c,i);if(!m||m.gap<=e.minGapFraction*u)break;for(const b of m.discard)c.delete(b);i-=m.discard.length,o=p(n,c)}return o.isEmpty()?s:o}function k(r,t){const e=r.getWorldDirection(new d),n=new d().setFromMatrixPosition(r.matrixWorld);if(!Number.isFinite(n.lengthSq())||e.lengthSq()===0)return null;if(t.isEmpty())return{position:n,target:n.clone().addScaledVector(e,_)};const a=t.getBoundingSphere(new O),s=a.center.clone().sub(n).dot(e);return s>a.radius*v?{position:n,target:n.clone().addScaledVector(e,s)}:null}const T=[[0,0],[-.6,.6],[.6,.6],[-.6,-.6],[.6,-.6],[0,.6],[0,-.6],[-.6,0],[.6,0]],V=.02,g=new x,h=new F;function A(r){for(let t=r;t;t=t.parent)if(!t.visible)return!1;return!0}function z(r,t,e){if(!(e>0)||t.length===0)return!0;const n=e*V;for(const[a,s]of T){h.set(a,s),g.setFromCamera(h,r);const c=g.intersectObjects(t,!0).find(o=>A(o.object));if(!c||c.distance>n)return!0}return!1}function S(r,t=[]){if(w(r))return t;r.isCamera&&t.push(r);for(const e of r.children)S(e,t);return t}function G(r,t){const e=S(t);return e.length===0?null:r&&e.includes(r)?r:e[0]}export{P as f,G as p,z as s,k as v};
@@ -1 +1 @@
1
- import{deleteUserData as D,setUserData as x,getUserData as T}from"./user-data-BB2Of6Ht.js";import"./object-marks-DwvIEBOK.js";function W(u,i,o,r){u.addEventListener(i,c=>{const d=c;o(d.detail,d)},r)}function v(u){const i=T(u,"tags");return Array.isArray(i)?i:[]}function E(u){const i=T(u,"attributes");return i&&typeof i=="object"?i:void 0}function z(u){const i=new EventTarget,o=new WeakMap,r=new Set,c=new Map,d=new Map,a=new WeakMap,g=new WeakMap;let l=!1;function f(e,t){i.dispatchEvent(new CustomEvent(e,{detail:t}));const n=o.get(t.object);n&&n.dispatchEvent(new CustomEvent(e,{detail:t}))}function y(e,t){let n=c.get(t);n||(n=new Set,c.set(t,n)),n.add(e)}function h(e,t){const n=c.get(t);n&&(n.delete(e),n.size===0&&c.delete(t))}function O(e,t){const n=d.get(t);n?n.includes(e)||n.push(e):d.set(t,[e])}function I(e,t){const n=d.get(t);if(!n)return;const s=n.indexOf(e);s!==-1&&n.splice(s,1),n.length===0&&d.delete(t)}const p=e=>{S(e.child)},m=e=>{C(e.child)};function w(e){for(const n of a.get(e)??[])h(e,n);const t=[...new Set(v(e))];a.set(e,t);for(const n of t)y(e,n)}function A(e){const t=g.get(e);t!==void 0&&I(e,t),g.delete(e);const n=T(e,"entityId");typeof n=="string"&&n!==""&&(g.set(e,n),O(e,n))}function L(e){r.has(e)||(r.add(e),e.addEventListener("childadded",p),e.addEventListener("childremoved",m),w(e),A(e),f("entityadded",{object:e}))}function k(e){if(!r.has(e))return;r.delete(e),e.removeEventListener("childadded",p),e.removeEventListener("childremoved",m);for(const n of a.get(e)??[])h(e,n);a.delete(e);const t=g.get(e);t!==void 0&&(I(e,t),g.delete(e)),f("entityremoved",{object:e})}function S(e){l||e.traverse(L)}function C(e){l||e.traverse(k)}return S(u),{events:i,eventsFor(e){let t=o.get(e);return t||(t=new EventTarget,o.set(e,t)),t},byTag(e){const t=c.get(e);return t?[...t]:[]},byEntityId(e){return d.get(e)?.[0]},has(e){return r.has(e)},addTag(e,t){const n=v(e);n.includes(t)||(x(e,"tags",[...n,t]),r.has(e)&&(a.set(e,[...a.get(e)??[],t]),y(e,t)),f("tagadded",{object:e,tag:t}))},removeTag(e,t){const n=v(e);n.includes(t)&&(x(e,"tags",n.filter(s=>s!==t)),r.has(e)&&(a.set(e,(a.get(e)??[]).filter(s=>s!==t)),h(e,t)),f("tagremoved",{object:e,tag:t}))},hasTag(e,t){return v(e).includes(t)},getAttribute(e,t){return E(e)?.[t]},setAttribute(e,t,n){const s=E(e),M=s?.[t];M!==n&&(s?s[t]=n:x(e,"attributes",{[t]:n}),f("attributechanged",{object:e,name:t,value:n,previous:M}))},deleteAttribute(e,t){const n=E(e);if(!n||!(t in n))return;const s=n[t];delete n[t],Object.keys(n).length===0&&D(e,"attributes"),f("attributechanged",{object:e,name:t,value:void 0,previous:s})},reindex(e){l||e.traverse(t=>{r.has(t)?(w(t),A(t)):L(t)})},dispose(){if(!l){l=!0;for(const e of r)e.removeEventListener("childadded",p),e.removeEventListener("childremoved",m);r.clear(),c.clear(),d.clear()}}}}export{z as createSceneIndex,W as onSceneIndexEvent};
1
+ import{deleteUserData as D,setUserData as x,getUserData as T}from"./user-data-CZqsJDk-.js";import"./object-marks-DwvIEBOK.js";function W(u,i,o,r){u.addEventListener(i,c=>{const d=c;o(d.detail,d)},r)}function v(u){const i=T(u,"tags");return Array.isArray(i)?i:[]}function E(u){const i=T(u,"attributes");return i&&typeof i=="object"?i:void 0}function z(u){const i=new EventTarget,o=new WeakMap,r=new Set,c=new Map,d=new Map,a=new WeakMap,g=new WeakMap;let l=!1;function f(e,t){i.dispatchEvent(new CustomEvent(e,{detail:t}));const n=o.get(t.object);n&&n.dispatchEvent(new CustomEvent(e,{detail:t}))}function y(e,t){let n=c.get(t);n||(n=new Set,c.set(t,n)),n.add(e)}function h(e,t){const n=c.get(t);n&&(n.delete(e),n.size===0&&c.delete(t))}function O(e,t){const n=d.get(t);n?n.includes(e)||n.push(e):d.set(t,[e])}function I(e,t){const n=d.get(t);if(!n)return;const s=n.indexOf(e);s!==-1&&n.splice(s,1),n.length===0&&d.delete(t)}const p=e=>{S(e.child)},m=e=>{C(e.child)};function w(e){for(const n of a.get(e)??[])h(e,n);const t=[...new Set(v(e))];a.set(e,t);for(const n of t)y(e,n)}function A(e){const t=g.get(e);t!==void 0&&I(e,t),g.delete(e);const n=T(e,"entityId");typeof n=="string"&&n!==""&&(g.set(e,n),O(e,n))}function L(e){r.has(e)||(r.add(e),e.addEventListener("childadded",p),e.addEventListener("childremoved",m),w(e),A(e),f("entityadded",{object:e}))}function k(e){if(!r.has(e))return;r.delete(e),e.removeEventListener("childadded",p),e.removeEventListener("childremoved",m);for(const n of a.get(e)??[])h(e,n);a.delete(e);const t=g.get(e);t!==void 0&&(I(e,t),g.delete(e)),f("entityremoved",{object:e})}function S(e){l||e.traverse(L)}function C(e){l||e.traverse(k)}return S(u),{events:i,eventsFor(e){let t=o.get(e);return t||(t=new EventTarget,o.set(e,t)),t},byTag(e){const t=c.get(e);return t?[...t]:[]},byEntityId(e){return d.get(e)?.[0]},has(e){return r.has(e)},addTag(e,t){const n=v(e);n.includes(t)||(x(e,"tags",[...n,t]),r.has(e)&&(a.set(e,[...a.get(e)??[],t]),y(e,t)),f("tagadded",{object:e,tag:t}))},removeTag(e,t){const n=v(e);n.includes(t)&&(x(e,"tags",n.filter(s=>s!==t)),r.has(e)&&(a.set(e,(a.get(e)??[]).filter(s=>s!==t)),h(e,t)),f("tagremoved",{object:e,tag:t}))},hasTag(e,t){return v(e).includes(t)},getAttribute(e,t){return E(e)?.[t]},setAttribute(e,t,n){const s=E(e),M=s?.[t];M!==n&&(s?s[t]=n:x(e,"attributes",{[t]:n}),f("attributechanged",{object:e,name:t,value:n,previous:M}))},deleteAttribute(e,t){const n=E(e);if(!n||!(t in n))return;const s=n[t];delete n[t],Object.keys(n).length===0&&D(e,"attributes"),f("attributechanged",{object:e,name:t,value:void 0,previous:s})},reindex(e){l||e.traverse(t=>{r.has(t)?(w(t),A(t)):L(t)})},dispose(){if(!l){l=!0;for(const e of r)e.removeEventListener("childadded",p),e.removeEventListener("childremoved",m);r.clear(),c.clear(),d.clear()}}}}export{z as createSceneIndex,W as onSceneIndexEvent};
@@ -1 +1 @@
1
- import{getUserData as s}from"./user-data-BB2Of6Ht.js";import"./object-marks-DwvIEBOK.js";function a(t){const r=s(t,"tags");return Array.isArray(r)?r:[]}function i(t,r){const e=[];return t.traverse(n=>{a(n).includes(r)&&e.push(n)}),e}function o(t,r){const e=[];return t.traverse(n=>{n.name===r&&e.push(n)}),e}export{o as queryByName,i as queryByTag};
1
+ import{getUserData as s}from"./user-data-CZqsJDk-.js";import"./object-marks-DwvIEBOK.js";function a(t){const r=s(t,"tags");return Array.isArray(r)?r:[]}function i(t,r){const e=[];return t.traverse(n=>{a(n).includes(r)&&e.push(n)}),e}function o(t,r){const e=[];return t.traverse(n=>{n.name===r&&e.push(n)}),e}export{o as queryByName,i as queryByTag};
@@ -1 +1 @@
1
- import{r as e,c6 as d,u as a,L as t,t as o,c4 as n,v as i,c7 as s}from"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";const c=e({type:i("key").describe("Binding kind: a keyboard key (KeyboardEvent.code)"),code:a().describe('KeyboardEvent.code value, e.g. "KeyW", "Space", "ArrowUp"')}).strict(),r=e({type:i("mouse_button").describe("Binding kind: a mouse button"),button:t().describe("MouseEvent.button index (0 = left, 1 = middle, 2 = right)")}).strict(),u=e({type:i("mouse_move").describe("Binding kind: raw mouse movement (F2, spec §12 \"Complete Device Backends\"). Feeds a 'pointerDelta'-valueType action with the raw accumulated mouse delta (no deadzone), and can also feed a 'vector2'-valueType action (the same delta, radial-deadzoned + unit-circle-clamped via `deadzone`)."),deadzone:t().optional().describe("Radial deadzone magnitude applied only when this binding feeds a 'vector2'-valueType action (default 0 — no deadzone; ignored for 'pointerDelta' reads, which are never deadzoned).")}).strict(),l=e({type:i("gamepad_button").describe("Binding kind: a gamepad face/shoulder button"),button:t().describe("Standard Gamepad API button index")}).strict(),p=e({type:i("gamepad_axis").describe("Binding kind: a single thresholded gamepad axis"),axis:t().describe("Standard Gamepad API axis index"),direction:n(["positive","negative"]).describe('Which side of the deadzone counts as "pressed"'),deadzone:t().optional().describe("Deadzone magnitude (default 0.15 if omitted)")}).strict(),m=e({type:i("gamepad_axis_pair").describe(`Binding kind: a coupled (x, y) gamepad axis pair, e.g. a stick used as a 2D vector (look/aim/movement) (F2, spec §12 "Complete Device Backends"). Feeds a 'vector2'-valueType action: (xAxis, yAxis) read together, radial-deadzoned + unit-circle-clamped the same way a real analog stick is.`),xAxis:t().describe("Standard Gamepad API axis index for the X component"),yAxis:t().describe("Standard Gamepad API axis index for the Y component"),deadzone:t().optional().describe("Deadzone magnitude (default 0.15 if omitted)")}).strict(),g=e({type:i("test_axis").describe(`Binding kind: an injected synthetic scalar value for a 'scalar'-valueType action (InputManager.injectAxis/getScalar) — the "injected test input" backend named in F2, built in F1 as the typed scalar value model's testable source.`),sourceId:a().describe("Names the injected test source this binding reads (InputManager.injectAxis)."),deadzone:t().optional().describe("1D deadzone magnitude applied to the injected raw value before combine (default 0 — no deadzone). Values below it read as 0; values at/above it rescale from 0 (at the deadzone edge) to ±1 (at |raw| = 1), sign preserved.")}).strict(),h=e({type:i("test_vector2").describe(`Binding kind: an injected synthetic {x,y} value for a 'vector2'-valueType action (InputManager.injectVector2/getVector2) — the "injected test input" backend named in F2, built in F1 as the typed Vector2 value model's testable source.`),sourceId:a().describe("Names the injected test source this binding reads (InputManager.injectVector2)."),deadzone:t().optional().describe("Radial deadzone magnitude applied to the injected raw {x,y} before combine (default 0 — no deadzone). Vectors whose magnitude is below it read as {0,0}; at/above it, direction is preserved and magnitude rescales the same way the scalar deadzone does, then the result is clamped to the unit circle (magnitude <= 1).")}).strict(),b=e({type:i("test_pointer_delta").describe(`Binding kind: an injected synthetic per-frame {x,y} delta for a 'pointerDelta'-valueType action (InputManager.injectPointerDelta/getPointerDelta) — the "injected test input" backend named in F2. No deadzone (deltas are not deadzoned).`),sourceId:a().describe("Names the injected test source this binding reads (InputManager.injectPointerDelta).")}).strict(),y=e({type:i("test_pointer_position").describe(`Binding kind: an injected synthetic absolute {x,y} position for a 'pointerPosition'-valueType action (InputManager.injectPointerPosition/getPointerPosition) — the "injected test input" backend named in F2.`),sourceId:a().describe("Names the injected test source this binding reads (InputManager.injectPointerPosition).")}).strict(),v=e({type:i("touch_button").describe("Binding kind: a virtual on-screen button for a 'digital' action (InputManager.setTouchButton/isPressed) — edge-tracked (isJustPressed/isJustReleased) the same way a real mouse/keyboard button is."),sourceId:a().describe("Names the virtual control zone this binding reads (InputManager.setTouchButton) — a touch-UI-chosen id, not a real device index.")}).strict(),f=e({type:i("touch_stick").describe("Binding kind: a virtual on-screen analog stick for a 'vector2' action (InputManager.setTouchStick/getVector2) — radial-deadzoned + unit-circle-clamped the same way a real gamepad stick is."),sourceId:a().describe("Names the virtual control zone this binding reads (InputManager.setTouchStick) — a touch-UI-chosen id, not a real device index."),deadzone:t().optional().describe("Radial deadzone magnitude applied to the raw {x,y} before combine (default 0 — no deadzone).")}).strict(),x=s("type",[c,r,u,l,p,m,g,h,b,y,v,f]),k=e({valueType:n(["digital","scalar","vector2","pointerDelta","pointerPosition"]).default("digital").describe("This action's declared value shape (F1, spec §12). 'digital' (boolean, with pressed/justPressed/justReleased edges) is the default when omitted, matching every action authored before F1. 'scalar' is a single deadzone-rescaled float axis. 'vector2' is a radial-deadzoned, unit-circle-normalized {x,y}. 'pointerDelta' is a per-frame {x,y} movement delta, summed across sources. 'pointerPosition' is an absolute {x,y}, last-write-wins across sources. InputManager enforces this at read time: reading an action through the wrong typed getter (e.g. getScalar on a 'digital' action) throws."),bindings:o(x).describe("Bindings that all trigger/feed this action. Digital actions combine via OR (any one binding satisfied is enough). Scalar actions combine via max-magnitude across contributing bindings (ties keep the first-listed binding). Vector2 actions combine by summing contributing {x,y} values then clamping to the unit circle. PointerDelta actions sum contributing deltas. PointerPosition actions use the most-recently-written contributing source (last-write-wins).")}).strict(),A=e({version:t().describe("Input map file format version (RESERVED — no range check yet)"),actions:d(a(),k).describe("Named actions, each with a list of bindings (InputManager.loadMap)")}).strict();export{k as InputActionSchema,x as InputBindingSchema,A as InputMapFileSchema};
1
+ import{r as e,cA as d,u as a,O as t,t as o,cy as n,v as i,cB as s}from"./index-Ckxb31Yz.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-IFn-4i31.js";const c=e({type:i("key").describe("Binding kind: a keyboard key (KeyboardEvent.code)"),code:a().describe('KeyboardEvent.code value, e.g. "KeyW", "Space", "ArrowUp"')}).strict(),r=e({type:i("mouse_button").describe("Binding kind: a mouse button"),button:t().describe("MouseEvent.button index (0 = left, 1 = middle, 2 = right)")}).strict(),u=e({type:i("mouse_move").describe("Binding kind: raw mouse movement (F2, spec §12 \"Complete Device Backends\"). Feeds a 'pointerDelta'-valueType action with the raw accumulated mouse delta (no deadzone), and can also feed a 'vector2'-valueType action (the same delta, radial-deadzoned + unit-circle-clamped via `deadzone`)."),deadzone:t().optional().describe("Radial deadzone magnitude applied only when this binding feeds a 'vector2'-valueType action (default 0 — no deadzone; ignored for 'pointerDelta' reads, which are never deadzoned).")}).strict(),l=e({type:i("gamepad_button").describe("Binding kind: a gamepad face/shoulder button"),button:t().describe("Standard Gamepad API button index")}).strict(),p=e({type:i("gamepad_axis").describe("Binding kind: a single thresholded gamepad axis"),axis:t().describe("Standard Gamepad API axis index"),direction:n(["positive","negative"]).describe('Which side of the deadzone counts as "pressed"'),deadzone:t().optional().describe("Deadzone magnitude (default 0.15 if omitted)")}).strict(),m=e({type:i("gamepad_axis_pair").describe(`Binding kind: a coupled (x, y) gamepad axis pair, e.g. a stick used as a 2D vector (look/aim/movement) (F2, spec §12 "Complete Device Backends"). Feeds a 'vector2'-valueType action: (xAxis, yAxis) read together, radial-deadzoned + unit-circle-clamped the same way a real analog stick is.`),xAxis:t().describe("Standard Gamepad API axis index for the X component"),yAxis:t().describe("Standard Gamepad API axis index for the Y component"),deadzone:t().optional().describe("Deadzone magnitude (default 0.15 if omitted)")}).strict(),g=e({type:i("test_axis").describe(`Binding kind: an injected synthetic scalar value for a 'scalar'-valueType action (InputManager.injectAxis/getScalar) — the "injected test input" backend named in F2, built in F1 as the typed scalar value model's testable source.`),sourceId:a().describe("Names the injected test source this binding reads (InputManager.injectAxis)."),deadzone:t().optional().describe("1D deadzone magnitude applied to the injected raw value before combine (default 0 — no deadzone). Values below it read as 0; values at/above it rescale from 0 (at the deadzone edge) to ±1 (at |raw| = 1), sign preserved.")}).strict(),h=e({type:i("test_vector2").describe(`Binding kind: an injected synthetic {x,y} value for a 'vector2'-valueType action (InputManager.injectVector2/getVector2) — the "injected test input" backend named in F2, built in F1 as the typed Vector2 value model's testable source.`),sourceId:a().describe("Names the injected test source this binding reads (InputManager.injectVector2)."),deadzone:t().optional().describe("Radial deadzone magnitude applied to the injected raw {x,y} before combine (default 0 — no deadzone). Vectors whose magnitude is below it read as {0,0}; at/above it, direction is preserved and magnitude rescales the same way the scalar deadzone does, then the result is clamped to the unit circle (magnitude <= 1).")}).strict(),b=e({type:i("test_pointer_delta").describe(`Binding kind: an injected synthetic per-frame {x,y} delta for a 'pointerDelta'-valueType action (InputManager.injectPointerDelta/getPointerDelta) — the "injected test input" backend named in F2. No deadzone (deltas are not deadzoned).`),sourceId:a().describe("Names the injected test source this binding reads (InputManager.injectPointerDelta).")}).strict(),y=e({type:i("test_pointer_position").describe(`Binding kind: an injected synthetic absolute {x,y} position for a 'pointerPosition'-valueType action (InputManager.injectPointerPosition/getPointerPosition) — the "injected test input" backend named in F2.`),sourceId:a().describe("Names the injected test source this binding reads (InputManager.injectPointerPosition).")}).strict(),v=e({type:i("touch_button").describe("Binding kind: a virtual on-screen button for a 'digital' action (InputManager.setTouchButton/isPressed) — edge-tracked (isJustPressed/isJustReleased) the same way a real mouse/keyboard button is."),sourceId:a().describe("Names the virtual control zone this binding reads (InputManager.setTouchButton) — a touch-UI-chosen id, not a real device index.")}).strict(),f=e({type:i("touch_stick").describe("Binding kind: a virtual on-screen analog stick for a 'vector2' action (InputManager.setTouchStick/getVector2) — radial-deadzoned + unit-circle-clamped the same way a real gamepad stick is."),sourceId:a().describe("Names the virtual control zone this binding reads (InputManager.setTouchStick) — a touch-UI-chosen id, not a real device index."),deadzone:t().optional().describe("Radial deadzone magnitude applied to the raw {x,y} before combine (default 0 — no deadzone).")}).strict(),x=s("type",[c,r,u,l,p,m,g,h,b,y,v,f]),k=e({valueType:n(["digital","scalar","vector2","pointerDelta","pointerPosition"]).default("digital").describe("This action's declared value shape (F1, spec §12). 'digital' (boolean, with pressed/justPressed/justReleased edges) is the default when omitted, matching every action authored before F1. 'scalar' is a single deadzone-rescaled float axis. 'vector2' is a radial-deadzoned, unit-circle-normalized {x,y}. 'pointerDelta' is a per-frame {x,y} movement delta, summed across sources. 'pointerPosition' is an absolute {x,y}, last-write-wins across sources. InputManager enforces this at read time: reading an action through the wrong typed getter (e.g. getScalar on a 'digital' action) throws."),bindings:o(x).describe("Bindings that all trigger/feed this action. Digital actions combine via OR (any one binding satisfied is enough). Scalar actions combine via max-magnitude across contributing bindings (ties keep the first-listed binding). Vector2 actions combine by summing contributing {x,y} values then clamping to the unit circle. PointerDelta actions sum contributing deltas. PointerPosition actions use the most-recently-written contributing source (last-write-wins).")}).strict(),A=e({version:t().describe("Input map file format version (RESERVED — no range check yet)"),actions:d(a(),k).describe("Named actions, each with a list of bindings (InputManager.loadMap)")}).strict();export{k as InputActionSchema,x as InputBindingSchema,A as InputMapFileSchema};
@@ -0,0 +1 @@
1
+ import{B as s}from"./regions-DWeEBnE2.js";const r="workspace.layout",t={id:"sculpt",title:"Sculpt",description:"ZBrush-shaped sculpting. Uses Model's arrangement until the sculpt program ships its brush rail.",requires:{documentKind:"model"},regions:{...s,header:"shown",shelf:"shown",inspector:"properties",drawer:"hidden"}};export{t as layout,r as point};
@@ -1 +1 @@
1
- import{createMulberry32 as u}from"./render-seed-DF4JHy7P.js";import{c as p}from"./debug-registry-Dgvitx8M.js";import"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";const l="gameplay",_=2654435769;function f(r){let e=2166136261;for(let n=0;n<r.length;n++)e^=r.charCodeAt(n),e=Math.imul(e,16777619);return e>>>0}function O(r){let e=r>>>0;const n=new Map;function m(t){return(f(t)^e)>>>0}function i(t){let o=n.get(t);return o||(o={gen:u(m(t))},n.set(t,o)),o}function d(t){const o=i(t);return()=>o.gen()}const a=(()=>i(l).gen());return Object.defineProperties(a,{stream:{value:d,enumerable:!0},reseed:{value:t=>{e=t>>>0;for(const[o,s]of n)s.gen=u(m(o))},enumerable:!0},seed:{get:()=>e,enumerable:!0}}),a}const c=p("seeded-random");function w(r,e){c.set(r,e)}function B(r){return c.get(r)??null}export{_ as DEFAULT_SEEDED_RANDOM_SEED,l as GAMEPLAY_STREAM,O as createSeededRandom,B as getSeededRandom,w as registerSeededRandom};
1
+ import{createMulberry32 as u}from"./render-seed-DF4JHy7P.js";import{c as p}from"./debug-registry-B3Cnne3x.js";import"./index-Ckxb31Yz.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-IFn-4i31.js";const l="gameplay",_=2654435769;function f(r){let e=2166136261;for(let n=0;n<r.length;n++)e^=r.charCodeAt(n),e=Math.imul(e,16777619);return e>>>0}function O(r){let e=r>>>0;const n=new Map;function m(t){return(f(t)^e)>>>0}function i(t){let o=n.get(t);return o||(o={gen:u(m(t))},n.set(t,o)),o}function d(t){const o=i(t);return()=>o.gen()}const a=(()=>i(l).gen());return Object.defineProperties(a,{stream:{value:d,enumerable:!0},reseed:{value:t=>{e=t>>>0;for(const[o,s]of n)s.gen=u(m(o))},enumerable:!0},seed:{get:()=>e,enumerable:!0}}),a}const c=p("seeded-random");function w(r,e){c.set(r,e)}function B(r){return c.get(r)??null}export{_ as DEFAULT_SEEDED_RANDOM_SEED,l as GAMEPLAY_STREAM,O as createSeededRandom,B as getSeededRandom,w as registerSeededRandom};
@@ -1343,16 +1343,15 @@ class Session:
1343
1343
  # its value also depends on native undo initialization/checkpoints.
1344
1344
  "dirty": bool(bpy.data.is_dirty),
1345
1345
  }
1346
- # A PRESENT IS WHAT LEAVES THE DOCUMENT STALE, and the predicate is the
1347
- # present itself rather than what the frame shipped. \`columns\`/\`images\`
1348
- # above count BYTES THAT CROSSED, which is a different question: a MOVE
1349
- # ships zero columns (the comment above says so) and a DELETION ships
1350
- # nothing at all, yet both are changes a document that loses them is
1351
- # wrong. The cost this predicate could waste is bounded by the tab's
1352
- # one-save-per-idle-second debounce, and \`save_document\` still asks
1353
- # Blender whether anything actually changed before it writes.
1354
- if self.document is not None:
1355
- self.save_due = True
1346
+ # A PRESENT DOES NOT MAKE THE DOCUMENT STALE; a request that can change
1347
+ # the model does (\`mark_changed\`, from \`dispatch\`). The predicate was the
1348
+ # present itself, and a present also runs with no change behind it --
1349
+ # opening the document, rebinding its view. MEASURED 2026-09-24 on
1350
+ # \`arena\`: opening a Model document and doing nothing rewrote its
1351
+ # \`.blend\` with 556 bytes changed, so a file a person only looked at read
1352
+ # as modified. \`columns\`/\`images\` above stay the wrong question for the
1353
+ # same reason as before: a MOVE ships zero columns and a DELETION ships
1354
+ # nothing, and both come from a request \`mark_changed\` sees.
1356
1355
  for key, mesh in frame["meshes"].items():
1357
1356
  self._known["mesh:" + key] = mesh["revision"]
1358
1357
  for name, image in frame["images"].items():
@@ -1540,6 +1539,12 @@ class Session:
1540
1539
  "objects": len(bpy.data.objects),
1541
1540
  "size": os.path.getsize(self.document)}
1542
1541
 
1542
+ def mark_changed(self):
1543
+ """A request that can change the model ran: the next present carries
1544
+ \`saveDue\`, and the tab saves after an idle second."""
1545
+ if self.document is not None:
1546
+ self.save_due = True
1547
+
1543
1548
  def save_document(self):
1544
1549
  """Write the document -- Blender's own format, by Blender's own operator.
1545
1550
 
@@ -1625,11 +1630,11 @@ class Session:
1625
1630
  #
1626
1631
  # It was briefly used to skip a redundant write, and it froze the
1627
1632
  # document after its first save -- a reopened session could model all
1628
- # day and never write again. The predicate is \`_present\`'s instead: a
1629
- # present is what leaves the document stale. Coarser (a read-only
1630
- # script rewrites the file once), bounded by the tab's idle-second
1631
- # debounce, and it cannot miss a change. The reading still rides in the
1632
- # answer, as an instrument.
1633
+ # day and never write again. The predicate is \`mark_changed\`'s instead:
1634
+ # a request that can change the model ran. Coarser than a diff (a
1635
+ # read-only script rewrites the file once), bounded by the tab's
1636
+ # idle-second debounce, and it cannot miss a change. The reading still
1637
+ # rides in the answer, as an instrument.
1633
1638
  dirty = bool(bpy.data.is_dirty)
1634
1639
  existed = os.path.exists(self.document)
1635
1640
  directory = os.path.dirname(self.document)
@@ -4640,6 +4645,7 @@ def dispatch(request):
4640
4645
  if op == "history-step":
4641
4646
  if request["direction"] not in ("undo", "redo"):
4642
4647
  raise ValueError("Unknown history direction")
4648
+ SESSION.mark_changed()
4643
4649
  return HISTORY.move(request["token"], request["direction"])
4644
4650
  mutation = op in ("execute", "rna-set", "outliner-set") and request.get("history", True)
4645
4651
  if not mutation:
@@ -4675,6 +4681,7 @@ def _dispatch(request):
4675
4681
  # Arbitrary Python can partially mutate before throwing. Once execution
4676
4682
  # starts it needs a checkpoint; capability refusals above do not.
4677
4683
  HISTORY.changed()
4684
+ SESSION.mark_changed()
4678
4685
  answer = execute(request["code"])
4679
4686
  # Every mutation is presented, the rule: the Model
4680
4687
  # document is what the agent is looking at.
@@ -4723,6 +4730,7 @@ def _dispatch(request):
4723
4730
  if op == "outliner":
4724
4731
  return rna_outliner(request.get("selected"))
4725
4732
  if op == "outliner-set":
4733
+ SESSION.mark_changed()
4726
4734
  answer = outliner_set(request["path"], request["column"], request["value"])
4727
4735
  # A COLUMN IS A WRITE, and a write presents -- the same rule \`rna-set\`
4728
4736
  # follows: hiding an object in the Outliner must change what the
@@ -4743,6 +4751,7 @@ def _dispatch(request):
4743
4751
  "showing the state before it: " + repr(thrown))
4744
4752
  return answer
4745
4753
  if op == "rna-set":
4754
+ SESSION.mark_changed()
4746
4755
  answer = rna_set(request["path"], request["property"], request["value"],
4747
4756
  request.get("index"))
4748
4757
  # A WRITE IS PRESENTED, exactly as \`execute\` presents: the Model
@@ -1 +1 @@
1
- import{createAudioBusMixer as a}from"./bus-mixer-CGfWDP3C.js";import{installAudioPoseGuard as m}from"./pose-guard-6Osb2cFu.js";import{f as d}from"./three.module-D396a9Mn.js";const n="master";function b(c){m();const s=new d;c.add(s);const e=s.context,t=a({context:e,destination:e.destination}),i=t.bus(n);s.gain.disconnect(),s.gain.connect(i);const o=t.bus("music",n);o.gain.value=.7;const u=t.bus("sfx",n),r=t.bus("voice",n);return{listener:s,masterGain:i,buses:{music:o,sfx:u,voice:r},mixer:t,resume(){e.state==="suspended"&&e.resume()}}}export{b as setupAudio};
1
+ import{createAudioBusMixer as a}from"./bus-mixer-CGfWDP3C.js";import{installAudioPoseGuard as m}from"./pose-guard-Bb3gZOzk.js";import{f as d}from"./three.module-IFn-4i31.js";const n="master";function b(c){m();const s=new d;c.add(s);const e=s.context,t=a({context:e,destination:e.destination}),i=t.bus(n);s.gain.disconnect(),s.gain.connect(i);const o=t.bus("music",n);o.gain.value=.7;const u=t.bus("sfx",n),r=t.bus("voice",n);return{listener:s,masterGain:i,buses:{music:o,sfx:u,voice:r},mixer:t,resume(){e.state==="suspended"&&e.resume()}}}export{b as setupAudio};
@@ -0,0 +1 @@
1
+ import{B as t}from"./three.quarks.esm-CRKGjKAH.js";import{farDepthTexture as o}from"./soft-particle-depth-CKUS1j0Y.js";import"./three.module-IFn-4i31.js";function d(r){const e=new t;return e.setDepthTexture(o()),r.add(e),{batchedRenderer:e}}export{d as setupParticles};
@@ -1 +1 @@
1
- import{aB as c,aZ as l,b0 as d,aC as u}from"./three.module-D396a9Mn.js";function g(o,n,e={x:0,y:-9.81,z:0}){const t=new o.World(e),r=new o.EventQueue(!0),s=new c,i=new l({color:65280,vertexColors:!0}),a=new d(s,i);return a.visible=!1,n.add(a),{rapierWorld:t,eventQueue:r,debugMesh:a,debugEnabled:!1}}function f(o,n){const e=o.debugRender(),t=n.geometry,r=t.getAttribute("position");r&&r.array.length===e.vertices.length?(r.array.set(e.vertices),r.needsUpdate=!0):t.setAttribute("position",new u(new Float32Array(e.vertices),3));const s=t.getAttribute("color");s&&s.array.length===e.colors.length?(s.array.set(e.colors),s.needsUpdate=!0):t.setAttribute("color",new u(new Float32Array(e.colors),4))}export{g as setupPhysics,f as updatePhysicsDebug};
1
+ import{ax as c,aW as l,aZ as d,ay as u}from"./three.module-IFn-4i31.js";function b(o,n,e={x:0,y:-9.81,z:0}){const t=new o.World(e),r=new o.EventQueue(!0),s=new c,i=new l({color:65280,vertexColors:!0}),a=new d(s,i);return a.visible=!1,n.add(a),{rapierWorld:t,eventQueue:r,debugMesh:a,debugEnabled:!1}}function f(o,n){const e=o.debugRender(),t=n.geometry,r=t.getAttribute("position");r&&r.array.length===e.vertices.length?(r.array.set(e.vertices),r.needsUpdate=!0):t.setAttribute("position",new u(new Float32Array(e.vertices),3));const s=t.getAttribute("color");s&&s.array.length===e.colors.length?(s.array.set(e.colors),s.needsUpdate=!0):t.setAttribute("color",new u(new Float32Array(e.colors),4))}export{b as setupPhysics,f as updatePhysicsDebug};