@vgai/engine 0.3.0 → 0.4.0-canary.20260715.0

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 (559) hide show
  1. package/package.json +8 -2
  2. package/schemas/engine-api.json +124 -0
  3. package/schemas/engine-api.md +53 -0
  4. package/schemas/engine-capabilities.json +124 -0
  5. package/schemas/inputmap.schema.json +314 -0
  6. package/schemas/mat.schema.json +286 -0
  7. package/schemas/prefab.schema.json +10148 -0
  8. package/schemas/scn2d.schema.json +475 -0
  9. package/schemas/vgai-game.schema.json +383 -0
  10. package/schemas/vscn.schema.json +11007 -0
  11. package/src/adapter/{world-kind.ts → adapter-surface.ts} +6 -6
  12. package/src/adapter/authoring.ts +67 -0
  13. package/src/adapter/game-adapter.ts +8 -8
  14. package/src/adapter/host-context.ts +2 -4
  15. package/src/adapter/index.ts +3 -1
  16. package/src/adapter/system-adapter.ts +73 -0
  17. package/src/adapter/vgai-scene-game-adapter.ts +239 -180
  18. package/src/animation/xstate-animation-binding.ts +300 -262
  19. package/src/animation/xstate-animation-meta.ts +50 -13
  20. package/src/character/cloth-sim.ts +533 -0
  21. package/src/character/spring-chain.ts +307 -0
  22. package/src/core/game-loop.ts +41 -3
  23. package/src/core/seeded-random.ts +161 -0
  24. package/src/core/system-runner.ts +20 -3
  25. package/src/core/types.ts +37 -0
  26. package/src/data/data-asset.ts +1 -1
  27. package/src/dev/performance-profiler.ts +213 -0
  28. package/src/dev/webgl-gpu-timer.ts +53 -0
  29. package/src/ecs/component-manager.ts +45 -12
  30. package/src/ecs/game-component.ts +95 -11
  31. package/src/humanoid/bake.operation.ts +326 -0
  32. package/src/humanoid/body.ts +663 -0
  33. package/src/humanoid/clips.ts +149 -0
  34. package/src/humanoid/compose.ts +209 -0
  35. package/src/humanoid/generate.ts +189 -0
  36. package/src/humanoid/index.ts +36 -0
  37. package/src/humanoid/schema.ts +108 -0
  38. package/src/humanoid/skeleton.ts +345 -0
  39. package/src/index.ts +5 -5
  40. package/src/input/input-manager.ts +701 -22
  41. package/src/input/input-types.ts +5 -2
  42. package/src/manifest/index.ts +5 -5
  43. package/src/manifest/load.ts +125 -72
  44. package/src/manifest/schema.ts +362 -255
  45. package/src/react/game-state.tsx +135 -32
  46. package/src/react/root-adapter.tsx +49 -0
  47. package/src/react/unmanaged-root-detector.ts +66 -0
  48. package/src/react/use-data.ts +12 -2
  49. package/src/runtime/create-runtime.ts +100 -282
  50. package/src/runtime/debug-bridge.ts +483 -0
  51. package/src/runtime/debug-registry.ts +856 -0
  52. package/src/runtime/game.ts +342 -93
  53. package/src/runtime/gameplay-rng-trap.ts +134 -0
  54. package/src/runtime/input-router.ts +7 -7
  55. package/src/runtime/mount-game.ts +40 -38
  56. package/src/runtime/mount-manifest.ts +169 -37
  57. package/src/runtime/render-control.ts +13 -13
  58. package/src/runtime/render-seed.ts +1 -1
  59. package/src/runtime/state-bridge.ts +24 -10
  60. package/src/runtime/types.ts +110 -28
  61. package/src/scene/asset-registry.ts +22 -0
  62. package/src/scene/component-registry.ts +14 -3
  63. package/src/scene/defaults.ts +1 -0
  64. package/src/scene/light-camera-factory.ts +11 -3
  65. package/src/scene/scene-apply.ts +55 -4
  66. package/src/scene/scene-loader.ts +10 -27
  67. package/src/scene/scene-types.ts +0 -1
  68. package/src/scene/schema/index.ts +0 -34
  69. package/src/scene/schema/light.ts +16 -1
  70. package/src/scene/schema/material.ts +96 -91
  71. package/src/scene/schema/scene-file.ts +1 -7
  72. package/src/scene/user-data.ts +14 -1
  73. package/src/setup/setup-renderer.ts +1 -1
  74. package/src/tools/define-tool.ts +50 -11
  75. package/src/world2d/authoring-2d.ts +17 -1
  76. package/src/world2d/collision-2d.ts +1 -1
  77. package/src/world2d/pixi-game-adapter.ts +19 -17
  78. package/src/world2d/scene2d-loader.ts +1 -0
  79. package/src/world2d/types.ts +8 -2
  80. package/dist/adapter/authoring.d.ts +0 -404
  81. package/dist/adapter/authoring.d.ts.map +0 -1
  82. package/dist/adapter/authoring.js +0 -22
  83. package/dist/adapter/colyseus-networking-adapter.d.ts +0 -43
  84. package/dist/adapter/colyseus-networking-adapter.d.ts.map +0 -1
  85. package/dist/adapter/colyseus-networking-adapter.js +0 -38
  86. package/dist/adapter/first-party-systems.d.ts +0 -38
  87. package/dist/adapter/first-party-systems.d.ts.map +0 -1
  88. package/dist/adapter/first-party-systems.js +0 -77
  89. package/dist/adapter/game-adapter.d.ts +0 -133
  90. package/dist/adapter/game-adapter.d.ts.map +0 -1
  91. package/dist/adapter/game-adapter.js +0 -10
  92. package/dist/adapter/host-context.d.ts +0 -73
  93. package/dist/adapter/host-context.d.ts.map +0 -1
  94. package/dist/adapter/host-context.js +0 -16
  95. package/dist/adapter/index.d.ts +0 -22
  96. package/dist/adapter/index.d.ts.map +0 -1
  97. package/dist/adapter/index.js +0 -15
  98. package/dist/adapter/ingest/game-contract.d.ts +0 -53
  99. package/dist/adapter/ingest/game-contract.d.ts.map +0 -1
  100. package/dist/adapter/ingest/game-contract.js +0 -30
  101. package/dist/adapter/ingest/overlay-applier.d.ts +0 -118
  102. package/dist/adapter/ingest/overlay-applier.d.ts.map +0 -1
  103. package/dist/adapter/ingest/overlay-applier.js +0 -132
  104. package/dist/adapter/ingest/overlay-apply.d.ts +0 -60
  105. package/dist/adapter/ingest/overlay-apply.d.ts.map +0 -1
  106. package/dist/adapter/ingest/overlay-apply.js +0 -101
  107. package/dist/adapter/ingest/overlay-file.d.ts +0 -79
  108. package/dist/adapter/ingest/overlay-file.d.ts.map +0 -1
  109. package/dist/adapter/ingest/overlay-file.js +0 -66
  110. package/dist/adapter/ingest/overlay-report.d.ts +0 -113
  111. package/dist/adapter/ingest/overlay-report.d.ts.map +0 -1
  112. package/dist/adapter/ingest/overlay-report.js +0 -103
  113. package/dist/adapter/ingest/scene-capture.d.ts +0 -97
  114. package/dist/adapter/ingest/scene-capture.d.ts.map +0 -1
  115. package/dist/adapter/ingest/scene-capture.js +0 -248
  116. package/dist/adapter/ingest/upstream-pin.d.ts +0 -47
  117. package/dist/adapter/ingest/upstream-pin.d.ts.map +0 -1
  118. package/dist/adapter/ingest/upstream-pin.js +0 -50
  119. package/dist/adapter/loop-gate-report.d.ts +0 -34
  120. package/dist/adapter/loop-gate-report.d.ts.map +0 -1
  121. package/dist/adapter/loop-gate-report.js +0 -37
  122. package/dist/adapter/rapier-physics-adapter.d.ts +0 -12
  123. package/dist/adapter/rapier-physics-adapter.d.ts.map +0 -1
  124. package/dist/adapter/rapier-physics-adapter.js +0 -46
  125. package/dist/adapter/system-adapter.d.ts +0 -133
  126. package/dist/adapter/system-adapter.d.ts.map +0 -1
  127. package/dist/adapter/system-adapter.js +0 -13
  128. package/dist/adapter/transform.d.ts +0 -18
  129. package/dist/adapter/transform.d.ts.map +0 -1
  130. package/dist/adapter/transform.js +0 -1
  131. package/dist/adapter/vgai-scene-game-adapter.d.ts +0 -116
  132. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +0 -1
  133. package/dist/adapter/vgai-scene-game-adapter.js +0 -714
  134. package/dist/adapter/world-kind.d.ts +0 -30
  135. package/dist/adapter/world-kind.d.ts.map +0 -1
  136. package/dist/adapter/world-kind.js +0 -18
  137. package/dist/ai/navigation.d.ts +0 -64
  138. package/dist/ai/navigation.d.ts.map +0 -1
  139. package/dist/ai/navigation.js +0 -133
  140. package/dist/animation/anim-graph-types.d.ts +0 -25
  141. package/dist/animation/anim-graph-types.d.ts.map +0 -1
  142. package/dist/animation/anim-graph-types.js +0 -1
  143. package/dist/animation/animation-clock.d.ts +0 -213
  144. package/dist/animation/animation-clock.d.ts.map +0 -1
  145. package/dist/animation/animation-clock.js +0 -301
  146. package/dist/animation/blend-node.d.ts +0 -22
  147. package/dist/animation/blend-node.d.ts.map +0 -1
  148. package/dist/animation/blend-node.js +0 -97
  149. package/dist/animation/camera-ownership.d.ts +0 -250
  150. package/dist/animation/camera-ownership.d.ts.map +0 -1
  151. package/dist/animation/camera-ownership.js +0 -169
  152. package/dist/animation/cinematic-cues.d.ts +0 -200
  153. package/dist/animation/cinematic-cues.d.ts.map +0 -1
  154. package/dist/animation/cinematic-cues.js +0 -213
  155. package/dist/animation/clip-map.d.ts +0 -12
  156. package/dist/animation/clip-map.d.ts.map +0 -1
  157. package/dist/animation/clip-map.js +0 -37
  158. package/dist/animation/gsap-registration.d.ts +0 -119
  159. package/dist/animation/gsap-registration.d.ts.map +0 -1
  160. package/dist/animation/gsap-registration.js +0 -92
  161. package/dist/animation/theatre-clock-binding.d.ts +0 -89
  162. package/dist/animation/theatre-clock-binding.d.ts.map +0 -1
  163. package/dist/animation/theatre-clock-binding.js +0 -29
  164. package/dist/animation/theatre-director.d.ts +0 -242
  165. package/dist/animation/theatre-director.d.ts.map +0 -1
  166. package/dist/animation/theatre-director.js +0 -235
  167. package/dist/animation/theatre-object-binding.d.ts +0 -305
  168. package/dist/animation/theatre-object-binding.d.ts.map +0 -1
  169. package/dist/animation/theatre-object-binding.js +0 -351
  170. package/dist/animation/xstate-animation-binding.d.ts +0 -111
  171. package/dist/animation/xstate-animation-binding.d.ts.map +0 -1
  172. package/dist/animation/xstate-animation-binding.js +0 -307
  173. package/dist/animation/xstate-animation-meta.d.ts +0 -228
  174. package/dist/animation/xstate-animation-meta.d.ts.map +0 -1
  175. package/dist/animation/xstate-animation-meta.js +0 -221
  176. package/dist/assets.d.ts +0 -26
  177. package/dist/assets.d.ts.map +0 -1
  178. package/dist/assets.js +0 -55
  179. package/dist/audio/index.d.ts +0 -4
  180. package/dist/audio/index.d.ts.map +0 -1
  181. package/dist/audio/index.js +0 -24
  182. package/dist/audio/tone-clock-binding.d.ts +0 -75
  183. package/dist/audio/tone-clock-binding.d.ts.map +0 -1
  184. package/dist/audio/tone-clock-binding.js +0 -29
  185. package/dist/audio/tone-context.d.ts +0 -114
  186. package/dist/audio/tone-context.d.ts.map +0 -1
  187. package/dist/audio/tone-context.js +0 -39
  188. package/dist/audio/tone-offline-render.d.ts +0 -90
  189. package/dist/audio/tone-offline-render.d.ts.map +0 -1
  190. package/dist/audio/tone-offline-render.js +0 -56
  191. package/dist/audio/wav-encode.d.ts +0 -38
  192. package/dist/audio/wav-encode.d.ts.map +0 -1
  193. package/dist/audio/wav-encode.js +0 -97
  194. package/dist/core/game-loop.d.ts +0 -21
  195. package/dist/core/game-loop.d.ts.map +0 -1
  196. package/dist/core/game-loop.js +0 -130
  197. package/dist/core/system-runner.d.ts +0 -120
  198. package/dist/core/system-runner.d.ts.map +0 -1
  199. package/dist/core/system-runner.js +0 -286
  200. package/dist/core/types.d.ts +0 -58
  201. package/dist/core/types.d.ts.map +0 -1
  202. package/dist/core/types.js +0 -25
  203. package/dist/data/data-asset.d.ts +0 -101
  204. package/dist/data/data-asset.d.ts.map +0 -1
  205. package/dist/data/data-asset.js +0 -122
  206. package/dist/data/data-check-core.d.ts +0 -110
  207. package/dist/data/data-check-core.d.ts.map +0 -1
  208. package/dist/data/data-check-core.js +0 -178
  209. package/dist/data/data-ref.d.ts +0 -79
  210. package/dist/data/data-ref.d.ts.map +0 -1
  211. package/dist/data/data-ref.js +0 -130
  212. package/dist/data/vite-plugin-data.d.ts +0 -79
  213. package/dist/data/vite-plugin-data.d.ts.map +0 -1
  214. package/dist/data/vite-plugin-data.js +0 -217
  215. package/dist/dev/console-bridge.d.ts +0 -22
  216. package/dist/dev/console-bridge.d.ts.map +0 -1
  217. package/dist/dev/console-bridge.js +0 -71
  218. package/dist/dev/debug-draw.d.ts +0 -24
  219. package/dist/dev/debug-draw.d.ts.map +0 -1
  220. package/dist/dev/debug-draw.js +0 -73
  221. package/dist/dev/logger.d.ts +0 -30
  222. package/dist/dev/logger.d.ts.map +0 -1
  223. package/dist/dev/logger.js +0 -90
  224. package/dist/ecs/component-manager.d.ts +0 -189
  225. package/dist/ecs/component-manager.d.ts.map +0 -1
  226. package/dist/ecs/component-manager.js +0 -676
  227. package/dist/ecs/game-component.d.ts +0 -97
  228. package/dist/ecs/game-component.d.ts.map +0 -1
  229. package/dist/ecs/game-component.js +0 -80
  230. package/dist/ecs/hmr-swap-report.d.ts +0 -53
  231. package/dist/ecs/hmr-swap-report.d.ts.map +0 -1
  232. package/dist/ecs/hmr-swap-report.js +0 -55
  233. package/dist/index.d.ts +0 -37
  234. package/dist/index.d.ts.map +0 -1
  235. package/dist/index.js +0 -30
  236. package/dist/input/input-manager.d.ts +0 -596
  237. package/dist/input/input-manager.d.ts.map +0 -1
  238. package/dist/input/input-manager.js +0 -1564
  239. package/dist/input/input-types.d.ts +0 -171
  240. package/dist/input/input-types.d.ts.map +0 -1
  241. package/dist/input/input-types.js +0 -1
  242. package/dist/input/prompt-labels.d.ts +0 -21
  243. package/dist/input/prompt-labels.d.ts.map +0 -1
  244. package/dist/input/prompt-labels.js +0 -121
  245. package/dist/input/rebind-controller.d.ts +0 -59
  246. package/dist/input/rebind-controller.d.ts.map +0 -1
  247. package/dist/input/rebind-controller.js +0 -85
  248. package/dist/input/schema.d.ts +0 -16
  249. package/dist/input/schema.d.ts.map +0 -1
  250. package/dist/input/schema.js +0 -228
  251. package/dist/loader.d.ts +0 -43
  252. package/dist/loader.d.ts.map +0 -1
  253. package/dist/loader.js +0 -59
  254. package/dist/manifest/index.d.ts +0 -5
  255. package/dist/manifest/index.d.ts.map +0 -1
  256. package/dist/manifest/index.js +0 -8
  257. package/dist/manifest/load-file.d.ts +0 -4
  258. package/dist/manifest/load-file.d.ts.map +0 -1
  259. package/dist/manifest/load-file.js +0 -14
  260. package/dist/manifest/load.d.ts +0 -117
  261. package/dist/manifest/load.d.ts.map +0 -1
  262. package/dist/manifest/load.js +0 -255
  263. package/dist/manifest/schema.d.ts +0 -173
  264. package/dist/manifest/schema.d.ts.map +0 -1
  265. package/dist/manifest/schema.js +0 -302
  266. package/dist/physics/collision-system.d.ts +0 -41
  267. package/dist/physics/collision-system.d.ts.map +0 -1
  268. package/dist/physics/collision-system.js +0 -64
  269. package/dist/physics/physics-registry.d.ts +0 -45
  270. package/dist/physics/physics-registry.d.ts.map +0 -1
  271. package/dist/physics/physics-registry.js +0 -65
  272. package/dist/physics/transform-writer.d.ts +0 -16
  273. package/dist/physics/transform-writer.d.ts.map +0 -1
  274. package/dist/physics/transform-writer.js +0 -38
  275. package/dist/physics/trigger-dispatch.d.ts +0 -24
  276. package/dist/physics/trigger-dispatch.d.ts.map +0 -1
  277. package/dist/physics/trigger-dispatch.js +0 -80
  278. package/dist/react/game-state.d.ts +0 -105
  279. package/dist/react/game-state.d.ts.map +0 -1
  280. package/dist/react/game-state.js +0 -144
  281. package/dist/react/use-data.d.ts +0 -60
  282. package/dist/react/use-data.d.ts.map +0 -1
  283. package/dist/react/use-data.js +0 -96
  284. package/dist/react/use-selection.d.ts +0 -75
  285. package/dist/react/use-selection.d.ts.map +0 -1
  286. package/dist/react/use-selection.js +0 -90
  287. package/dist/render/auto-batcher.d.ts +0 -34
  288. package/dist/render/auto-batcher.d.ts.map +0 -1
  289. package/dist/render/auto-batcher.js +0 -140
  290. package/dist/render/render-batch-system.d.ts +0 -33
  291. package/dist/render/render-batch-system.d.ts.map +0 -1
  292. package/dist/render/render-batch-system.js +0 -230
  293. package/dist/render/render-features.d.ts +0 -47
  294. package/dist/render/render-features.d.ts.map +0 -1
  295. package/dist/render/render-features.js +0 -105
  296. package/dist/render/render-settings.d.ts +0 -36
  297. package/dist/render/render-settings.d.ts.map +0 -1
  298. package/dist/render/render-settings.js +0 -51
  299. package/dist/runtime/create-runtime.d.ts +0 -280
  300. package/dist/runtime/create-runtime.d.ts.map +0 -1
  301. package/dist/runtime/create-runtime.js +0 -795
  302. package/dist/runtime/frame-selector-cache.d.ts +0 -41
  303. package/dist/runtime/frame-selector-cache.d.ts.map +0 -1
  304. package/dist/runtime/frame-selector-cache.js +0 -65
  305. package/dist/runtime/game.d.ts +0 -433
  306. package/dist/runtime/game.d.ts.map +0 -1
  307. package/dist/runtime/game.js +0 -569
  308. package/dist/runtime/input-router.d.ts +0 -78
  309. package/dist/runtime/input-router.d.ts.map +0 -1
  310. package/dist/runtime/input-router.js +0 -171
  311. package/dist/runtime/mount-game.d.ts +0 -129
  312. package/dist/runtime/mount-game.d.ts.map +0 -1
  313. package/dist/runtime/mount-game.js +0 -152
  314. package/dist/runtime/mount-manifest.d.ts +0 -119
  315. package/dist/runtime/mount-manifest.d.ts.map +0 -1
  316. package/dist/runtime/mount-manifest.js +0 -204
  317. package/dist/runtime/render-audio-control.d.ts +0 -110
  318. package/dist/runtime/render-audio-control.d.ts.map +0 -1
  319. package/dist/runtime/render-audio-control.js +0 -111
  320. package/dist/runtime/render-control.d.ts +0 -291
  321. package/dist/runtime/render-control.d.ts.map +0 -1
  322. package/dist/runtime/render-control.js +0 -264
  323. package/dist/runtime/render-seed.d.ts +0 -57
  324. package/dist/runtime/render-seed.d.ts.map +0 -1
  325. package/dist/runtime/render-seed.js +0 -74
  326. package/dist/runtime/scene-ui-bridge.d.ts +0 -69
  327. package/dist/runtime/scene-ui-bridge.d.ts.map +0 -1
  328. package/dist/runtime/scene-ui-bridge.js +0 -23
  329. package/dist/runtime/scene-ui-data.d.ts +0 -13
  330. package/dist/runtime/scene-ui-data.d.ts.map +0 -1
  331. package/dist/runtime/scene-ui-data.js +0 -92
  332. package/dist/runtime/state-bridge.d.ts +0 -47
  333. package/dist/runtime/state-bridge.d.ts.map +0 -1
  334. package/dist/runtime/state-bridge.js +0 -53
  335. package/dist/runtime/types.d.ts +0 -179
  336. package/dist/runtime/types.d.ts.map +0 -1
  337. package/dist/runtime/types.js +0 -1
  338. package/dist/scene/asset-loaders.d.ts +0 -79
  339. package/dist/scene/asset-loaders.d.ts.map +0 -1
  340. package/dist/scene/asset-loaders.js +0 -141
  341. package/dist/scene/asset-paths.d.ts +0 -11
  342. package/dist/scene/asset-paths.d.ts.map +0 -1
  343. package/dist/scene/asset-paths.js +0 -108
  344. package/dist/scene/asset-ref-check.d.ts +0 -88
  345. package/dist/scene/asset-ref-check.d.ts.map +0 -1
  346. package/dist/scene/asset-ref-check.js +0 -214
  347. package/dist/scene/asset-registry.d.ts +0 -30
  348. package/dist/scene/asset-registry.d.ts.map +0 -1
  349. package/dist/scene/asset-registry.js +0 -50
  350. package/dist/scene/collider-dimensions.d.ts +0 -63
  351. package/dist/scene/collider-dimensions.d.ts.map +0 -1
  352. package/dist/scene/collider-dimensions.js +0 -98
  353. package/dist/scene/component-registry.d.ts +0 -17
  354. package/dist/scene/component-registry.d.ts.map +0 -1
  355. package/dist/scene/component-registry.js +0 -28
  356. package/dist/scene/defaults.d.ts +0 -252
  357. package/dist/scene/defaults.d.ts.map +0 -1
  358. package/dist/scene/defaults.js +0 -151
  359. package/dist/scene/geometries/index.d.ts +0 -8
  360. package/dist/scene/geometries/index.d.ts.map +0 -1
  361. package/dist/scene/geometries/index.js +0 -7
  362. package/dist/scene/geometries/terrain.d.ts +0 -2
  363. package/dist/scene/geometries/terrain.d.ts.map +0 -1
  364. package/dist/scene/geometries/terrain.js +0 -37
  365. package/dist/scene/geometry-registry.d.ts +0 -24
  366. package/dist/scene/geometry-registry.d.ts.map +0 -1
  367. package/dist/scene/geometry-registry.js +0 -20
  368. package/dist/scene/instance-registry.d.ts +0 -36
  369. package/dist/scene/instance-registry.d.ts.map +0 -1
  370. package/dist/scene/instance-registry.js +0 -55
  371. package/dist/scene/instancers/grid.d.ts +0 -2
  372. package/dist/scene/instancers/grid.d.ts.map +0 -1
  373. package/dist/scene/instancers/grid.js +0 -36
  374. package/dist/scene/instancers/index.d.ts +0 -8
  375. package/dist/scene/instancers/index.d.ts.map +0 -1
  376. package/dist/scene/instancers/index.js +0 -7
  377. package/dist/scene/light-camera-factory.d.ts +0 -23
  378. package/dist/scene/light-camera-factory.d.ts.map +0 -1
  379. package/dist/scene/light-camera-factory.js +0 -68
  380. package/dist/scene/material-factory.d.ts +0 -17
  381. package/dist/scene/material-factory.d.ts.map +0 -1
  382. package/dist/scene/material-factory.js +0 -197
  383. package/dist/scene/material-registry.d.ts +0 -40
  384. package/dist/scene/material-registry.d.ts.map +0 -1
  385. package/dist/scene/material-registry.js +0 -44
  386. package/dist/scene/materials/index.d.ts +0 -8
  387. package/dist/scene/materials/index.d.ts.map +0 -1
  388. package/dist/scene/materials/index.js +0 -7
  389. package/dist/scene/materials/water.d.ts +0 -2
  390. package/dist/scene/materials/water.d.ts.map +0 -1
  391. package/dist/scene/materials/water.js +0 -54
  392. package/dist/scene/parse.d.ts +0 -23
  393. package/dist/scene/parse.d.ts.map +0 -1
  394. package/dist/scene/parse.js +0 -179
  395. package/dist/scene/particles-factory.d.ts +0 -33
  396. package/dist/scene/particles-factory.d.ts.map +0 -1
  397. package/dist/scene/particles-factory.js +0 -282
  398. package/dist/scene/scene-apply.d.ts +0 -109
  399. package/dist/scene/scene-apply.d.ts.map +0 -1
  400. package/dist/scene/scene-apply.js +0 -326
  401. package/dist/scene/scene-diff-schema.d.ts +0 -285
  402. package/dist/scene/scene-diff-schema.d.ts.map +0 -1
  403. package/dist/scene/scene-diff-schema.js +0 -92
  404. package/dist/scene/scene-diff-types.d.ts +0 -40
  405. package/dist/scene/scene-diff-types.d.ts.map +0 -1
  406. package/dist/scene/scene-diff-types.js +0 -14
  407. package/dist/scene/scene-loader.d.ts +0 -177
  408. package/dist/scene/scene-loader.d.ts.map +0 -1
  409. package/dist/scene/scene-loader.js +0 -1213
  410. package/dist/scene/scene-query.d.ts +0 -11
  411. package/dist/scene/scene-query.d.ts.map +0 -1
  412. package/dist/scene/scene-query.js +0 -63
  413. package/dist/scene/scene-types.d.ts +0 -10
  414. package/dist/scene/scene-types.d.ts.map +0 -1
  415. package/dist/scene/scene-types.js +0 -8
  416. package/dist/scene/scene-version.d.ts +0 -26
  417. package/dist/scene/scene-version.d.ts.map +0 -1
  418. package/dist/scene/scene-version.js +0 -34
  419. package/dist/scene/schema/animation.d.ts +0 -8
  420. package/dist/scene/schema/animation.d.ts.map +0 -1
  421. package/dist/scene/schema/animation.js +0 -42
  422. package/dist/scene/schema/audio.d.ts +0 -13
  423. package/dist/scene/schema/audio.d.ts.map +0 -1
  424. package/dist/scene/schema/audio.js +0 -22
  425. package/dist/scene/schema/camera.d.ts +0 -28
  426. package/dist/scene/schema/camera.d.ts.map +0 -1
  427. package/dist/scene/schema/camera.js +0 -17
  428. package/dist/scene/schema/collider.d.ts +0 -40
  429. package/dist/scene/schema/collider.d.ts.map +0 -1
  430. package/dist/scene/schema/collider.js +0 -55
  431. package/dist/scene/schema/entity-ref.d.ts +0 -31
  432. package/dist/scene/schema/entity-ref.d.ts.map +0 -1
  433. package/dist/scene/schema/entity-ref.js +0 -61
  434. package/dist/scene/schema/entity.d.ts +0 -1036
  435. package/dist/scene/schema/entity.d.ts.map +0 -1
  436. package/dist/scene/schema/entity.js +0 -153
  437. package/dist/scene/schema/environment.d.ts +0 -425
  438. package/dist/scene/schema/environment.d.ts.map +0 -1
  439. package/dist/scene/schema/environment.js +0 -357
  440. package/dist/scene/schema/index.d.ts +0 -39
  441. package/dist/scene/schema/index.d.ts.map +0 -1
  442. package/dist/scene/schema/index.js +0 -20
  443. package/dist/scene/schema/instances.d.ts +0 -14
  444. package/dist/scene/schema/instances.d.ts.map +0 -1
  445. package/dist/scene/schema/instances.js +0 -28
  446. package/dist/scene/schema/joint.d.ts +0 -23
  447. package/dist/scene/schema/joint.d.ts.map +0 -1
  448. package/dist/scene/schema/joint.js +0 -23
  449. package/dist/scene/schema/light.d.ts +0 -38
  450. package/dist/scene/schema/light.d.ts.map +0 -1
  451. package/dist/scene/schema/light.js +0 -26
  452. package/dist/scene/schema/material.d.ts +0 -199
  453. package/dist/scene/schema/material.d.ts.map +0 -1
  454. package/dist/scene/schema/material.js +0 -99
  455. package/dist/scene/schema/mesh.d.ts +0 -48
  456. package/dist/scene/schema/mesh.d.ts.map +0 -1
  457. package/dist/scene/schema/mesh.js +0 -82
  458. package/dist/scene/schema/particles.d.ts +0 -2178
  459. package/dist/scene/schema/particles.d.ts.map +0 -1
  460. package/dist/scene/schema/particles.js +0 -321
  461. package/dist/scene/schema/physics.d.ts +0 -56
  462. package/dist/scene/schema/physics.d.ts.map +0 -1
  463. package/dist/scene/schema/physics.js +0 -37
  464. package/dist/scene/schema/scene-file.d.ts +0 -304
  465. package/dist/scene/schema/scene-file.d.ts.map +0 -1
  466. package/dist/scene/schema/scene-file.js +0 -262
  467. package/dist/scene/schema/shadow.d.ts +0 -28
  468. package/dist/scene/schema/shadow.d.ts.map +0 -1
  469. package/dist/scene/schema/shadow.js +0 -20
  470. package/dist/scene/schema/spline.d.ts +0 -25
  471. package/dist/scene/schema/spline.d.ts.map +0 -1
  472. package/dist/scene/schema/spline.js +0 -15
  473. package/dist/scene/schema/tuples.d.ts +0 -12
  474. package/dist/scene/schema/tuples.d.ts.map +0 -1
  475. package/dist/scene/schema/tuples.js +0 -14
  476. package/dist/scene/schema/ui.d.ts +0 -880
  477. package/dist/scene/schema/ui.d.ts.map +0 -1
  478. package/dist/scene/schema/ui.js +0 -506
  479. package/dist/scene/user-data.d.ts +0 -171
  480. package/dist/scene/user-data.d.ts.map +0 -1
  481. package/dist/scene/user-data.js +0 -137
  482. package/dist/setup/setup-audio.d.ts +0 -20
  483. package/dist/setup/setup-audio.d.ts.map +0 -1
  484. package/dist/setup/setup-audio.js +0 -41
  485. package/dist/setup/setup-particles.d.ts +0 -17
  486. package/dist/setup/setup-particles.d.ts.map +0 -1
  487. package/dist/setup/setup-particles.js +0 -16
  488. package/dist/setup/setup-physics.d.ts +0 -25
  489. package/dist/setup/setup-physics.d.ts.map +0 -1
  490. package/dist/setup/setup-physics.js +0 -51
  491. package/dist/setup/setup-renderer.d.ts +0 -69
  492. package/dist/setup/setup-renderer.d.ts.map +0 -1
  493. package/dist/setup/setup-renderer.js +0 -363
  494. package/dist/tools/define-tool.d.ts +0 -105
  495. package/dist/tools/define-tool.d.ts.map +0 -1
  496. package/dist/tools/define-tool.js +0 -82
  497. package/dist/world2d/authoring-2d.d.ts +0 -76
  498. package/dist/world2d/authoring-2d.d.ts.map +0 -1
  499. package/dist/world2d/authoring-2d.js +0 -176
  500. package/dist/world2d/capture-to-scene2d.d.ts +0 -5
  501. package/dist/world2d/capture-to-scene2d.d.ts.map +0 -1
  502. package/dist/world2d/capture-to-scene2d.js +0 -49
  503. package/dist/world2d/collision-2d.d.ts +0 -52
  504. package/dist/world2d/collision-2d.d.ts.map +0 -1
  505. package/dist/world2d/collision-2d.js +0 -70
  506. package/dist/world2d/components-2d.d.ts +0 -47
  507. package/dist/world2d/components-2d.d.ts.map +0 -1
  508. package/dist/world2d/components-2d.js +0 -77
  509. package/dist/world2d/index.d.ts +0 -34
  510. package/dist/world2d/index.d.ts.map +0 -1
  511. package/dist/world2d/index.js +0 -32
  512. package/dist/world2d/ingest-iframe-2d.d.ts +0 -82
  513. package/dist/world2d/ingest-iframe-2d.d.ts.map +0 -1
  514. package/dist/world2d/ingest-iframe-2d.js +0 -166
  515. package/dist/world2d/ingest2d.d.ts +0 -97
  516. package/dist/world2d/ingest2d.d.ts.map +0 -1
  517. package/dist/world2d/ingest2d.js +0 -40
  518. package/dist/world2d/physics2d-registry.d.ts +0 -24
  519. package/dist/world2d/physics2d-registry.d.ts.map +0 -1
  520. package/dist/world2d/physics2d-registry.js +0 -38
  521. package/dist/world2d/pixi-game-adapter.d.ts +0 -107
  522. package/dist/world2d/pixi-game-adapter.d.ts.map +0 -1
  523. package/dist/world2d/pixi-game-adapter.js +0 -211
  524. package/dist/world2d/pixi-surface.d.ts +0 -39
  525. package/dist/world2d/pixi-surface.d.ts.map +0 -1
  526. package/dist/world2d/pixi-surface.js +0 -47
  527. package/dist/world2d/scene-capture-2d.d.ts +0 -43
  528. package/dist/world2d/scene-capture-2d.d.ts.map +0 -1
  529. package/dist/world2d/scene-capture-2d.js +0 -92
  530. package/dist/world2d/scene2d-loader.d.ts +0 -27
  531. package/dist/world2d/scene2d-loader.d.ts.map +0 -1
  532. package/dist/world2d/scene2d-loader.js +0 -274
  533. package/dist/world2d/schema/entity2d.d.ts +0 -102
  534. package/dist/world2d/schema/entity2d.d.ts.map +0 -1
  535. package/dist/world2d/schema/entity2d.js +0 -119
  536. package/dist/world2d/schema/physics2d.d.ts +0 -46
  537. package/dist/world2d/schema/physics2d.d.ts.map +0 -1
  538. package/dist/world2d/schema/physics2d.js +0 -45
  539. package/dist/world2d/schema/sprite.d.ts +0 -42
  540. package/dist/world2d/schema/sprite.d.ts.map +0 -1
  541. package/dist/world2d/schema/sprite.js +0 -63
  542. package/dist/world2d/schema/tilemap.d.ts +0 -15
  543. package/dist/world2d/schema/tilemap.d.ts.map +0 -1
  544. package/dist/world2d/schema/tilemap.js +0 -19
  545. package/dist/world2d/schema/tuples2d.d.ts +0 -20
  546. package/dist/world2d/schema/tuples2d.d.ts.map +0 -1
  547. package/dist/world2d/schema/tuples2d.js +0 -19
  548. package/dist/world2d/system-adapters-2d.d.ts +0 -16
  549. package/dist/world2d/system-adapters-2d.d.ts.map +0 -1
  550. package/dist/world2d/system-adapters-2d.js +0 -37
  551. package/dist/world2d/transform-writer-2d.d.ts +0 -16
  552. package/dist/world2d/transform-writer-2d.d.ts.map +0 -1
  553. package/dist/world2d/transform-writer-2d.js +0 -22
  554. package/dist/world2d/types.d.ts +0 -53
  555. package/dist/world2d/types.d.ts.map +0 -1
  556. package/dist/world2d/types.js +0 -1
  557. package/src/runtime/scene-ui-bridge.ts +0 -86
  558. package/src/runtime/scene-ui-data.ts +0 -119
  559. package/src/scene/schema/ui.ts +0 -602
@@ -1 +0,0 @@
1
- {"version":3,"file":"particles.d.ts","sourceRoot":"","sources":["../../../src/scene/schema/particles.ts"],"names":[],"mappings":"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"}
@@ -1,321 +0,0 @@
1
- import { z } from 'zod';
2
- import { Vec3Schema } from './tuples';
3
- // --- Value Generators (mirrors quarks.core FunctionJSON) ---
4
- const ConstantValueSchema = z.object({
5
- type: z.literal('ConstantValue'),
6
- value: z.number(),
7
- });
8
- const IntervalValueSchema = z.object({
9
- type: z.literal('IntervalValue'),
10
- a: z.number(),
11
- b: z.number(),
12
- });
13
- const BezierSchema = z.object({
14
- p0: z.number(),
15
- p1: z.number(),
16
- p2: z.number(),
17
- p3: z.number(),
18
- });
19
- const PiecewiseBezierSchema = z.object({
20
- type: z.literal('PiecewiseBezier'),
21
- functions: z.array(z.object({
22
- function: BezierSchema,
23
- start: z.number(),
24
- })),
25
- });
26
- export const ValueGeneratorSchema = z
27
- .discriminatedUnion('type', [ConstantValueSchema, IntervalValueSchema, PiecewiseBezierSchema])
28
- .describe('Numeric value: constant, random interval, or bezier curve');
29
- // --- Color Generators (mirrors quarks.core ColorGenerator JSON) ---
30
- const ColorRGBA = z.object({
31
- r: z.number(),
32
- g: z.number(),
33
- b: z.number(),
34
- a: z.number(),
35
- });
36
- const ColorRGB = z.object({
37
- r: z.number(),
38
- g: z.number(),
39
- b: z.number(),
40
- });
41
- /** ContinuousLinearFunction JSON format used by Gradient internally */
42
- const CLinearColorSchema = z.object({
43
- type: z.literal('CLinearFunction'),
44
- subType: z.literal('Color'),
45
- keys: z.array(z.object({ value: ColorRGB, pos: z.number() })),
46
- });
47
- const CLinearNumberSchema = z.object({
48
- type: z.literal('CLinearFunction'),
49
- subType: z.literal('Number'),
50
- keys: z.array(z.object({ value: z.number(), pos: z.number() })),
51
- });
52
- const ConstantColorSchema = z.object({
53
- type: z.literal('ConstantColor'),
54
- color: ColorRGBA,
55
- });
56
- const ColorRangeSchema = z.object({
57
- type: z.literal('ColorRange'),
58
- a: ColorRGBA,
59
- b: ColorRGBA,
60
- });
61
- const GradientSchema = z.object({
62
- type: z.literal('Gradient'),
63
- color: CLinearColorSchema,
64
- alpha: CLinearNumberSchema,
65
- });
66
- const RandomColorBetweenGradientSchema = z.object({
67
- type: z.literal('RandomColorBetweenGradient'),
68
- gradient1: GradientSchema,
69
- gradient2: GradientSchema,
70
- });
71
- export const ColorGeneratorSchema = z
72
- .discriminatedUnion('type', [
73
- ConstantColorSchema,
74
- ColorRangeSchema,
75
- GradientSchema,
76
- RandomColorBetweenGradientSchema,
77
- ])
78
- .describe('Color generator: constant, range, gradient, or random between gradients');
79
- // --- Emitter Shapes (mirrors quarks.core shape constructor params) ---
80
- const PointEmitterSchema = z.object({ type: z.literal('point') });
81
- const SphereEmitterSchema = z.object({
82
- type: z.literal('sphere'),
83
- radius: z.number().optional().describe('Sphere radius'),
84
- arc: z.number().optional().describe('Arc angle in radians (2π = full sphere)'),
85
- thickness: z.number().optional().describe('Shell thickness 0–1 (1 = solid, 0 = surface only)'),
86
- });
87
- const HemisphereEmitterSchema = z.object({
88
- type: z.literal('hemisphere'),
89
- radius: z.number().optional().describe('Hemisphere radius'),
90
- arc: z.number().optional().describe('Arc angle in radians'),
91
- thickness: z.number().optional().describe('Shell thickness 0–1'),
92
- });
93
- const ConeEmitterSchema = z.object({
94
- type: z.literal('cone'),
95
- radius: z.number().optional().describe('Cone base radius'),
96
- arc: z.number().optional().describe('Arc angle in radians'),
97
- thickness: z.number().optional().describe('Shell thickness 0–1'),
98
- angle: z.number().optional().describe('Cone opening angle in radians'),
99
- });
100
- const CircleEmitterSchema = z.object({
101
- type: z.literal('circle'),
102
- radius: z.number().optional().describe('Circle radius'),
103
- arc: z.number().optional().describe('Arc angle in radians'),
104
- thickness: z.number().optional().describe('Ring thickness 0–1'),
105
- });
106
- const DonutEmitterSchema = z.object({
107
- type: z.literal('donut'),
108
- radius: z.number().optional().describe('Donut major radius'),
109
- arc: z.number().optional().describe('Arc angle in radians'),
110
- thickness: z.number().optional().describe('Ring thickness 0–1'),
111
- donutRadius: z.number().optional().describe('Donut tube (minor) radius'),
112
- });
113
- const RectangleEmitterSchema = z.object({
114
- type: z.literal('rectangle'),
115
- width: z.number().optional().describe('Rectangle width'),
116
- height: z.number().optional().describe('Rectangle height'),
117
- thickness: z.number().optional().describe('Extrusion depth 0–1'),
118
- });
119
- const GridEmitterSchema = z.object({
120
- type: z.literal('grid'),
121
- width: z.number().optional().describe('Grid total width'),
122
- height: z.number().optional().describe('Grid total height'),
123
- column: z.number().int().optional().describe('Number of columns'),
124
- row: z.number().int().optional().describe('Number of rows'),
125
- });
126
- export const EmitterShapeSchema = z
127
- .discriminatedUnion('type', [
128
- PointEmitterSchema,
129
- SphereEmitterSchema,
130
- HemisphereEmitterSchema,
131
- ConeEmitterSchema,
132
- CircleEmitterSchema,
133
- DonutEmitterSchema,
134
- RectangleEmitterSchema,
135
- GridEmitterSchema,
136
- ])
137
- .describe('Particle emitter shape');
138
- // --- Behaviors (mirrors quarks.core behavior toJSON) ---
139
- const ApplyForceBehaviorSchema = z.object({
140
- type: z.literal('ApplyForce'),
141
- direction: Vec3Schema.describe('Force direction vector'),
142
- magnitude: ValueGeneratorSchema.describe('Force magnitude'),
143
- });
144
- const ColorOverLifeBehaviorSchema = z.object({
145
- type: z.literal('ColorOverLife'),
146
- color: ColorGeneratorSchema.describe('Color curve over particle lifetime'),
147
- });
148
- const SizeOverLifeBehaviorSchema = z.object({
149
- type: z.literal('SizeOverLife'),
150
- size: ValueGeneratorSchema.describe('Size curve over particle lifetime'),
151
- });
152
- const SpeedOverLifeBehaviorSchema = z.object({
153
- type: z.literal('SpeedOverLife'),
154
- speed: ValueGeneratorSchema.describe('Speed multiplier curve over lifetime'),
155
- });
156
- const RotationOverLifeBehaviorSchema = z.object({
157
- type: z.literal('RotationOverLife'),
158
- angularVelocity: ValueGeneratorSchema.describe('Angular velocity in radians/sec'),
159
- });
160
- const ForceOverLifeBehaviorSchema = z.object({
161
- type: z.literal('ForceOverLife'),
162
- x: ValueGeneratorSchema.describe('Force along X axis over lifetime'),
163
- y: ValueGeneratorSchema.describe('Force along Y axis over lifetime'),
164
- z: ValueGeneratorSchema.describe('Force along Z axis over lifetime'),
165
- });
166
- const OrbitOverLifeBehaviorSchema = z.object({
167
- type: z.literal('OrbitOverLife'),
168
- orbitSpeed: ValueGeneratorSchema.describe('Orbit speed over lifetime'),
169
- axis: Vec3Schema.optional().describe('Orbit axis. Defaults to [0, 1, 0]'),
170
- });
171
- const NoiseBehaviorSchema = z.object({
172
- type: z.literal('Noise'),
173
- frequency: ValueGeneratorSchema.describe('Noise frequency'),
174
- power: ValueGeneratorSchema.describe('Noise amplitude'),
175
- positionAmount: ValueGeneratorSchema.optional().describe('Position displacement amount'),
176
- rotationAmount: ValueGeneratorSchema.optional().describe('Rotation displacement amount'),
177
- });
178
- const TurbulenceFieldBehaviorSchema = z.object({
179
- type: z.literal('TurbulenceField'),
180
- scale: Vec3Schema.describe('Turbulence field scale'),
181
- octaves: z.number().int().describe('Noise octave count'),
182
- velocityMultiplier: Vec3Schema.describe('Velocity multiplier per axis'),
183
- timeScale: Vec3Schema.describe('Time scale per axis'),
184
- });
185
- const FrameOverLifeBehaviorSchema = z.object({
186
- type: z.literal('FrameOverLife'),
187
- frame: ValueGeneratorSchema.describe('Sprite sheet frame index over lifetime'),
188
- });
189
- const LimitSpeedOverLifeBehaviorSchema = z.object({
190
- type: z.literal('LimitSpeedOverLife'),
191
- speed: ValueGeneratorSchema.describe('Maximum speed over lifetime'),
192
- dampen: z.number().describe('Damping factor when speed exceeds limit (0–1)'),
193
- });
194
- const ChangeEmitDirectionBehaviorSchema = z.object({
195
- type: z.literal('ChangeEmitDirection'),
196
- angle: ValueGeneratorSchema.describe('Angle deviation from original emit direction'),
197
- });
198
- const GravityForceBehaviorSchema = z.object({
199
- type: z.literal('GravityForce'),
200
- center: Vec3Schema.describe('Gravity center point'),
201
- magnitude: z.number().describe('Gravity force strength'),
202
- });
203
- const WidthOverLengthBehaviorSchema = z.object({
204
- type: z.literal('WidthOverLength'),
205
- width: ValueGeneratorSchema.describe('Trail width over trail length'),
206
- });
207
- export const BehaviorSchema = z
208
- .discriminatedUnion('type', [
209
- ApplyForceBehaviorSchema,
210
- ColorOverLifeBehaviorSchema,
211
- SizeOverLifeBehaviorSchema,
212
- SpeedOverLifeBehaviorSchema,
213
- RotationOverLifeBehaviorSchema,
214
- ForceOverLifeBehaviorSchema,
215
- OrbitOverLifeBehaviorSchema,
216
- NoiseBehaviorSchema,
217
- TurbulenceFieldBehaviorSchema,
218
- FrameOverLifeBehaviorSchema,
219
- LimitSpeedOverLifeBehaviorSchema,
220
- ChangeEmitDirectionBehaviorSchema,
221
- GravityForceBehaviorSchema,
222
- WidthOverLengthBehaviorSchema,
223
- ])
224
- .describe('Particle behavior applied over lifetime');
225
- // --- Render Mode ---
226
- export const RenderModeSchema = z
227
- .enum([
228
- 'billboard',
229
- 'stretchedBillboard',
230
- 'mesh',
231
- 'trail',
232
- 'horizontalBillboard',
233
- 'verticalBillboard',
234
- ])
235
- .describe('How particles are rendered');
236
- // --- Particle Material (our format — asset paths, not Three.js UUIDs) ---
237
- const ParticleMaterialSchema = z
238
- .object({
239
- type: z.enum(['basic', 'standard']).optional().describe('Particle material shading model'),
240
- color: z.string().optional().describe('Particle color as CSS hex string'),
241
- map: z.string().optional().describe('Path to particle sprite texture'),
242
- blending: z
243
- .enum(['normal', 'additive'])
244
- .optional()
245
- .describe('Blending mode (additive for glowing/fire effects)'),
246
- transparent: z.boolean().optional().describe('Enable transparency'),
247
- depthWrite: z
248
- .boolean()
249
- .optional()
250
- .describe('Write to depth buffer (disable for additive effects)'),
251
- side: z.enum(['front', 'back', 'double']).optional().describe('Which face sides to render'),
252
- })
253
- .describe('Particle material settings');
254
- // --- Burst ---
255
- const BurstSchema = z
256
- .object({
257
- time: z.number().describe('Time offset in seconds within the emission cycle'),
258
- count: ValueGeneratorSchema.describe('Number of particles to emit'),
259
- cycle: z.number().optional().describe('Burst repeat interval in seconds'),
260
- interval: z.number().optional().describe('Delay between burst repetitions'),
261
- probability: z.number().optional().describe('Chance of burst firing (0–1)'),
262
- })
263
- .describe('Timed particle burst');
264
- // --- Top-level SceneParticles ---
265
- export const SceneParticlesSchema = z
266
- .object({
267
- // Lifecycle
268
- autoDestroy: z
269
- .boolean()
270
- .optional()
271
- .describe('Destroy the particle system when all particles have died'),
272
- looping: z.boolean().optional().describe('Continuously emit particles'),
273
- prewarm: z
274
- .boolean()
275
- .optional()
276
- .describe('Simulate one full cycle on start so particles appear immediately'),
277
- duration: z.number().optional().describe('Total emission duration in seconds'),
278
- // Shape
279
- shape: EmitterShapeSchema.optional().describe('Emitter shape that defines where particles spawn'),
280
- // Per-particle initial values
281
- startLife: ValueGeneratorSchema.optional().describe('Initial particle lifetime in seconds'),
282
- startSpeed: ValueGeneratorSchema.optional().describe('Initial particle speed'),
283
- startSize: ValueGeneratorSchema.optional().describe('Initial particle size'),
284
- startRotation: ValueGeneratorSchema.optional().describe('Initial particle rotation in radians'),
285
- startColor: ColorGeneratorSchema.optional().describe('Initial particle color'),
286
- startLength: ValueGeneratorSchema.optional().describe('Initial trail length (trail render mode only)'),
287
- startTileIndex: ValueGeneratorSchema.optional().describe('Initial sprite sheet tile index'),
288
- // Emission
289
- emissionOverTime: ValueGeneratorSchema.optional().describe('Particles emitted per second'),
290
- emissionOverDistance: ValueGeneratorSchema.optional().describe('Particles emitted per unit of emitter movement'),
291
- emissionBursts: z.array(BurstSchema).optional().describe('Timed burst emissions'),
292
- // Behaviors
293
- behaviors: z
294
- .array(BehaviorSchema)
295
- .optional()
296
- .describe('Behaviors applied to particles over their lifetime'),
297
- // Rendering
298
- renderMode: RenderModeSchema.optional().describe('How particles are rendered (billboard, trail, mesh, etc.)'),
299
- worldSpace: z
300
- .boolean()
301
- .optional()
302
- .describe('Simulate particles in world space instead of local space'),
303
- renderOrder: z
304
- .number()
305
- .optional()
306
- .describe('Render order for sorting (higher = rendered later)'),
307
- uTileCount: z.number().int().optional().describe('Horizontal tile count in sprite sheet'),
308
- vTileCount: z.number().int().optional().describe('Vertical tile count in sprite sheet'),
309
- blendTiles: z
310
- .boolean()
311
- .optional()
312
- .describe('Blend between sprite sheet tiles for smooth animation'),
313
- softParticles: z.boolean().optional().describe('Enable soft particle depth fading'),
314
- softFarFade: z.number().optional().describe('Far fade distance for soft particles'),
315
- softNearFade: z.number().optional().describe('Near fade distance for soft particles'),
316
- // Material
317
- material: ParticleMaterialSchema.describe('Particle material settings'),
318
- })
319
- .describe('Particle system configuration');
320
- /** Partial schema for prefab instance overrides. */
321
- export const SceneParticlesOverrideSchema = SceneParticlesSchema.partial();
@@ -1,56 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const ScenePhysicsSchema: z.ZodObject<{
3
- bodyType: z.ZodEnum<{
4
- fixed: "fixed";
5
- dynamic: "dynamic";
6
- kinematic: "kinematic";
7
- }>;
8
- mass: z.ZodOptional<z.ZodNumber>;
9
- collider: z.ZodObject<{
10
- type: z.ZodEnum<{
11
- cuboid: "cuboid";
12
- ball: "ball";
13
- capsule: "capsule";
14
- trimesh: "trimesh";
15
- }>;
16
- halfExtents: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
17
- radius: z.ZodOptional<z.ZodNumber>;
18
- halfHeight: z.ZodOptional<z.ZodNumber>;
19
- friction: z.ZodOptional<z.ZodNumber>;
20
- restitution: z.ZodOptional<z.ZodNumber>;
21
- density: z.ZodOptional<z.ZodNumber>;
22
- offset: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
23
- isSensor: z.ZodOptional<z.ZodBoolean>;
24
- collisionGroups: z.ZodOptional<z.ZodNumber>;
25
- collisionFilter: z.ZodOptional<z.ZodNumber>;
26
- }, z.core.$strip>;
27
- }, z.core.$strip>;
28
- /** Partial override — uses SceneColliderOverrideSchema for deep partial on collider. */
29
- export declare const ScenePhysicsOverrideSchema: z.ZodObject<{
30
- bodyType: z.ZodOptional<z.ZodEnum<{
31
- fixed: "fixed";
32
- dynamic: "dynamic";
33
- kinematic: "kinematic";
34
- }>>;
35
- mass: z.ZodOptional<z.ZodNumber>;
36
- collider: z.ZodOptional<z.ZodObject<{
37
- type: z.ZodOptional<z.ZodEnum<{
38
- cuboid: "cuboid";
39
- ball: "ball";
40
- capsule: "capsule";
41
- trimesh: "trimesh";
42
- }>>;
43
- halfExtents: z.ZodOptional<z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
44
- radius: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
45
- halfHeight: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
46
- friction: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
47
- restitution: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
48
- density: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
49
- offset: z.ZodOptional<z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
50
- isSensor: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
51
- collisionGroups: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
52
- collisionFilter: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
53
- }, z.core.$strip>>;
54
- }, z.core.$strip>;
55
- export type ScenePhysics = z.infer<typeof ScenePhysicsSchema>;
56
- //# sourceMappingURL=physics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"physics.d.ts","sourceRoot":"","sources":["../../../src/scene/schema/physics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;iBAwBgB,CAAC;AAEhD,wFAAwF;AACxF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBrC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- import { z } from 'zod';
2
- import { SceneColliderOverrideSchema, SceneColliderSchema } from './collider';
3
- export const ScenePhysicsSchema = z
4
- .object({
5
- bodyType: z
6
- .enum(['dynamic', 'fixed', 'kinematic'])
7
- .describe('Physics body type: dynamic (simulated), fixed (immovable), kinematic (script-driven). ' +
8
- 'T1.1/R1c: ANY physics body (dynamic, fixed, OR kinematic) nested under an ancestor ' +
9
- 'entity that itself has a "dynamic" or "kinematic" body is unsupported (loud load ' +
10
- 'error) — Rapier has no parent/child body relationship, so a moving ancestor cannot ' +
11
- "carry a nested body of ANY type with it; the child's Object3D would stay pinned to " +
12
- "its own (non-moving) body's pose while the ancestor moves out from under it. " +
13
- 'Nesting under a "fixed"/static or physics-less transformed ancestor is fine.'),
14
- mass: z
15
- .number()
16
- .optional()
17
- .describe('Explicit mass override. If omitted, computed from collider density and volume'),
18
- collider: SceneColliderSchema.describe('Collider shape attached to this body. T1.1/T1.2: the Rapier body is created at this ' +
19
- "entity's COMPOSED WORLD transform (parent chain × own local transform) — Rapier has " +
20
- "no concept of a parent Object3D, so nested entities' transforms are baked in at spawn " +
21
- 'time, not read live thereafter.'),
22
- })
23
- .describe('Physics rigid body configuration');
24
- /** Partial override — uses SceneColliderOverrideSchema for deep partial on collider. */
25
- export const ScenePhysicsOverrideSchema = z.object({
26
- bodyType: z
27
- .enum(['dynamic', 'fixed', 'kinematic'])
28
- .optional()
29
- .describe('Physics body type: dynamic (simulated), fixed (immovable), kinematic (script-driven). ' +
30
- 'A body of ANY type nested under a "dynamic"/"kinematic"-bodied ancestor throws a loud ' +
31
- 'load error (T1.1/R1c) — see ScenePhysicsSchema.bodyType.'),
32
- mass: z
33
- .number()
34
- .optional()
35
- .describe('Explicit mass override. If omitted, computed from collider density and volume'),
36
- collider: SceneColliderOverrideSchema.optional().describe('Partial collider overrides merged with prefab'),
37
- });