@volter/game-editor 0.5.65

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 (653) hide show
  1. package/BUNDLED_NOTICES +11228 -0
  2. package/LICENSE +686 -0
  3. package/LICENSE-BLENDER +1409 -0
  4. package/LICENSE-MCP +21 -0
  5. package/NOTICE +21 -0
  6. package/catalog/entries/audio.json +14 -0
  7. package/catalog/entries/bake.json +36 -0
  8. package/catalog/entries/blender.json +17 -0
  9. package/catalog/entries/react-root.json +24 -0
  10. package/catalog/entries/reflections.json +29 -0
  11. package/catalog/entries/static-batch.json +25 -0
  12. package/catalog/project-source/LICENSE +37 -0
  13. package/catalog/project-source/src/contributions/bake.kind.ts +40 -0
  14. package/catalog/project-source/src/contributions/builder-document.tsx +65 -0
  15. package/catalog/project-source/src/contributions/builder-state.ts +27 -0
  16. package/catalog/project-source/src/contributions/builder-ui.tsx +61 -0
  17. package/catalog/project-source/src/contributions/module-source.ts +502 -0
  18. package/catalog/project-source/src/contributions/pages.finder.ts +61 -0
  19. package/catalog/project-source/src/lib/audio/sfx.ts +255 -0
  20. package/catalog/project-source/src/lib/bake/asset-seed.ts +128 -0
  21. package/catalog/project-source/src/lib/bake/bake-schema.ts +65 -0
  22. package/catalog/project-source/src/lib/bake/clip-layering.ts +203 -0
  23. package/catalog/project-source/src/lib/bake/gltf-bake.ts +657 -0
  24. package/catalog/project-source/src/lib/bake/mesh-slice.ts +157 -0
  25. package/catalog/project-source/src/lib/bake/node-image.ts +463 -0
  26. package/catalog/project-source/src/lib/bake/object3d-bake.ts +121 -0
  27. package/catalog/project-source/src/lib/bake/object3d-lifecycle.ts +15 -0
  28. package/catalog/project-source/src/lib/bake/object3d-source.ts +8 -0
  29. package/catalog/project-source/src/lib/bake/params.ts +75 -0
  30. package/catalog/project-source/src/lib/bake/rest-relative-animation.ts +217 -0
  31. package/catalog/project-source/src/lib/bake/use-model.ts +95 -0
  32. package/catalog/project-source/src/lib/react-root/index.ts +20 -0
  33. package/catalog/project-source/src/lib/react-root/react-root-adapter.tsx +57 -0
  34. package/catalog/project-source/src/lib/reflections/ReflectionProbe.tsx +201 -0
  35. package/catalog/project-source/src/lib/reflections/index.ts +19 -0
  36. package/catalog/project-source/src/lib/reflections/probe-controller.ts +75 -0
  37. package/catalog/project-source/src/lib/reflections/reflection-probe-registry.ts +402 -0
  38. package/catalog/project-source/src/lib/reflections/volume-reflection-material.ts +416 -0
  39. package/catalog/project-source/src/lib/static-batch/Frozen.tsx +91 -0
  40. package/catalog/project-source/src/lib/static-batch/freeze.ts +579 -0
  41. package/catalog/project-source/src/lib/static-batch/index.ts +44 -0
  42. package/catalog/project-source/src/lib/static-batch/mutation-watch.ts +149 -0
  43. package/catalog/project-source/src/lib/static-batch/shadow-cache.ts +171 -0
  44. package/catalog/project-source/src/tools/bake-module.tool.ts +139 -0
  45. package/catalog/project-source/src/tools/bake-preview.tool.ts +475 -0
  46. package/dist/.vite/manifest.json +8304 -0
  47. package/dist/assets/AssetBudgetPanel-J9--TZPU.js +23 -0
  48. package/dist/assets/AudioViewer-CR7333fe.js +1 -0
  49. package/dist/assets/BVHLoader-6bQIXhMX.js +1 -0
  50. package/dist/assets/BufferGeometryUtils-Nz37EVXf.js +1 -0
  51. package/dist/assets/CCDIKSolver-CD7vLpsK.js +1 -0
  52. package/dist/assets/CSS3DRenderer-CL7ABLVK.js +1 -0
  53. package/dist/assets/CanvasSceneViewport-Bpi6gVTC.js +1 -0
  54. package/dist/assets/ColladaLoader-aVOPIsCh.js +3 -0
  55. package/dist/assets/ColorInput-DQBNrW-K.js +1 -0
  56. package/dist/assets/ConvexGeometry-CAzXlPVG.js +1 -0
  57. package/dist/assets/ConvexHull-BINCESFp.js +1 -0
  58. package/dist/assets/CopyShader-BzTUYzf6.js +24 -0
  59. package/dist/assets/DecalGeometry-160KRdfg.js +1 -0
  60. package/dist/assets/EXRLoader-Cdans_oJ.js +1 -0
  61. package/dist/assets/EffectComposer-DQxfsXBZ.js +1 -0
  62. package/dist/assets/EntityModelDocument-Ccvw66N9.js +1 -0
  63. package/dist/assets/EnvironmentAssetDocument-Dg-Qq6O6.js +1 -0
  64. package/dist/assets/FBXLoader-B4MoUtAn.js +1 -0
  65. package/dist/assets/Fbo-Dz-Soul3.js +1 -0
  66. package/dist/assets/FontLoader-CvGoVI5a.js +2 -0
  67. package/dist/assets/GLTFExporter-HgrCle4L.js +1 -0
  68. package/dist/assets/GameplaySessionTimeline-B52W3FVZ.js +1 -0
  69. package/dist/assets/Gltf-UHVWKz65.js +2 -0
  70. package/dist/assets/HDRLoader-THU88oVD.js +5 -0
  71. package/dist/assets/ImageViewer-Tn7s_MnW.js +1 -0
  72. package/dist/assets/InspectorCanvasPreview-CEr_Kxna.js +1 -0
  73. package/dist/assets/InspectorObjectPreview-CVejvLRg.js +1 -0
  74. package/dist/assets/JsonAssetDocument-C7VGcLhu.js +3 -0
  75. package/dist/assets/LineSegments2-CsOpKSiM.js +370 -0
  76. package/dist/assets/MTLLoader-_Xzd4_0p.js +2 -0
  77. package/dist/assets/MarchingCubes-Bsp4wrzd.js +1 -0
  78. package/dist/assets/MeshBVH-BiDHDcu-.js +1 -0
  79. package/dist/assets/ModelAssetDocument-F5GACirk.js +1 -0
  80. package/dist/assets/NonThreeAuthoringBootstrap-C3woOMxX.js +1 -0
  81. package/dist/assets/OBJLoader-BhIC6Hwo.js +5 -0
  82. package/dist/assets/Object3DDocumentViewport-DB7T0NTl.js +2 -0
  83. package/dist/assets/Object3DPreview-DL8oi7Xs.js +2 -0
  84. package/dist/assets/OnlineAssetDetail-C6z9RvYK.js +2 -0
  85. package/dist/assets/OrbitControls-CM3bPray.js +1 -0
  86. package/dist/assets/OrbitControls-DLpayAaK.js +1 -0
  87. package/dist/assets/OrthographicCamera-bQozawrh.js +1 -0
  88. package/dist/assets/PLYLoader-DYQqs5Ik.js +2 -0
  89. package/dist/assets/PerspectiveCamera-CQ2lh01o.js +1 -0
  90. package/dist/assets/PlayBar-BR-Vg3Jb.js +2 -0
  91. package/dist/assets/RGBELoader-BgBcQv8j.js +1 -0
  92. package/dist/assets/RectAreaLightUniformsLib-CMMoWfll.js +1 -0
  93. package/dist/assets/RenderPass-DPrn-Uky.js +1 -0
  94. package/dist/assets/ResolutionPicker-C67vs1F3.js +1 -0
  95. package/dist/assets/RootSelectionOverlay-BZPlxmXU.js +1 -0
  96. package/dist/assets/RoundedBox-BDGBg6QZ.js +1 -0
  97. package/dist/assets/RoundedBoxGeometry-CyUuYPfW.js +1 -0
  98. package/dist/assets/STLLoader-Dyv3lsxY.js +1 -0
  99. package/dist/assets/SelectionBox-D_75KrNW.js +1 -0
  100. package/dist/assets/ShaderPass-QYRpPuFJ.js +1 -0
  101. package/dist/assets/ShadowEditor-DkImwu1Y.js +1 -0
  102. package/dist/assets/SimplifyModifier-C8ayvRzd.js +1 -0
  103. package/dist/assets/SkeletonUtils-Cps8GOC6.js +1 -0
  104. package/dist/assets/Sky-CQKCgYDs.js +154 -0
  105. package/dist/assets/SourceAssetViewer-2SWQoUut.js +12 -0
  106. package/dist/assets/StageHost-BN-IoTef.js +2 -0
  107. package/dist/assets/StoryPreviewMount-DjyxRCXu.js +1 -0
  108. package/dist/assets/TDSLoader-D_T8XJ81.js +1 -0
  109. package/dist/assets/TextGeometry-DOWAEUV0.js +1 -0
  110. package/dist/assets/ThreeBoardDocument-CVncZyIq.js +2 -0
  111. package/dist/assets/ThreeIsolationSceneContent-C8C8whSF.js +1 -0
  112. package/dist/assets/ToolObject3DPreview-BRoDWe4Q.js +1 -0
  113. package/dist/assets/TrackballControls-DfznuQTh.js +1 -0
  114. package/dist/assets/TransientHint-BB1fwrvK.js +1 -0
  115. package/dist/assets/UnrealBloomPass-CR-cS_K5.js +83 -0
  116. package/dist/assets/VideoViewer-C6kocgIU.js +1 -0
  117. package/dist/assets/_commonjsHelpers-D6-XlEtG.js +1 -0
  118. package/dist/assets/active-ingest-CT6jSGhr.js +3 -0
  119. package/dist/assets/adapter-surface-Y37Nzcyw.js +1 -0
  120. package/dist/assets/after-paint-CB4bz1-e.js +1 -0
  121. package/dist/assets/agx-base-srgb-BjWZJgrZ.lut +0 -0
  122. package/dist/assets/agx-look-medium-high-contrast-D5F_ob1L.lut +0 -0
  123. package/dist/assets/agx-look-punchy-dxsnycNs.lut +0 -0
  124. package/dist/assets/animation-clock-CnjZqfJp.js +1 -0
  125. package/dist/assets/asset-budget-asset.menu-Di3KiQCd.js +1 -0
  126. package/dist/assets/asset-budget.action-DCzzcuTh.js +1 -0
  127. package/dist/assets/asset-budget.document-BWU8wnVW.js +1 -0
  128. package/dist/assets/asset-budget.menu-BGZpT_31.js +1 -0
  129. package/dist/assets/asset-editor-persistence-BBaONOJt.js +1 -0
  130. package/dist/assets/asset-loaders-BOy5Ss8k.js +2 -0
  131. package/dist/assets/asset-parse-error-BHMwBRU3.js +3 -0
  132. package/dist/assets/assets-BuSoGjBX.js +1 -0
  133. package/dist/assets/audio-meter-CyiToeUW.js +1 -0
  134. package/dist/assets/audio-unlock.service-CfUgUQVy.js +1 -0
  135. package/dist/assets/audio.utility-C6K6jem8.js +1 -0
  136. package/dist/assets/authoring-CgcOFhGS.js +1 -0
  137. package/dist/assets/autoplay.service-BZBGNSvt.js +1 -0
  138. package/dist/assets/axe-LkjAB6Lv.js +30 -0
  139. package/dist/assets/babylon-authoring-adapter-CL02gWDn.js +1 -0
  140. package/dist/assets/binding-Bmxqznjk.js +1 -0
  141. package/dist/assets/binding-identity-DcTpbvyg.js +1 -0
  142. package/dist/assets/binding-resolver-Dsh-6Vor.js +2 -0
  143. package/dist/assets/blender-emscripten-engine-9ZIRYNhe.js +2 -0
  144. package/dist/assets/blender-node-editor.document-iIDkB9sI.js +1 -0
  145. package/dist/assets/blender-properties-tab-C5CyPydi.js +3 -0
  146. package/dist/assets/blender-runtime-host-BpBwGv7r.js +4 -0
  147. package/dist/assets/blender-runtime-skin-DyQ9B6CR.js +7140 -0
  148. package/dist/assets/blender-runtime.document-lIYhhPtv.js +8 -0
  149. package/dist/assets/blender-timeline.document-77fx96N7.js +1 -0
  150. package/dist/assets/blender-uv-editor.document-fsT7B4gV.js +1 -0
  151. package/dist/assets/blender-version.status-o6dBm3n6.js +1 -0
  152. package/dist/assets/blender-wali-engine-wTOcrOMC.js +2 -0
  153. package/dist/assets/blender.command-BtJeWk-A.js +1 -0
  154. package/dist/assets/blender.keymap-GAQgeklK.js +1 -0
  155. package/dist/assets/blender.status-ujwGU6dU.js +1 -0
  156. package/dist/assets/blender.style-Dcem5f_T.js +1 -0
  157. package/dist/assets/board-guides-DziKSTss.js +1 -0
  158. package/dist/assets/body-marks-h_xDxiDE.js +1 -0
  159. package/dist/assets/bridge.command-o5gDNEwa.js +3 -0
  160. package/dist/assets/browserAll-DeWblVez.js +1 -0
  161. package/dist/assets/build-profiles.document-kW8iw8Xj.js +2 -0
  162. package/dist/assets/build-progress.status-BNRLytg2.js +1 -0
  163. package/dist/assets/build-session-C_sg3CEn.js +9 -0
  164. package/dist/assets/build.action-lYjTLb7K.js +1 -0
  165. package/dist/assets/build.command-DIGgUPU_.js +1 -0
  166. package/dist/assets/build.header-CKajx5U3.js +1 -0
  167. package/dist/assets/build.menu-BdU0QXny.js +1 -0
  168. package/dist/assets/build.service-CbBAyeu3.js +1 -0
  169. package/dist/assets/bus-mixer-CGfWDP3C.js +1 -0
  170. package/dist/assets/camera-KEsKvOL7.js +1 -0
  171. package/dist/assets/camera-runtime.inspector-B7unX4g1.js +1 -0
  172. package/dist/assets/canvas-entry-runtime-SfBxaR9M.js +2 -0
  173. package/dist/assets/capability-coverage-Czas4C18.js +7 -0
  174. package/dist/assets/chrome-trace-YZHMz60-.js +1 -0
  175. package/dist/assets/client-DNXj_opT.js +25 -0
  176. package/dist/assets/clip-planes-CnAI6DZn.js +1 -0
  177. package/dist/assets/collaboration-presence-DLoZ7EA3.js +1 -0
  178. package/dist/assets/collider-Bw0mXlsW.js +1 -0
  179. package/dist/assets/collider-dimensions-9xoFADXN.js +1 -0
  180. package/dist/assets/collision-system-DpNUJRJ3.js +1 -0
  181. package/dist/assets/command-results-CUQD49AB.js +1 -0
  182. package/dist/assets/component-board-registry-DrIa2csL.js +1 -0
  183. package/dist/assets/component-board.service-DCwcUssB.js +2 -0
  184. package/dist/assets/component-board.service-DidCyM4O.js +2 -0
  185. package/dist/assets/component-verbs.command-7xzfjGMZ.js +1 -0
  186. package/dist/assets/component-verbs.service-Bv9jId3q.js +1 -0
  187. package/dist/assets/config-CEZk921y.js +6 -0
  188. package/dist/assets/configurations-DTBMdaTL.js +1 -0
  189. package/dist/assets/connection.status-BifnQdOs.js +1 -0
  190. package/dist/assets/console-bridge-CHcb-xk5.js +1 -0
  191. package/dist/assets/constraint-De8f1Uiq.js +1 -0
  192. package/dist/assets/constraints.inspector-B9U9Yj-u.js +1 -0
  193. package/dist/assets/countdown-timer-CUm74dom.js +1 -0
  194. package/dist/assets/coverage.service-VTX5Mcsx.js +3 -0
  195. package/dist/assets/crash-null-boundary-v3a0uEgw.js +1 -0
  196. package/dist/assets/create-runtime-CVCc1BDx.js +1 -0
  197. package/dist/assets/curve-7Q79VgU4.js +1 -0
  198. package/dist/assets/data-asset-4hjS642k.js +5 -0
  199. package/dist/assets/data-check-core-CQEjuFyt.js +1 -0
  200. package/dist/assets/data-ref-CQI28C0D.js +1 -0
  201. package/dist/assets/debug-bridge-CCohG-d-.js +1 -0
  202. package/dist/assets/debug-registry-Dgvitx8M.js +1 -0
  203. package/dist/assets/defaults-DKiBJCPN.js +1 -0
  204. package/dist/assets/deferred-commands-CEMmvL47.js +1 -0
  205. package/dist/assets/deferred-ingest-play-DCJi_Pgu.js +2 -0
  206. package/dist/assets/design-time-layers-wYgOTgni.js +1 -0
  207. package/dist/assets/design-time-mount-registry-DUpXCg1U.js +1 -0
  208. package/dist/assets/design-time-mount.service-BzY21e1F.js +2 -0
  209. package/dist/assets/design-time-react-mount-DM9WLrF2.js +1 -0
  210. package/dist/assets/dev-build-gDYrq68M.js +1 -0
  211. package/dist/assets/directional-shadow-fit-BVkOKAv2.js +1 -0
  212. package/dist/assets/document-preview-three-Kbg2GCLm.js +1 -0
  213. package/dist/assets/dom-authoring-adapter-CY8C7f4T.js +1 -0
  214. package/dist/assets/draco3d-BBUTcNkz.js +1 -0
  215. package/dist/assets/draco_decoder-DsQ12WqX.wasm +0 -0
  216. package/dist/assets/draco_encoder-2Tcju8Ns.wasm +0 -0
  217. package/dist/assets/edit-mode-audio.service-Bzetwd5B.js +1 -0
  218. package/dist/assets/edit-mode-authoring-B47TfLqu.js +1 -0
  219. package/dist/assets/edit-mode-networking.service-YCX6RRb_.js +1 -0
  220. package/dist/assets/editor-api-BoJIcyZG.js +1 -0
  221. package/dist/assets/editor-port-C_FeBdeV.js +1 -0
  222. package/dist/assets/editor-presentation-activity-C7SNSmTd.js +1 -0
  223. package/dist/assets/entry-adjudication-Cq8Yeb74.js +1 -0
  224. package/dist/assets/environment-capture-7himRh2L.js +1 -0
  225. package/dist/assets/esbuild-BHljloGq.wasm +0 -0
  226. package/dist/assets/events-156d8d12.esm-ErOhDXXB.js +36 -0
  227. package/dist/assets/extend-B-eOccUm.js +36 -0
  228. package/dist/assets/extends-CF3RwP-h.js +1 -0
  229. package/dist/assets/eyedropper-session-bjPXnfeX.js +1 -0
  230. package/dist/assets/fflate.module-DPuTF8aG.js +6 -0
  231. package/dist/assets/filmic-srgb-Ct35FIH6.lut +0 -0
  232. package/dist/assets/first-party-audio-system-DxnGJOER.js +1 -0
  233. package/dist/assets/first-party-navigation-system-CL5Bquub.js +1 -0
  234. package/dist/assets/fork-menu-BoVyw2Wu.js +1 -0
  235. package/dist/assets/frame-debugger-store-D1Mf_5up.js +1 -0
  236. package/dist/assets/frame-delta-D2nsw_Ht.js +1 -0
  237. package/dist/assets/frame-pacing-D5acoOzO.js +1 -0
  238. package/dist/assets/frame-selector-cache-cCeUbcjG.js +1 -0
  239. package/dist/assets/game-DHOZVb-7.js +1 -0
  240. package/dist/assets/game-contract-seams-a5YXejOu.js +1 -0
  241. package/dist/assets/game-css-scope-transform-Eng4wS8E.js +33 -0
  242. package/dist/assets/game-document.service-DbRfx2V0.js +1 -0
  243. package/dist/assets/game-eval.command-D-7Dxbj_.js +2 -0
  244. package/dist/assets/game-input-seams-CIQdetRw.js +1 -0
  245. package/dist/assets/game-loop-CZvXlY00.js +1 -0
  246. package/dist/assets/game-module-access-B2mFxv-i.js +1 -0
  247. package/dist/assets/game.layout-CBASrvQu.js +1 -0
  248. package/dist/assets/gameplay-export-BoKXm51x.js +1 -0
  249. package/dist/assets/gameplay-replay-e5umMlXv.js +1 -0
  250. package/dist/assets/gameplay-rng-trap-CTNhm-UW.js +3 -0
  251. package/dist/assets/gameplay.command-DxcVYX6F.js +1 -0
  252. package/dist/assets/generation-DhwCUHPf.css +1 -0
  253. package/dist/assets/generation-jobs-BQrXbGp_.js +1 -0
  254. package/dist/assets/generation.service-CDIgObuw.js +1 -0
  255. package/dist/assets/generations-DzUogZsM.js +1 -0
  256. package/dist/assets/generations.status-CgOUBCum.js +1 -0
  257. package/dist/assets/hierarchy-marks-BLPfSIym.js +1 -0
  258. package/dist/assets/host-pointer-DbGSCjE9.js +1 -0
  259. package/dist/assets/hosted-asset-materialization-CiIvWkGU.js +2 -0
  260. package/dist/assets/ibl-override-material-BlmCxFKq.js +6 -0
  261. package/dist/assets/index-96FBF1Oj.js +1 -0
  262. package/dist/assets/index-BAWkB0dv.js +1 -0
  263. package/dist/assets/index-BDnS2b6S.js +1 -0
  264. package/dist/assets/index-BHp07vN0.js +2 -0
  265. package/dist/assets/index-BMxv2MNV.js +1 -0
  266. package/dist/assets/index-BP6wv2A0.js +5 -0
  267. package/dist/assets/index-BcCBqgM_.js +952 -0
  268. package/dist/assets/index-Bge9JUr6.js +1 -0
  269. package/dist/assets/index-BjTCPEQ7.js +134 -0
  270. package/dist/assets/index-BncK9THk.js +1 -0
  271. package/dist/assets/index-CJbYy-CF.js +3 -0
  272. package/dist/assets/index-CVCb_ImQ.js +1 -0
  273. package/dist/assets/index-CZd9o7Lu.js +1 -0
  274. package/dist/assets/index-CanA16PU.js +2 -0
  275. package/dist/assets/index-CinJrH5C.js +9 -0
  276. package/dist/assets/index-CtzuWnCS.js +1 -0
  277. package/dist/assets/index-D2fNXpHa.css +1 -0
  278. package/dist/assets/index-DUpHH6JR.js +3120 -0
  279. package/dist/assets/index-DUqP1RMl.js +1 -0
  280. package/dist/assets/index-D_NuPfjr.js +9 -0
  281. package/dist/assets/index-Da9JhEvW.js +25 -0
  282. package/dist/assets/index-DgapqSPi.js +7 -0
  283. package/dist/assets/index-FUuS4qwW.js +562 -0
  284. package/dist/assets/index-GIL7oGEO.js +4894 -0
  285. package/dist/assets/index-IEjydI9d.js +1 -0
  286. package/dist/assets/index-OrYXPk3Z.js +487 -0
  287. package/dist/assets/index-V1R-e5Bd.js +1 -0
  288. package/dist/assets/index-bQE2NA0D.js +1 -0
  289. package/dist/assets/index-gHZae-lw.js +13 -0
  290. package/dist/assets/index-mjWQmGhM.js +1 -0
  291. package/dist/assets/index-nmcBqr7Y.js +1 -0
  292. package/dist/assets/inference-diagnostics-Dhmtfbq_.js +1 -0
  293. package/dist/assets/ingest-BbYMC2vQ.js +1 -0
  294. package/dist/assets/ingest-boot-viewport-D5rI_Kk_.js +1 -0
  295. package/dist/assets/ingest-siblings-Bop2kqVl.js +1 -0
  296. package/dist/assets/ingest-source-persistence-C_6Hiyra.js +1 -0
  297. package/dist/assets/ingest.service-BTDnQfM1.js +1 -0
  298. package/dist/assets/input-manager-DH_hGW6d.js +1 -0
  299. package/dist/assets/input-router-BNQvtIqw.js +1 -0
  300. package/dist/assets/inspect-BZfi3mmo.js +1 -0
  301. package/dist/assets/inspection-CObLhnrs.js +1 -0
  302. package/dist/assets/instance-fork-actions-D3sRzS3K.js +1 -0
  303. package/dist/assets/instances.command-D6UkZNO8.js +1 -0
  304. package/dist/assets/instruments-CKR02Y8I.js +1 -0
  305. package/dist/assets/json-history-resource-BbxllWfV.js +1 -0
  306. package/dist/assets/jsx-runtime-DPjLkJKQ.js +9 -0
  307. package/dist/assets/light-D-_wsKTq.js +1 -0
  308. package/dist/assets/light-camera-factory-CWbbe9gI.js +1 -0
  309. package/dist/assets/lil-gui.module.min-BF55BEwA.js +10 -0
  310. package/dist/assets/live-behaviors-Bxq49Maz.js +1 -0
  311. package/dist/assets/live-gesture-lock-DJbrjOqf.js +1 -0
  312. package/dist/assets/loader-CaF_I7Yt.js +1 -0
  313. package/dist/assets/logger-Dqis-7W1.js +1 -0
  314. package/dist/assets/loop-gate-report-N52EWFGD.js +1 -0
  315. package/dist/assets/matcap-texture-CVfalpWT.js +1 -0
  316. package/dist/assets/material-CpAdjDxn.js +1 -0
  317. package/dist/assets/material-factory-Bz6h__6g.js +1 -0
  318. package/dist/assets/mesh-B3WPtNKO.js +1 -0
  319. package/dist/assets/mesh-shadow-CZnXrw_l.js +1 -0
  320. package/dist/assets/mikktspace.module-DO88SLib.js +1 -0
  321. package/dist/assets/model-asset-sections-CFvvihfx.css +1 -0
  322. package/dist/assets/model-asset-sections.service-CHhFS3ZX.js +1 -0
  323. package/dist/assets/model.layout-BJUEQYUI.js +1 -0
  324. package/dist/assets/models.finder-G2jQgIRu.js +1 -0
  325. package/dist/assets/module-mode-DVBLT9d-.js +2 -0
  326. package/dist/assets/mount-canvas-ingest-root-DDuAWf_C.js +2 -0
  327. package/dist/assets/mount-dom-ingest-root-D_EiBgpn.js +2 -0
  328. package/dist/assets/mount-game-6t9cKNo4.js +1 -0
  329. package/dist/assets/mount-ingest-root-glv2SSWf.js +2 -0
  330. package/dist/assets/mount-manifest-CGVxhmAw.js +1 -0
  331. package/dist/assets/mount-readiness-Ds0HvvLH.js +4 -0
  332. package/dist/assets/mount-three-ingest-root-hrUt9VVU.js +1 -0
  333. package/dist/assets/mounted-authoring-Dmg5xmhP.js +1 -0
  334. package/dist/assets/mounted-story-viewport-source-DjP6RA9U.js +1 -0
  335. package/dist/assets/native-debug-module-CWicoSGD.js +1 -0
  336. package/dist/assets/native-entry-surface-BE8LJNdu.js +1 -0
  337. package/dist/assets/navigation-CIiCx-SM.js +1 -0
  338. package/dist/assets/navmesh-workflow-store-Cmnm57TB.js +1 -0
  339. package/dist/assets/navmesh.menu-CAKiH8PW.js +1 -0
  340. package/dist/assets/navmesh.service-jgDWlgj1.js +1 -0
  341. package/dist/assets/network.utility-CEu5nHf7.js +1 -0
  342. package/dist/assets/object-marks-DwvIEBOK.js +1 -0
  343. package/dist/assets/object3d-authoring-subject-CH5sI2oP.js +1 -0
  344. package/dist/assets/output-DK8waum9.js +195 -0
  345. package/dist/assets/particles-Y626p22p.js +1 -0
  346. package/dist/assets/particles-factory-DnLOHXT8.js +1 -0
  347. package/dist/assets/pasteboard-materialize-BqSS4QzV.js +20 -0
  348. package/dist/assets/pasteboard.action-DU3UHtJG.js +2 -0
  349. package/dist/assets/performance-profiler-D_Jey87L.js +1 -0
  350. package/dist/assets/physics-registry-B2Jkp8e6.js +1 -0
  351. package/dist/assets/physics-registry-CUB9cT9p.js +1 -0
  352. package/dist/assets/pixi-authoring-adapter-CjibysC3.js +1 -0
  353. package/dist/assets/pixi-live-write-target-DuWydlWb.js +1 -0
  354. package/dist/assets/pixi-primitive-DlWbUPN9.js +1 -0
  355. package/dist/assets/pixi-react-root-factory-DYsznYRQ.js +1 -0
  356. package/dist/assets/pixi-story-model-DNkfnWUV.js +1 -0
  357. package/dist/assets/pixi-transform-channels-VjdohT11.js +1 -0
  358. package/dist/assets/play-mode-BFU2PCkG.js +22 -0
  359. package/dist/assets/play.command-BpqqLqkq.js +2 -0
  360. package/dist/assets/playtest-BXIL1JEF.js +1 -0
  361. package/dist/assets/pose-guard-6Osb2cFu.js +1 -0
  362. package/dist/assets/presentation-BPP5pXeQ.js +1 -0
  363. package/dist/assets/product-DFhyARJj.js +1 -0
  364. package/dist/assets/profiler.action-CaXJDp3t.js +1 -0
  365. package/dist/assets/profiler.menu-BIMF6Bi4.js +1 -0
  366. package/dist/assets/profiler.utility-BExw9wBO.js +1 -0
  367. package/dist/assets/project-authoring-session-Bnt6icLr.js +2 -0
  368. package/dist/assets/project-provenance-BoP3nrle.js +1 -0
  369. package/dist/assets/prompt-labels-DSMdM2_B.js +1 -0
  370. package/dist/assets/properties-bone-constraints.inspector-ByT6p7S-.js +1 -0
  371. package/dist/assets/properties-bone.inspector-z4qJwKO5.js +1 -0
  372. package/dist/assets/properties-collection.inspector-D0_3ijWU.js +1 -0
  373. package/dist/assets/properties-constraints.inspector-CESzjuls.js +1 -0
  374. package/dist/assets/properties-data.inspector-hG8Wgyzb.js +1 -0
  375. package/dist/assets/properties-material.inspector-CzY0JCQ6.js +1 -0
  376. package/dist/assets/properties-modifiers.inspector-3dDhwf7g.js +1 -0
  377. package/dist/assets/properties-object.inspector-CiarfxkT.js +1 -0
  378. package/dist/assets/properties-output.inspector-DKJxmKSD.js +1 -0
  379. package/dist/assets/properties-particles.inspector-CCEdYWGm.js +1 -0
  380. package/dist/assets/properties-physics.inspector-B2c0KUyA.js +1 -0
  381. package/dist/assets/properties-render.inspector-Bcm0HLRW.js +1 -0
  382. package/dist/assets/properties-scene.inspector-PIM_eTb_.js +1 -0
  383. package/dist/assets/properties-texture.inspector-CgFlnyr8.js +1 -0
  384. package/dist/assets/properties-view-layer.inspector-DGjF_Aqo.js +1 -0
  385. package/dist/assets/properties-world.inspector-CrMvaRvB.js +1 -0
  386. package/dist/assets/r3f-design-session-D-4yyDO9.js +2 -0
  387. package/dist/assets/r3f-physics-binding-BBo8oma9.js +1 -0
  388. package/dist/assets/r3f-root-factory-z9llD1OU.js +1 -0
  389. package/dist/assets/r3f-source-authoring-adapter-w6Bc60K-.js +13 -0
  390. package/dist/assets/rapier-physics-adapter-CaZqWLu0.js +1 -0
  391. package/dist/assets/rapier-physics-bridge-CMoeVo3Y.js +1 -0
  392. package/dist/assets/react-18-By2b4xR9.js +1 -0
  393. package/dist/assets/react-inspector.service-B_neRnSK.js +1 -0
  394. package/dist/assets/react-root-CEz5NTck.js +1 -0
  395. package/dist/assets/react-story-board-BDDwiE2H.js +1 -0
  396. package/dist/assets/react-three-fiber.esm-CycrbDlA.js +1 -0
  397. package/dist/assets/react-three-rapier.esm-CEfKpvxT.js +1 -0
  398. package/dist/assets/react-world-authoring-adapter-DmrwM3py.js +1 -0
  399. package/dist/assets/realm-services-CobQsq_X.js +1 -0
  400. package/dist/assets/rebind-controller-Dtq19Vb3.js +1 -0
  401. package/dist/assets/recast-navigation.wasm-compat-Dsoa_MD-.js +1 -0
  402. package/dist/assets/reflection-probe-Don-M3Fj.js +1 -0
  403. package/dist/assets/reflection-probe-capture.inspector-CmFUoJCx.js +1 -0
  404. package/dist/assets/register-render-vitals-BiZk29b2.js +1 -0
  405. package/dist/assets/registry-02YZjMNp.js +1 -0
  406. package/dist/assets/relative-path-guard-GiM7Lsz8.js +1 -0
  407. package/dist/assets/render-audio-control-vMRlePWb.js +1 -0
  408. package/dist/assets/render-batch-system-0vq7p0VC.js +1 -0
  409. package/dist/assets/render-census-BrQX_CXv.js +1 -0
  410. package/dist/assets/render-control-Df3yTiyr.js +1 -0
  411. package/dist/assets/render-env-D2IV2x5k.js +1 -0
  412. package/dist/assets/render-features-CPQ_e568.js +1 -0
  413. package/dist/assets/render-seed-DF4JHy7P.js +1 -0
  414. package/dist/assets/render-settings-Bw4W9SYF.js +1 -0
  415. package/dist/assets/render-vitals-BZ5HtvMi.js +1 -0
  416. package/dist/assets/renderer-config-BqG4O8i9.js +1 -0
  417. package/dist/assets/resolve-three-SZE_WWUM.js +702 -0
  418. package/dist/assets/root-seam-contract-Z0VWX3Bk.js +1 -0
  419. package/dist/assets/rrweb-Cd2ifIRP.js +142 -0
  420. package/dist/assets/run-ticks-settled-C4ksViyA.js +1 -0
  421. package/dist/assets/runtime-inspection-l2iFQSsg.js +1 -0
  422. package/dist/assets/scene-capture-BQKzU0NT.js +1 -0
  423. package/dist/assets/scene-capture-CGYF-Viw.js +1 -0
  424. package/dist/assets/scene-document.service-qkDjUrlP.js +2 -0
  425. package/dist/assets/scene-framing-Cat0GtyJ.js +1 -0
  426. package/dist/assets/scene-index-B6BZOHMk.js +1 -0
  427. package/dist/assets/scene-query-C7_N-TpI.js +1 -0
  428. package/dist/assets/schema-kl9-2B_J.js +1 -0
  429. package/dist/assets/sculpt.layout-zJF55yCR.js +1 -0
  430. package/dist/assets/seeded-random-i3mtgBKZ.js +1 -0
  431. package/dist/assets/session-CZ5JPg-z.js +4877 -0
  432. package/dist/assets/setup-audio-S8GQF91f.js +1 -0
  433. package/dist/assets/setup-particles-GCXlnkj_.js +1 -0
  434. package/dist/assets/setup-physics-BeZ7-LKD.js +1 -0
  435. package/dist/assets/setup-renderer-DVXaSGin.js +1587 -0
  436. package/dist/assets/shading.layout-DULYZV6M.js +1 -0
  437. package/dist/assets/sim-clock-CLflx7kg.js +1 -0
  438. package/dist/assets/sky-precompute-worker-ChN7J87v.js +1 -0
  439. package/dist/assets/soft-particle-depth-DGvfQDi1.js +1 -0
  440. package/dist/assets/source-object3d-authoring-adapter-B-L6Ha6f.js +1 -0
  441. package/dist/assets/source-persistence-backend-C-aR-B_Y.js +1 -0
  442. package/dist/assets/spark-renderer-lifecycle-ynWESJcv.js +1 -0
  443. package/dist/assets/spark.module-4pXQoz5d.js +12120 -0
  444. package/dist/assets/stage-invalidation-DBg3C3Ta.js +1 -0
  445. package/dist/assets/stage-keyboard-n-5kKH-m.js +1 -0
  446. package/dist/assets/stage-overlay-set-B9zp2sLB.js +1 -0
  447. package/dist/assets/stage-presence-markers-DiGI6A45.js +1 -0
  448. package/dist/assets/standard-viewport-dressing-CzjAe_0A.js +7 -0
  449. package/dist/assets/state-bridge-DLP1jLRW.js +1 -0
  450. package/dist/assets/state-watch.action-BOvQR2qt.js +1 -0
  451. package/dist/assets/state-watch.menu-CNLvDeeY.js +1 -0
  452. package/dist/assets/state-watch.utility-Bg1tTTQU.js +1 -0
  453. package/dist/assets/static-batch-advisor-B13QEH7d.js +1 -0
  454. package/dist/assets/stats.module-BL02l9NC.js +1 -0
  455. package/dist/assets/story-arg-descriptors-Ek86ExX7.js +1 -0
  456. package/dist/assets/story-capture-_gC8dXV-.js +1 -0
  457. package/dist/assets/story-documents--TDLaPeL.js +3 -0
  458. package/dist/assets/story-documents.service-BiS_YbNQ.js +1 -0
  459. package/dist/assets/story-documents.service-CxOPYJ2j.js +1 -0
  460. package/dist/assets/story-media-presence-BHzk2IV5.js +1 -0
  461. package/dist/assets/story-mount-turn-DFRTj5hi.js +1 -0
  462. package/dist/assets/story-pixi-preview-BUrOJZXS.js +1 -0
  463. package/dist/assets/story-presentation-j2AVN-mK.js +1 -0
  464. package/dist/assets/story-three-preview-BHEDZzcl.js +2 -0
  465. package/dist/assets/structural-ids-Dc-7rEwi.js +1 -0
  466. package/dist/assets/structural-signature-0w-i_ats.js +1 -0
  467. package/dist/assets/surface-content-Dg9Kkazf.js +1 -0
  468. package/dist/assets/surface-state-DaxyruCj.js +3 -0
  469. package/dist/assets/system-adapters-rIC8FSGP.js +1 -0
  470. package/dist/assets/system-runner-DkOjxEBt.js +1 -0
  471. package/dist/assets/system-slot-E2mEdiih.js +1 -0
  472. package/dist/assets/team-playtest.service-DqOinFVA.js +1 -0
  473. package/dist/assets/texture.layout-DASpHVht.js +1 -0
  474. package/dist/assets/three-CDSueJyJ.js +1 -0
  475. package/dist/assets/three-authoring-adapter-CmSQ3Vui.js +1 -0
  476. package/dist/assets/three-authoring.service-iuHLwtf1.js +2 -0
  477. package/dist/assets/three-ingest-runtime-QzDYk6tU.js +1 -0
  478. package/dist/assets/three-projection-core-BmKMZ-nf.js +1 -0
  479. package/dist/assets/three-viewport-presentation-QBQpSdMh.js +1 -0
  480. package/dist/assets/three.module-D396a9Mn.js +3840 -0
  481. package/dist/assets/three.quarks.esm-B1C61jGo.js +1039 -0
  482. package/dist/assets/tools-B_NJsk05.js +1 -0
  483. package/dist/assets/transform-writer-BhBBTx33.js +1 -0
  484. package/dist/assets/transport.header-B-6HQlU2.js +1 -0
  485. package/dist/assets/trigger-volume-BNK2XzPL.js +1 -0
  486. package/dist/assets/tuples-CIQ4Bn1U.js +1 -0
  487. package/dist/assets/tween.module-DciWpAG6.js +1 -0
  488. package/dist/assets/ui-board-document-Bwtt--xp.js +2 -0
  489. package/dist/assets/unexported-game-trap-Dm1JYKHy.js +2 -0
  490. package/dist/assets/unmanaged-root-detector-B8CpbkSN.js +2 -0
  491. package/dist/assets/upstream-pin-BdgRH6ID.js +1 -0
  492. package/dist/assets/use-data-Dzq-MytE.js +1 -0
  493. package/dist/assets/use-live-actor-state-DErbWQWF.js +1 -0
  494. package/dist/assets/use-selection-DbR73-xd.js +1 -0
  495. package/dist/assets/user-data-BB2Of6Ht.js +1 -0
  496. package/dist/assets/utility-view-state-BHypxA33.js +1 -0
  497. package/dist/assets/uv-editing.layout-BEKHxmHw.js +1 -0
  498. package/dist/assets/vgai-shared-fontawesome-CU65D4Ij.js +1 -0
  499. package/dist/assets/vgai-shared-jsx-dev-runtime-DFDKL7fx.js +1 -0
  500. package/dist/assets/vgai-shared-jsx-runtime-DIqBpTut.js +1 -0
  501. package/dist/assets/vgai-shared-react-BT7rMc2H.js +1 -0
  502. package/dist/assets/vgai-shared-react-dom-DFajMqMT.js +1 -0
  503. package/dist/assets/vgai-shared-react-dom-client-S0ozfl6_.js +1 -0
  504. package/dist/assets/vgai-shared-three-Bc5PvpLM.js +1 -0
  505. package/dist/assets/viewport-pick-context-DkawXbEi.js +1 -0
  506. package/dist/assets/viewport-root-presentation-CWsE56K6.js +1 -0
  507. package/dist/assets/viewport-shading-BuA88e_A.js +1 -0
  508. package/dist/assets/viewport-shading-boundary-B_-_gABg.js +82 -0
  509. package/dist/assets/viewport-surface-status-B3om4Kcf.js +1 -0
  510. package/dist/assets/vision_bundle-DX0dWqEa.js +15 -0
  511. package/dist/assets/voxel-surface-DtcsSWRL.js +1 -0
  512. package/dist/assets/wav-encode-D31zWF6O.js +1 -0
  513. package/dist/assets/webgl-frame-capture-FlF9zQmW.js +1 -0
  514. package/dist/assets/webgl-gpu-timer-D3YX7RaD.js +1 -0
  515. package/dist/assets/webworkerAll-CM2o_dnz.js +1 -0
  516. package/dist/assets/worker-UrMcrc5_.js +2 -0
  517. package/dist/assets/world-documents-147tiFZe.js +1 -0
  518. package/dist/assets/world-root-stage-binding-vwTrtBz6.js +1 -0
  519. package/dist/assets/world-state-BWG-IcOd.js +1 -0
  520. package/dist/assets/writer-B-KovzkA.js +5 -0
  521. package/dist/assets/xstate-animation-binding-Brd0NST6.js +1 -0
  522. package/dist/assets/xstate-animation-meta-Q3u9zh_m.js +1 -0
  523. package/dist/assets/xstate-behavior.action-B8UluFBK.js +1 -0
  524. package/dist/assets/xstate-behavior.document-CKAsE45I.js +1 -0
  525. package/dist/assets/xstate-behavior.inspector-vJJyuifc.js +1 -0
  526. package/dist/assets/xstate-behavior.menu-BXbPICIh.js +1 -0
  527. package/dist/assets/xstate-inspection-BsZv8LS9.js +1 -0
  528. package/dist/vgai-shared-react.json +10 -0
  529. package/dist/vgai-shared-three.json +3 -0
  530. package/dist-node/cli.js +9320 -0
  531. package/dist-node/create.js +3239 -0
  532. package/package.json +91 -0
  533. package/presets.mjs +2 -0
  534. package/src/contributions.d.ts +4 -0
  535. package/src/index.ts +38 -0
  536. package/starter/cube.blend +0 -0
  537. package/starter/cube.py +81 -0
  538. package/template/.agents/references/project-manual.md +341 -0
  539. package/template/.agents/skills/editor/SKILL.md +53 -0
  540. package/template/.agents/skills/editor/agents/openai.yaml +4 -0
  541. package/template/.agents/skills/editor/references/editor-control.md +363 -0
  542. package/template/.agents/skills/vgai-3d-models/SKILL.md +64 -0
  543. package/template/.agents/skills/vgai-ingest-existing-game/SKILL.md +112 -0
  544. package/template/.agents/skills/vgai-threejs-authoring/SKILL.md +347 -0
  545. package/template/.agents/skills/vgai-threejs-authoring/agents/openai.yaml +4 -0
  546. package/template/.agents/skills/vgai-threejs-authoring/references/helper-catalog.md +65 -0
  547. package/template/.claude/skills/editor/SKILL.md +53 -0
  548. package/template/.claude/skills/editor/agents/openai.yaml +4 -0
  549. package/template/.claude/skills/editor/references/editor-control.md +363 -0
  550. package/template/.claude/skills/vgai-3d-models/SKILL.md +64 -0
  551. package/template/.claude/skills/vgai-ingest-existing-game/SKILL.md +112 -0
  552. package/template/.claude/skills/vgai-threejs-authoring/SKILL.md +347 -0
  553. package/template/.claude/skills/vgai-threejs-authoring/agents/openai.yaml +4 -0
  554. package/template/.claude/skills/vgai-threejs-authoring/references/helper-catalog.md +65 -0
  555. package/template/.github/copilot-instructions.md +6 -0
  556. package/template/.github/skills/editor/SKILL.md +53 -0
  557. package/template/.github/skills/editor/agents/openai.yaml +4 -0
  558. package/template/.github/skills/editor/references/editor-control.md +363 -0
  559. package/template/.github/skills/vgai-3d-models/SKILL.md +64 -0
  560. package/template/.github/skills/vgai-ingest-existing-game/SKILL.md +112 -0
  561. package/template/.github/skills/vgai-threejs-authoring/SKILL.md +347 -0
  562. package/template/.github/skills/vgai-threejs-authoring/agents/openai.yaml +4 -0
  563. package/template/.github/skills/vgai-threejs-authoring/references/helper-catalog.md +65 -0
  564. package/template/.mcp.json +12 -0
  565. package/template/.vgai/assets.json +1 -0
  566. package/template/.vgai/provenance.json +4 -0
  567. package/template/.volter/tracker/validation/.preset.base.mts +178 -0
  568. package/template/.volter/tracker/validation/preset.mts +186 -0
  569. package/template/.volter/tracker/visualizer/.extension.base.tsx +14 -0
  570. package/template/.volter/tracker/visualizer/extension.tsx +14 -0
  571. package/template/.volter/tracker-config.json +17 -0
  572. package/template/AGENTS.md +176 -0
  573. package/template/CLAUDE.md +1 -0
  574. package/template/DEVLOG.md +20 -0
  575. package/template/IDIOMS.md +118 -0
  576. package/template/LICENSE +30 -0
  577. package/template/README.md +83 -0
  578. package/template/ROADMAP.md +20 -0
  579. package/template/asset-manifest.json +3 -0
  580. package/template/check-idioms.ts +1533 -0
  581. package/template/index.html +18 -0
  582. package/template/manifest-entry-modules-plugin.ts +53 -0
  583. package/template/package.json +62 -0
  584. package/template/public/jsm/libs/basis/basis_transcoder.js +19 -0
  585. package/template/public/jsm/libs/basis/basis_transcoder.wasm +0 -0
  586. package/template/public/jsm/libs/draco/gltf/draco_decoder.js +33 -0
  587. package/template/public/jsm/libs/draco/gltf/draco_decoder.wasm +0 -0
  588. package/template/public/jsm/libs/draco/gltf/draco_encoder.js +33 -0
  589. package/template/public/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -0
  590. package/template/public/shaders/daylight-sky.frag.glsl +15 -0
  591. package/template/public/shaders/daylight-sky.vert.glsl +7 -0
  592. package/template/scripts/patch-drei-stats-gl.mjs +35 -0
  593. package/template/server/colyseus-setup.ts +111 -0
  594. package/template/server/loopback.ts +76 -0
  595. package/template/server/main.ts +78 -0
  596. package/template/server/rooms/arena-room.ts +488 -0
  597. package/template/server/rooms/game-room.ts +274 -0
  598. package/template/server/rooms.ts +15 -0
  599. package/template/server/tsconfig.json +19 -0
  600. package/template/src/bot/QaTester.tsx +35 -0
  601. package/template/src/bot/behaviors.ts +203 -0
  602. package/template/src/bot/bot-station.ts +192 -0
  603. package/template/src/bot/tester-run.ts +238 -0
  604. package/template/src/bot/tester-station.ts +193 -0
  605. package/template/src/components/environment/DaylightSky.tsx +54 -0
  606. package/template/src/components/environment/Ground.tsx +129 -0
  607. package/template/src/components/environment/SceneAtmosphere.tsx +14 -0
  608. package/template/src/components/environment/SoftGroundShadow.tsx +62 -0
  609. package/template/src/components/environment/SunShadowFit.tsx +141 -0
  610. package/template/src/contributions/README.md +98 -0
  611. package/template/src/contributions/analytics.analytics.tsx +26 -0
  612. package/template/src/contributions/data.document.tsx +35 -0
  613. package/template/src/contributions/pages.finder.ts +61 -0
  614. package/template/src/contributions/tester.inspector.tsx +64 -0
  615. package/template/src/contributions/use-game-modules.ts +80 -0
  616. package/template/src/data/README.md +17 -0
  617. package/template/src/input.ts +97 -0
  618. package/template/src/lib/audio/capability.json +4 -0
  619. package/template/src/lib/audio/sfx.ts +255 -0
  620. package/template/src/lib/react-root/capability.json +4 -0
  621. package/template/src/lib/react-root/index.ts +20 -0
  622. package/template/src/lib/react-root/react-root-adapter.tsx +57 -0
  623. package/template/src/lib/reflections/ReflectionProbe.tsx +201 -0
  624. package/template/src/lib/reflections/capability.json +4 -0
  625. package/template/src/lib/reflections/index.ts +19 -0
  626. package/template/src/lib/reflections/probe-controller.ts +75 -0
  627. package/template/src/lib/reflections/reflection-probe-registry.ts +402 -0
  628. package/template/src/lib/reflections/volume-reflection-material.ts +416 -0
  629. package/template/src/lib/static-batch/Frozen.tsx +91 -0
  630. package/template/src/lib/static-batch/capability.json +4 -0
  631. package/template/src/lib/static-batch/freeze.ts +579 -0
  632. package/template/src/lib/static-batch/index.ts +44 -0
  633. package/template/src/lib/static-batch/mutation-watch.ts +149 -0
  634. package/template/src/lib/static-batch/shadow-cache.ts +171 -0
  635. package/template/src/main.ts +63 -0
  636. package/template/src/manifest-entry-modules.d.ts +3 -0
  637. package/template/src/prefabs/HeroBox.stories.tsx +23 -0
  638. package/template/src/prefabs/HeroBox.tsx +35 -0
  639. package/template/src/scenes/MainScene.tsx +77 -0
  640. package/template/src/world.tsx +87 -0
  641. package/template/tsconfig.json +35 -0
  642. package/template/tsconfig.node.json +32 -0
  643. package/template/tsconfig.tools.json +22 -0
  644. package/template/validate-asset-content.ts +27 -0
  645. package/template/validate-assets.ts +60 -0
  646. package/template/validate-manifest.ts +55 -0
  647. package/template/vgai.adapter.ts +76 -0
  648. package/template/vgai.project.json +24 -0
  649. package/template/vite.config.ts +247 -0
  650. package/template-dotfiles/gitignore +63 -0
  651. package/workbench/src/media/game-cover.css +83 -0
  652. package/workbench/src/product.contribution.ts +188 -0
  653. package/workbench/src/vgaiGameSkew.ts +276 -0
@@ -0,0 +1 @@
1
+ import{getUserData as r,deleteUserData as n,setUserData as c}from"./user-data-BB2Of6Ht.js";import"./object-marks-DwvIEBOK.js";function a(t){const e=r(t,"reflectionProbe");if(!e||typeof e!="object")return null;const o=e;return o.config&&typeof o.recapture=="function"&&typeof o.getSnapshot=="function"?e:null}function l(t,e){c(t,"reflectionProbe",e)}function u(t){n(t,"reflectionProbe")}export{u as clearReflectionProbeMark,a as reflectionProbeOf,l as setReflectionProbeMark};
@@ -0,0 +1 @@
1
+ import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{aY as p,eE as d,eF as m,eG as a,a9 as s,a4 as f}from"./index-GIL7oGEO.js";import{reflectionProbeOf as h}from"./reflection-probe-Don-M3Fj.js";import{r as x}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./three.module-D396a9Mn.js";import"./user-data-BB2Of6Ht.js";import"./object-marks-DwvIEBOK.js";function b(r,o){return r?.kind==="reflection-probe"}const j={idle:"Not captured",queued:"Capture queued",capturing:"Capturing…",ready:"Ready",error:"Capture failed"},g={status:"idle",lastCapturedAt:null};function C({adapter:r,nodeId:o}){const i=p(),c=o?i.objectMap.get(o)??r.hierarchy.object3D?.(o):null,t=h(c),n=x.useSyncExternalStore(l=>t?.subscribe(l)??(()=>{}),()=>t?.getSnapshot()??g);if(!t)return null;const u=t.config.captureMode==="on-change"?"On change":t.config.captureMode==="realtime"?"Realtime":"Manual";return e.jsxs(e.Fragment,{children:[n.status==="error"&&n.message?e.jsx(d,{tone:"error",children:n.message}):null,e.jsxs(m,{children:[e.jsx(a,{label:"Status",children:e.jsx(s,{tone:n.status==="error"?"danger":n.status==="ready"?"success":"muted",children:j[n.status]})}),e.jsx(a,{label:"Update",children:e.jsx(s,{tone:"muted",children:u})}),e.jsx(a,{label:"Cubemap",children:e.jsx(s,{tone:"muted",children:`${t.config.resolution} × ${t.config.resolution}`})}),e.jsx(a,{label:"Capture",children:e.jsx(f,{size:"compact",disabled:n.status==="capturing",onClick:()=>t.recapture(),children:"Recapture"})})]})]})}const G="selection.inspector",L="Capture",N="camera-rotate",U=500;function Y(r,o){return b(r)}function _({adapter:r,nodeId:o}){return e.jsx(C,{adapter:r,nodeId:o})}export{_ as default,N as icon,Y as match,U as order,G as point,L as title};
@@ -0,0 +1 @@
1
+ import{sceneCensus as d,findByName as g,structuralBatchScan as w,meshFamilies as b}from"./render-census-BrQX_CXv.js";import{createRenderVitals as v}from"./render-vitals-BZ5HtvMi.js";import{ADVISOR_SETTLE_FRAMES as y,decideStaticBatchAdvisory as S,warnStaticBatchAdvisory as A}from"./static-batch-advisor-B13QEH7d.js";import{J as a,u as f,L as C}from"./index-GIL7oGEO.js";import{g as D}from"./three.module-D396a9Mn.js";import"./structural-signature-0w-i_ats.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";const l="render.vitals",N="render.census",_="render.families",M="render.toggle",x="render.dpr",I="render.dpr: this world has no WebGL renderer (headless mount), so there is no pixel ratio to change. The other render.* commands still work — they read the scene graph.";function q(E){const{registry:c,worldId:h,profiler:u,scene:t,renderer:s}=E;if(c.adapter.providers().some(e=>e.name===l))return console.warn(`[render-vitals] world "${h}" did not get the ${l} door: another live world already owns it (the names are fixed, so the first three root to mount wins). Its draws still fold into the readings — the profiler is game-scoped — but render.census/families/toggle address the owning root. If this world IS the current one, the previous mount was torn down AFTER this one seeded and its strip() took the door with it.`),null;const i=v(u),o=c.forRoot(h);o.registerStateProvider(l,()=>i.read()),o.registerCommand(N,{description:"Visible meshes and triangles per subtree — the address book behind the draw-call reading. Pass a subtree name (as listed by a previous census) to drill into it.",args:a([f().optional()]),locus:"client"},e=>{if(e===void 0||e==="")return d(t);const r=g(t,e);if(!r)throw new Error(`render.census: no node named "${e}" in this world. Run render.census with no argument to list the addressable subtrees.`);return d(r,e)}),o.registerCommand(_,{description:"Meshes grouped by shared (geometry, material) identity, largest group first — the instancing shortlist for a draw-call diet. `structural` is the same scan keyed by VALUE instead of object identity: what would collapse under a <Frozen> wrapper (vgai add static-batch) even when every mesh carries its own inline material.",args:a([]),locus:"client"},()=>({...b(t),structural:w(t)})),o.registerCommand(M,{description:"Show/hide a named subtree (as listed by render.census) and read render.vitals again — the difference is what that subtree costs.",args:a([f()]),locus:"client"},e=>{const r=g(t,e);if(!r)throw new Error(`render.toggle: no node named "${e}" in this world. Run render.census to list the addressable subtrees.`);return r.visible=!r.visible,{name:e,visible:r.visible}}),o.registerCommand(x,{description:"Set the renderer pixel ratio (retina default is ~2) to probe GPU fill cost — render CPU that does not move when the drawing buffer shrinks was never fill-bound.",args:a([C().positive().max(8)]),locus:"client"},e=>{if(!s)throw new Error(I);const r=s.getSize(new D);return s.setPixelRatio(e),s.setSize(r.x,r.y,!1),{pixelRatio:s.getPixelRatio(),drawingBuffer:{width:s.domElement.width,height:s.domElement.height}}});let n=null,m=!1;const R=()=>{if(m||i.read().presentedFrames<y)return;m=!0,n?.(),n=null;const e=S({drawCalls:i.read().drawCalls,census:d(t),structural:w(t)});e&&A(e)};n=u.subscribe(R);let p=!1;return{vitals:i,dispose(){p||(p=!0,n?.(),n=null,i.dispose())}}}export{N as RENDER_CENSUS_COMMAND,x as RENDER_DPR_COMMAND,_ as RENDER_FAMILIES_COMMAND,M as RENDER_TOGGLE_COMMAND,l as RENDER_VITALS_PROVIDER,q as registerRenderVitals};
@@ -0,0 +1 @@
1
+ import{ai as g,aj as d}from"./index-GIL7oGEO.js";const f=Object.assign({}),$=Object.assign({}),c=Object.assign({}),o="vgai.adapter.ts",l="packages/editor/src/ingest/games";function b(t){return c[u(t,o)]?`${l}/${t}/${o}`:null}async function M(t){const e=c[u(t,o)];return e?await e():null}const h=Object.assign({}),p=/^\.\/games\/([^/]+)\/vgai\.project\.json$/;function u(t,e){return`./games/${t}/${e}`}function m(t){const e=p.exec(t);if(!e?.[1])throw new Error(`ingest registry: unexpected manifest glob key "${t}"`);return e[1]}function E(t,e){const a=g(e,{configurationKinds:"defer"}),n=d(a);if(n.length!==1)throw new Error(`ingest registry: "${t}/vgai.project.json" must declare exactly one root (found ${n.length}).`);const s=n[0];if(s.adapter.type!=="ingest")throw new Error(`ingest registry: "${t}/vgai.project.json"'s root must be an { ingest } root (found adapter identity "${s.adapter.identity}").`);const i=s;return{folderId:t,manifest:a,root:i,surface:i.adapter.surface}}let r=null;function j(){return r||(r=Object.entries(f).map(([t,e])=>E(m(t),e)).sort((t,e)=>t.folderId.localeCompare(e.folderId))),r}function R(t){return j().filter(e=>e.surface===t)}export{b as a,R as b,h as c,$ as e,u as g,M as i};
@@ -0,0 +1 @@
1
+ function e(t){return!t||t.trim()===""?"empty":t.includes("\0")?"nul":t.startsWith("/")||t.startsWith("\\")||/^[a-zA-Z]:[\\/]/.test(t)?"absolute":t.split(/[\\/]/).includes("..")?"traversal":null}function r(t){return e(t)===null}export{r as i,e as r};
@@ -0,0 +1 @@
1
+ import{encodeWav16 as f,pcmStats as p}from"./wav-encode-D31zWF6O.js";import{isRenderModeRequested as l}from"./render-control-Df3yTiyr.js";import"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";import"./render-seed-DF4JHy7P.js";function E(e){const s=e.location??window.location;if(!l(s))return;const n=e.target??window,{render:r}=e,o={hasAudio:!0,async renderAudio(u,c){const t=await r(u,c),a=[];for(let i=0;i<t.buffer.numberOfChannels;i++)a.push(t.buffer.getChannelData(i));const d=f({channelData:a,sampleRate:t.buffer.sampleRate}),m=p(a);return{wavBase64:h(d),sampleRate:t.buffer.sampleRate,channels:t.buffer.numberOfChannels,durationSeconds:t.durationSeconds,rms:m.rms,peak:m.peak}}};return n.__vgaiRenderAudio=o,o}function h(e){let n="";for(let r=0;r<e.length;r+=32768){const o=e.subarray(r,r+32768);n+=String.fromCharCode(...o)}return btoa(n)}export{E as installRenderAudioHarness};
@@ -0,0 +1 @@
1
+ import{getUserData as h}from"./user-data-BB2Of6Ht.js";import{staticBatchSignature as l}from"./structural-signature-0w-i_ats.js";import{aX as p,a as d,bt as m}from"./three.module-D396a9Mn.js";import"./object-marks-DwvIEBOK.js";const g=l;function M(c){let t=c;for(;t;){if(!t.visible)return!1;t=t.parent}return!0}function b(c,t){const e=c;return!e.isMesh||e.isInstancedMesh||e.isSkinnedMesh||e.isBatchedMesh||!M(e)||!e.geometry||!e.material||Array.isArray(e.material)||e.material.transparent?!1:t!==e.parent}function w(c){let t=c;for(;t;){if(h(t,"_animMixer"))return!1;t=t.parent}return!0}class S{constructor(t,e){this.scene=t,this.settings=e,this.root.name="RenderBatchSystem",this.root.matrixAutoUpdate=!1}root=new p;groups=[];dynamicGroups=[];parentOf=new WeakMap;membersOf=new WeakMap;build(){this.teardown(),this.scene.add(this.root),this.scene.updateMatrixWorld(!0);const t=new Map;this.scene.traverse(e=>{if(!b(e,this.root))return;const r=g(e),s=t.get(r)??[];s.push(e),t.set(r,s)});for(const e of t.values()){const r=[],s=[];for(const i of e)(w(i)?r:s).push(i);r.length>=2&&this.makeGroup(r,!1),s.length>=2&&this.makeGroup(s,!0)}}makeGroup(t,e){const r=this.settings.frustumCulling!==!1,s=new d,i=t[0],n=new m(i.geometry,i.material,t.length);n.frustumCulled=r&&!e,n.castShadow=i.castShadow,n.receiveShadow=i.receiveShadow;const u=e?new Float32Array(t.length*16):void 0;for(let f=0;f<t.length;f++){const o=t[f];s.copy(o.matrixWorld),n.setMatrixAt(f,s),e?(u.set(s.elements,f*16),o.visible=!1):o.parent&&(this.parentOf.set(o,o.parent),o.parent.remove(o))}n.instanceMatrix.needsUpdate=!0,r&&!e&&n.computeBoundingSphere(),this.membersOf.set(n,t),this.root.add(n);const a=u?{instanced:n,sources:t,dynamic:e,cache:u}:{instanced:n,sources:t,dynamic:e};this.groups.push(a),e&&this.dynamicGroups.push(a)}update(){if(this.dynamicGroups.length!==0){this.scene.updateMatrixWorld(!1);for(const t of this.dynamicGroups){const e=t.cache;let r=!1;for(let s=0;s<t.sources.length;s++){const i=t.sources[s].matrixWorld.elements,n=s*16;let u=!1;for(let a=0;a<16;a++)if(i[a]!==e[n+a]){u=!0;break}u&&(t.instanced.setMatrixAt(s,t.sources[s].matrixWorld),e.set(i,n),r=!0)}r&&(t.instanced.instanceMatrix.needsUpdate=!0)}}}raycast(t){const e=t.intersectObject(this.root,!0);for(const r of e){const s=this.membersOf.get(r.object);if(s&&r.instanceId!=null)return s[r.instanceId]??null}return null}get drawCalls(){return this.groups.length}get batchedCount(){return this.groups.reduce((t,e)=>t+e.sources.length,0)}teardown(){for(const t of this.groups){for(const e of t.sources)if(t.dynamic)e.visible=!0;else{const r=this.parentOf.get(e);r&&r.add(e)}t.instanced.dispose(),this.root.remove(t.instanced)}this.groups=[],this.dynamicGroups=[],this.root.parent&&this.root.parent.remove(this.root)}}export{S as RenderBatchSystem};
@@ -0,0 +1 @@
1
+ import{staticBatchSkipReason as x,materialMergeSignature as C}from"./structural-signature-0w-i_ats.js";const I=40,w=30;function $(t){const s=t;return s.isMesh||s.isSkinnedMesh?s:null}function d(t){const s=t.geometry;if(!s)return 0;const n=s.getIndex?.()??null,o=s.getAttribute?.("position")??null,u=n?n.count:o?.count??0,r=t.isInstancedMesh?t.count??1:1;return Math.round(u/3)*r}function b(t,s){if(!t.visible)return;const n=$(t);n&&s(n);for(const o of t.children)b(o,s)}const g="(unnamed)";function A(t,s="(scene)"){const n=new Map;let o=0,u=0;if(!t.visible)return{root:s,totalMeshes:0,totalTriangles:0,subtreeCount:0,subtrees:[]};const r=(i,l)=>{b(l,h=>{const f=d(h),e=n.get(i)??{meshes:0,triangles:0};e.meshes+=1,e.triangles+=f,n.set(i,e),o+=1,u+=f})},c=$(t);if(c){const i=d(c);n.set(t.name||s,{meshes:1,triangles:i}),o+=1,u+=i}for(const i of t.children)r(i.name||g,i);const m=[...n.entries()].map(([i,l])=>({name:i,meshes:l.meshes,triangles:l.triangles})).sort((i,l)=>l.triangles-i.triangles||l.meshes-i.meshes);return{root:s,totalMeshes:o,totalTriangles:u,subtreeCount:m.length,subtrees:m.slice(0,I)}}function k(t,s){if(t.name===s)return t;for(const n of t.children){const o=k(n,s);if(o)return o}return null}function N(t){const s=new Map;let n=0;b(t,r=>{if(r.isInstancedMesh)return;const c=r.geometry;if(!c)return;const m=r.material,i=Array.isArray(m)?m.map(f=>f.uuid).join("+"):m?.uuid??"none",l=`${c.uuid}/${i}`;n+=1;const h=s.get(l);if(h){h.meshes+=1;return}s.set(l,{meshes:1,triangles:d(r),example:`${r.parent?.name||g}/${r.name||g}`})});const o=[...s.values()].sort((r,c)=>c.meshes-r.meshes),u=o.slice(0,w);return{plainMeshes:n,familyCount:o.length,top:u,meshesInTop:u.reduce((r,c)=>r+c.meshes,0)}}function _(t){const s=new Map,n={},o=[];let u=0;const r=(e,a)=>{if(!e.visible)return!1;const p=x(e);if(p==="opted-out")return n["opted-out"]=(n["opted-out"]??0)+1,!1;if(p===null){const y=e,v=y.material,M=`${C(v)}|${e.castShadow?1:0}${e.receiveShadow?1:0}`;u+=1,o.push({key:M,subtree:a});const S=s.get(M);S?S.meshes+=1:s.set(M,{meshes:1,triangles:d(y),example:`${e.parent?.name||g}/${e.name||g}`})}else p!=="not-a-mesh"&&(n[p]=(n[p]??0)+1);return!0},c=(e,a)=>{if(r(e,a))for(const p of e.children)c(p,a)};if(r(t,t.name||g))for(const e of t.children)c(e,e.name||g);const m=new Set([...s.entries()].filter(([,e])=>e.meshes>=2).map(([e])=>e)),i=new Map;let l=0;for(const e of o)m.has(e.key)&&(l+=1,i.set(e.subtree,(i.get(e.subtree)??0)+1));const h=[...s.values()].sort((e,a)=>a.meshes-e.meshes),f=h.slice(0,w);return{plainMeshes:u,familyCount:h.length,top:f,meshesInTop:f.reduce((e,a)=>e+a.meshes,0),collapsible:l,skipped:n,bySubtree:[...i.entries()].map(([e,a])=>({name:e,collapsible:a})).sort((e,a)=>a.collapsible-e.collapsible).slice(0,I)}}export{I as CENSUS_ROW_LIMIT,w as FAMILY_ROW_LIMIT,k as findByName,N as meshFamilies,A as sceneCensus,_ as structuralBatchScan};
@@ -0,0 +1 @@
1
+ import{c2 as R}from"./index-GIL7oGEO.js";import{RENDER_MODE_QUERY_PARAM as v}from"./render-seed-DF4JHy7P.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";function F(e){return new URLSearchParams(e.search).get(v)==="1"}const x=[R.PRE_RENDER,R.RENDER];async function P(e){const t=D(e);for(const n of x){e.systems.runPhase(n,0);for(const o of t)o.frame.runPhase(n,0)}await L()}function D(e){const t=[];for(const n of e.roots){if(n.mounted.drivesOwnLoop){y(n.id,"drives its own loop — renderOnce() cannot frame-gate it");continue}if(!n.frame){y(n.id,`(kind: ${n.kind}) has no phase hooks — renderOnce() cannot drive it (opaque/foreign mount with no frame-gated entry point)`);continue}t.push({id:n.id,frame:n.frame})}return t}function y(e,t){console.warn(`[render-control] world "${e}" ${t}.`)}function O(e){const t=[];for(const n of e.roots){if(n.mounted.drivesOwnLoop){t.push(`world "${n.id}" drives its own loop — cannot be frame-gated for deterministic capture (the policy is to FAIL LOUDLY, or be excluded only by an explicit declared policy).`);continue}n.frame||t.push(`world "${n.id}" (kind: ${n.kind}) has no phase hooks — an opaque/foreign mount with no frame-gated entry point cannot participate in deterministic capture.`)}return t}function b(e){let t=0,n=0;const o=[...e.children??[]];for(;o.length>0;){const i=o.pop();t++,i.userData?.entityId!==void 0&&n++,i.children&&o.push(...i.children)}return{nodes:t,entities:n}}function S(e){const t=[];for(const n of e.roots)n.kind==="three"?t.push({id:n.id,kind:n.kind,...b(n.threeScene())}):n.kind==="canvas"&&n.mounted.kind==="canvas"&&n.mounted.substrate.name==="pixi"&&t.push({id:n.id,kind:n.kind,...b(n.canvasRoot())});return t}function E(){return new Promise(e=>{requestAnimationFrame(()=>e())})}async function L(){await E(),await E()}async function a(e){if(!e)return{status:"not-applicable"};try{return await e(),{status:"ready"}}catch(t){return{status:"error",detail:t instanceof Error?t.message:String(t)}}}async function A(){if(typeof document>"u"||!document.fonts)return{status:"not-applicable"};try{return await document.fonts.ready,{status:"ready"}}catch(e){return{status:"error",detail:e instanceof Error?e.message:String(e)}}}async function _(e){const[t,n,o,i,c,d]=await Promise.all([a(e.assets),a(e.shaders),A(),a(e.sequences),a(e.tone),a(e.scene)]);return{assets:t,shaders:n,fonts:o,sequences:i,tone:c,scene:d}}function C(e){const t=e.location??window.location;if(!F(t))return;const{game:n,clock:o,readiness:i={}}=e,c=e.target??window,d=e.frameAdvancers??[],u=e.simulateFixedDt??1/60,g=e.excludedFromDeterminism??[],f={seek(s){o.seek(s)},seekFrame(s,r){o.seekFrame(s,r)},advanceFrame(s){for(const r of d)r(s)},renderOnce(){return P(n)},ready(){return _(i)},simulateSubsteps(s){for(let r=0;r<s;r++)n.runFrame(u)},excludedFromDeterminism(){return[...g,...O(n)]},simulateFixedDt(){return u},perfSample(s){const r=n.profiler,k=r.enabled;r.enabled=!0,r.clear();const m=[];try{for(let l=0;l<s;l++){n.runFrame(u);const p=r.getSnapshot(),h=p.frames.at(-1);m.push({cpuMs:h?.cpuMs??0,phases:Object.fromEntries((h?.phases??[]).map(w=>[w.name,w.ms])),render:{...p.render}})}}finally{r.enabled=k}return{frames:m,worlds:S(n)}}};return c.__vgaiRender=f,f}function Q(e,t){if(e===2||typeof e=="string"&&/webgpu/i.test(e))throw new Error(`[render-control] world "${t}": Pixi renderer is WebGPU in render mode — render-control requires WebGL.`)}export{Q as assertPixiRootIsWebGL,C as installRenderControlHarness,F as isRenderModeRequested};
@@ -0,0 +1 @@
1
+ import{buildRenderingZod as a}from"./render-features-CPQ_e568.js";import{r as o,L as e,c5 as i,u as t,t as s,c4 as n}from"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";const r=o({mode:n(["none","linear","reinhard","cineon","aces","agx"]).optional().describe("Tone mapping operator"),exposure:e().optional().describe("Exposure level")}).describe("Tone mapping configuration"),l=o({bloom:o({enabled:i().optional().describe("Enable bloom effect"),intensity:e().optional().describe("Bloom intensity multiplier"),luminanceThreshold:e().optional().describe("Minimum luminance to trigger bloom"),luminanceSmoothing:e().optional().describe("Smoothing applied to luminance threshold")}).optional().describe("Bloom glow effect"),vignette:o({enabled:i().optional().describe("Enable vignette effect"),darkness:e().optional().describe("Vignette darkness intensity"),offset:e().optional().describe("Vignette offset from center")}).optional().describe("Screen-edge darkening effect"),brightnessContrast:o({enabled:i().optional().describe("Enable brightness/contrast adjustment"),brightness:e().optional().describe("Brightness adjustment (-1 to 1)"),contrast:e().optional().describe("Contrast adjustment (-1 to 1)")}).optional().describe("Brightness and contrast color adjustment"),hueSaturation:o({enabled:i().optional().describe("Enable hue/saturation adjustment"),hue:e().optional().describe("Hue rotation in radians"),saturation:e().optional().describe("Saturation adjustment (-1 to 1)")}).optional().describe("Hue rotation and saturation color adjustment"),sepia:o({enabled:i().optional().describe("Enable sepia tone"),intensity:e().optional().describe("Sepia effect intensity (0 to 1)")}).optional().describe("Warm sepia tone for vintage photograph look"),colorDepth:o({enabled:i().optional().describe("Enable color depth reduction"),bits:e().optional().describe("Number of color bits per channel (1–16)")}).optional().describe("Reduce color bit depth for posterized/banded look"),chromaticAberration:o({enabled:i().optional().describe("Enable chromatic aberration"),offsetX:e().optional().describe("Horizontal color fringe offset"),offsetY:e().optional().describe("Vertical color fringe offset"),radialModulation:i().optional().describe("Increase effect toward screen edges"),modulationOffset:e().optional().describe("Radial modulation offset from center")}).optional().describe("Lens chromatic aberration (color fringing at screen edges)"),lensDistortion:o({enabled:i().optional().describe("Enable lens distortion"),distortionX:e().optional().describe("Horizontal barrel/pincushion distortion"),distortionY:e().optional().describe("Vertical barrel/pincushion distortion"),focalLengthX:e().optional().describe("Horizontal focal length"),focalLengthY:e().optional().describe("Vertical focal length"),skew:e().optional().describe("Lens skew angle")}).optional().describe("Barrel/pincushion lens distortion"),depthOfField:o({enabled:i().optional().describe("Enable depth of field"),worldFocusDistance:e().optional().describe("Focus distance in world units"),worldFocusRange:e().optional().describe("Focus range in world units"),bokehScale:e().optional().describe("Bokeh blur scale"),focalLength:e().optional().describe("Camera focal length in mm")}).optional().describe("Physically-based depth of field with bokeh blur"),tiltShift:o({enabled:i().optional().describe("Enable tilt-shift effect"),offset:e().optional().describe("Focus band offset from center"),rotation:e().optional().describe("Focus band rotation in radians"),focusArea:e().optional().describe("Focus band width (0–1)"),feather:e().optional().describe("Blur falloff smoothness")}).optional().describe("Tilt-shift miniature-world blur effect"),noise:o({enabled:i().optional().describe("Enable film grain noise"),premultiply:i().optional().describe("Multiply noise with input color instead of adding")}).optional().describe("Random per-pixel noise overlay (film grain)"),scanline:o({enabled:i().optional().describe("Enable scanline overlay"),density:e().optional().describe("Number of scanlines across screen height")}).optional().describe("Horizontal scanline overlay (CRT monitor look)"),dotScreen:o({enabled:i().optional().describe("Enable dot screen halftone"),angle:e().optional().describe("Pattern angle in radians"),scale:e().optional().describe("Pattern dot scale")}).optional().describe("Halftone dot pattern (newspaper/comic look)"),grid:o({enabled:i().optional().describe("Enable grid overlay"),scale:e().optional().describe("Grid cell scale"),lineWidth:e().optional().describe("Grid line width")}).optional().describe("Visible grid pattern overlay"),pixelation:o({enabled:i().optional().describe("Enable pixelation"),granularity:e().optional().describe("Pixel size (higher = more pixelated)")}).optional().describe("Reduce resolution for pixel-art / mosaic effect"),glitch:o({enabled:i().optional().describe("Enable digital glitch effect"),delayX:e().optional().describe("Minimum delay between glitches (seconds)"),delayY:e().optional().describe("Maximum delay between glitches (seconds)"),durationX:e().optional().describe("Minimum glitch duration (seconds)"),durationY:e().optional().describe("Maximum glitch duration (seconds)"),strengthX:e().optional().describe("Minimum glitch strength"),strengthY:e().optional().describe("Maximum glitch strength"),columns:e().optional().describe("Number of glitch columns"),ratio:e().optional().describe("Glitch ratio (0–1)")}).optional().describe("Random digital glitch artifacts (block displacement, color shifting)"),shockWave:o({enabled:i().optional().describe("Enable shock wave distortion"),speed:e().optional().describe("Wave propagation speed"),maxRadius:e().optional().describe("Maximum wave radius"),waveSize:e().optional().describe("Width of the distortion wave"),amplitude:e().optional().describe("Distortion strength"),positionX:e().optional().describe("Wave origin X in world space"),positionY:e().optional().describe("Wave origin Y in world space"),positionZ:e().optional().describe("Wave origin Z in world space")}).optional().describe("Expanding spherical distortion wave from a point"),smaa:o({enabled:i().optional().describe("Enable SMAA anti-aliasing"),preset:n(["low","medium","high","ultra"]).optional().describe("Quality preset (higher = better quality, more cost)")}).optional().describe("Subpixel Morphological Anti-Aliasing"),ssao:o({enabled:i().optional().describe("Enable screen-space ambient occlusion"),radius:e().optional().describe("Occlusion sampling radius"),intensity:e().optional().describe("Occlusion intensity multiplier"),bias:e().optional().describe("Depth bias to reduce self-occlusion artifacts"),samples:e().optional().describe("Number of occlusion samples per pixel"),rings:e().optional().describe("Number of spiral sample rings"),fade:e().optional().describe("Distance at which occlusion fades out"),color:t().optional().describe("Occlusion tint color as CSS hex")}).optional().describe("Screen-space ambient occlusion (darken creases and crevices)"),n8ao:o({enabled:i().optional().describe("Enable N8AO ambient occlusion"),aoSamples:e().optional().describe("Number of AO samples (default 16)"),aoRadius:e().optional().describe("AO sampling radius in world units"),intensity:e().optional().describe("AO intensity multiplier"),denoiseSamples:e().optional().describe("Number of denoise samples"),denoiseRadius:e().optional().describe("Denoise blur radius"),distanceFalloff:e().optional().describe("AO distance falloff"),screenSpaceRadius:i().optional().describe("Use screen-space radius instead of world-space"),color:t().optional().describe("AO tint color as CSS hex"),halfRes:i().optional().describe("Render AO at half resolution for performance")}).optional().describe("High-quality ambient occlusion (N8AO — alternative to SSAO)"),godRays:o({enabled:i().optional().describe("Enable god rays"),sourceEntity:t().optional().describe("Entity ID of the light source mesh"),density:e().optional().describe("Ray density"),decay:e().optional().describe("Ray intensity decay along distance"),weight:e().optional().describe("Ray weight / brightness"),exposure:e().optional().describe("Overall god ray exposure"),samples:e().optional().describe("Number of ray-march samples")}).optional().describe("Volumetric light shafts from a light source entity"),outline:o({enabled:i().optional().describe("Enable outline effect"),tags:s(t()).optional().describe("Entity tags to outline"),edgeStrength:e().optional().describe("Outline edge thickness / strength"),pulseSpeed:e().optional().describe("Outline pulse animation speed (0 = no pulse)"),visibleEdgeColor:t().optional().describe("Color of visible edges as CSS hex"),hiddenEdgeColor:t().optional().describe("Color of hidden/occluded edges as CSS hex"),xRay:i().optional().describe("Show outline through occluding objects")}).optional().describe("Highlight entities matching tags with colored outlines"),ssr:o({enabled:i().optional().describe("Enable screen-space reflections"),intensity:e().optional().describe("Reflection intensity"),exponent:e().optional().describe("Reflection falloff exponent"),distance:e().optional().describe("Maximum reflection ray distance"),thickness:e().optional().describe("Depth thickness for hit testing"),maxRoughness:e().optional().describe("Maximum roughness for reflections (0–1)")}).optional().describe("Screen-space reflections for reflective/glossy surfaces"),ssgi:o({enabled:i().optional().describe("Enable screen-space global illumination"),intensity:e().optional().describe("Indirect light intensity"),distance:e().optional().describe("Maximum GI ray distance"),thickness:e().optional().describe("Depth thickness for hit testing"),maxRoughness:e().optional().describe("Maximum roughness for GI (0–1)")}).optional().describe("Screen-space global illumination (indirect lighting bounce)"),motionBlur:o({enabled:i().optional().describe("Enable motion blur"),intensity:e().optional().describe("Motion blur intensity"),jitter:e().optional().describe("Sample jitter amount"),samples:e().optional().describe("Number of blur samples")}).optional().describe("Per-object motion blur from camera and object movement")}).describe("Post-processing effects"),w=o({toneMapping:r.optional().describe("Tone mapping configuration"),postProcessing:l.optional().describe("Post-processing effects (bloom, vignette, SSAO, SSR, ...)"),rendering:a().optional().describe("Render feature toggles (auto-batching, culling, LOD, shadows, etc.). Omit a field to inherit the engine default. Derived from the render-feature registry.")}).describe("Renderer-level settings read by setup/setup-renderer.ts");export{l as PostProcessingDescriptorSchema,w as RenderEnvironmentSchema,r as ToneMappingDescriptorSchema};
@@ -0,0 +1 @@
1
+ import{c4 as l,r as o,c5 as a,L as s}from"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";const r=[{key:"frustumCulling",label:"Frustum culling",description:"Per-instance frustum culling for batched content.",kind:"toggle",default:!0,apply:"live",perEntity:!0},{key:"shadows",label:"Shadows",description:"Enable the shadow map. Per-entity cast/receive still applies.",kind:"toggle",default:!0,apply:"live",perEntity:!0},{key:"postProcessing",label:"Post-processing",description:"Master switch for the post-processing stack (individual effects nest beneath it).",kind:"toggle",default:!0,apply:"live",perEntity:!1},{key:"resolutionScale",label:"Resolution scale",description:"Device-pixel-ratio multiplier (1.0 = native). The cheapest perf dial.",kind:"number",default:1,apply:"live",perEntity:!1,range:[.25,2]},{key:"antialias",label:"Antialiasing",description:"MSAA via renderer construction. Applies on reload (renderer re-init).",kind:"toggle",default:!0,apply:"reload",perEntity:!1}],h=new Map(r.map(t=>[t.key,t]));function k(t={}){const n={};for(const e of r){if(t.perEntityOnly&&!e.perEntity)continue;let i;e.kind==="toggle"?i=a():e.kind==="number"?i=s():i=l(e.options),n[e.key]=i.optional().describe(e.description)}return o(n).describe(t.perEntityOnly?"Per-entity render overrides (omit a field to inherit from the scene/engine default)":"Scene render settings (omit a field to inherit the engine default)")}export{r as RENDER_FEATURES,h as RENDER_FEATURE_BY_KEY,k as buildRenderingZod};
@@ -0,0 +1 @@
1
+ function i(n){let t=n>>>0;return function(){t=t+1831565813|0;let e=t;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function o(n){Math.random=i(n)}const s="vgai-render",u="vgai-seed",a=2654435769;function c(n=window.location){const t=new URLSearchParams(n.search);if(t.get(s)!=="1")return!1;const r=t.get(u),e=r!==null&&r!==""?Number(r):a;return o(Number.isFinite(e)?e:a),!0}export{s as RENDER_MODE_QUERY_PARAM,u as RENDER_SEED_QUERY_PARAM,i as createMulberry32,o as installDeterministicRandom,c as maybeInstallRenderModeRandom};
@@ -0,0 +1 @@
1
+ import{RENDER_FEATURES as o}from"./render-features-CPQ_e568.js";import"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";function n(r,t){const s={};for(const e of o){const i=e.perEntity?t?.[e.key]:void 0;s[e.key]=i??r?.[e.key]??e.default}return s}class R{values;listeners=new Set;constructor(t){this.values=n(t)}get(t){return this.values[t]}set(t,s){if(this.values[t]!==s){this.values[t]=s;for(const e of this.listeners)e(t,s)}}forEntity(t,s){return s?.[t]??this.values[t]}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}snapshot(){return{...this.values}}}export{R as RenderSettings,n as resolveRenderSettings};
@@ -0,0 +1 @@
1
+ const l="render.submit",d=["input","prePhysics","physics","postPhysics","gameLogic","animation"],w=300,P=50,_=.05,A=.1;function c(r,n,s){const e=r-n-s;return{totalMs:r,renderMs:n,simMs:s,otherMs:e,text:`${r.toFixed(0)}ms = render ${n.toFixed(0)} + sim ${s.toFixed(0)} + other ${e.toFixed(0)}`}}function m(){return{lastFrameId:0,lastPresentAt:null,pendingSimMs:0,frameTimeMs:null,renderCpuMs:null,drawCalls:null,triangles:null,renderPasses:null,worstCurrentMs:0,worstPreviousMs:0,worstWindowFrames:0,lastHitch:null,presentedFrames:0}}function M(r,n){let s=0;for(const e of r.phases)n.includes(e.name)&&(s+=e.ms);return s}function a(r){for(const n of r.phases)if(n.name===l)return n.ms;return null}function u(r,n,s){return r===null?n:r*(1-s)+n*s}function f(r,n){if(n.id<=r.lastFrameId)return!1;r.lastFrameId=n.id,n.render.renderPasses!==null&&(r.drawCalls=n.render.drawCalls,r.triangles=n.render.triangles,r.renderPasses=n.render.renderPasses),r.pendingSimMs+=M(n,d);const s=a(n);if(s===null)return!1;const e=r.pendingSimMs;r.pendingSimMs=0,r.presentedFrames+=1,r.renderCpuMs=u(r.renderCpuMs,s,.1);const i=r.lastPresentAt;if(r.lastPresentAt=n.timestamp,i===null)return!0;const o=n.timestamp-i;return r.frameTimeMs=u(r.frameTimeMs,o,.05),o>r.worstCurrentMs&&(r.worstCurrentMs=o),r.worstWindowFrames+=1,r.worstWindowFrames>=300&&(r.worstPreviousMs=r.worstCurrentMs,r.worstCurrentMs=0,r.worstWindowFrames=0),o>=50&&(r.lastHitch=c(o,s,e)),!0}function t(r,n){if(r===null)return null;const s=10**n;return Math.round(r*s)/s}function p(r){const n=t(r.frameTimeMs,2),s=Math.max(r.worstCurrentMs,r.worstPreviousMs);return{frameTimeMs:n,fps:n!==null&&n>0?t(1e3/n,1):null,drawCalls:r.drawCalls,triangles:r.triangles,renderCpuMs:t(r.renderCpuMs,2),renderPasses:r.renderPasses,worstFrameMs:r.frameTimeMs===null?null:t(s,2),lastHitch:r.lastHitch,presentedFrames:r.presentedFrames}}function F(r){const n=m(),s=r.subscribe(()=>{const i=r.getSnapshot().frames.at(-1);i&&f(n,i)});let e=!1;return{read:()=>p(n),dispose(){e||(e=!0,s())}}}export{_ as FRAME_TIME_EMA_ALPHA,P as HITCH_THRESHOLD_MS,A as RENDER_CPU_EMA_ALPHA,l as RENDER_SUBMIT_PHASE,d as SIM_PHASES,w as WORST_WINDOW_FRAMES,F as createRenderVitals,m as createRenderVitalsState,c as decomposeHitch,f as foldProfilerFrame,p as readRenderVitals};
@@ -0,0 +1 @@
1
+ function i(p,o,n){if(typeof o.getClearColor!="function")return()=>{};const l={none:p.NoToneMapping,linear:p.LinearToneMapping,reinhard:p.ReinhardToneMapping,cineon:p.CineonToneMapping,aces:p.ACESFilmicToneMapping,agx:p.AgXToneMapping,neutral:p.NeutralToneMapping},u={srgb:p.SRGBColorSpace,"srgb-linear":p.LinearSRGBColorSpace},M={basic:p.BasicShadowMap,pcf:p.PCFShadowMap,"pcf-soft":p.PCFSoftShadowMap,vsm:p.VSMShadowMap},t=[];if(n.toneMapping!==void 0){const a=o.toneMapping;o.toneMapping=l[n.toneMapping],t.push(()=>{o.toneMapping=a})}if(n.toneMappingExposure!==void 0){const a=o.toneMappingExposure;o.toneMappingExposure=n.toneMappingExposure,t.push(()=>{o.toneMappingExposure=a})}if(n.outputColorSpace!==void 0){const a=o.outputColorSpace;o.outputColorSpace=u[n.outputColorSpace],t.push(()=>{o.outputColorSpace=a})}if(n.shadowMapType!==void 0&&o.shadowMap!==void 0){const a=o.shadowMap.type;o.shadowMap.type=M[n.shadowMapType],o.shadowMap.needsUpdate=!0,t.push(()=>{o.shadowMap.type=a,o.shadowMap.needsUpdate=!0})}if(n.clearColor!==void 0){const a=new p.Color;o.getClearColor(a);const s=o.getClearAlpha();o.setClearColor(new p.Color(n.clearColor),s),t.push(()=>{o.setClearColor(a,s)})}return()=>{for(let a=t.length-1;a>=0;a--)t[a]?.()}}const e=Object.freeze(Object.defineProperty({__proto__:null,applyWorldRendererConfig:i},Symbol.toStringTag,{value:"Module"})),C=Object.freeze(Object.defineProperty({__proto__:null,applyWorldRendererConfig:i},Symbol.toStringTag,{value:"Module"}));export{i as a,C as b,e as r};