@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
@@ -0,0 +1 @@
1
+ import{a as q}from"./renderer-config-BqG4O8i9.js";import{r3fRootFactory as w,resolveR3FEntryAdapter as z}from"./r3f-root-factory-DjGnbU4n.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./register-render-vitals-BO7x64kR.js";import"./render-census-BrQX_CXv.js";import"./structural-signature-0w-i_ats.js";import"./render-vitals-BZ5HtvMi.js";import"./static-batch-advisor-DqfXWRUq.js";import"./index-Ckxb31Yz.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"./webgl-frame-capture-CRKX73E9.js";import"./world-state-ZGDGY_Xl.js";import"./debug-registry-B3Cnne3x.js";import"./frame-selector-cache-cCeUbcjG.js";import"./dev-build-gDYrq68M.js";import"./game-input-seams-BC6xhZy3.js";import"./seeded-random-CN0scLZj.js";import"./render-seed-DF4JHy7P.js";import"./frame-delta-D2nsw_Ht.js";import"./events-156d8d12.esm-C734MYnx.js";import"./index-bQE2NA0D.js";export{q as applyWorldRendererConfig,w as r3fRootFactory,z as resolveR3FEntryAdapter};
@@ -0,0 +1 @@
1
+ import{AuthoringAdapter2D as U,STRUCTURAL_CANVAS_IDENTITY as _}from"./authoring-CgcOFhGS.js";import{mountIngestGame2D as G}from"./ingest-BlQnR7s3.js";import{createPhysics2DRegistry as V}from"./physics-registry-B2Jkp8e6.js";import{installSceneCapture2D as b}from"./scene-capture-CLOc7GXc.js";import{createPhysicsAdapter2D as k}from"./system-adapters-rIC8FSGP.js";import"./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";export{U as AuthoringAdapter2D,_ as STRUCTURAL_CANVAS_IDENTITY,V as createPhysics2DRegistry,k as createPhysicsAdapter2D,b as installSceneCapture2D,G as mountIngestGame2D};
@@ -0,0 +1,487 @@
1
+ import{G as Pt,P as ue,N as T,I as F,B as Be,S as Ht,E as Ae,M as ht,a as pt,i as _e,b as Me,T as Te,g as Se,c as De,d as Rt,e as Pe,C as Ee,O as Ne,f as Fe,h as Ve,L as He}from"./MeshBVH-BCSLNEeP.js";import{A as Xn,j as Yn,k as $n,l as jn,m as Kn,n as Zn,o as Jn}from"./MeshBVH-BCSLNEeP.js";import{a as D,R as yt,V as b,j as O,bf as Re,M as et,ax as C,p as de,am as ze,ak as ke,bg as X,g as tt,_ as Et,aU as Ce,aW as Oe,x as We,O as Le,ay as G,aZ as fe,bS as he,be as pe,a_ as me,bU as qe,a2 as J,ca as ft,aa as Q,ah as Mt,K as U,Y as zt,aP as Ue,cc as kt,cb as Ge,ab as mt,aD as Tt,aL as ye,c8 as Xe,az as Ye,ai as $e,aC as je,G as Nt}from"./three.module-IFn-4i31.js";const Ct=new D,W=new yt,Ot=new ue(()=>new Re),xt=new b,Wt=new b,it=new O,vt=new b,Lt=["getX","getY","getZ"];class Ke extends Pt{get primitiveStride(){return 2}writePrimitiveBounds(e,t,n){const i=this._indirectBuffer,{geometry:r,primitiveStride:c}=this,u=r.attributes.position,l=r.index,o=l?l.count:u.count;let s=(i?i[e]:e)*c,f=(s+1)%o;l&&(s=l.getX(s),f=l.getX(f));for(let h=0;h<3;h++){const p=u[Lt[h]](s),m=u[Lt[h]](f),y=p<m?p:m,x=p>m?p:m;t[n+h]=y,t[n+h+3]=x}return t}shapecast(e){const t=Ot.getPrimitive(),n=super.shapecast({...e,intersectsPrimitive:e.intersectsLine,scratchPrimitive:t,iterate:Je});return Ot.releasePrimitive(t),n}raycastObject3D(e,t,n=[]){const{matrixWorld:i}=e,{firstHitOnly:r}=t;Ct.copy(i).invert(),W.copy(t.ray).applyMatrix4(Ct);const u=t.params.Line.threshold/((e.scale.x+e.scale.y+e.scale.z)/3),l=u*u;let o=null,d=1/0;return this.shapecast({boundsTraverseOrder:s=>s.distanceToPoint(W.origin),intersectsBounds:s=>{if(it.copy(s).expandByScalar(u),r){if(!W.intersectBox(it,vt))return T;let f;return it.containsPoint(W.origin)?f=0:(vt.applyMatrix4(i),f=t.ray.origin.distanceTo(vt)),f<d?F:T}else return W.intersectsBox(it)?F:T},intersectsLine:(s,f)=>{if(W.distanceSqToSegment(s.start,s.end,xt,Wt)>l)return;xt.applyMatrix4(e.matrixWorld);const p=t.ray.origin.distanceTo(xt);p<t.near||p>t.far||r&&p>=d||(d=p,f=this.resolvePrimitiveIndex(f),o={distance:p,point:Wt.clone().applyMatrix4(i),index:f*this.primitiveStride,face:null,faceIndex:null,barycoord:null,object:e},r||n.push(o))}}),r&&o&&n.push(o),n}}class Ze extends Ke{get primitiveStride(){return 1}constructor(e,t={}){t={...t,indirect:!0},super(e,t)}}class Bn extends Ze{getRootRanges(...e){const t=super.getRootRanges(...e);return t.forEach(n=>n.count--),t}}function Je(a,e,t,n,i,r,c){const{geometry:u,primitiveStride:l}=t,{index:o}=u,d=u.attributes.position,s=o?o.count:d.count;for(let f=a,h=e+a;f<h;f++){let m=t.resolvePrimitiveIndex(f)*l,y=(m+1)%s;if(o&&(m=o.getX(m),y=o.getX(y)),c.start.fromBufferAttribute(d,m),c.end.fromBufferAttribute(d,y),n(c,f,i,r))return!0}return!1}const qt=new D,V=new yt,Ut=new ue(()=>new b),st=new O,gt=new b;class An extends Pt{get primitiveStride(){return 1}writePrimitiveBounds(e,t,n){const i=this._indirectBuffer,{geometry:r}=this,c=r.attributes.position,u=r.index;let l=i?i[e]:e;u&&(l=u.getX(l));const o=c.getX(l),d=c.getY(l),s=c.getZ(l);return t[n+0]=o,t[n+1]=d,t[n+2]=s,t[n+3]=o,t[n+4]=d,t[n+5]=s,t}shapecast(e){const t=Ut.getPrimitive(),n=super.shapecast({...e,intersectsPrimitive:e.intersectsPoint,scratchPrimitive:t,iterate:Qe});return Ut.releasePrimitive(t),n}raycastObject3D(e,t,n=[]){const{geometry:i}=this,{matrixWorld:r}=e,{firstHitOnly:c}=t;qt.copy(r).invert(),V.copy(t.ray).applyMatrix4(qt);const l=t.params.Points.threshold/((e.scale.x+e.scale.y+e.scale.z)/3),o=l*l;let d=null,s=1/0;return this.shapecast({boundsTraverseOrder:f=>f.distanceToPoint(V.origin),intersectsBounds:f=>{if(st.copy(f).expandByScalar(l),c){if(!V.intersectBox(st,gt))return T;let h;return st.containsPoint(V.origin)?h=0:(gt.applyMatrix4(r),h=t.ray.origin.distanceTo(gt)),h<s?F:T}else return V.intersectsBox(st)?F:T},intersectsPoint:(f,h)=>{const p=V.distanceSqToPoint(f);if(p<o){const m=new b;V.closestPointToPoint(f,m),m.applyMatrix4(r);const y=t.ray.origin.distanceTo(m);if(y<t.near||y>t.far||c&&y>=s)return;s=y,h=this.resolvePrimitiveIndex(h),d={distance:y,distanceToRay:Math.sqrt(p),point:m,index:i.index?i.index.getX(h):h,face:null,faceIndex:null,barycoord:null,object:e},c||n.push(d)}}}),c&&d&&n.push(d),n}}function Qe(a,e,t,n,i,r,c){const{geometry:u}=t,{index:l}=u,o=u.attributes.position;for(let d=a,s=e+a;d<s;d++){const f=t.resolvePrimitiveIndex(d),h=l?l.array[f]:f;if(c.fromBufferAttribute(o,h),n(c,d,i,r))return!0}return!1}const _=new C,w=new D,Y=new D,Gt=new O,L=new de,E=new b,$=new yt,M=new et,Xt={};class _n extends Be{constructor(e,t={}){t={precise:!1,includeInstances:!0,matrixWorld:Array.isArray(e)?new D:e.matrixWorld,targetLeafSize:1,...t},super();const n=new Set;xe(e,n);const i=Array.from(n),r=Math.ceil(Math.log2(i.length)),c=(1<<r)-1;this.objects=i,this.idBits=r,this.idMask=c,this.primitiveBuffer=null,this.primitiveBufferStride=1,this.precise=t.precise,this.includeInstances=t.includeInstances,this.matrixWorld=t.matrixWorld,this.init(t)}getObjectFromId(e){const{idMask:t,objects:n}=this,i=St(e,t);return n[i]}getInstanceFromId(e){const{idMask:t,idBits:n}=this;return Dt(e,n,t)}init(e){const{objects:t,idBits:n,matrixWorld:i}=this;Y.copy(i).invert(),this.primitiveBuffer=new Uint32Array(this._countPrimitives(t)),this._fillPrimitiveBuffer(t,n,this.primitiveBuffer),super.init(e)}refit(...e){Y.copy(this.matrixWorld).invert(),super.refit(...e)}writePrimitiveBounds(e,t,n){const{primitiveBuffer:i}=this;this._getPrimitiveBoundingBox(i[e],Y,Gt);const{min:r,max:c}=Gt;t[n+0]=r.x,t[n+1]=r.y,t[n+2]=r.z,t[n+3]=c.x,t[n+4]=c.y,t[n+5]=c.z}getRootRanges(){return[{offset:0,count:this.primitiveBuffer.length}]}shapecast(e){return super.shapecast({...e,intersectsPrimitive:e.intersectsObject,scratchPrimitive:null,iterate:tn})}raycast(e,t=[]){const{matrixWorld:n,includeInstances:i}=this,{firstHitOnly:r}=e,c=[];Y.copy(n).invert(),$.copy(e.ray).applyMatrix4(Y);let u=1/0,l=null;return this.shapecast({boundsTraverseOrder:o=>o.distanceToPoint($.origin),intersectsBounds:o=>{if(r){if(!$.intersectBox(o,E))return T;let d;return o.containsPoint($.origin)?d=0:(E.applyMatrix4(n),d=e.ray.origin.distanceTo(E)),d<u?F:T}else return $.intersectsBox(o)?F:T},intersectsObject(o,d){if(o.visible){if(c.length=0,o.isInstancedMesh&&i)M.geometry=o.geometry,M.material=o.material,o.getMatrixAt(d,M.matrixWorld),M.matrixWorld.premultiply(o.matrixWorld),M.raycast(e,c),c.forEach(s=>{s.object=o,s.instanceId=d}),M.material=null;else if(o.isBatchedMesh&&i){if(!o.getVisibleAt(d))return;const s=o.getGeometryIdAt(d),f=o.getGeometryRangeAt(s,Xt);_.index=o.geometry.index,_.attributes=o.geometry.attributes,_.setDrawRange(f.start,f.count),M.geometry=_,M.material=o.material,o.getMatrixAt(d,M.matrixWorld),M.matrixWorld.premultiply(o.matrixWorld),M.raycast(e,c),c.forEach(h=>{h.object=o,h.batchId=d}),M.material=null,_.index=null,_.attributes=null,_.setDrawRange(0,1/0)}else o.raycast(e,c);r?c.forEach(s=>{s.distance<u&&(u=s.distance,l=s)}):t.push(...c)}}}),r&&l&&t.push(l),t}_getPrimitiveBoundingBox(e,t,n){const{objects:i,idMask:r,idBits:c,precise:u,includeInstances:l}=this,o=St(e,r),d=Dt(e,c,r),s=i[o];if(!l&&(s.isInstancedMesh||s.isBatchedMesh))s.boundingBox||s.computeBoundingBox(),s.boundingSphere||s.computeBoundingSphere(),w.copy(s.matrixWorld).premultiply(t),L.copy(s.boundingSphere).applyMatrix4(w),n.copy(s.boundingBox).applyMatrix4(w),bt(n,L);else if(u)if(s.isInstancedMesh)s.getMatrixAt(d,w),w.premultiply(s.matrixWorld).premultiply(t),Yt(s.geometry,w,n);else if(s.isBatchedMesh){const f=s.getGeometryIdAt(d),h=s.getGeometryRangeAt(f,Xt);_.index=s.geometry.index,_.attributes=s.geometry.attributes,_.setDrawRange(h.start,h.count),s.getMatrixAt(d,w),w.premultiply(s.matrixWorld).premultiply(t),Yt(_,w,n),_.attributes=null}else w.copy(s.matrixWorld).premultiply(t),n.setFromObject(s,!0).applyMatrix4(t);else if(s.isInstancedMesh)s.geometry.boundingBox||s.geometry.computeBoundingBox(),s.geometry.boundingSphere||s.geometry.computeBoundingSphere(),s.getMatrixAt(d,w),w.premultiply(s.matrixWorld).premultiply(t),L.copy(s.geometry.boundingSphere).applyMatrix4(w),n.copy(s.geometry.boundingBox).applyMatrix4(w),bt(n,L);else if(s.isBatchedMesh){const f=s.getGeometryIdAt(d);s.getMatrixAt(d,w),w.premultiply(s.matrixWorld).premultiply(t),s.getBoundingSphereAt(f,L).applyMatrix4(w),s.getBoundingBoxAt(f,n).applyMatrix4(w),bt(n,L)}else n.setFromObject(s,!1).applyMatrix4(t)}_countPrimitives(e){const{includeInstances:t}=this;let n=0;return e.forEach(i=>{if(i.isInstancedMesh&&t)n+=i.count;else if(i.isBatchedMesh&&t){if(!("instanceCount"in i))throw new Error("ObjectBVH: Three.js revision >= r169 is required to use BatchedMesh.");n+=i.instanceCount}else n++}),n}_fillPrimitiveBuffer(e,t,n){const{includeInstances:i}=this;let r=0;e.forEach((c,u)=>{if(c.isInstancedMesh&&i){const l=c.count;for(let o=0;o<l;o++)n[r]=o<<t|u,r++}else if(c.isBatchedMesh&&i){const{instanceCount:l,maxInstanceCount:o}=c;let d=0,s=0;for(;d<l&&s<o;){try{c.getVisibleAt(s),n[r]=s<<t|u,d++,r++}catch{}s++}}else n[r]=u,r++})}}function St(a,e){return a&e}function Dt(a,e,t){return(a&~t)>>>e}function xe(a,e=new Set){Array.isArray(a)?a.forEach(t=>xe(t,e)):a.traverse(t=>{(t.isMesh||t.isLine||t.isPoints)&&e.add(t)})}function Yt(a,e,t){t.makeEmpty();const n=a.drawRange,i=a.index,r=a.attributes.position,c=n.start,u=i?i.count:r.count,l=Math.min(u-c,n.count);for(let o=c,d=c+l;o<d;o++){let s=o;i&&(s=i.getX(s)),E.fromBufferAttribute(r,s).applyMatrix4(e),t.expandByPoint(E)}return t}function tn(a,e,t,n,i,r){const{primitiveBuffer:c,objects:u,idMask:l,idBits:o}=t;for(let d=a,s=e+a;d<s;d++){const f=c[d],h=St(f,l),p=Dt(f,o,l),m=u[h];if(n(m,p,i,r))return!0}return!1}function bt(a,e){E.copy(e.center).addScalar(-e.radius),a.min.max(E),E.copy(e.center).addScalar(e.radius),a.max.min(E)}const $t=new b,jt=new b,Kt=new b,P=new yt,Zt=new D,H=new b,It=new b,en=["x","y","z"],ot=parseInt(Et)>=169,nn=parseInt(Et)<=161,rt=new tt,at=new tt,ct=new tt,Jt=new b,Qt=new b,te=new b;class Mn extends Pt{get primitiveStride(){return 3}constructor(e,t={}){if(!e.isMesh)throw new Error("SkinnedMeshBVH: First argument must be a Mesh.");super(e.geometry,{...t,[Ht]:!0}),this.mesh=e,t[Ht]||this.init(t)}writePrimitiveBounds(e,t,n){const{mesh:i,geometry:r}=this,c=this._indirectBuffer,u=r.index?r.index.array:null,o=(c?c[e]:e)*3;let d=o+0,s=o+1,f=o+2;u&&(d=u[d],s=u[s],f=u[f]),i.getVertexPosition(d,$t),i.getVertexPosition(s,jt),i.getVertexPosition(f,Kt);for(let h=0;h<3;h++){const p=en[h],m=$t[p],y=jt[p],x=Kt[p];let g=m;y<g&&(g=y),x<g&&(g=x);let v=m;y>v&&(v=y),x>v&&(v=x),t[n+h]=g,t[n+h+3]=v}return t}shapecast(e){const t=new Ae;return super.shapecast({...e,intersectsPrimitive:e.intersectsTriangle,scratchPrimitive:t,iterate:sn})}raycastObject3D(e,t,n=[]){const{material:i}=e;if(i===void 0)return;const{matrixWorld:r}=e,{firstHitOnly:c}=t;Zt.copy(r).invert(),P.copy(t.ray).applyMatrix4(Zt);let u=null,l=1/0;return this.shapecast({boundsTraverseOrder:o=>o.distanceToPoint(P.origin),intersectsBounds:o=>{if(c){if(!P.intersectBox(o,It))return T;let d;return o.containsPoint(P.origin)?d=0:(It.applyMatrix4(r),d=t.ray.origin.distanceTo(It)),d<l?F:T}else return P.intersectsBox(o)?F:T},intersectsTriangle:(o,d)=>{let s=null;if(i.side===ze?s=P.intersectTriangle(o.a,o.b,o.c,!0,H):i.side===ke?s=P.intersectTriangle(o.c,o.b,o.a,!0,H):s=P.intersectTriangle(o.a,o.b,o.c,!1,H),!s)return;s=s.clone().applyMatrix4(r);const f=t.ray.origin.distanceTo(s);if(f>=t.near&&f<=t.far){if(c&&f>=l)return;const{geometry:h}=this,{index:p}=h,m=this.resolvePrimitiveIndex(d),y=m*3;let x=y+0,g=y+1,v=y+2;p&&(x=p.array[x],g=p.array[g],v=p.array[v]);const I={distance:f,point:s.clone(),object:e,uv:null,uv1:null,normal:null,face:{a:x,b:g,c:v,normal:X.getNormal(o.a,o.b,o.c,new b),materialIndex:0},faceIndex:m};if(ot){const N=new b;X.getBarycoord(H,o.a,o.b,o.c,N),I.barycoord=N}const A=h.attributes.uv,S=h.attributes.uv1,nt=h.attributes.normal;if(A){rt.fromBufferAttribute(A,x),at.fromBufferAttribute(A,g),ct.fromBufferAttribute(A,v),I.uv=new tt;const N=X.getInterpolation(H,o.a,o.b,o.c,rt,at,ct,I.uv);ot||(I.uv=N)}if(S){rt.fromBufferAttribute(S,x),at.fromBufferAttribute(S,g),ct.fromBufferAttribute(S,v),I.uv1=new tt;const N=X.getInterpolation(H,o.a,o.b,o.c,rt,at,ct,I.uv1);ot||(I.uv1=N),nn&&(I.uv2=I.uv1)}if(nt){Jt.fromBufferAttribute(nt,x),Qt.fromBufferAttribute(nt,g),te.fromBufferAttribute(nt,v),I.normal=new b;const N=X.getInterpolation(H,o.a,o.b,o.c,Jt,Qt,te,I.normal);I.normal.dot(P.direction)>0&&I.normal.multiplyScalar(-1),ot||(I.normal=N)}l=I.distance,u=I,c||n.push(I)}}}),c&&u&&n.push(u),n}}function sn(a,e,t,n,i,r,c){const{mesh:u,geometry:l}=t,o=l.index?l.index.array:null;for(let d=a,s=e+a;d<s;d++){const f=t.resolvePrimitiveIndex(d);let h=3*f+0,p=3*f+1,m=3*f+2;if(o&&(h=o[h],p=o[p],m=o[m]),u.getVertexPosition(h,c.a),u.getVertexPosition(p,c.b),u.getVertexPosition(m,c.c),c.needsUpdate=!0,n(c,d,i,r))return!0}return!1}const ee=new O,ne=new D,wt=new b;class on extends Le{get isMesh(){return!this.displayEdges}get isLineSegments(){return this.displayEdges}get isLine(){return this.displayEdges}getVertexPosition(...e){return et.prototype.getVertexPosition.call(this,...e)}constructor(e,t,n=10,i=0){super(),this.material=t,this.geometry=new C,this.name="BVHRootHelper",this.depth=n,this.displayParents=!1,this.bvh=e,this.displayEdges=!0,this._group=i}raycast(){}update(){const e=this.bvh;this.geometry.dispose(),this.visible=!1,e&&(this.geometry=this.getGeometry(e),this.visible=!0)}getGeometry(e){const t=this._group;let n=null;if(t!==-1)n=this.getBVHBoundPositions(e,t);else{const c=e._roots.map((o,d)=>this.getBVHBoundPositions(e,d)),u=c.reduce((o,d)=>o+d.length,0);n=new Float32Array(u);let l=0;c.forEach(o=>{n.set(o,l),l+=o.length})}const i=this.getBVHBoundIndices(n),r=new C;return r.setIndex(new G(i,1,!1)),r.setAttribute("position",new G(n,3,!1)),r}getBVHBoundIndices(e){const t=e.length/24;let n,i;this.displayEdges?i=new Uint8Array([0,4,1,5,2,6,3,7,0,2,1,3,4,6,5,7,0,1,2,3,4,5,6,7]):i=new Uint8Array([0,1,2,2,1,3,4,6,5,6,7,5,1,4,5,0,4,1,2,3,6,3,7,6,0,2,4,2,6,4,1,5,3,3,5,7]),e.length>65535?n=new Uint32Array(i.length*t):n=new Uint16Array(i.length*t);const r=i.length;for(let c=0;c<t;c++){const u=c*8,l=c*r;for(let o=0;o<r;o++)n[l+o]=u+i[o]}return n}getBVHBoundPositions(e,t=0,n=null){const i=this.depth-1,r=this.displayParents;let c=0;e.traverse((o,d)=>{if(o>=i||d)return c++,!0;r&&c++},t);let u=0;const l=new Float32Array(24*c);return e.traverse((o,d,s)=>{const f=o>=i||d;if(f||r){pt(0,s,ee);const{min:h,max:p}=ee;for(let m=-1;m<=1;m+=2){const y=m<0?h.x:p.x;for(let x=-1;x<=1;x+=2){const g=x<0?h.y:p.y;for(let v=-1;v<=1;v+=2){const I=v<0?h.z:p.z;wt.set(y,g,I),n&&wt.applyMatrix4(n),wt.toArray(l,u),u+=3}}}return f}},t),l}}class Ft extends Ce{get color(){return this.edgeMaterial.color}get opacity(){return this.edgeMaterial.opacity}set opacity(e){this.edgeMaterial.opacity=e,this.meshMaterial.opacity=e}get objectIndex(){return console.warn('BVHHelper: "objectIndex" has been renamed "instanceId".'),this.instanceId}set objectIndex(e){console.warn('BVHHelper: "objectIndex" has been renamed "instanceId".'),this.instanceId=e}constructor(e=null,t=null,n=10){e instanceof ht&&(n=t||10,t=e,e=null),typeof t=="number"&&(n=t,t=null),super(),this.name="BVHHelper",this.depth=n,this.mesh=e,this.bvh=t,this.displayParents=!1,this.displayEdges=!0,this.instanceId=0,this._roots=[];const i=new Oe({color:65416,transparent:!0,opacity:.3,depthWrite:!1}),r=new We({color:65416,transparent:!0,opacity:.3,depthWrite:!1});r.color=i.color,this.edgeMaterial=i,this.meshMaterial=r,this.update()}update(){const e=this.mesh,t=this.instanceId;let n=this.bvh||e.boundsTree||e.geometry&&e.geometry.boundsTree||null;if(e&&e.isBatchedMesh&&e.boundsTrees&&!n&&t>=0){const r=e._drawInfo[t];r&&(n=e.boundsTrees[r.geometryIndex]||n)}const i=n?n._roots.length:0;for(;this._roots.length>i;){const r=this._roots.pop();r.geometry.dispose(),this.remove(r)}for(let r=0;r<i;r++){const{depth:c,edgeMaterial:u,meshMaterial:l,displayParents:o,displayEdges:d}=this;if(r>=this._roots.length){const f=new on(n,u,c,r);this.add(f),this._roots.push(f)}const s=this._roots[r];s.bvh=n,s.depth=c,s.displayParents=o,s.displayEdges=d,s.material=d?u:l,s.update()}}updateMatrixWorld(...e){const t=this.mesh,n=this.parent,i=this.instanceId;t!==null&&(t.updateWorldMatrix(!0,!1),n?this.matrix.copy(n.matrixWorld).invert().multiply(t.matrixWorld):this.matrix.copy(t.matrixWorld),(t.isInstancedMesh||t.isBatchedMesh)&&i>=0&&(t.getMatrixAt(i,ne),this.matrix.multiply(ne)),this.matrix.decompose(this.position,this.quaternion,this.scale)),super.updateMatrixWorld(...e)}copy(e){this.depth=e.depth,this.mesh=e.mesh,this.bvh=e.bvh,this.opacity=e.opacity,this.color.copy(e.color)}clone(){return new Ft().copy(this)}dispose(){this.edgeMaterial.dispose(),this.meshMaterial.dispose();const e=this.children;for(let t=0,n=e.length;t<n;t++)e[t].geometry.dispose()}}class Tn extends Ft{constructor(...e){console.warn("MeshBVHHelper: Class has been deprecated. Use BVHHelper instead."),super(...e)}}const Bt=new O,j=new O;function ie(a){switch(typeof a){case"number":return 8;case"string":return a.length*2;case"boolean":return 4;default:return 0}}function rn(a){return/(Uint|Int|Float)(8|16|32)Array/.test(a.constructor.name)}function an(a,e){const t={nodeCount:0,leafNodeCount:0,depth:{min:1/0,max:-1/0},primitives:{min:1/0,max:-1/0},splits:[0,0,0],surfaceAreaScore:0};return a.traverse((n,i,r,c,u)=>{const l=r[3]-r[0],o=r[4]-r[1],d=r[5]-r[2],s=2*(l*o+o*d+d*l);t.nodeCount++,i?(t.leafNodeCount++,t.depth.min=Math.min(n,t.depth.min),t.depth.max=Math.max(n,t.depth.max),t.primitives.min=Math.min(u,t.primitives.min),t.primitives.max=Math.max(u,t.primitives.max),t.surfaceAreaScore+=s*Me*u):(t.splits[c]++,t.surfaceAreaScore+=s*Te)},e),t.primitives.min===1/0&&(t.primitives.min=0,t.primitives.max=0),t.depth.min===1/0&&(t.depth.min=0,t.depth.max=0),t}function Sn(a){return a._roots.map((e,t)=>an(a,t))}function Dn(a){const e=new Set,t=[a];let n=0;for(;t.length;){const i=t.pop();if(!e.has(i)){e.add(i);for(let r in i){if(!Object.hasOwn(i,r))continue;n+=ie(r);const c=i[r];c&&(typeof c=="object"||typeof c=="function")?rn(c)||_e()&&c instanceof SharedArrayBuffer||c instanceof ArrayBuffer?n+=c.byteLength:t.push(c):n+=ie(c)}}}return n}function Pn(a){const e=[],t=new Float32Array(6);let n=!0;return a.traverse((i,r,c,u,l)=>{const o={depth:i,isLeaf:r,boundingData:c,offset:u,count:l};e[i]=o,pt(0,c,Bt);const d=e[i-1];if(r){a.writePrimitiveRangeBounds(u,l,t,0),j.min.set(t[0],t[1],t[2]),j.max.set(t[3],t[4],t[5]);const s=Bt.containsBox(j);console.assert(s,"Leaf bounds does not fully contain primitives."),n=n&&s}if(d){pt(0,d.boundingData,j);const s=j.containsBox(Bt);console.assert(s,"Parent bounds does not fully contain child."),n=n&&s}}),n}function En(a){const e=[];return a.traverse((t,n,i,r,c)=>{const u={bounds:pt(0,i,new O)};n?(u.count=c,u.offset=r):(u.left=null,u.right=null),e[t]=u;const l=e[t-1];l&&(l.left===null?l.left=u:l.right=u)}),e[0]}const cn=parseInt(Et)>=166,q={Mesh:et.prototype.raycast,Line:pe.prototype.raycast,LineSegments:fe.prototype.raycast,LineLoop:he.prototype.raycast,Points:me.prototype.raycast,BatchedMesh:qe.prototype.raycast},B=new et,lt=[];function Nn(a,e){if(this.isBatchedMesh)ln.call(this,a,e);else{const{geometry:t}=this;if(t.boundsTree)t.boundsTree.raycastObject3D(this,a,e);else{let n;if(this instanceof et)n=q.Mesh;else if(this instanceof fe)n=q.LineSegments;else if(this instanceof he)n=q.LineLoop;else if(this instanceof pe)n=q.Line;else if(this instanceof me)n=q.Points;else throw new Error("BVH: Fallback raycast function not found.");n.call(this,a,e)}}}function ln(a,e){if(this.boundsTrees){const t=this.boundsTrees,n=this._drawInfo||this._instanceInfo,i=this._drawRanges||this._geometryInfo,r=this.matrixWorld;B.material=this.material,B.geometry=this.geometry;const c=B.geometry.boundsTree,u=B.geometry.drawRange;B.geometry.boundingSphere===null&&(B.geometry.boundingSphere=new de);for(let l=0,o=n.length;l<o;l++){if(!this.getVisibleAt(l))continue;const d=n[l].geometryIndex;if(B.geometry.boundsTree=t[d],this.getMatrixAt(l,B.matrixWorld).premultiply(r),!B.geometry.boundsTree){this.getBoundingBoxAt(d,B.geometry.boundingBox),this.getBoundingSphereAt(d,B.geometry.boundingSphere);const s=i[d];B.geometry.setDrawRange(s.start,s.count)}B.raycast(a,lt);for(let s=0,f=lt.length;s<f;s++){const h=lt[s];h.object=this,h.batchId=l,e.push(h)}lt.length=0}B.geometry.boundsTree=c,B.geometry.drawRange=u,B.material=null,B.geometry=null}else q.BatchedMesh.call(this,a,e)}function Fn(a={}){const{type:e=ht}=a;return this.boundsTree=new e(this,a),this.boundsTree}function Vn(){this.boundsTree=null}function Hn(a=-1,e={}){if(!cn)throw new Error("BatchedMesh: Three r166+ is required to compute bounds trees.");e={...e,range:null};const t=this._drawRanges||this._geometryInfo,n=this._geometryCount;this.boundsTrees||(this.boundsTrees=new Array(n).fill(null));const i=this.boundsTrees;for(;i.length<n;)i.push(null);if(a<0){for(let r=0;r<n;r++)e.range=t[r],i[r]=new ht(this.geometry,e);return i}else return a<t.length&&(e.range=t[a],i[a]=new ht(this.geometry,e)),i[a]||null}function Rn(a=-1){a<0?this.boundsTrees.fill(null):a<this.boundsTrees.length&&(this.boundsTrees[a]=null)}function un(a){switch(a){case 1:return"R";case 2:return"RG";case 3:return"RGBA";case 4:return"RGBA"}throw new Error}function dn(a){switch(a){case 1:return $e;case 2:return Ye;case 3:return mt;case 4:return mt}}function se(a){switch(a){case 1:return Xe;case 2:return ye;case 3:return Tt;case 4:return Tt}}class Vt extends Mt{constructor(){super(),this.minFilter=U,this.magFilter=U,this.generateMipmaps=!1,this.overrideItemSize=null,this._forcedType=null}updateFrom(e){const t=this.overrideItemSize,n=e.itemSize,i=e.count;if(t!==null){if(n*i%t!==0)throw new Error("VertexAttributeTexture: overrideItemSize must divide evenly into buffer length.");e.itemSize=t,e.count=i*n/t}const r=e.itemSize,c=e.count,u=e.normalized,l=e.array.constructor,o=l.BYTES_PER_ELEMENT;let d=this._forcedType,s=r;if(d===null)switch(l){case Float32Array:d=J;break;case Uint8Array:case Uint16Array:case Uint32Array:d=Q;break;case Int8Array:case Int16Array:case Int32Array:d=ft;break}let f,h,p,m,y=un(r);switch(d){case J:p=1,h=dn(r),u&&o===1?(m=l,y+="8",l===Uint8Array?f=zt:(f=kt,y+="_SNORM")):(m=Float32Array,y+="32F",f=J);break;case ft:y+=o*8+"I",p=u?Math.pow(2,l.BYTES_PER_ELEMENT*8-1):1,h=se(r),o===1?(m=Int8Array,f=kt):o===2?(m=Int16Array,f=Ge):(m=Int32Array,f=ft);break;case Q:y+=o*8+"UI",p=u?Math.pow(2,l.BYTES_PER_ELEMENT*8-1):1,h=se(r),o===1?(m=Uint8Array,f=zt):o===2?(m=Uint16Array,f=Ue):(m=Uint32Array,f=Q);break}s===3&&(h===mt||h===Tt)&&(s=4);const x=Math.ceil(Math.sqrt(c))||1,g=s*x*x,v=new m(g),I=e.normalized;e.normalized=!1;for(let A=0;A<c;A++){const S=s*A;v[S]=e.getX(A)/p,r>=2&&(v[S+1]=e.getY(A)/p),r>=3&&(v[S+2]=e.getZ(A)/p,s===4&&(v[S+3]=1)),r>=4&&(v[S+3]=e.getW(A)/p)}e.normalized=I,this.internalFormat=y,this.format=h,this.type=f,this.image.width=x,this.image.height=x,this.image.data=v,this.needsUpdate=!0,this.dispose(),e.itemSize=n,e.count=i}}class fn extends Vt{constructor(){super(),this._forcedType=Q}}class zn extends Vt{constructor(){super(),this._forcedType=ft}}class hn extends Vt{constructor(){super(),this._forcedType=J}}class kn{constructor(){this.index=new fn,this.position=new hn,this.bvhBounds=new Mt,this.bvhContents=new Mt,this._cachedIndexAttr=null,this.index.overrideItemSize=3}updateFrom(e){const{geometry:t}=e;if(mn(e,this.bvhBounds,this.bvhContents),this.position.updateFrom(t.attributes.position),e.indirect){const n=e._indirectBuffer;if(this._cachedIndexAttr===null||this._cachedIndexAttr.count!==n.length)if(t.index)this._cachedIndexAttr=t.index.clone();else{const i=Se(De(t));this._cachedIndexAttr=new G(i,1,!1)}pn(t,n,this._cachedIndexAttr),this.index.updateFrom(this._cachedIndexAttr)}else this.index.updateFrom(t.index)}dispose(){const{index:e,position:t,bvhBounds:n,bvhContents:i}=this;e&&e.dispose(),t&&t.dispose(),n&&n.dispose(),i&&i.dispose()}}function pn(a,e,t){const n=t.array,i=a.index?a.index.array:null;for(let r=0,c=e.length;r<c;r++){const u=3*r,l=3*e[r];for(let o=0;o<3;o++)n[u+o]=i?i[l+o]:l+o}}function mn(a,e,t){const n=a._roots;if(n.length!==1)throw new Error("MeshBVHUniformStruct: Multi-root BVHs not supported.");const i=n[0],r=new Uint16Array(i),c=new Uint32Array(i),u=new Float32Array(i),l=i.byteLength/Rt,o=2*Math.ceil(Math.sqrt(l/2)),d=new Float32Array(4*o*o),s=Math.ceil(Math.sqrt(l)),f=new Uint32Array(2*s*s);for(let h=0;h<l;h++){const p=h*Rt/4,m=p*2,y=Ve(p);for(let x=0;x<3;x++)d[8*h+0+x]=u[y+0+x],d[8*h+4+x]=u[y+3+x];if(Pe(m,r)){const x=Ee(m,r),g=Ne(p,c),v=He|x;f[h*2+0]=v,f[h*2+1]=g}else{const x=c[p+6],g=Fe(p,c);f[h*2+0]=g,f[h*2+1]=x}}e.image.data=d,e.image.width=o,e.image.height=o,e.format=mt,e.type=J,e.internalFormat="RGBA32F",e.minFilter=U,e.magFilter=U,e.generateMipmaps=!1,e.needsUpdate=!0,e.dispose(),t.image.data=f,t.image.width=s,t.image.height=s,t.format=ye,t.type=Q,t.internalFormat="RG32UI",t.minFilter=U,t.magFilter=U,t.generateMipmaps=!1,t.needsUpdate=!0,t.dispose()}const R=new b,z=new b,k=new b,oe=new Nt,ut=new b,At=new b,re=new Nt,ae=new Nt,dt=new D,ce=new D;function K(a,e){if(!a&&!e)return;const t=a.count===e.count,n=a.normalized===e.normalized,i=a.array.constructor===e.array.constructor,r=a.itemSize===e.itemSize;if(!t||!n||!i||!r)throw new Error}function Z(a,e=null){const t=a.array.constructor,n=a.normalized,i=a.itemSize,r=e===null?a.count:e;return new G(new t(i*r),i,n)}function ve(a,e,t=0){if(a.isInterleavedBufferAttribute){const n=a.itemSize;for(let i=0,r=a.count;i<r;i++){const c=i+t;e.setX(c,a.getX(i)),n>=2&&e.setY(c,a.getY(i)),n>=3&&e.setZ(c,a.getZ(i)),n>=4&&e.setW(c,a.getW(i))}}else{const n=e.array,i=n.constructor,r=n.BYTES_PER_ELEMENT*a.itemSize*t;new i(n.buffer,r,a.array.length).set(a.array)}}function yn(a,e,t){const n=a.elements,i=e.elements;for(let r=0,c=i.length;r<c;r++)n[r]+=i[r]*t}function le(a,e,t){const n=a.skeleton,i=a.geometry,r=n.bones,c=n.boneInverses;re.fromBufferAttribute(i.attributes.skinIndex,e),ae.fromBufferAttribute(i.attributes.skinWeight,e),dt.elements.fill(0);for(let u=0;u<4;u++){const l=ae.getComponent(u);if(l!==0){const o=re.getComponent(u);ce.multiplyMatrices(r[o].matrixWorld,c[o]),yn(dt,ce,l)}}return dt.multiply(a.bindMatrix).premultiply(a.bindMatrixInverse),t.transformDirection(dt),t}function _t(a,e,t,n,i){ut.set(0,0,0);for(let r=0,c=a.length;r<c;r++){const u=e[r],l=a[r];u!==0&&(At.fromBufferAttribute(l,n),t?ut.addScaledVector(At,u):ut.addScaledVector(At.sub(i),u))}i.add(ut)}function xn(a,e={useGroups:!1,updateIndex:!1,skipAttributes:[]},t=new C){const n=a[0].index!==null,{useGroups:i=!1,updateIndex:r=!1,skipAttributes:c=[]}=e,u=new Set(Object.keys(a[0].attributes)),l={};let o=0;t.clearGroups();for(let d=0;d<a.length;++d){const s=a[d];let f=0;if(n!==(s.index!==null))throw new Error("StaticGeometryGenerator: All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.");for(const h in s.attributes){if(!u.has(h))throw new Error('StaticGeometryGenerator: All geometries must have compatible attributes; make sure "'+h+'" attribute exists among all geometries, or in none of them.');l[h]===void 0&&(l[h]=[]),l[h].push(s.attributes[h]),f++}if(f!==u.size)throw new Error("StaticGeometryGenerator: Make sure all geometries have the same number of attributes.");if(i){let h;if(n)h=s.index.count;else if(s.attributes.position!==void 0)h=s.attributes.position.count;else throw new Error("StaticGeometryGenerator: The geometry must have either an index or a position attribute");t.addGroup(o,h,d),o+=h}}if(n){let d=!1;if(!t.index){let s=0;for(let f=0;f<a.length;++f)s+=a[f].index.count;t.setIndex(new G(new Uint32Array(s),1,!1)),d=!0}if(r||d){const s=t.index;let f=0,h=0;for(let p=0;p<a.length;++p){const m=a[p],y=m.index;if(c[p]!==!0)for(let x=0;x<y.count;++x)s.setX(f,y.getX(x)+h),f++;h+=m.attributes.position.count}}}for(const d in l){const s=l[d];if(!(d in t.attributes)){let p=0;for(const m in s)p+=s[m].count;t.setAttribute(d,Z(l[d][0],p))}const f=t.attributes[d];let h=0;for(let p=0,m=s.length;p<m;p++){const y=s[p];c[p]!==!0&&ve(y,f,h),h+=y.count}}return t}function vn(a,e){if(a===null||e===null)return a===e;if(a.length!==e.length)return!1;for(let t=0,n=a.length;t<n;t++)if(a[t]!==e[t])return!1;return!0}function gn(a){const{index:e,attributes:t}=a;if(e)for(let n=0,i=e.count;n<i;n+=3){const r=e.getX(n),c=e.getX(n+2);e.setX(n,c),e.setX(n+2,r)}else for(const n in t){const i=t[n],r=i.itemSize;for(let c=0,u=i.count;c<u;c+=3)for(let l=0;l<r;l++){const o=i.getComponent(c,l),d=i.getComponent(c+2,l);i.setComponent(c,l,d),i.setComponent(c+2,l,o)}}return a}class bn{constructor(e){this.matrixWorld=new D,this.geometryHash=null,this.boneMatrices=null,this.primitiveCount=-1,this.mesh=e,this.update()}update(){const e=this.mesh,t=e.geometry,n=e.skeleton,i=(t.index?t.index.count:t.attributes.position.count)/3;if(this.matrixWorld.copy(e.matrixWorld),this.geometryHash=t.attributes.position.version,this.primitiveCount=i,n){n.boneTexture||n.computeBoneTexture(),n.update();const r=n.boneMatrices;!this.boneMatrices||this.boneMatrices.length!==r.length?this.boneMatrices=r.slice():this.boneMatrices.set(r)}else this.boneMatrices=null}didChange(){const e=this.mesh,t=e.geometry,n=(t.index?t.index.count:t.attributes.position.count)/3;return!(this.matrixWorld.equals(e.matrixWorld)&&this.geometryHash===t.attributes.position.version&&vn(e.skeleton&&e.skeleton.boneMatrices||null,this.boneMatrices)&&this.primitiveCount===n)}}class Cn{constructor(e){Array.isArray(e)||(e=[e]);const t=[];e.forEach(n=>{n.traverseVisible(i=>{i.isMesh&&t.push(i)})}),this.meshes=t,this.useGroups=!0,this.applyWorldTransforms=!0,this.attributes=["position","normal","color","tangent","uv","uv2"],this._intermediateGeometry=new Array(t.length).fill().map(()=>new C),this._diffMap=new WeakMap}getMaterials(){const e=[];return this.meshes.forEach(t=>{Array.isArray(t.material)?e.push(...t.material):e.push(t.material)}),e}generate(e=new C){let t=[];const{meshes:n,useGroups:i,_intermediateGeometry:r,_diffMap:c}=this;for(let u=0,l=n.length;u<l;u++){const o=n[u],d=r[u],s=c.get(o);!s||s.didChange(o)?(this._convertToStaticGeometry(o,d),t.push(!1),s?s.update():c.set(o,new bn(o))):t.push(!0)}if(r.length===0){e.setIndex(null);const u=e.attributes;for(const l in u)e.deleteAttribute(l);for(const l in this.attributes)e.setAttribute(this.attributes[l],new G(new Float32Array(0),4,!1))}else xn(r,{useGroups:i,skipAttributes:t},e);for(const u in e.attributes)e.attributes[u].needsUpdate=!0;return e}_convertToStaticGeometry(e,t=new C){const n=e.geometry,i=this.applyWorldTransforms,r=this.attributes.includes("normal"),c=this.attributes.includes("tangent"),u=n.attributes,l=t.attributes;!t.index&&n.index&&(t.index=n.index.clone()),l.position||t.setAttribute("position",Z(u.position)),r&&!l.normal&&u.normal&&t.setAttribute("normal",Z(u.normal)),c&&!l.tangent&&u.tangent&&t.setAttribute("tangent",Z(u.tangent)),K(n.index,t.index),K(u.position,l.position),r&&K(u.normal,l.normal),c&&K(u.tangent,l.tangent);const o=u.position,d=r?u.normal:null,s=c?u.tangent:null,f=n.morphAttributes.position,h=n.morphAttributes.normal,p=n.morphAttributes.tangent,m=n.morphTargetsRelative,y=e.morphTargetInfluences,x=new je;x.getNormalMatrix(e.matrixWorld),n.index&&t.index.array.set(n.index.array);for(let g=0,v=u.position.count;g<v;g++)R.fromBufferAttribute(o,g),d&&z.fromBufferAttribute(d,g),s&&(oe.fromBufferAttribute(s,g),k.fromBufferAttribute(s,g)),y&&(f&&_t(f,y,m,g,R),h&&_t(h,y,m,g,z),p&&_t(p,y,m,g,k)),e.isSkinnedMesh&&(e.applyBoneTransform(g,R),d&&le(e,g,z),s&&le(e,g,k)),i&&R.applyMatrix4(e.matrixWorld),l.position.setXYZ(g,R.x,R.y,R.z),d&&(i&&z.applyNormalMatrix(x),l.normal.setXYZ(g,z.x,z.y,z.z)),s&&(i&&k.transformDirection(e.matrixWorld),l.tangent.setXYZW(g,k.x,k.y,k.z,oe.w));for(const g in this.attributes){const v=this.attributes[g];v==="position"||v==="tangent"||v==="normal"||!(v in u)||(l[v]||t.setAttribute(v,Z(u[v])),K(u[v],l[v]),ve(u[v],l[v]))}return e.matrixWorld.determinant()<0&&gn(t),t}}const ge=`
2
+
3
+ // A stack of uint32 indices can can store the indices for
4
+ // a perfectly balanced tree with a depth up to 31. Lower stack
5
+ // depth gets higher performance.
6
+ //
7
+ // However not all trees are balanced. Best value to set this to
8
+ // is the trees max depth.
9
+ #ifndef BVH_STACK_DEPTH
10
+ #define BVH_STACK_DEPTH 60
11
+ #endif
12
+
13
+ #ifndef INFINITY
14
+ #define INFINITY 1e20
15
+ #endif
16
+
17
+ // Utilities
18
+ uvec4 uTexelFetch1D( usampler2D tex, uint index ) {
19
+
20
+ uint width = uint( textureSize( tex, 0 ).x );
21
+ uvec2 uv;
22
+ uv.x = index % width;
23
+ uv.y = index / width;
24
+
25
+ return texelFetch( tex, ivec2( uv ), 0 );
26
+
27
+ }
28
+
29
+ ivec4 iTexelFetch1D( isampler2D tex, uint index ) {
30
+
31
+ uint width = uint( textureSize( tex, 0 ).x );
32
+ uvec2 uv;
33
+ uv.x = index % width;
34
+ uv.y = index / width;
35
+
36
+ return texelFetch( tex, ivec2( uv ), 0 );
37
+
38
+ }
39
+
40
+ vec4 texelFetch1D( sampler2D tex, uint index ) {
41
+
42
+ uint width = uint( textureSize( tex, 0 ).x );
43
+ uvec2 uv;
44
+ uv.x = index % width;
45
+ uv.y = index / width;
46
+
47
+ return texelFetch( tex, ivec2( uv ), 0 );
48
+
49
+ }
50
+
51
+ vec4 textureSampleBarycoord( sampler2D tex, vec3 barycoord, uvec3 faceIndices ) {
52
+
53
+ return
54
+ barycoord.x * texelFetch1D( tex, faceIndices.x ) +
55
+ barycoord.y * texelFetch1D( tex, faceIndices.y ) +
56
+ barycoord.z * texelFetch1D( tex, faceIndices.z );
57
+
58
+ }
59
+
60
+ void ndcToCameraRay(
61
+ vec2 coord, mat4 cameraWorld, mat4 invProjectionMatrix,
62
+ out vec3 rayOrigin, out vec3 rayDirection
63
+ ) {
64
+
65
+ // get camera look direction and near plane for camera clipping
66
+ vec4 lookDirection = cameraWorld * vec4( 0.0, 0.0, - 1.0, 0.0 );
67
+ vec4 nearVector = invProjectionMatrix * vec4( 0.0, 0.0, - 1.0, 1.0 );
68
+ float near = abs( nearVector.z / nearVector.w );
69
+
70
+ // get the camera direction and position from camera matrices
71
+ vec4 origin = cameraWorld * vec4( 0.0, 0.0, 0.0, 1.0 );
72
+ vec4 direction = invProjectionMatrix * vec4( coord, 0.5, 1.0 );
73
+ direction /= direction.w;
74
+ direction = cameraWorld * direction - origin;
75
+
76
+ // slide the origin along the ray until it sits at the near clip plane position
77
+ origin.xyz += direction.xyz * near / dot( direction, lookDirection );
78
+
79
+ rayOrigin = origin.xyz;
80
+ rayDirection = direction.xyz;
81
+
82
+ }
83
+ `,be=`
84
+
85
+ float dot2( vec3 v ) {
86
+
87
+ return dot( v, v );
88
+
89
+ }
90
+
91
+ // implementation from https://www.shadertoy.com/view/ttfGWl, though method 2 has been removed
92
+ // and is now available at this fork: https://www.shadertoy.com/view/WlB3zW
93
+ vec3 closestPointToTriangle( vec3 p, vec3 v0, vec3 v1, vec3 v2, out vec3 barycoord ) {
94
+
95
+ vec3 v10 = v1 - v0;
96
+ vec3 v21 = v2 - v1;
97
+ vec3 v02 = v0 - v2;
98
+
99
+ vec3 p0 = p - v0;
100
+ vec3 p1 = p - v1;
101
+ vec3 p2 = p - v2;
102
+
103
+ vec3 nor = cross( v10, v02 );
104
+
105
+ // method 2, in barycentric space
106
+ vec3 q = cross( nor, p0 );
107
+ float d = 1.0 / dot2( nor );
108
+ float u = d * dot( q, v02 );
109
+ float v = d * dot( q, v10 );
110
+ float w = 1.0 - u - v;
111
+
112
+ if( u < 0.0 ) {
113
+
114
+ w = clamp( dot( p2, v02 ) / dot2( v02 ), 0.0, 1.0 );
115
+ u = 0.0;
116
+ v = 1.0 - w;
117
+
118
+ } else if( v < 0.0 ) {
119
+
120
+ u = clamp( dot( p0, v10 ) / dot2( v10 ), 0.0, 1.0 );
121
+ v = 0.0;
122
+ w = 1.0 - u;
123
+
124
+ } else if( w < 0.0 ) {
125
+
126
+ v = clamp( dot( p1, v21 ) / dot2( v21 ), 0.0, 1.0 );
127
+ w = 0.0;
128
+ u = 1.0 - v;
129
+
130
+ }
131
+
132
+ // output the barycoord in v0, v1, v2 weight order
133
+ barycoord = vec3( w, u, v );
134
+ return u * v1 + v * v2 + w * v0;
135
+
136
+ }
137
+
138
+ float distanceToTriangles(
139
+ // geometry info and triangle range
140
+ sampler2D positionAttr, usampler2D indexAttr, uint offset, uint count,
141
+
142
+ // point and cut off range
143
+ vec3 point, float closestDistanceSquared,
144
+
145
+ // outputs
146
+ inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord, inout float side, inout vec3 outPoint
147
+ ) {
148
+
149
+ bool found = false;
150
+ vec3 localBarycoord;
151
+ for ( uint i = offset, l = offset + count; i < l; i ++ ) {
152
+
153
+ uvec3 indices = uTexelFetch1D( indexAttr, i ).xyz;
154
+ vec3 a = texelFetch1D( positionAttr, indices.x ).rgb;
155
+ vec3 b = texelFetch1D( positionAttr, indices.y ).rgb;
156
+ vec3 c = texelFetch1D( positionAttr, indices.z ).rgb;
157
+
158
+ // get the closest point and barycoord
159
+ vec3 closestPoint = closestPointToTriangle( point, a, b, c, localBarycoord );
160
+ vec3 delta = point - closestPoint;
161
+ float sqDist = dot2( delta );
162
+ if ( sqDist < closestDistanceSquared ) {
163
+
164
+ // set the output results
165
+ closestDistanceSquared = sqDist;
166
+ faceIndices = uvec4( indices.xyz, i );
167
+ faceNormal = normalize( cross( a - b, b - c ) );
168
+ barycoord = localBarycoord;
169
+ outPoint = closestPoint;
170
+ side = sign( dot( faceNormal, delta ) );
171
+
172
+ }
173
+
174
+ }
175
+
176
+ return closestDistanceSquared;
177
+
178
+ }
179
+
180
+ float distanceSqToBounds( vec3 point, vec3 boundsMin, vec3 boundsMax ) {
181
+
182
+ vec3 clampedPoint = clamp( point, boundsMin, boundsMax );
183
+ vec3 delta = point - clampedPoint;
184
+ return dot( delta, delta );
185
+
186
+ }
187
+
188
+ float distanceSqToBVHNodeBoundsPoint( vec3 point, sampler2D bvhBounds, uint currNodeIndex ) {
189
+
190
+ uint cni2 = currNodeIndex * 2u;
191
+ vec3 boundsMin = texelFetch1D( bvhBounds, cni2 ).xyz;
192
+ vec3 boundsMax = texelFetch1D( bvhBounds, cni2 + 1u ).xyz;
193
+ return distanceSqToBounds( point, boundsMin, boundsMax );
194
+
195
+ }
196
+
197
+ // use a macro to hide the fact that we need to expand the struct into separate fields
198
+ #define bvhClosestPointToPoint( bvh, point, maxDistance, faceIndices, faceNormal, barycoord, side, outPoint ) _bvhClosestPointToPoint( bvh.position, bvh.index, bvh.bvhBounds, bvh.bvhContents, point, maxDistance, faceIndices, faceNormal, barycoord, side, outPoint )
199
+
200
+ float _bvhClosestPointToPoint(
201
+ // bvh info
202
+ sampler2D bvh_position, usampler2D bvh_index, sampler2D bvh_bvhBounds, usampler2D bvh_bvhContents,
203
+
204
+ // point to check
205
+ vec3 point, float maxDistance,
206
+
207
+ // output variables
208
+ inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord,
209
+ inout float side, inout vec3 outPoint
210
+ ) {
211
+
212
+ // stack needs to be twice as long as the deepest tree we expect because
213
+ // we push both the left and right child onto the stack every traversal
214
+ int pointer = 0;
215
+ uint stack[ BVH_STACK_DEPTH ];
216
+ stack[ 0 ] = 0u;
217
+
218
+ float closestDistanceSquared = maxDistance * maxDistance;
219
+ bool found = false;
220
+ while ( pointer > - 1 && pointer < BVH_STACK_DEPTH ) {
221
+
222
+ uint currNodeIndex = stack[ pointer ];
223
+ pointer --;
224
+
225
+ // check if we intersect the current bounds
226
+ float boundsHitDistance = distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, currNodeIndex );
227
+ if ( boundsHitDistance > closestDistanceSquared ) {
228
+
229
+ continue;
230
+
231
+ }
232
+
233
+ uvec2 boundsInfo = uTexelFetch1D( bvh_bvhContents, currNodeIndex ).xy;
234
+ bool isLeaf = bool( boundsInfo.x & 0xffff0000u );
235
+ if ( isLeaf ) {
236
+
237
+ uint count = boundsInfo.x & 0x0000ffffu;
238
+ uint offset = boundsInfo.y;
239
+ closestDistanceSquared = distanceToTriangles(
240
+ bvh_position, bvh_index, offset, count, point, closestDistanceSquared,
241
+
242
+ // outputs
243
+ faceIndices, faceNormal, barycoord, side, outPoint
244
+ );
245
+
246
+ } else {
247
+
248
+ uint leftIndex = currNodeIndex + 1u;
249
+ uint splitAxis = boundsInfo.x & 0x0000ffffu;
250
+ uint rightIndex = currNodeIndex + boundsInfo.y;
251
+ bool leftToRight = distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, leftIndex ) < distanceSqToBVHNodeBoundsPoint( point, bvh_bvhBounds, rightIndex );//rayDirection[ splitAxis ] >= 0.0;
252
+ uint c1 = leftToRight ? leftIndex : rightIndex;
253
+ uint c2 = leftToRight ? rightIndex : leftIndex;
254
+
255
+ // set c2 in the stack so we traverse it later. We need to keep track of a pointer in
256
+ // the stack while we traverse. The second pointer added is the one that will be
257
+ // traversed first
258
+ pointer ++;
259
+ stack[ pointer ] = c2;
260
+ pointer ++;
261
+ stack[ pointer ] = c1;
262
+
263
+ }
264
+
265
+ }
266
+
267
+ return sqrt( closestDistanceSquared );
268
+
269
+ }
270
+ `,Ie=`
271
+
272
+ #ifndef TRI_INTERSECT_EPSILON
273
+ #define TRI_INTERSECT_EPSILON 1e-5
274
+ #endif
275
+
276
+ // Raycasting
277
+ bool intersectsBounds( vec3 rayOrigin, vec3 rayDirection, vec3 boundsMin, vec3 boundsMax, out float dist ) {
278
+
279
+ // https://www.reddit.com/r/opengl/comments/8ntzz5/fast_glsl_ray_box_intersection/
280
+ // https://tavianator.com/2011/ray_box.html
281
+ vec3 invDir = 1.0 / rayDirection;
282
+
283
+ // find intersection distances for each plane
284
+ vec3 tMinPlane = invDir * ( boundsMin - rayOrigin );
285
+ vec3 tMaxPlane = invDir * ( boundsMax - rayOrigin );
286
+
287
+ // get the min and max distances from each intersection
288
+ vec3 tMinHit = min( tMaxPlane, tMinPlane );
289
+ vec3 tMaxHit = max( tMaxPlane, tMinPlane );
290
+
291
+ // get the furthest hit distance
292
+ vec2 t = max( tMinHit.xx, tMinHit.yz );
293
+ float t0 = max( t.x, t.y );
294
+
295
+ // get the minimum hit distance
296
+ t = min( tMaxHit.xx, tMaxHit.yz );
297
+ float t1 = min( t.x, t.y );
298
+
299
+ // set distance to 0.0 if the ray starts inside the box
300
+ dist = max( t0, 0.0 );
301
+
302
+ return t1 >= dist;
303
+
304
+ }
305
+
306
+ bool intersectsTriangle(
307
+ vec3 rayOrigin, vec3 rayDirection, vec3 a, vec3 b, vec3 c,
308
+ out vec3 barycoord, out vec3 norm, out float dist, out float side
309
+ ) {
310
+
311
+ // https://stackoverflow.com/questions/42740765/intersection-between-line-and-triangle-in-3d
312
+ vec3 edge1 = b - a;
313
+ vec3 edge2 = c - a;
314
+ norm = cross( edge1, edge2 );
315
+
316
+ float det = - dot( rayDirection, norm );
317
+ float invdet = 1.0 / det;
318
+
319
+ vec3 AO = rayOrigin - a;
320
+ vec3 DAO = cross( AO, rayDirection );
321
+
322
+ vec4 uvt;
323
+ uvt.x = dot( edge2, DAO ) * invdet;
324
+ uvt.y = - dot( edge1, DAO ) * invdet;
325
+ uvt.z = dot( AO, norm ) * invdet;
326
+ uvt.w = 1.0 - uvt.x - uvt.y;
327
+
328
+ // set the hit information
329
+ barycoord = uvt.wxy; // arranged in A, B, C order
330
+ dist = uvt.z;
331
+ side = sign( det );
332
+ norm = side * normalize( norm );
333
+
334
+ // add an epsilon to avoid misses between triangles
335
+ uvt += vec4( TRI_INTERSECT_EPSILON );
336
+
337
+ return all( greaterThanEqual( uvt, vec4( 0.0 ) ) );
338
+
339
+ }
340
+
341
+ bool intersectTriangles(
342
+ // geometry info and triangle range
343
+ sampler2D positionAttr, usampler2D indexAttr, uint offset, uint count,
344
+
345
+ // ray
346
+ vec3 rayOrigin, vec3 rayDirection,
347
+
348
+ // outputs
349
+ inout float minDistance, inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord,
350
+ inout float side, inout float dist
351
+ ) {
352
+
353
+ bool found = false;
354
+ vec3 localBarycoord, localNormal;
355
+ float localDist, localSide;
356
+ for ( uint i = offset, l = offset + count; i < l; i ++ ) {
357
+
358
+ uvec3 indices = uTexelFetch1D( indexAttr, i ).xyz;
359
+ vec3 a = texelFetch1D( positionAttr, indices.x ).rgb;
360
+ vec3 b = texelFetch1D( positionAttr, indices.y ).rgb;
361
+ vec3 c = texelFetch1D( positionAttr, indices.z ).rgb;
362
+
363
+ if (
364
+ intersectsTriangle( rayOrigin, rayDirection, a, b, c, localBarycoord, localNormal, localDist, localSide )
365
+ && localDist < minDistance
366
+ ) {
367
+
368
+ found = true;
369
+ minDistance = localDist;
370
+
371
+ faceIndices = uvec4( indices.xyz, i );
372
+ faceNormal = localNormal;
373
+
374
+ side = localSide;
375
+ barycoord = localBarycoord;
376
+ dist = localDist;
377
+
378
+ }
379
+
380
+ }
381
+
382
+ return found;
383
+
384
+ }
385
+
386
+ bool intersectsBVHNodeBounds( vec3 rayOrigin, vec3 rayDirection, sampler2D bvhBounds, uint currNodeIndex, out float dist ) {
387
+
388
+ uint cni2 = currNodeIndex * 2u;
389
+ vec3 boundsMin = texelFetch1D( bvhBounds, cni2 ).xyz;
390
+ vec3 boundsMax = texelFetch1D( bvhBounds, cni2 + 1u ).xyz;
391
+ return intersectsBounds( rayOrigin, rayDirection, boundsMin, boundsMax, dist );
392
+
393
+ }
394
+
395
+ // use a macro to hide the fact that we need to expand the struct into separate fields
396
+ #define bvhIntersectFirstHit( bvh, rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist ) _bvhIntersectFirstHit( bvh.position, bvh.index, bvh.bvhBounds, bvh.bvhContents, rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist )
397
+
398
+ bool _bvhIntersectFirstHit(
399
+ // bvh info
400
+ sampler2D bvh_position, usampler2D bvh_index, sampler2D bvh_bvhBounds, usampler2D bvh_bvhContents,
401
+
402
+ // ray
403
+ vec3 rayOrigin, vec3 rayDirection,
404
+
405
+ // output variables split into separate variables due to output precision
406
+ inout uvec4 faceIndices, inout vec3 faceNormal, inout vec3 barycoord,
407
+ inout float side, inout float dist
408
+ ) {
409
+
410
+ // stack needs to be twice as long as the deepest tree we expect because
411
+ // we push both the left and right child onto the stack every traversal
412
+ int pointer = 0;
413
+ uint stack[ BVH_STACK_DEPTH ];
414
+ stack[ 0 ] = 0u;
415
+
416
+ float triangleDistance = INFINITY;
417
+ bool found = false;
418
+ while ( pointer > - 1 && pointer < BVH_STACK_DEPTH ) {
419
+
420
+ uint currNodeIndex = stack[ pointer ];
421
+ pointer --;
422
+
423
+ // check if we intersect the current bounds
424
+ float boundsHitDistance;
425
+ if (
426
+ ! intersectsBVHNodeBounds( rayOrigin, rayDirection, bvh_bvhBounds, currNodeIndex, boundsHitDistance )
427
+ || boundsHitDistance > triangleDistance
428
+ ) {
429
+
430
+ continue;
431
+
432
+ }
433
+
434
+ uvec2 boundsInfo = uTexelFetch1D( bvh_bvhContents, currNodeIndex ).xy;
435
+ bool isLeaf = bool( boundsInfo.x & 0xffff0000u );
436
+
437
+ if ( isLeaf ) {
438
+
439
+ uint count = boundsInfo.x & 0x0000ffffu;
440
+ uint offset = boundsInfo.y;
441
+
442
+ found = intersectTriangles(
443
+ bvh_position, bvh_index, offset, count,
444
+ rayOrigin, rayDirection, triangleDistance,
445
+ faceIndices, faceNormal, barycoord, side, dist
446
+ ) || found;
447
+
448
+ } else {
449
+
450
+ uint leftIndex = currNodeIndex + 1u;
451
+ uint splitAxis = boundsInfo.x & 0x0000ffffu;
452
+ uint rightIndex = currNodeIndex + boundsInfo.y;
453
+
454
+ bool leftToRight = rayDirection[ splitAxis ] >= 0.0;
455
+ uint c1 = leftToRight ? leftIndex : rightIndex;
456
+ uint c2 = leftToRight ? rightIndex : leftIndex;
457
+
458
+ // set c2 in the stack so we traverse it later. We need to keep track of a pointer in
459
+ // the stack while we traverse. The second pointer added is the one that will be
460
+ // traversed first
461
+ pointer ++;
462
+ stack[ pointer ] = c2;
463
+
464
+ pointer ++;
465
+ stack[ pointer ] = c1;
466
+
467
+ }
468
+
469
+ }
470
+
471
+ return found;
472
+
473
+ }
474
+ `,we=`
475
+ struct BVH {
476
+
477
+ usampler2D index;
478
+ sampler2D position;
479
+
480
+ sampler2D bvhBounds;
481
+ usampler2D bvhContents;
482
+
483
+ };
484
+ `,On=Object.freeze(Object.defineProperty({__proto__:null,bvh_distance_functions:be,bvh_ray_functions:Ie,bvh_struct_definitions:we,common_functions:ge},Symbol.toStringTag,{value:"Module"})),Wn=we,Ln=be,qn=`
485
+ ${ge}
486
+ ${Ie}
487
+ `;export{Xn as AVERAGE,Be as BVH,Ft as BVHHelper,On as BVHShaderGLSL,Yn as CENTER,$n as CONTAINED,Ae as ExtendedTriangle,hn as FloatVertexAttributeTexture,Pt as GeometryBVH,F as INTERSECTED,zn as IntVertexAttributeTexture,Bn as LineBVH,Ze as LineLoopBVH,Ke as LineSegmentsBVH,ht as MeshBVH,Tn as MeshBVHHelper,kn as MeshBVHUniformStruct,T as NOT_INTERSECTED,_n as ObjectBVH,jn as OrientedBox,An as PointsBVH,Kn as SAH,Ht as SKIP_GENERATION,Mn as SkinnedMeshBVH,Cn as StaticGeometryGenerator,fn as UIntVertexAttributeTexture,Vt as VertexAttributeTexture,Nn as acceleratedRaycast,Hn as computeBatchedBoundsTree,Fn as computeBoundsTree,Rn as disposeBatchedBoundsTree,Vn as disposeBoundsTree,Dn as estimateMemoryInBytes,Zn as generateIndirectBuffer,Sn as getBVHExtremes,En as getJSONStructure,Jn as getTriangleHitPointInfo,Ln as shaderDistanceFunction,qn as shaderIntersectFunction,Wn as shaderStructs,Pn as validateBounds};
@@ -1,4 +1,4 @@
1
- import{$ as c,a0 as oe,C as X,g,a1 as Vt,a2 as Be,h as U,a3 as R,a4 as y,a5 as _,a6 as nt,j as w,a7 as H,x as pe,a8 as F,a9 as Me,aa as Mt,k as K,ab as q,Z as Y,ac as ut,V as z,ad as Yt,X as ke,ae as It,af as Pt,ag as Wt,ah as Xt,ai as Kt,R as ae,w as $e,a as et,K as yt,aj as He,ak as ot,L as le,al as Ut,am as Ye,i as Rt,Y as bt,an as Zt,ao as Ue,ap as Re,aq as jt,ar as Jt,M as qt,as as ze,at as tt,au as Lt,av as $t,aw as er,ax as tr,ay as rr,az as ir,aA as Ft,aB as sr,aC as ft,N as ar}from"./three.module-D396a9Mn.js";/**
1
+ import{F as c,G as oe,v as X,g,H as Vt,I as Be,h as U,N as R,J as y,K as _,X as nt,r as w,Y as H,u as pe,Z as F,_ as Me,$ as Mt,a0 as K,a1 as q,a2 as Y,a3 as ut,V as z,a4 as Yt,a5 as ke,a6 as It,a7 as Pt,a8 as Wt,a9 as Xt,aa as Kt,ab as ae,t as $e,a as et,ac as yt,ad as He,ae as ot,L as le,af as Ut,ag as Ye,ah as Rt,ai as bt,aj as Zt,ak as Ue,al as Re,am as jt,an as Jt,M as qt,ao as ze,ap as tt,aq as Lt,ar as $t,as as er,at as tr,au as rr,av as ir,aw as Ft,ax as sr,ay as ft,az as ar}from"./three.module-IFn-4i31.js";/**
2
2
  * postprocessing v6.38.3 build Thu Feb 19 2026
3
3
  * https://github.com/pmndrs/postprocessing
4
4
  * Copyright 2015-2026 Raoul van Rüschen
@@ -0,0 +1 @@
1
+ import{PixiPrimitive as F,adoptNow as N}from"./pixi-primitive-D5igywJ_.js";import{resolveCanvasEntryAdapter as r}from"./pixi-react-root-factory-9lZ0Yz-n.js";import{pixiReactRootFactory as g}from"./pixi-react-root-factory-9lZ0Yz-n.js";import"./extend-CLG0ymiX.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-bQE2NA0D.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-BLo2LE8C.js";import"./index-Ckxb31Yz.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"./world-state-ZGDGY_Xl.js";import"./debug-registry-B3Cnne3x.js";import"./frame-selector-cache-cCeUbcjG.js";import"./game-input-seams-BC6xhZy3.js";import"./seeded-random-CN0scLZj.js";import"./render-seed-DF4JHy7P.js";export{F as PixiPrimitive,N as adoptNow,g as pixiReactRootFactory,r as resolveCanvasEntryAdapter};