@adobe/data-gpu 0.9.69

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 (584) hide show
  1. package/CLAUDE.md +98 -0
  2. package/LICENSE +21 -0
  3. package/dist/core/core-plugin.d.ts +44 -0
  4. package/dist/core/core-plugin.js +90 -0
  5. package/dist/core/core-plugin.js.map +1 -0
  6. package/dist/core/frame-time/frame-time-plugin.d.ts +25 -0
  7. package/dist/core/frame-time/frame-time-plugin.js +41 -0
  8. package/dist/core/frame-time/frame-time-plugin.js.map +1 -0
  9. package/dist/core/frame-time/frame-time.d.ts +18 -0
  10. package/dist/core/frame-time/frame-time.js +3 -0
  11. package/dist/core/frame-time/frame-time.js.map +1 -0
  12. package/dist/core/frame-time/public.d.ts +1 -0
  13. package/dist/core/frame-time/public.js +3 -0
  14. package/dist/core/frame-time/public.js.map +1 -0
  15. package/dist/graphics/animation/animation-data-plugin.d.ts +216 -0
  16. package/dist/graphics/animation/animation-data-plugin.js +110 -0
  17. package/dist/graphics/animation/animation-data-plugin.js.map +1 -0
  18. package/dist/graphics/animation/animation-plugin.d.ts +214 -0
  19. package/dist/graphics/animation/animation-plugin.js +26 -0
  20. package/dist/graphics/animation/animation-plugin.js.map +1 -0
  21. package/dist/graphics/animation/animation-plugin.test.d.ts +1 -0
  22. package/dist/graphics/animation/animation-plugin.test.js +142 -0
  23. package/dist/graphics/animation/animation-plugin.test.js.map +1 -0
  24. package/dist/graphics/animation/animation-track/animation-track.d.ts +13 -0
  25. package/dist/graphics/animation/animation-track/animation-track.js +3 -0
  26. package/dist/graphics/animation/animation-track/animation-track.js.map +1 -0
  27. package/dist/graphics/animation/animation-track/componentwise-lerp.d.ts +7 -0
  28. package/dist/graphics/animation/animation-track/componentwise-lerp.js +22 -0
  29. package/dist/graphics/animation/animation-track/componentwise-lerp.js.map +1 -0
  30. package/dist/graphics/animation/animation-track/interpolate.d.ts +8 -0
  31. package/dist/graphics/animation/animation-track/interpolate.js +18 -0
  32. package/dist/graphics/animation/animation-track/interpolate.js.map +1 -0
  33. package/dist/graphics/animation/animation-track/public.d.ts +1 -0
  34. package/dist/graphics/animation/animation-track/public.js +3 -0
  35. package/dist/graphics/animation/animation-track/public.js.map +1 -0
  36. package/dist/graphics/animation/animation-track/sample.d.ts +7 -0
  37. package/dist/graphics/animation/animation-track/sample.js +44 -0
  38. package/dist/graphics/animation/animation-track/sample.js.map +1 -0
  39. package/dist/graphics/animation/interpolation-mode/interpolation-mode.d.ts +4 -0
  40. package/dist/graphics/animation/interpolation-mode/interpolation-mode.js +3 -0
  41. package/dist/graphics/animation/interpolation-mode/interpolation-mode.js.map +1 -0
  42. package/dist/graphics/animation/interpolation-mode/public.d.ts +1 -0
  43. package/dist/graphics/animation/interpolation-mode/public.js +3 -0
  44. package/dist/graphics/animation/interpolation-mode/public.js.map +1 -0
  45. package/dist/graphics/animation/interpolation-mode/schema.d.ts +4 -0
  46. package/dist/graphics/animation/interpolation-mode/schema.js +3 -0
  47. package/dist/graphics/animation/interpolation-mode/schema.js.map +1 -0
  48. package/dist/graphics/camera/camera-plugin.d.ts +112 -0
  49. package/dist/graphics/camera/camera-plugin.js +36 -0
  50. package/dist/graphics/camera/camera-plugin.js.map +1 -0
  51. package/dist/graphics/camera/camera.d.ts +4 -0
  52. package/dist/graphics/camera/camera.js +3 -0
  53. package/dist/graphics/camera/camera.js.map +1 -0
  54. package/dist/graphics/camera/orbit/attach-orbit-drag.d.ts +31 -0
  55. package/dist/graphics/camera/orbit/attach-orbit-drag.js +44 -0
  56. package/dist/graphics/camera/orbit/attach-orbit-drag.js.map +1 -0
  57. package/dist/graphics/camera/orbit/orbit-data-plugin.d.ts +290 -0
  58. package/dist/graphics/camera/orbit/orbit-data-plugin.js +42 -0
  59. package/dist/graphics/camera/orbit/orbit-data-plugin.js.map +1 -0
  60. package/dist/graphics/camera/orbit/orbit-plugin.d.ts +281 -0
  61. package/dist/graphics/camera/orbit/orbit-plugin.js +12 -0
  62. package/dist/graphics/camera/orbit/orbit-plugin.js.map +1 -0
  63. package/dist/graphics/camera/orbit/orbit-system-plugin.d.ts +292 -0
  64. package/dist/graphics/camera/orbit/orbit-system-plugin.js +71 -0
  65. package/dist/graphics/camera/orbit/orbit-system-plugin.js.map +1 -0
  66. package/dist/graphics/camera/orbit/orbit.d.ts +32 -0
  67. package/dist/graphics/camera/orbit/orbit.js +3 -0
  68. package/dist/graphics/camera/orbit/orbit.js.map +1 -0
  69. package/dist/graphics/camera/orbit/public.d.ts +5 -0
  70. package/dist/graphics/camera/orbit/public.js +6 -0
  71. package/dist/graphics/camera/orbit/public.js.map +1 -0
  72. package/dist/graphics/camera/public.d.ts +4 -0
  73. package/dist/graphics/camera/public.js +6 -0
  74. package/dist/graphics/camera/public.js.map +1 -0
  75. package/dist/graphics/camera/schema.d.ts +65 -0
  76. package/dist/graphics/camera/schema.js +19 -0
  77. package/dist/graphics/camera/schema.js.map +1 -0
  78. package/dist/graphics/camera/screen-to-world-ray.d.ts +10 -0
  79. package/dist/graphics/camera/screen-to-world-ray.js +31 -0
  80. package/dist/graphics/camera/screen-to-world-ray.js.map +1 -0
  81. package/dist/graphics/camera/to-view-projection.d.ts +3 -0
  82. package/dist/graphics/camera/to-view-projection.js +23 -0
  83. package/dist/graphics/camera/to-view-projection.js.map +1 -0
  84. package/dist/graphics/graphics-plugin.d.ts +121 -0
  85. package/dist/graphics/graphics-plugin.js +106 -0
  86. package/dist/graphics/graphics-plugin.js.map +1 -0
  87. package/dist/graphics/picking/pick-hit.d.ts +10 -0
  88. package/dist/graphics/picking/pick-hit.js +3 -0
  89. package/dist/graphics/picking/pick-hit.js.map +1 -0
  90. package/dist/graphics/picking/picking-plugin.d.ts +3819 -0
  91. package/dist/graphics/picking/picking-plugin.js +88 -0
  92. package/dist/graphics/picking/picking-plugin.js.map +1 -0
  93. package/dist/graphics/rendering/bone-collider-plugin.d.ts +1619 -0
  94. package/dist/graphics/rendering/bone-collider-plugin.js +207 -0
  95. package/dist/graphics/rendering/bone-collider-plugin.js.map +1 -0
  96. package/dist/graphics/rendering/display-transform-plugin.d.ts +52 -0
  97. package/dist/graphics/rendering/display-transform-plugin.js +25 -0
  98. package/dist/graphics/rendering/display-transform-plugin.js.map +1 -0
  99. package/dist/graphics/rendering/ibl-render/brdf.wgsl.d.ts +2 -0
  100. package/dist/graphics/rendering/ibl-render/brdf.wgsl.js +42 -0
  101. package/dist/graphics/rendering/ibl-render/brdf.wgsl.js.map +1 -0
  102. package/dist/graphics/rendering/ibl-render/ibl/brdf-lut.d.ts +1 -0
  103. package/dist/graphics/rendering/ibl-render/ibl/brdf-lut.js +91 -0
  104. package/dist/graphics/rendering/ibl-render/ibl/brdf-lut.js.map +1 -0
  105. package/dist/graphics/rendering/ibl-render/ibl/build-ibl-resources.d.ts +24 -0
  106. package/dist/graphics/rendering/ibl-render/ibl/build-ibl-resources.js +34 -0
  107. package/dist/graphics/rendering/ibl-render/ibl/build-ibl-resources.js.map +1 -0
  108. package/dist/graphics/rendering/ibl-render/ibl/create-cubemap.d.ts +1 -0
  109. package/dist/graphics/rendering/ibl-render/ibl/create-cubemap.js +12 -0
  110. package/dist/graphics/rendering/ibl-render/ibl/create-cubemap.js.map +1 -0
  111. package/dist/graphics/rendering/ibl-render/ibl/cube-face-view.d.ts +1 -0
  112. package/dist/graphics/rendering/ibl-render/ibl/cube-face-view.js +11 -0
  113. package/dist/graphics/rendering/ibl-render/ibl/cube-face-view.js.map +1 -0
  114. package/dist/graphics/rendering/ibl-render/ibl/cubemap-sample-view.d.ts +1 -0
  115. package/dist/graphics/rendering/ibl-render/ibl/cubemap-sample-view.js +9 -0
  116. package/dist/graphics/rendering/ibl-render/ibl/cubemap-sample-view.js.map +1 -0
  117. package/dist/graphics/rendering/ibl-render/ibl/environment.d.ts +8 -0
  118. package/dist/graphics/rendering/ibl-render/ibl/environment.js +170 -0
  119. package/dist/graphics/rendering/ibl-render/ibl/environment.js.map +1 -0
  120. package/dist/graphics/rendering/ibl-render/ibl/float-to-half.d.ts +2 -0
  121. package/dist/graphics/rendering/ibl-render/ibl/float-to-half.js +32 -0
  122. package/dist/graphics/rendering/ibl-render/ibl/float-to-half.js.map +1 -0
  123. package/dist/graphics/rendering/ibl-render/ibl/ibl-math.wgsl.d.ts +2 -0
  124. package/dist/graphics/rendering/ibl-render/ibl/ibl-math.wgsl.js +59 -0
  125. package/dist/graphics/rendering/ibl-render/ibl/ibl-math.wgsl.js.map +1 -0
  126. package/dist/graphics/rendering/ibl-render/ibl/irradiance.d.ts +1 -0
  127. package/dist/graphics/rendering/ibl-render/ibl/irradiance.js +94 -0
  128. package/dist/graphics/rendering/ibl-render/ibl/irradiance.js.map +1 -0
  129. package/dist/graphics/rendering/ibl-render/ibl/parse-hdr.d.ts +6 -0
  130. package/dist/graphics/rendering/ibl-render/ibl/parse-hdr.js +106 -0
  131. package/dist/graphics/rendering/ibl-render/ibl/parse-hdr.js.map +1 -0
  132. package/dist/graphics/rendering/ibl-render/ibl/prefilter.d.ts +5 -0
  133. package/dist/graphics/rendering/ibl-render/ibl/prefilter.js +103 -0
  134. package/dist/graphics/rendering/ibl-render/ibl/prefilter.js.map +1 -0
  135. package/dist/graphics/rendering/ibl-render/ibl/render-helpers.d.ts +4 -0
  136. package/dist/graphics/rendering/ibl-render/ibl/render-helpers.js +16 -0
  137. package/dist/graphics/rendering/ibl-render/ibl/render-helpers.js.map +1 -0
  138. package/dist/graphics/rendering/ibl-render/ibl-render-plugin.d.ts +1028 -0
  139. package/dist/graphics/rendering/ibl-render/ibl-render-plugin.js +409 -0
  140. package/dist/graphics/rendering/ibl-render/ibl-render-plugin.js.map +1 -0
  141. package/dist/graphics/rendering/ibl-render/ibl-shader.wgsl.d.ts +8 -0
  142. package/dist/graphics/rendering/ibl-render/ibl-shader.wgsl.js +173 -0
  143. package/dist/graphics/rendering/ibl-render/ibl-shader.wgsl.js.map +1 -0
  144. package/dist/graphics/rendering/ibl-render/skybox-shader.wgsl.d.ts +2 -0
  145. package/dist/graphics/rendering/ibl-render/skybox-shader.wgsl.js +50 -0
  146. package/dist/graphics/rendering/ibl-render/skybox-shader.wgsl.js.map +1 -0
  147. package/dist/graphics/rendering/interpolation-plugin.d.ts +485 -0
  148. package/dist/graphics/rendering/interpolation-plugin.js +98 -0
  149. package/dist/graphics/rendering/interpolation-plugin.js.map +1 -0
  150. package/dist/graphics/rendering/interpolation.test.d.ts +1 -0
  151. package/dist/graphics/rendering/interpolation.test.js +38 -0
  152. package/dist/graphics/rendering/interpolation.test.js.map +1 -0
  153. package/dist/graphics/rendering/jolt-ragdoll-plugin.d.ts +1628 -0
  154. package/dist/graphics/rendering/jolt-ragdoll-plugin.js +218 -0
  155. package/dist/graphics/rendering/jolt-ragdoll-plugin.js.map +1 -0
  156. package/dist/graphics/rendering/material-gpu/material-arrays.d.ts +47 -0
  157. package/dist/graphics/rendering/material-gpu/material-arrays.js +83 -0
  158. package/dist/graphics/rendering/material-gpu/material-arrays.js.map +1 -0
  159. package/dist/graphics/rendering/material-gpu/material-bind-group.d.ts +9 -0
  160. package/dist/graphics/rendering/material-gpu/material-bind-group.js +52 -0
  161. package/dist/graphics/rendering/material-gpu/material-bind-group.js.map +1 -0
  162. package/dist/graphics/rendering/material-gpu/material-gpu-plugin.d.ts +259 -0
  163. package/dist/graphics/rendering/material-gpu/material-gpu-plugin.js +90 -0
  164. package/dist/graphics/rendering/material-gpu/material-gpu-plugin.js.map +1 -0
  165. package/dist/graphics/rendering/model-collider-plugin.d.ts +1232 -0
  166. package/dist/graphics/rendering/model-collider-plugin.js +81 -0
  167. package/dist/graphics/rendering/model-collider-plugin.js.map +1 -0
  168. package/dist/graphics/rendering/pbr-core-plugin.d.ts +75 -0
  169. package/dist/graphics/rendering/pbr-core-plugin.js +39 -0
  170. package/dist/graphics/rendering/pbr-core-plugin.js.map +1 -0
  171. package/dist/graphics/rendering/pbr-render/pbr-array-shader.wgsl.d.ts +10 -0
  172. package/dist/graphics/rendering/pbr-render/pbr-array-shader.wgsl.js +145 -0
  173. package/dist/graphics/rendering/pbr-render/pbr-array-shader.wgsl.js.map +1 -0
  174. package/dist/graphics/rendering/pbr-render/pbr-render-plugin.d.ts +1266 -0
  175. package/dist/graphics/rendering/pbr-render/pbr-render-plugin.js +254 -0
  176. package/dist/graphics/rendering/pbr-render/pbr-render-plugin.js.map +1 -0
  177. package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.d.ts +1004 -0
  178. package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.js +116 -0
  179. package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.js.map +1 -0
  180. package/dist/graphics/rendering/ragdoll-trigger-plugin.d.ts +31 -0
  181. package/dist/graphics/rendering/ragdoll-trigger-plugin.js +20 -0
  182. package/dist/graphics/rendering/ragdoll-trigger-plugin.js.map +1 -0
  183. package/dist/graphics/rendering/rendering-plugin.d.ts +1 -0
  184. package/dist/graphics/rendering/rendering-plugin.js +3 -0
  185. package/dist/graphics/rendering/rendering-plugin.js.map +1 -0
  186. package/dist/graphics/rendering/skinning/skinning-attributes/layout.d.ts +2 -0
  187. package/dist/graphics/rendering/skinning/skinning-attributes/layout.js +18 -0
  188. package/dist/graphics/rendering/skinning/skinning-attributes/layout.js.map +1 -0
  189. package/dist/graphics/rendering/skinning/skinning-attributes/public.d.ts +1 -0
  190. package/dist/graphics/rendering/skinning/skinning-attributes/public.js +3 -0
  191. package/dist/graphics/rendering/skinning/skinning-attributes/public.js.map +1 -0
  192. package/dist/graphics/rendering/skinning/skinning-attributes/skinning-attributes.d.ts +1 -0
  193. package/dist/graphics/rendering/skinning/skinning-attributes/skinning-attributes.js +3 -0
  194. package/dist/graphics/rendering/skinning/skinning-attributes/skinning-attributes.js.map +1 -0
  195. package/dist/graphics/rendering/skinning/skinning-plugin.d.ts +1212 -0
  196. package/dist/graphics/rendering/skinning/skinning-plugin.js +207 -0
  197. package/dist/graphics/rendering/skinning/skinning-plugin.js.map +1 -0
  198. package/dist/graphics/rendering/standard-vertex/layout.d.ts +2 -0
  199. package/dist/graphics/rendering/standard-vertex/layout.js +16 -0
  200. package/dist/graphics/rendering/standard-vertex/layout.js.map +1 -0
  201. package/dist/graphics/rendering/standard-vertex/public.d.ts +2 -0
  202. package/dist/graphics/rendering/standard-vertex/public.js +4 -0
  203. package/dist/graphics/rendering/standard-vertex/public.js.map +1 -0
  204. package/dist/graphics/rendering/standard-vertex/schema.d.ts +52 -0
  205. package/dist/graphics/rendering/standard-vertex/schema.js +15 -0
  206. package/dist/graphics/rendering/standard-vertex/schema.js.map +1 -0
  207. package/dist/graphics/rendering/standard-vertex/standard-vertex.d.ts +4 -0
  208. package/dist/graphics/rendering/standard-vertex/standard-vertex.js +3 -0
  209. package/dist/graphics/rendering/standard-vertex/standard-vertex.js.map +1 -0
  210. package/dist/graphics/rendering/visible-material/color-material-options.d.ts +7 -0
  211. package/dist/graphics/rendering/visible-material/color-material-options.js +3 -0
  212. package/dist/graphics/rendering/visible-material/color-material-options.js.map +1 -0
  213. package/dist/graphics/rendering/visible-material/create-bind-group-layout.d.ts +8 -0
  214. package/dist/graphics/rendering/visible-material/create-bind-group-layout.js +35 -0
  215. package/dist/graphics/rendering/visible-material/create-bind-group-layout.js.map +1 -0
  216. package/dist/graphics/rendering/visible-material/create-color-bind-group.d.ts +10 -0
  217. package/dist/graphics/rendering/visible-material/create-color-bind-group.js +26 -0
  218. package/dist/graphics/rendering/visible-material/create-color-bind-group.js.map +1 -0
  219. package/dist/graphics/rendering/visible-material/public.d.ts +4 -0
  220. package/dist/graphics/rendering/visible-material/public.js +5 -0
  221. package/dist/graphics/rendering/visible-material/public.js.map +1 -0
  222. package/dist/graphics/rendering/visible-material/schema.d.ts +49 -0
  223. package/dist/graphics/rendering/visible-material/schema.js +23 -0
  224. package/dist/graphics/rendering/visible-material/schema.js.map +1 -0
  225. package/dist/graphics/rendering/visible-material/visible-material.d.ts +4 -0
  226. package/dist/graphics/rendering/visible-material/visible-material.js +3 -0
  227. package/dist/graphics/rendering/visible-material/visible-material.js.map +1 -0
  228. package/dist/graphics/scene/light/light-plugin.d.ts +30 -0
  229. package/dist/graphics/scene/light/light-plugin.js +35 -0
  230. package/dist/graphics/scene/light/light-plugin.js.map +1 -0
  231. package/dist/graphics/scene/light/light.d.ts +14 -0
  232. package/dist/graphics/scene/light/light.js +3 -0
  233. package/dist/graphics/scene/light/light.js.map +1 -0
  234. package/dist/graphics/scene/light/public.d.ts +1 -0
  235. package/dist/graphics/scene/light/public.js +2 -0
  236. package/dist/graphics/scene/light/public.js.map +1 -0
  237. package/dist/graphics/scene/model/geometry/geometry.d.ts +9 -0
  238. package/dist/graphics/scene/model/geometry/geometry.js +3 -0
  239. package/dist/graphics/scene/model/geometry/geometry.js.map +1 -0
  240. package/dist/graphics/scene/model/geometry/public.d.ts +1 -0
  241. package/dist/graphics/scene/model/geometry/public.js +3 -0
  242. package/dist/graphics/scene/model/geometry/public.js.map +1 -0
  243. package/dist/graphics/scene/model/gltf/accessor-view.d.ts +9 -0
  244. package/dist/graphics/scene/model/gltf/accessor-view.js +44 -0
  245. package/dist/graphics/scene/model/gltf/accessor-view.js.map +1 -0
  246. package/dist/graphics/scene/model/gltf/build-material-bind-group.d.ts +22 -0
  247. package/dist/graphics/scene/model/gltf/build-material-bind-group.js +75 -0
  248. package/dist/graphics/scene/model/gltf/build-material-bind-group.js.map +1 -0
  249. package/dist/graphics/scene/model/gltf/compute-world-matrices.d.ts +7 -0
  250. package/dist/graphics/scene/model/gltf/compute-world-matrices.js +38 -0
  251. package/dist/graphics/scene/model/gltf/compute-world-matrices.js.map +1 -0
  252. package/dist/graphics/scene/model/gltf/create-color-material.d.ts +3 -0
  253. package/dist/graphics/scene/model/gltf/create-color-material.js +34 -0
  254. package/dist/graphics/scene/model/gltf/create-color-material.js.map +1 -0
  255. package/dist/graphics/scene/model/gltf/decode-images.d.ts +12 -0
  256. package/dist/graphics/scene/model/gltf/decode-images.js +68 -0
  257. package/dist/graphics/scene/model/gltf/decode-images.js.map +1 -0
  258. package/dist/graphics/scene/model/gltf/gltf-schema.d.ts +152 -0
  259. package/dist/graphics/scene/model/gltf/gltf-schema.js +20 -0
  260. package/dist/graphics/scene/model/gltf/gltf-schema.js.map +1 -0
  261. package/dist/graphics/scene/model/gltf/load-gltf-model.d.ts +42 -0
  262. package/dist/graphics/scene/model/gltf/load-gltf-model.js +175 -0
  263. package/dist/graphics/scene/model/gltf/load-gltf-model.js.map +1 -0
  264. package/dist/graphics/scene/model/gltf/pack-vertex-buffer.d.ts +21 -0
  265. package/dist/graphics/scene/model/gltf/pack-vertex-buffer.js +106 -0
  266. package/dist/graphics/scene/model/gltf/pack-vertex-buffer.js.map +1 -0
  267. package/dist/graphics/scene/model/gltf/parse-animations.d.ts +18 -0
  268. package/dist/graphics/scene/model/gltf/parse-animations.js +51 -0
  269. package/dist/graphics/scene/model/gltf/parse-animations.js.map +1 -0
  270. package/dist/graphics/scene/model/gltf/parse-glb.d.ts +6 -0
  271. package/dist/graphics/scene/model/gltf/parse-glb.js +40 -0
  272. package/dist/graphics/scene/model/gltf/parse-glb.js.map +1 -0
  273. package/dist/graphics/scene/model/gltf/parse-skin.d.ts +19 -0
  274. package/dist/graphics/scene/model/gltf/parse-skin.js +43 -0
  275. package/dist/graphics/scene/model/gltf/parse-skin.js.map +1 -0
  276. package/dist/graphics/scene/model/model-loader-plugin.d.ts +922 -0
  277. package/dist/graphics/scene/model/model-loader-plugin.js +120 -0
  278. package/dist/graphics/scene/model/model-loader-plugin.js.map +1 -0
  279. package/dist/graphics/scene/model/model-plugin.d.ts +352 -0
  280. package/dist/graphics/scene/model/model-plugin.js +39 -0
  281. package/dist/graphics/scene/model/model-plugin.js.map +1 -0
  282. package/dist/graphics/scene/model/model.d.ts +11 -0
  283. package/dist/graphics/scene/model/model.js +3 -0
  284. package/dist/graphics/scene/model/model.js.map +1 -0
  285. package/dist/graphics/scene/model/public.d.ts +1 -0
  286. package/dist/graphics/scene/model/public.js +2 -0
  287. package/dist/graphics/scene/model/public.js.map +1 -0
  288. package/dist/graphics/scene/model/shape/convex-hull.d.ts +36 -0
  289. package/dist/graphics/scene/model/shape/convex-hull.js +152 -0
  290. package/dist/graphics/scene/model/shape/convex-hull.js.map +1 -0
  291. package/dist/graphics/scene/model/shape/convex-hull.test.d.ts +1 -0
  292. package/dist/graphics/scene/model/shape/convex-hull.test.js +78 -0
  293. package/dist/graphics/scene/model/shape/convex-hull.test.js.map +1 -0
  294. package/dist/graphics/scene/model/shape/shape-geometry-plugin.d.ts +631 -0
  295. package/dist/graphics/scene/model/shape/shape-geometry-plugin.js +61 -0
  296. package/dist/graphics/scene/model/shape/shape-geometry-plugin.js.map +1 -0
  297. package/dist/graphics/scene/model/shape/shape-mesh.d.ts +34 -0
  298. package/dist/graphics/scene/model/shape/shape-mesh.js +142 -0
  299. package/dist/graphics/scene/model/shape/shape-mesh.js.map +1 -0
  300. package/dist/graphics/scene/model/shape/upload-shape-mesh.d.ts +9 -0
  301. package/dist/graphics/scene/model/shape/upload-shape-mesh.js +12 -0
  302. package/dist/graphics/scene/model/shape/upload-shape-mesh.js.map +1 -0
  303. package/dist/graphics/scene/model/world-bounds-plugin.d.ts +909 -0
  304. package/dist/graphics/scene/model/world-bounds-plugin.js +93 -0
  305. package/dist/graphics/scene/model/world-bounds-plugin.js.map +1 -0
  306. package/dist/graphics/scene/node/node-data-plugin.d.ts +113 -0
  307. package/dist/graphics/scene/node/node-data-plugin.js +27 -0
  308. package/dist/graphics/scene/node/node-data-plugin.js.map +1 -0
  309. package/dist/graphics/scene/node/node-plugin.d.ts +102 -0
  310. package/dist/graphics/scene/node/node-plugin.js +12 -0
  311. package/dist/graphics/scene/node/node-plugin.js.map +1 -0
  312. package/dist/graphics/scene/node/node.d.ts +19 -0
  313. package/dist/graphics/scene/node/node.js +3 -0
  314. package/dist/graphics/scene/node/node.js.map +1 -0
  315. package/dist/graphics/scene/node/public.d.ts +1 -0
  316. package/dist/graphics/scene/node/public.js +2 -0
  317. package/dist/graphics/scene/node/public.js.map +1 -0
  318. package/dist/graphics/scene/node/transform-plugin.d.ts +123 -0
  319. package/dist/graphics/scene/node/transform-plugin.js +65 -0
  320. package/dist/graphics/scene/node/transform-plugin.js.map +1 -0
  321. package/dist/graphics/scene/scene-plugin.d.ts +461 -0
  322. package/dist/graphics/scene/scene-plugin.js +19 -0
  323. package/dist/graphics/scene/scene-plugin.js.map +1 -0
  324. package/dist/graphics/scene/scene-uniforms/create-bind-group-layout.d.ts +7 -0
  325. package/dist/graphics/scene/scene-uniforms/create-bind-group-layout.js +19 -0
  326. package/dist/graphics/scene/scene-uniforms/create-bind-group-layout.js.map +1 -0
  327. package/dist/graphics/scene/scene-uniforms/public.d.ts +3 -0
  328. package/dist/graphics/scene/scene-uniforms/public.js +5 -0
  329. package/dist/graphics/scene/scene-uniforms/public.js.map +1 -0
  330. package/dist/graphics/scene/scene-uniforms/scene-uniforms-plugin.d.ts +137 -0
  331. package/dist/graphics/scene/scene-uniforms/scene-uniforms-plugin.js +59 -0
  332. package/dist/graphics/scene/scene-uniforms/scene-uniforms-plugin.js.map +1 -0
  333. package/dist/graphics/scene/scene-uniforms/scene-uniforms.d.ts +11 -0
  334. package/dist/graphics/scene/scene-uniforms/scene-uniforms.js +3 -0
  335. package/dist/graphics/scene/scene-uniforms/scene-uniforms.js.map +1 -0
  336. package/dist/graphics/scene/scene-uniforms/schema.d.ts +56 -0
  337. package/dist/graphics/scene/scene-uniforms/schema.js +15 -0
  338. package/dist/graphics/scene/scene-uniforms/schema.js.map +1 -0
  339. package/dist/index.d.ts +53 -0
  340. package/dist/index.js +56 -0
  341. package/dist/index.js.map +1 -0
  342. package/dist/material/material-plugin.d.ts +221 -0
  343. package/dist/material/material-plugin.js +60 -0
  344. package/dist/material/material-plugin.js.map +1 -0
  345. package/dist/material/material.d.ts +31 -0
  346. package/dist/material/material.js +3 -0
  347. package/dist/material/material.js.map +1 -0
  348. package/dist/material/public.d.ts +2 -0
  349. package/dist/material/public.js +4 -0
  350. package/dist/material/public.js.map +1 -0
  351. package/dist/material/standard-materials.d.ts +3 -0
  352. package/dist/material/standard-materials.js +35 -0
  353. package/dist/material/standard-materials.js.map +1 -0
  354. package/dist/physics/body/body-type/body-type.d.ts +10 -0
  355. package/dist/physics/body/body-type/body-type.js +3 -0
  356. package/dist/physics/body/body-type/body-type.js.map +1 -0
  357. package/dist/physics/body/body-type/is-dynamic.d.ts +3 -0
  358. package/dist/physics/body/body-type/is-dynamic.js +6 -0
  359. package/dist/physics/body/body-type/is-dynamic.js.map +1 -0
  360. package/dist/physics/body/body-type/public.d.ts +2 -0
  361. package/dist/physics/body/body-type/public.js +4 -0
  362. package/dist/physics/body/body-type/public.js.map +1 -0
  363. package/dist/physics/body/body-type/schema.d.ts +4 -0
  364. package/dist/physics/body/body-type/schema.js +3 -0
  365. package/dist/physics/body/body-type/schema.js.map +1 -0
  366. package/dist/physics/body/collider-mesh.d.ts +11 -0
  367. package/dist/physics/body/collider-mesh.js +3 -0
  368. package/dist/physics/body/collider-mesh.js.map +1 -0
  369. package/dist/physics/body/collider-shape/collider-shape.d.ts +15 -0
  370. package/dist/physics/body/collider-shape/collider-shape.js +3 -0
  371. package/dist/physics/body/collider-shape/collider-shape.js.map +1 -0
  372. package/dist/physics/body/collider-shape/list.d.ts +3 -0
  373. package/dist/physics/body/collider-shape/list.js +5 -0
  374. package/dist/physics/body/collider-shape/list.js.map +1 -0
  375. package/dist/physics/body/collider-shape/mass-properties.d.ts +10 -0
  376. package/dist/physics/body/collider-shape/mass-properties.js +48 -0
  377. package/dist/physics/body/collider-shape/mass-properties.js.map +1 -0
  378. package/dist/physics/body/collider-shape/public.d.ts +4 -0
  379. package/dist/physics/body/collider-shape/public.js +6 -0
  380. package/dist/physics/body/collider-shape/public.js.map +1 -0
  381. package/dist/physics/body/collider-shape/schema.d.ts +4 -0
  382. package/dist/physics/body/collider-shape/schema.js +3 -0
  383. package/dist/physics/body/collider-shape/schema.js.map +1 -0
  384. package/dist/physics/body/collider-shape/to-index.d.ts +3 -0
  385. package/dist/physics/body/collider-shape/to-index.js +6 -0
  386. package/dist/physics/body/collider-shape/to-index.js.map +1 -0
  387. package/dist/physics/body/rigid-body.d.ts +23 -0
  388. package/dist/physics/body/rigid-body.js +3 -0
  389. package/dist/physics/body/rigid-body.js.map +1 -0
  390. package/dist/physics/body/static-collider.d.ts +25 -0
  391. package/dist/physics/body/static-collider.js +3 -0
  392. package/dist/physics/body/static-collider.js.map +1 -0
  393. package/dist/physics/joint/joint-plugin.d.ts +88 -0
  394. package/dist/physics/joint/joint-plugin.js +32 -0
  395. package/dist/physics/joint/joint-plugin.js.map +1 -0
  396. package/dist/physics/joint/joint-type/joint-type.d.ts +15 -0
  397. package/dist/physics/joint/joint-type/joint-type.js +3 -0
  398. package/dist/physics/joint/joint-type/joint-type.js.map +1 -0
  399. package/dist/physics/joint/joint-type/public.d.ts +1 -0
  400. package/dist/physics/joint/joint-type/public.js +3 -0
  401. package/dist/physics/joint/joint-type/public.js.map +1 -0
  402. package/dist/physics/joint/joint-type/schema.d.ts +4 -0
  403. package/dist/physics/joint/joint-type/schema.js +3 -0
  404. package/dist/physics/joint/joint-type/schema.js.map +1 -0
  405. package/dist/physics/joint/joint.d.ts +24 -0
  406. package/dist/physics/joint/joint.js +3 -0
  407. package/dist/physics/joint/joint.js.map +1 -0
  408. package/dist/physics/physics-clock-plugin.d.ts +86 -0
  409. package/dist/physics/physics-clock-plugin.js +37 -0
  410. package/dist/physics/physics-clock-plugin.js.map +1 -0
  411. package/dist/physics/physics-clock.test.d.ts +1 -0
  412. package/dist/physics/physics-clock.test.js +45 -0
  413. package/dist/physics/physics-clock.test.js.map +1 -0
  414. package/dist/physics/physics-data-plugin.d.ts +348 -0
  415. package/dist/physics/physics-data-plugin.js +71 -0
  416. package/dist/physics/physics-data-plugin.js.map +1 -0
  417. package/dist/physics/ragdoll/fit-bone-capsules.d.ts +39 -0
  418. package/dist/physics/ragdoll/fit-bone-capsules.js +87 -0
  419. package/dist/physics/ragdoll/fit-bone-capsules.js.map +1 -0
  420. package/dist/physics/ragdoll/fit-bone-capsules.test.d.ts +1 -0
  421. package/dist/physics/ragdoll/fit-bone-capsules.test.js +67 -0
  422. package/dist/physics/ragdoll/fit-bone-capsules.test.js.map +1 -0
  423. package/dist/physics/solvers/jolt-solver-plugin.d.ts +465 -0
  424. package/dist/physics/solvers/jolt-solver-plugin.js +440 -0
  425. package/dist/physics/solvers/jolt-solver-plugin.js.map +1 -0
  426. package/dist/physics/solvers/rapier-jolt.benchmark.test.d.ts +1 -0
  427. package/dist/physics/solvers/rapier-jolt.benchmark.test.js +35 -0
  428. package/dist/physics/solvers/rapier-jolt.benchmark.test.js.map +1 -0
  429. package/dist/physics/solvers/rapier-solver-plugin.d.ts +444 -0
  430. package/dist/physics/solvers/rapier-solver-plugin.js +284 -0
  431. package/dist/physics/solvers/rapier-solver-plugin.js.map +1 -0
  432. package/dist/physics/solvers/solver-benchmark.d.ts +45 -0
  433. package/dist/physics/solvers/solver-benchmark.js +115 -0
  434. package/dist/physics/solvers/solver-benchmark.js.map +1 -0
  435. package/package.json +34 -0
  436. package/src/core/core-plugin.ts +92 -0
  437. package/src/core/frame-time/frame-time-plugin.ts +44 -0
  438. package/src/core/frame-time/frame-time.ts +21 -0
  439. package/src/core/frame-time/public.ts +3 -0
  440. package/src/graphics/animation/animation-data-plugin.ts +119 -0
  441. package/src/graphics/animation/animation-plugin.test.ts +161 -0
  442. package/src/graphics/animation/animation-plugin.ts +26 -0
  443. package/src/graphics/animation/animation-track/animation-track.ts +17 -0
  444. package/src/graphics/animation/animation-track/componentwise-lerp.ts +24 -0
  445. package/src/graphics/animation/animation-track/interpolate.ts +24 -0
  446. package/src/graphics/animation/animation-track/public.ts +3 -0
  447. package/src/graphics/animation/animation-track/sample.ts +48 -0
  448. package/src/graphics/animation/interpolation-mode/interpolation-mode.ts +8 -0
  449. package/src/graphics/animation/interpolation-mode/public.ts +3 -0
  450. package/src/graphics/animation/interpolation-mode/schema.ts +5 -0
  451. package/src/graphics/camera/camera-plugin.ts +37 -0
  452. package/src/graphics/camera/camera.ts +8 -0
  453. package/src/graphics/camera/orbit/attach-orbit-drag.ts +62 -0
  454. package/src/graphics/camera/orbit/orbit-data-plugin.ts +44 -0
  455. package/src/graphics/camera/orbit/orbit-plugin.ts +13 -0
  456. package/src/graphics/camera/orbit/orbit-system-plugin.ts +74 -0
  457. package/src/graphics/camera/orbit/orbit.ts +36 -0
  458. package/src/graphics/camera/orbit/public.ts +7 -0
  459. package/src/graphics/camera/public.ts +6 -0
  460. package/src/graphics/camera/schema.ts +21 -0
  461. package/src/graphics/camera/screen-to-world-ray.ts +47 -0
  462. package/src/graphics/camera/to-view-projection.ts +29 -0
  463. package/src/graphics/graphics-plugin.ts +108 -0
  464. package/src/graphics/picking/pick-hit.ts +13 -0
  465. package/src/graphics/picking/picking-plugin.ts +101 -0
  466. package/src/graphics/plugins.md +120 -0
  467. package/src/graphics/rendering/bone-collider-plugin.ts +182 -0
  468. package/src/graphics/rendering/display-transform-plugin.ts +26 -0
  469. package/src/graphics/rendering/ibl-render/brdf.wgsl.ts +43 -0
  470. package/src/graphics/rendering/ibl-render/ibl/brdf-lut.ts +101 -0
  471. package/src/graphics/rendering/ibl-render/ibl/build-ibl-resources.ts +57 -0
  472. package/src/graphics/rendering/ibl-render/ibl/create-cubemap.ts +17 -0
  473. package/src/graphics/rendering/ibl-render/ibl/cube-face-view.ts +11 -0
  474. package/src/graphics/rendering/ibl-render/ibl/cubemap-sample-view.ts +9 -0
  475. package/src/graphics/rendering/ibl-render/ibl/environment.ts +190 -0
  476. package/src/graphics/rendering/ibl-render/ibl/float-to-half.ts +35 -0
  477. package/src/graphics/rendering/ibl-render/ibl/ibl-math.wgsl.ts +60 -0
  478. package/src/graphics/rendering/ibl-render/ibl/irradiance.ts +105 -0
  479. package/src/graphics/rendering/ibl-render/ibl/parse-hdr.ts +108 -0
  480. package/src/graphics/rendering/ibl-render/ibl/prefilter.ts +121 -0
  481. package/src/graphics/rendering/ibl-render/ibl/render-helpers.ts +17 -0
  482. package/src/graphics/rendering/ibl-render/ibl-render-plugin.ts +415 -0
  483. package/src/graphics/rendering/ibl-render/ibl-shader.wgsl.ts +185 -0
  484. package/src/graphics/rendering/ibl-render/skybox-shader.wgsl.ts +51 -0
  485. package/src/graphics/rendering/interpolation-plugin.ts +97 -0
  486. package/src/graphics/rendering/interpolation.test.ts +52 -0
  487. package/src/graphics/rendering/jolt-ragdoll-plugin.ts +174 -0
  488. package/src/graphics/rendering/material-gpu/material-arrays.ts +113 -0
  489. package/src/graphics/rendering/material-gpu/material-bind-group.ts +61 -0
  490. package/src/graphics/rendering/material-gpu/material-gpu-plugin.ts +95 -0
  491. package/src/graphics/rendering/model-collider-plugin.ts +77 -0
  492. package/src/graphics/rendering/pbr-core-plugin.ts +40 -0
  493. package/src/graphics/rendering/pbr-render/pbr-array-shader.wgsl.ts +146 -0
  494. package/src/graphics/rendering/pbr-render/pbr-render-plugin.ts +247 -0
  495. package/src/graphics/rendering/pbr-render/physics-bridge-plugin.ts +106 -0
  496. package/src/graphics/rendering/ragdoll-trigger-plugin.ts +21 -0
  497. package/src/graphics/rendering/rendering-plugin.ts +3 -0
  498. package/src/graphics/rendering/skinning/skinning-attributes/layout.ts +20 -0
  499. package/src/graphics/rendering/skinning/skinning-attributes/public.ts +3 -0
  500. package/src/graphics/rendering/skinning/skinning-attributes/skinning-attributes.ts +3 -0
  501. package/src/graphics/rendering/skinning/skinning-plugin.ts +213 -0
  502. package/src/graphics/rendering/standard-vertex/layout.ts +19 -0
  503. package/src/graphics/rendering/standard-vertex/public.ts +4 -0
  504. package/src/graphics/rendering/standard-vertex/schema.ts +17 -0
  505. package/src/graphics/rendering/standard-vertex/standard-vertex.ts +8 -0
  506. package/src/graphics/rendering/visible-material/color-material-options.ts +10 -0
  507. package/src/graphics/rendering/visible-material/create-bind-group-layout.ts +35 -0
  508. package/src/graphics/rendering/visible-material/create-color-bind-group.ts +40 -0
  509. package/src/graphics/rendering/visible-material/public.ts +6 -0
  510. package/src/graphics/rendering/visible-material/schema.ts +25 -0
  511. package/src/graphics/rendering/visible-material/visible-material.ts +8 -0
  512. package/src/graphics/scene/light/light-plugin.ts +37 -0
  513. package/src/graphics/scene/light/light.ts +18 -0
  514. package/src/graphics/scene/light/public.ts +1 -0
  515. package/src/graphics/scene/model/geometry/geometry.ts +12 -0
  516. package/src/graphics/scene/model/geometry/public.ts +4 -0
  517. package/src/graphics/scene/model/gltf/accessor-view.ts +53 -0
  518. package/src/graphics/scene/model/gltf/build-material-bind-group.ts +110 -0
  519. package/src/graphics/scene/model/gltf/compute-world-matrices.ts +43 -0
  520. package/src/graphics/scene/model/gltf/create-color-material.ts +47 -0
  521. package/src/graphics/scene/model/gltf/decode-images.ts +93 -0
  522. package/src/graphics/scene/model/gltf/gltf-schema.ts +161 -0
  523. package/src/graphics/scene/model/gltf/load-gltf-model.ts +220 -0
  524. package/src/graphics/scene/model/gltf/pack-vertex-buffer.ts +116 -0
  525. package/src/graphics/scene/model/gltf/parse-animations.ts +66 -0
  526. package/src/graphics/scene/model/gltf/parse-glb.ts +51 -0
  527. package/src/graphics/scene/model/gltf/parse-skin.ts +67 -0
  528. package/src/graphics/scene/model/model-loader-plugin.ts +131 -0
  529. package/src/graphics/scene/model/model-plugin.ts +46 -0
  530. package/src/graphics/scene/model/model.ts +15 -0
  531. package/src/graphics/scene/model/public.ts +1 -0
  532. package/src/graphics/scene/model/shape/convex-hull.test.ts +72 -0
  533. package/src/graphics/scene/model/shape/convex-hull.ts +141 -0
  534. package/src/graphics/scene/model/shape/shape-geometry-plugin.ts +61 -0
  535. package/src/graphics/scene/model/shape/shape-mesh.ts +150 -0
  536. package/src/graphics/scene/model/shape/upload-shape-mesh.ts +14 -0
  537. package/src/graphics/scene/model/world-bounds-plugin.ts +88 -0
  538. package/src/graphics/scene/node/node-data-plugin.ts +28 -0
  539. package/src/graphics/scene/node/node-plugin.ts +13 -0
  540. package/src/graphics/scene/node/node.ts +23 -0
  541. package/src/graphics/scene/node/public.ts +1 -0
  542. package/src/graphics/scene/node/transform-plugin.ts +72 -0
  543. package/src/graphics/scene/scene-plugin.ts +20 -0
  544. package/src/graphics/scene/scene-uniforms/create-bind-group-layout.ts +19 -0
  545. package/src/graphics/scene/scene-uniforms/public.ts +5 -0
  546. package/src/graphics/scene/scene-uniforms/scene-uniforms-plugin.ts +64 -0
  547. package/src/graphics/scene/scene-uniforms/scene-uniforms.ts +15 -0
  548. package/src/graphics/scene/scene-uniforms/schema.ts +17 -0
  549. package/src/index.ts +72 -0
  550. package/src/material/material-plugin.ts +61 -0
  551. package/src/material/material.ts +38 -0
  552. package/src/material/public.ts +4 -0
  553. package/src/material/standard-materials.ts +43 -0
  554. package/src/physics/README.md +71 -0
  555. package/src/physics/body/body-type/body-type.ts +14 -0
  556. package/src/physics/body/body-type/is-dynamic.ts +8 -0
  557. package/src/physics/body/body-type/public.ts +4 -0
  558. package/src/physics/body/body-type/schema.ts +5 -0
  559. package/src/physics/body/collider-mesh.ts +13 -0
  560. package/src/physics/body/collider-shape/collider-shape.ts +19 -0
  561. package/src/physics/body/collider-shape/list.ts +7 -0
  562. package/src/physics/body/collider-shape/mass-properties.ts +47 -0
  563. package/src/physics/body/collider-shape/public.ts +6 -0
  564. package/src/physics/body/collider-shape/schema.ts +5 -0
  565. package/src/physics/body/collider-shape/to-index.ts +8 -0
  566. package/src/physics/body/rigid-body.ts +26 -0
  567. package/src/physics/body/static-collider.ts +28 -0
  568. package/src/physics/joint/joint-plugin.ts +33 -0
  569. package/src/physics/joint/joint-type/joint-type.ts +19 -0
  570. package/src/physics/joint/joint-type/public.ts +3 -0
  571. package/src/physics/joint/joint-type/schema.ts +5 -0
  572. package/src/physics/joint/joint.ts +27 -0
  573. package/src/physics/physics-clock-plugin.ts +61 -0
  574. package/src/physics/physics-clock.test.ts +55 -0
  575. package/src/physics/physics-data-plugin.ts +73 -0
  576. package/src/physics/ragdoll/fit-bone-capsules.test.ts +66 -0
  577. package/src/physics/ragdoll/fit-bone-capsules.ts +106 -0
  578. package/src/physics/solvers/README.md +63 -0
  579. package/src/physics/solvers/jolt-solver-plugin.ts +382 -0
  580. package/src/physics/solvers/rapier-jolt.benchmark.test.ts +39 -0
  581. package/src/physics/solvers/rapier-solver-plugin.ts +251 -0
  582. package/src/physics/solvers/solver-benchmark.ts +172 -0
  583. package/tsconfig.json +25 -0
  584. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,35 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ //
3
+ // PBR texture maps © Poly Haven, CC0 (https://polyhaven.com). Fetched at
4
+ // runtime by URL — never committed (see data-gpu-samples/CLAUDE.md). Poly
5
+ // Haven's `arm` map packs AO(R) / Roughness(G) / Metalness(B), matching glTF's
6
+ // occlusion + metallicRoughness channel conventions.
7
+ const tex = (slug, map) => `https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/${slug}/${slug}_${map}_1k.jpg`;
8
+ /**
9
+ * A standard material: physical constants (the old material table) plus neutral
10
+ * visible factors — the textures supply colour / roughness / metalness, so the
11
+ * factors are left at 1 and baseColor white.
12
+ */
13
+ function standard(name, slug, density, restitution, friction, compliance, heatCapacity) {
14
+ return {
15
+ name,
16
+ density, restitution, friction, compliance, heatCapacity,
17
+ baseColorFactor: [1, 1, 1, 1],
18
+ emissiveFactor: [0, 0, 0],
19
+ metallicFactor: 1, roughnessFactor: 1, normalScale: 1, occlusionStrength: 1,
20
+ baseColorUrl: tex(slug, "diff"),
21
+ metallicRoughnessUrl: tex(slug, "arm"),
22
+ normalUrl: tex(slug, "nor_gl"),
23
+ occlusionUrl: tex(slug, "arm"),
24
+ emissiveUrl: "",
25
+ };
26
+ }
27
+ /** The standard material library, seeded by `seedStandardMaterials`. */
28
+ export const standardMaterials = [
29
+ standard("rubber", "rubber_tiles", 1.1, 0.80, 0.90, 1e-5, 2.0),
30
+ standard("wood", "wood_table_001", 0.6, 0.35, 0.70, 5e-7, 1.7),
31
+ standard("stone", "cobblestone_floor_08", 2.6, 0.20, 0.85, 1e-8, 0.8),
32
+ standard("steel", "metal_plate", 7.8, 0.45, 0.50, 1e-9, 0.5),
33
+ standard("ice", "snow_02", 0.92, 0.25, 0.05, 5e-9, 2.1),
34
+ ];
35
+ //# sourceMappingURL=standard-materials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-materials.js","sourceRoot":"","sources":["../../src/material/standard-materials.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,+EAA+E;AAC/E,qDAAqD;AAIrD,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,GAAW,EAAU,EAAE,CAC9C,2DAA2D,IAAI,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC;AAE5F;;;;GAIG;AACH,SAAS,QAAQ,CACb,IAAY,EAAE,IAAY,EAC1B,OAAe,EAAE,WAAmB,EAAE,QAAgB,EAAE,UAAkB,EAAE,YAAoB;IAEhG,OAAO;QACH,IAAI;QACJ,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY;QACxD,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC3E,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;QAC/B,oBAAoB,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;QACtC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC9B,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;QAC9B,WAAW,EAAE,EAAE;KAClB,CAAC;AACN,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,iBAAiB,GAAwB;IAClD,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAU,GAAG,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IACvE,QAAQ,CAAC,MAAM,EAAI,gBAAgB,EAAQ,GAAG,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IACvE,QAAQ,CAAC,OAAO,EAAG,sBAAsB,EAAE,GAAG,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IACvE,QAAQ,CAAC,OAAO,EAAG,aAAa,EAAW,GAAG,EAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IACvE,QAAQ,CAAC,KAAK,EAAK,SAAS,EAAe,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;CAC1E,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Schema } from "@adobe/data/schema";
2
+ import { schema } from "./schema.js";
3
+ /**
4
+ * How the solver treats a body:
5
+ * static — never integrated; an immovable collider (the bulk of a scene).
6
+ * dynamic — fully simulated.
7
+ * kinematic — moved by external code; pushes dynamics but isn't pushed back.
8
+ */
9
+ export type BodyType = Schema.ToType<typeof schema>;
10
+ export * as BodyType from "./public.js";
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export * as BodyType from "./public.js";
3
+ //# sourceMappingURL=body-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body-type.js","sourceRoot":"","sources":["../../../../src/physics/body/body-type/body-type.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAavD,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BodyType } from "./body-type.js";
2
+ /** True for bodies the solver integrates and writes back (vs static / kinematic). */
3
+ export declare function isDynamic(t: BodyType): boolean;
@@ -0,0 +1,6 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ /** True for bodies the solver integrates and writes back (vs static / kinematic). */
3
+ export function isDynamic(t) {
4
+ return t === "dynamic";
5
+ }
6
+ //# sourceMappingURL=is-dynamic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-dynamic.js","sourceRoot":"","sources":["../../../../src/physics/body/body-type/is-dynamic.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD,qFAAqF;AACrF,MAAM,UAAU,SAAS,CAAC,CAAW;IACjC,OAAO,CAAC,KAAK,SAAS,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { schema } from "./schema.js";
2
+ export { isDynamic } from "./is-dynamic.js";
@@ -0,0 +1,4 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export { schema } from "./schema.js";
3
+ export { isDynamic } from "./is-dynamic.js";
4
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../../src/physics/body/body-type/public.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const schema: {
2
+ readonly type: "string";
3
+ readonly enum: readonly ["static", "dynamic", "kinematic"];
4
+ };
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export const schema = { type: "string", enum: ["static", "dynamic", "kinematic"] };
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/physics/body/body-type/schema.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAA4B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Authored triangle mesh for a **static** `mesh` collider (terrain, level
3
+ * geometry): flat vertex positions (xyz triples) + triangle indices. Static only
4
+ * — a triangle soup has no interior, so it can't be a moving body. Held as a
5
+ * runtime object component (`colliderMesh`); the solver reads it once to build
6
+ * the engine trimesh, the bridge once to build the render mesh.
7
+ */
8
+ export interface ColliderMesh {
9
+ positions: Float32Array;
10
+ indices: Uint32Array;
11
+ }
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export {};
3
+ //# sourceMappingURL=collider-mesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collider-mesh.js","sourceRoot":"","sources":["../../../src/physics/body/collider-mesh.ts"],"names":[],"mappings":"AAAA,uDAAuD"}
@@ -0,0 +1,15 @@
1
+ import { Schema } from "@adobe/data/schema";
2
+ import { schema } from "./schema.js";
3
+ /**
4
+ * Collider geometry. `halfExtents` carries the dimensions:
5
+ * box — all three axes (half-extents).
6
+ * sphere — `.x` is the radius.
7
+ * capsule — `.x` is the radius, `.y` the cylinder's half-height; Y-aligned
8
+ * (total height 2·(y + x)). `.z` unused.
9
+ * hull — convex hull of an authored `convexPoints` cloud; `halfExtents`
10
+ * is unused (the geometry comes from the points).
11
+ * mesh — authored `colliderMesh` triangle soup; **static only** (no
12
+ * interior). `halfExtents` unused. Terrain / level geometry.
13
+ */
14
+ export type ColliderShape = Schema.ToType<typeof schema>;
15
+ export * as ColliderShape from "./public.js";
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export * as ColliderShape from "./public.js";
3
+ //# sourceMappingURL=collider-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collider-shape.js","sourceRoot":"","sources":["../../../../src/physics/body/collider-shape/collider-shape.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAkBvD,OAAO,KAAK,aAAa,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ColliderShape } from "./collider-shape.js";
2
+ /** Stable shape order — the index is the solver's numeric shape id. */
3
+ export declare const list: readonly ColliderShape[];
@@ -0,0 +1,5 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { schema } from "./schema.js";
3
+ /** Stable shape order — the index is the solver's numeric shape id. */
4
+ export const list = schema.enum;
5
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/physics/body/collider-shape/list.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,uEAAuE;AACvE,MAAM,CAAC,MAAM,IAAI,GAA6B,MAAM,CAAC,IAAI,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ColliderShape } from "./collider-shape.js";
2
+ /**
3
+ * Mass + diagonal inverse inertia for a shape of the given half-extents and
4
+ * density. The per-shape formulas live here (with the type) rather than leaking
5
+ * the shape members into the solver. Allocation-free: the diagonal inverse
6
+ * inertia is written into `outInvInertia[o..o+2]` and the inverse mass returned
7
+ * (this runs per dynamic body per frame in the solver gather). Density comes
8
+ * from the body's material.
9
+ */
10
+ export declare function massProperties(shape: ColliderShape, hx: number, hy: number, hz: number, density: number, outInvInertia: Float32Array, o: number): number;
@@ -0,0 +1,48 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ /**
3
+ * Mass + diagonal inverse inertia for a shape of the given half-extents and
4
+ * density. The per-shape formulas live here (with the type) rather than leaking
5
+ * the shape members into the solver. Allocation-free: the diagonal inverse
6
+ * inertia is written into `outInvInertia[o..o+2]` and the inverse mass returned
7
+ * (this runs per dynamic body per frame in the solver gather). Density comes
8
+ * from the body's material.
9
+ */
10
+ export function massProperties(shape, hx, hy, hz, density, outInvInertia, o) {
11
+ if (shape === "box") {
12
+ const mass = density * 8 * hx * hy * hz;
13
+ const ix = (mass / 3) * (hy * hy + hz * hz);
14
+ const iy = (mass / 3) * (hx * hx + hz * hz);
15
+ const iz = (mass / 3) * (hx * hx + hy * hy);
16
+ outInvInertia[o] = 1 / ix;
17
+ outInvInertia[o + 1] = 1 / iy;
18
+ outInvInertia[o + 2] = 1 / iz;
19
+ return 1 / mass;
20
+ }
21
+ if (shape === "capsule") {
22
+ // Y-aligned: radius r = hx, cylinder half-height = hy (length L = 2·hy).
23
+ // A cylinder plus two hemispheres (together one sphere of radius r).
24
+ const r = hx, L = 2 * hy;
25
+ const mc = density * Math.PI * r * r * L; // cylinder
26
+ const ms = density * (4 / 3) * Math.PI * r * r * r; // two hemispheres = a sphere
27
+ const mass = mc + ms;
28
+ // axial (Y): cylinder ½mc r² + sphere ⅖ms r²
29
+ const iy = 0.5 * mc * r * r + 0.4 * ms * r * r;
30
+ // transverse (X = Z): cylinder about centre, plus each hemisphere's own
31
+ // inertia (83/320·mh r²) shifted by parallel axis to the capsule centre
32
+ // (COM offset L/2 + 3r/8). See standard capsule-inertia derivation.
33
+ const d = L / 2 + 3 * r / 8;
34
+ const ix = mc * (L * L / 12 + r * r / 4) + ms * ((83 / 320) * r * r + d * d);
35
+ outInvInertia[o] = 1 / ix;
36
+ outInvInertia[o + 1] = 1 / iy;
37
+ outInvInertia[o + 2] = 1 / ix;
38
+ return 1 / mass;
39
+ }
40
+ // sphere — radius in hx
41
+ const mass = density * (4 / 3) * Math.PI * hx * hx * hx;
42
+ const inv = 1 / (0.4 * mass * hx * hx);
43
+ outInvInertia[o] = inv;
44
+ outInvInertia[o + 1] = inv;
45
+ outInvInertia[o + 2] = inv;
46
+ return 1 / mass;
47
+ }
48
+ //# sourceMappingURL=mass-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mass-properties.js","sourceRoot":"","sources":["../../../../src/physics/body/collider-shape/mass-properties.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC1B,KAAoB,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,OAAe,EACzE,aAA2B,EAAE,CAAS;IAEtC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxF,OAAO,CAAC,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,yEAAyE;QACzE,qEAAqE;QACrE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAU,WAAW;QAC9D,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;QACjF,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;QACrB,6CAA6C;QAC7C,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,wEAAwE;QACxE,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxF,OAAO,CAAC,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,wBAAwB;IACxB,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACvC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/E,OAAO,CAAC,GAAG,IAAI,CAAC;AACpB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { schema } from "./schema.js";
2
+ export { list } from "./list.js";
3
+ export { toIndex } from "./to-index.js";
4
+ export { massProperties } from "./mass-properties.js";
@@ -0,0 +1,6 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export { schema } from "./schema.js";
3
+ export { list } from "./list.js";
4
+ export { toIndex } from "./to-index.js";
5
+ export { massProperties } from "./mass-properties.js";
6
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../../src/physics/body/collider-shape/public.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const schema: {
2
+ readonly type: "string";
3
+ readonly enum: readonly ["sphere", "box", "capsule", "hull", "mesh"];
4
+ };
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export const schema = { type: "string", enum: ["sphere", "box", "capsule", "hull", "mesh"] };
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/physics/body/collider-shape/schema.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAA4B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ColliderShape } from "./collider-shape.js";
2
+ /** The solver's numeric shape id (sphere 0, box 1, capsule 2, hull 3, mesh 4). */
3
+ export declare function toIndex(shape: ColliderShape): number;
@@ -0,0 +1,6 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ /** The solver's numeric shape id (sphere 0, box 1, capsule 2, hull 3, mesh 4). */
3
+ export function toIndex(shape) {
4
+ return shape === "box" ? 1 : shape === "capsule" ? 2 : shape === "hull" ? 3 : shape === "mesh" ? 4 : 0;
5
+ }
6
+ //# sourceMappingURL=to-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-index.js","sourceRoot":"","sources":["../../../../src/physics/body/collider-shape/to-index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD,kFAAkF;AAClF,MAAM,UAAU,OAAO,CAAC,KAAoB;IACxC,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Entity } from "@adobe/data/ecs";
2
+ import type { Vec3, Quat } from "@adobe/data/math";
3
+ import type { BodyType } from "./body-type/body-type.js";
4
+ import type { ColliderShape } from "./collider-shape/collider-shape.js";
5
+ /**
6
+ * One row of the `RigidBody` archetype — the authored surface every physics
7
+ * solver reads, and whose `position`/`rotation`/velocity it writes back each
8
+ * frame. Mass and inertia are *derived* from `colliderShape` + `halfExtents` +
9
+ * `material` (see ColliderShape.massProperties), so they aren't stored here.
10
+ */
11
+ export interface RigidBody {
12
+ bodyType: BodyType;
13
+ colliderShape: ColliderShape;
14
+ /** Box extents on all axes; sphere radius in `.x`. */
15
+ halfExtents: Vec3;
16
+ /** Reference to a Material registry entity (physical + visible props). */
17
+ material: Entity;
18
+ position: Vec3;
19
+ /** Unified with Node.rotation so a body is directly renderable. */
20
+ rotation: Quat;
21
+ linearVelocity: Vec3;
22
+ angularVelocity: Vec3;
23
+ }
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export {};
3
+ //# sourceMappingURL=rigid-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rigid-body.js","sourceRoot":"","sources":["../../../src/physics/body/rigid-body.ts"],"names":[],"mappings":"AAAA,uDAAuD"}
@@ -0,0 +1,25 @@
1
+ import type { Entity } from "@adobe/data/ecs";
2
+ import type { Vec3, Quat } from "@adobe/data/math";
3
+ import type { ColliderShape } from "./collider-shape/collider-shape.js";
4
+ /**
5
+ * One row of the `StaticCollider` archetype — an immovable collider (floor,
6
+ * wall, ramp, arbitrary scenery). Dynamic bodies collide with it, but the
7
+ * solver never integrates it, so it carries no velocity columns: a lean
8
+ * representation for the bulk-static workload (many static, few dynamic).
9
+ *
10
+ * It is the same authored surface as a `RigidBody` minus `bodyType` (the
11
+ * archetype *is* the "static" classification) and the velocity components.
12
+ * Friction / restitution / compliance come from its `material`, exactly as for
13
+ * a dynamic body. Like a RigidBody, its `position`/`rotation` double as the
14
+ * renderable transform (the render bridge gives it geometry).
15
+ */
16
+ export interface StaticCollider {
17
+ colliderShape: ColliderShape;
18
+ /** Box extents on all axes; sphere radius in `.x`. */
19
+ halfExtents: Vec3;
20
+ /** Reference to a Material registry entity (physical + visible props). */
21
+ material: Entity;
22
+ position: Vec3;
23
+ /** Unified with Node.rotation so the collider is directly renderable. */
24
+ rotation: Quat;
25
+ }
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export {};
3
+ //# sourceMappingURL=static-collider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-collider.js","sourceRoot":"","sources":["../../../src/physics/body/static-collider.ts"],"names":[],"mappings":"AAAA,uDAAuD"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * jointData — the solver-agnostic constraint data model. A `Joint` connects two
3
+ * bodies (`jointBodyA`/`jointBodyB`, any solver's bodies) with anchors in each
4
+ * body's local frame; the active solver mirrors each joint into its engine once
5
+ * both bodies exist (tag + exclude, like body sync). Authored only — no systems.
6
+ *
7
+ * Independent of `physicsData` (it only references bodies by `Entity`), so a
8
+ * solver `combine`s both. See `joint.ts` for the row type and `README.md` for
9
+ * the roadmap (joints are the ragdoll prerequisite).
10
+ */
11
+ export declare const jointData: {
12
+ readonly components: {
13
+ readonly jointType: {
14
+ readonly type: "string";
15
+ readonly enum: readonly ["fixed", "point", "hinge", "cone"];
16
+ };
17
+ readonly jointBodyA: {
18
+ readonly type: "integer";
19
+ readonly minimum: -2147483648;
20
+ readonly maximum: 2147483647;
21
+ readonly default: number;
22
+ };
23
+ readonly jointBodyB: {
24
+ readonly type: "integer";
25
+ readonly minimum: -2147483648;
26
+ readonly maximum: 2147483647;
27
+ readonly default: number;
28
+ };
29
+ readonly jointAnchorA: {
30
+ readonly type: "array";
31
+ readonly items: {
32
+ readonly type: "number";
33
+ readonly precision: 1;
34
+ readonly default: number;
35
+ };
36
+ readonly minItems: 3;
37
+ readonly maxItems: 3;
38
+ readonly default: readonly [0, 0, 0];
39
+ };
40
+ readonly jointAnchorB: {
41
+ readonly type: "array";
42
+ readonly items: {
43
+ readonly type: "number";
44
+ readonly precision: 1;
45
+ readonly default: number;
46
+ };
47
+ readonly minItems: 3;
48
+ readonly maxItems: 3;
49
+ readonly default: readonly [0, 0, 0];
50
+ };
51
+ readonly jointAxis: {
52
+ readonly type: "array";
53
+ readonly items: {
54
+ readonly type: "number";
55
+ readonly precision: 1;
56
+ readonly default: number;
57
+ };
58
+ readonly minItems: 3;
59
+ readonly maxItems: 3;
60
+ readonly default: readonly [0, 0, 0];
61
+ };
62
+ readonly jointMinLimit: {
63
+ readonly type: "number";
64
+ readonly precision: 1;
65
+ readonly default: number;
66
+ };
67
+ readonly jointMaxLimit: {
68
+ readonly type: "number";
69
+ readonly precision: 1;
70
+ readonly default: number;
71
+ };
72
+ readonly jointSwingLimit: {
73
+ readonly type: "number";
74
+ readonly precision: 1;
75
+ readonly default: number;
76
+ };
77
+ };
78
+ readonly resources: {};
79
+ readonly archetypes: {
80
+ readonly Joint: readonly ["jointType", "jointBodyA", "jointBodyB", "jointAnchorA", "jointAnchorB", "jointAxis", "jointMinLimit", "jointMaxLimit", "jointSwingLimit"];
81
+ };
82
+ readonly transactions: {};
83
+ readonly systems: import("@adobe/data/ecs").SystemDeclarations<never>;
84
+ readonly actions: {};
85
+ readonly services: {};
86
+ readonly computed: {};
87
+ readonly indexes: {};
88
+ };
@@ -0,0 +1,32 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { Database, Entity } from "@adobe/data/ecs";
3
+ import { F32 } from "@adobe/data/schema";
4
+ import { Vec3 } from "@adobe/data/math";
5
+ import { JointType } from "./joint-type/joint-type.js";
6
+ /**
7
+ * jointData — the solver-agnostic constraint data model. A `Joint` connects two
8
+ * bodies (`jointBodyA`/`jointBodyB`, any solver's bodies) with anchors in each
9
+ * body's local frame; the active solver mirrors each joint into its engine once
10
+ * both bodies exist (tag + exclude, like body sync). Authored only — no systems.
11
+ *
12
+ * Independent of `physicsData` (it only references bodies by `Entity`), so a
13
+ * solver `combine`s both. See `joint.ts` for the row type and `README.md` for
14
+ * the roadmap (joints are the ragdoll prerequisite).
15
+ */
16
+ export const jointData = Database.Plugin.create({
17
+ components: {
18
+ jointType: JointType.schema,
19
+ jointBodyA: Entity.schema,
20
+ jointBodyB: Entity.schema,
21
+ jointAnchorA: Vec3.schema, // anchor on body A, A-local
22
+ jointAnchorB: Vec3.schema, // anchor on body B, B-local
23
+ jointAxis: Vec3.schema, // hinge/cone reference axis (A-local); unused for fixed/point
24
+ jointMinLimit: F32.schema, // hinge angle / cone twist lower bound (rad); min >= max ⇒ no limit
25
+ jointMaxLimit: F32.schema, // hinge angle / cone twist upper bound (rad)
26
+ jointSwingLimit: F32.schema, // cone swing half-angle (rad); cone only
27
+ },
28
+ archetypes: {
29
+ Joint: ["jointType", "jointBodyA", "jointBodyB", "jointAnchorA", "jointAnchorB", "jointAxis", "jointMinLimit", "jointMaxLimit", "jointSwingLimit"],
30
+ },
31
+ });
32
+ //# sourceMappingURL=joint-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joint-plugin.js","sourceRoot":"","sources":["../../../src/physics/joint/joint-plugin.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5C,UAAU,EAAE;QACR,SAAS,EAAM,SAAS,CAAC,MAAM;QAC/B,UAAU,EAAK,MAAM,CAAC,MAAM;QAC5B,UAAU,EAAK,MAAM,CAAC,MAAM;QAC5B,YAAY,EAAG,IAAI,CAAC,MAAM,EAAI,4BAA4B;QAC1D,YAAY,EAAG,IAAI,CAAC,MAAM,EAAI,4BAA4B;QAC1D,SAAS,EAAM,IAAI,CAAC,MAAM,EAAI,8DAA8D;QAC5F,aAAa,EAAE,GAAG,CAAC,MAAM,EAAK,oEAAoE;QAClG,aAAa,EAAE,GAAG,CAAC,MAAM,EAAK,6CAA6C;QAC3E,eAAe,EAAE,GAAG,CAAC,MAAM,EAAG,yCAAyC;KAC1E;IACD,UAAU,EAAE;QACR,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,CAAC;KACrJ;CACJ,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Schema } from "@adobe/data/schema";
2
+ import { schema } from "./schema.js";
3
+ /**
4
+ * How a joint constrains the two bodies it connects:
5
+ * fixed — rigidly locks them together (no relative motion).
6
+ * point — a ball/spherical joint: anchors coincide, free rotation (chains, ragdoll joints).
7
+ * hinge — a revolute joint: 1 rotational DOF about an axis, with optional angle limits (doors, elbows).
8
+ * cone — a swing-twist joint: the bone axis is bound to a cone (half-angle
9
+ * `jointSwingLimit`) around the reference axis, with a twist range
10
+ * (`jointMinLimit`/`jointMaxLimit`) about it — anatomical shoulder/hip
11
+ * limits for ragdolls. Full on Jolt (SwingTwist); Rapier's compat
12
+ * binding has no cone limit, so it approximates `cone` as a free `point`.
13
+ */
14
+ export type JointType = Schema.ToType<typeof schema>;
15
+ export * as JointType from "./public.js";
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export * as JointType from "./public.js";
3
+ //# sourceMappingURL=joint-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joint-type.js","sourceRoot":"","sources":["../../../../src/physics/joint/joint-type/joint-type.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAkBvD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export { schema } from "./schema.js";
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export { schema } from "./schema.js";
3
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../../src/physics/joint/joint-type/public.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const schema: {
2
+ readonly type: "string";
3
+ readonly enum: readonly ["fixed", "point", "hinge", "cone"];
4
+ };
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export const schema = { type: "string", enum: ["fixed", "point", "hinge", "cone"] };
3
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/physics/joint/joint-type/schema.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAA4B,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { Entity } from "@adobe/data/ecs";
2
+ import type { Vec3 } from "@adobe/data/math";
3
+ import type { JointType } from "./joint-type/joint-type.js";
4
+ /**
5
+ * One row of the `Joint` archetype — a constraint between two bodies, solved by
6
+ * whichever physics solver is active. Anchors are in each body's local frame;
7
+ * at rest the two anchor points coincide in world space (the joint location).
8
+ *
9
+ * `jointAxis` is the reference axis (body-A local) for `hinge` and `cone`,
10
+ * ignored otherwise. `jointMinLimit`/`jointMaxLimit` bound the hinge angle, or
11
+ * the `cone` twist angle, in radians (`min >= max` ⇒ free); `jointSwingLimit` is
12
+ * the `cone` swing half-angle.
13
+ */
14
+ export interface Joint {
15
+ jointType: JointType;
16
+ jointBodyA: Entity;
17
+ jointBodyB: Entity;
18
+ jointAnchorA: Vec3;
19
+ jointAnchorB: Vec3;
20
+ jointAxis: Vec3;
21
+ jointMinLimit: number;
22
+ jointMaxLimit: number;
23
+ jointSwingLimit: number;
24
+ }
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export {};
3
+ //# sourceMappingURL=joint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joint.js","sourceRoot":"","sources":["../../../src/physics/joint/joint.ts"],"names":[],"mappings":"AAAA,uDAAuD"}