@adobe/data-gpu 0.9.74 → 0.9.76

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 (383) hide show
  1. package/CLAUDE.md +9 -0
  2. package/README.md +36 -0
  3. package/dist/core/core-plugin.d.ts +1 -1
  4. package/dist/core/public.d.ts +2 -0
  5. package/dist/core/public.js +4 -0
  6. package/dist/core/public.js.map +1 -0
  7. package/dist/graphics/animation/animation-data-plugin.d.ts +8 -0
  8. package/dist/graphics/animation/animation-plugin.d.ts +10 -2
  9. package/dist/graphics/camera/camera-plugin.d.ts +3 -3
  10. package/dist/graphics/camera/orbit/attach-orbit-drag.d.ts +1 -21
  11. package/dist/graphics/camera/orbit/attach-orbit-drag.js +0 -10
  12. package/dist/graphics/camera/orbit/attach-orbit-drag.js.map +1 -1
  13. package/dist/graphics/camera/orbit/orbit-data-plugin.d.ts +6 -6
  14. package/dist/graphics/camera/orbit/orbit-data-plugin.js +1 -1
  15. package/dist/graphics/camera/orbit/orbit-data-plugin.js.map +1 -1
  16. package/dist/graphics/camera/orbit/orbit-drag-service.d.ts +11 -0
  17. package/dist/graphics/camera/orbit/orbit-drag-service.js +3 -0
  18. package/dist/graphics/camera/orbit/orbit-drag-service.js.map +1 -0
  19. package/dist/graphics/camera/orbit/orbit-plugin.d.ts +6 -6
  20. package/dist/graphics/camera/orbit/orbit-system-plugin.d.ts +8 -8
  21. package/dist/graphics/camera/orbit/orbit-system-plugin.js +6 -9
  22. package/dist/graphics/camera/orbit/orbit-system-plugin.js.map +1 -1
  23. package/dist/graphics/camera/orbit/orbit.d.ts +5 -5
  24. package/dist/graphics/camera/orbit/public.d.ts +2 -2
  25. package/dist/graphics/camera/orbit/public.js +2 -1
  26. package/dist/graphics/camera/orbit/public.js.map +1 -1
  27. package/dist/graphics/graphics-plugin.d.ts +1 -1
  28. package/dist/graphics/index.d.ts +1 -0
  29. package/dist/graphics/index.js +3 -0
  30. package/dist/graphics/index.js.map +1 -0
  31. package/dist/graphics/picking/picking-plugin.d.ts +9871 -1912
  32. package/dist/graphics/picking/picking-plugin.js +3 -3
  33. package/dist/graphics/picking/picking-plugin.js.map +1 -1
  34. package/dist/graphics/public.d.ts +38 -0
  35. package/dist/graphics/public.js +40 -0
  36. package/dist/graphics/public.js.map +1 -0
  37. package/dist/graphics/rendering/bone-collider-plugin.d.ts +2967 -486
  38. package/dist/graphics/rendering/bone-collider-plugin.js +13 -12
  39. package/dist/graphics/rendering/bone-collider-plugin.js.map +1 -1
  40. package/dist/graphics/rendering/display-transform-plugin.d.ts +2 -0
  41. package/dist/graphics/rendering/display-transform-plugin.js +2 -2
  42. package/dist/graphics/rendering/display-transform-plugin.js.map +1 -1
  43. package/dist/graphics/rendering/ibl-render/ibl-render-plugin.d.ts +2857 -403
  44. package/dist/graphics/rendering/ibl-render/ibl-render-plugin.js +9 -9
  45. package/dist/graphics/rendering/ibl-render/ibl-render-plugin.js.map +1 -1
  46. package/dist/graphics/rendering/interpolation-plugin.d.ts +1040 -156
  47. package/dist/graphics/rendering/jolt-ragdoll-plugin.d.ts +3017 -538
  48. package/dist/graphics/rendering/jolt-ragdoll-plugin.js +6 -6
  49. package/dist/graphics/rendering/jolt-ragdoll-plugin.js.map +1 -1
  50. package/dist/graphics/rendering/material-palette-gpu/material-palette-gpu-plugin.d.ts +1123 -0
  51. package/dist/graphics/rendering/material-palette-gpu/material-palette-gpu-plugin.js +79 -0
  52. package/dist/graphics/rendering/material-palette-gpu/material-palette-gpu-plugin.js.map +1 -0
  53. package/dist/graphics/rendering/material-palette-gpu/material-palette-gpu.test.d.ts +1 -0
  54. package/dist/graphics/rendering/material-palette-gpu/material-palette-gpu.test.js +18 -0
  55. package/dist/graphics/rendering/material-palette-gpu/material-palette-gpu.test.js.map +1 -0
  56. package/dist/graphics/rendering/material-palette-gpu/material-palette.d.ts +25 -0
  57. package/dist/graphics/rendering/material-palette-gpu/material-palette.js +27 -0
  58. package/dist/graphics/rendering/material-palette-gpu/material-palette.js.map +1 -0
  59. package/dist/graphics/rendering/material-palette-gpu/palette-bind-group.d.ts +3 -0
  60. package/dist/graphics/rendering/material-palette-gpu/palette-bind-group.js +22 -0
  61. package/dist/graphics/rendering/material-palette-gpu/palette-bind-group.js.map +1 -0
  62. package/dist/graphics/rendering/model-collider-plugin.d.ts +2903 -663
  63. package/dist/graphics/rendering/model-collider-plugin.js +11 -34
  64. package/dist/graphics/rendering/model-collider-plugin.js.map +1 -1
  65. package/dist/graphics/rendering/pbr-core-plugin.d.ts +16 -8
  66. package/dist/graphics/rendering/pbr-core-plugin.js +16 -19
  67. package/dist/graphics/rendering/pbr-core-plugin.js.map +1 -1
  68. package/dist/graphics/rendering/pbr-render/pbr-factor-render-plugin.d.ts +3514 -0
  69. package/dist/graphics/rendering/pbr-render/pbr-factor-render-plugin.js +189 -0
  70. package/dist/graphics/rendering/pbr-render/pbr-factor-render-plugin.js.map +1 -0
  71. package/dist/graphics/rendering/pbr-render/pbr-factor-shader.wgsl.d.ts +7 -0
  72. package/dist/graphics/rendering/pbr-render/pbr-factor-shader.wgsl.js +124 -0
  73. package/dist/graphics/rendering/pbr-render/pbr-factor-shader.wgsl.js.map +1 -0
  74. package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.d.ts +769 -571
  75. package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.js +98 -79
  76. package/dist/graphics/rendering/pbr-render/physics-bridge-plugin.js.map +1 -1
  77. package/dist/graphics/rendering/pbr-render/primitive-render-shared.d.ts +43 -0
  78. package/dist/graphics/rendering/pbr-render/primitive-render-shared.js +59 -0
  79. package/dist/graphics/rendering/pbr-render/primitive-render-shared.js.map +1 -0
  80. package/dist/graphics/rendering/skinning/skinning-plugin.d.ts +2930 -270
  81. package/dist/graphics/rendering/skinning/skinning-plugin.js +19 -40
  82. package/dist/graphics/rendering/skinning/skinning-plugin.js.map +1 -1
  83. package/dist/graphics/scene/model/geometry/public.d.ts +1 -0
  84. package/dist/graphics/scene/model/mesh/mesh.d.ts +13 -0
  85. package/dist/graphics/scene/model/mesh/mesh.js +3 -0
  86. package/dist/graphics/scene/model/mesh/mesh.js.map +1 -0
  87. package/dist/graphics/scene/model/mesh/public.d.ts +1 -0
  88. package/dist/graphics/scene/model/mesh/public.js +3 -0
  89. package/dist/graphics/scene/model/mesh/public.js.map +1 -0
  90. package/dist/graphics/scene/model/mesh-plugin.d.ts +5177 -0
  91. package/dist/graphics/scene/model/mesh-plugin.js +87 -0
  92. package/dist/graphics/scene/model/mesh-plugin.js.map +1 -0
  93. package/dist/graphics/scene/model/model-loader-plugin.d.ts +2728 -295
  94. package/dist/graphics/scene/model/model-loader-plugin.js +24 -42
  95. package/dist/graphics/scene/model/model-loader-plugin.js.map +1 -1
  96. package/dist/graphics/scene/model/model-plugin.d.ts +1 -352
  97. package/dist/graphics/scene/model/model-plugin.js +1 -37
  98. package/dist/graphics/scene/model/model-plugin.js.map +1 -1
  99. package/dist/graphics/scene/model/model.d.ts +2 -6
  100. package/dist/graphics/scene/model/model.js.map +1 -1
  101. package/dist/graphics/scene/model/public.d.ts +1 -1
  102. package/dist/graphics/scene/model/public.js +2 -1
  103. package/dist/graphics/scene/model/public.js.map +1 -1
  104. package/dist/graphics/scene/model/shape/bounds-from-shape-mesh.d.ts +4 -0
  105. package/dist/graphics/scene/model/shape/bounds-from-shape-mesh.js +25 -0
  106. package/dist/graphics/scene/model/shape/bounds-from-shape-mesh.js.map +1 -0
  107. package/dist/graphics/scene/model/shape/shape-geometry-plugin.d.ts +233 -386
  108. package/dist/graphics/scene/model/shape/shape-geometry-plugin.js +87 -18
  109. package/dist/graphics/scene/model/shape/shape-geometry-plugin.js.map +1 -1
  110. package/dist/graphics/scene/model/shape/shape-spec.d.ts +17 -0
  111. package/dist/graphics/scene/model/shape/shape-spec.js +3 -0
  112. package/dist/graphics/scene/model/shape/shape-spec.js.map +1 -0
  113. package/dist/graphics/scene/model/world-bounds-plugin.d.ts +2670 -245
  114. package/dist/graphics/scene/model/world-bounds-plugin.js +6 -25
  115. package/dist/graphics/scene/model/world-bounds-plugin.js.map +1 -1
  116. package/dist/graphics/scene/node/node-data-plugin.d.ts +15 -4
  117. package/dist/graphics/scene/node/node-data-plugin.js +12 -5
  118. package/dist/graphics/scene/node/node-data-plugin.js.map +1 -1
  119. package/dist/graphics/scene/node/node-data-plugin.test.d.ts +1 -0
  120. package/dist/graphics/scene/node/node-data-plugin.test.js +40 -0
  121. package/dist/graphics/scene/node/node-data-plugin.test.js.map +1 -0
  122. package/dist/graphics/scene/node/node-plugin.d.ts +8 -1
  123. package/dist/graphics/scene/node/transform-plugin.d.ts +8 -1
  124. package/dist/graphics/scene/scene-plugin.d.ts +2353 -100
  125. package/dist/graphics/scene/scene-plugin.js +3 -3
  126. package/dist/graphics/scene/scene-plugin.js.map +1 -1
  127. package/dist/graphics/scene/scene-uniforms/scene-uniforms-plugin.d.ts +3 -3
  128. package/dist/index.d.ts +1 -53
  129. package/dist/index.js +1 -54
  130. package/dist/index.js.map +1 -1
  131. package/dist/material/assemble-material-row.d.ts +4 -0
  132. package/dist/material/assemble-material-row.js +22 -0
  133. package/dist/material/assemble-material-row.js.map +1 -0
  134. package/dist/material/definitions.d.ts +833 -0
  135. package/dist/material/definitions.js +423 -0
  136. package/dist/material/definitions.js.map +1 -0
  137. package/dist/material/emission-mode.d.ts +8 -0
  138. package/dist/material/emission-mode.js +9 -0
  139. package/dist/material/emission-mode.js.map +1 -0
  140. package/dist/material/index.d.ts +1 -0
  141. package/dist/material/index.js +3 -0
  142. package/dist/material/index.js.map +1 -0
  143. package/dist/material/json/from-json-string.d.ts +2 -0
  144. package/dist/material/json/from-json-string.js +12 -0
  145. package/dist/material/json/from-json-string.js.map +1 -0
  146. package/dist/material/json/from-json.d.ts +10 -0
  147. package/dist/material/json/from-json.js +16 -0
  148. package/dist/material/json/from-json.js.map +1 -0
  149. package/dist/material/json/from-json.test.d.ts +1 -0
  150. package/dist/material/json/from-json.test.js +46 -0
  151. package/dist/material/json/from-json.test.js.map +1 -0
  152. package/dist/material/json/is-properties-json.d.ts +2 -0
  153. package/dist/material/json/is-properties-json.js +65 -0
  154. package/dist/material/json/is-properties-json.js.map +1 -0
  155. package/dist/material/json/library-json.d.ts +3 -0
  156. package/dist/material/json/library-json.js +2 -0
  157. package/dist/material/json/library-json.js.map +1 -0
  158. package/dist/material/json/load-json.d.ts +7 -0
  159. package/dist/material/json/load-json.js +10 -0
  160. package/dist/material/json/load-json.js.map +1 -0
  161. package/dist/material/json/properties-json.d.ts +25 -0
  162. package/dist/material/json/properties-json.js +2 -0
  163. package/dist/material/json/properties-json.js.map +1 -0
  164. package/dist/material/json/public.d.ts +9 -0
  165. package/dist/material/json/public.js +6 -0
  166. package/dist/material/json/public.js.map +1 -0
  167. package/dist/material/json/to-definition.d.ts +5 -0
  168. package/dist/material/json/to-definition.js +65 -0
  169. package/dist/material/json/to-definition.js.map +1 -0
  170. package/dist/material/material-by-name-lookup.d.ts +11 -0
  171. package/dist/material/material-by-name-lookup.js +3 -0
  172. package/dist/material/material-by-name-lookup.js.map +1 -0
  173. package/dist/material/material-defaults.d.ts +23 -0
  174. package/dist/material/material-defaults.js +25 -0
  175. package/dist/material/material-defaults.js.map +1 -0
  176. package/dist/material/material-definition.d.ts +3 -0
  177. package/dist/material/material-definition.js +2 -0
  178. package/dist/material/material-definition.js.map +1 -0
  179. package/dist/material/material-name.d.ts +2 -0
  180. package/dist/material/material-name.js +2 -0
  181. package/dist/material/material-name.js.map +1 -0
  182. package/dist/material/material-plugin.d.ts +891 -22
  183. package/dist/material/material-plugin.js +46 -21
  184. package/dist/material/material-plugin.js.map +1 -1
  185. package/dist/material/material-plugin.test.d.ts +1 -0
  186. package/dist/material/material-plugin.test.js +87 -0
  187. package/dist/material/material-plugin.test.js.map +1 -0
  188. package/dist/material/material.d.ts +27 -29
  189. package/dist/material/material.js +0 -1
  190. package/dist/material/material.js.map +1 -1
  191. package/dist/material/public.d.ts +12 -2
  192. package/dist/material/public.js +12 -2
  193. package/dist/material/public.js.map +1 -1
  194. package/dist/material/require-material.d.ts +4 -0
  195. package/dist/material/require-material.js +10 -0
  196. package/dist/material/require-material.js.map +1 -0
  197. package/dist/material/standard-material-names.d.ts +2 -0
  198. package/dist/material/standard-material-names.js +4 -0
  199. package/dist/material/standard-material-names.js.map +1 -0
  200. package/dist/material/standard-materials.d.ts +1 -1
  201. package/dist/material/standard-materials.js +17 -24
  202. package/dist/material/standard-materials.js.map +1 -1
  203. package/dist/material/stress-strain-curve/create.d.ts +8 -0
  204. package/dist/material/stress-strain-curve/create.js +2 -0
  205. package/dist/material/stress-strain-curve/create.js.map +1 -0
  206. package/dist/material/stress-strain-curve/public.d.ts +2 -0
  207. package/dist/material/stress-strain-curve/public.js +3 -0
  208. package/dist/material/stress-strain-curve/public.js.map +1 -0
  209. package/dist/material/stress-strain-curve/schema.d.ts +52 -0
  210. package/dist/material/stress-strain-curve/schema.js +19 -0
  211. package/dist/material/stress-strain-curve/schema.js.map +1 -0
  212. package/dist/material/stress-strain-curve/schema.test.d.ts +1 -0
  213. package/dist/material/stress-strain-curve/schema.test.js +18 -0
  214. package/dist/material/stress-strain-curve/schema.test.js.map +1 -0
  215. package/dist/material/stress-strain-curve/stress-strain-curve.d.ts +4 -0
  216. package/dist/material/stress-strain-curve/stress-strain-curve.js +2 -0
  217. package/dist/material/stress-strain-curve/stress-strain-curve.js.map +1 -0
  218. package/dist/physics/body/collider-shape/mass-from-volume.d.ts +2 -0
  219. package/dist/physics/body/collider-shape/mass-from-volume.js +4 -0
  220. package/dist/physics/body/collider-shape/mass-from-volume.js.map +1 -0
  221. package/dist/physics/body/collider-shape/mass-from-volume.test.d.ts +1 -0
  222. package/dist/physics/body/collider-shape/mass-from-volume.test.js +8 -0
  223. package/dist/physics/body/collider-shape/mass-from-volume.test.js.map +1 -0
  224. package/dist/physics/collider-primitive-render-archetype.d.ts +2 -0
  225. package/dist/physics/collider-primitive-render-archetype.js +3 -0
  226. package/dist/physics/collider-primitive-render-archetype.js.map +1 -0
  227. package/dist/physics/collider-primitive-render-archetypes.d.ts +2 -0
  228. package/dist/physics/collider-primitive-render-archetypes.js +9 -0
  229. package/dist/physics/collider-primitive-render-archetypes.js.map +1 -0
  230. package/dist/physics/index.d.ts +1 -0
  231. package/dist/physics/index.js +3 -0
  232. package/dist/physics/index.js.map +1 -0
  233. package/dist/physics/is-voxel-shape-physics-pending.d.ts +3 -0
  234. package/dist/physics/is-voxel-shape-physics-pending.js +7 -0
  235. package/dist/physics/is-voxel-shape-physics-pending.js.map +1 -0
  236. package/dist/physics/physics-clock/physics-clock.d.ts +15 -0
  237. package/dist/physics/physics-clock/physics-clock.js +3 -0
  238. package/dist/physics/physics-clock/physics-clock.js.map +1 -0
  239. package/dist/physics/physics-clock-plugin.d.ts +2 -22
  240. package/dist/physics/physics-clock-plugin.js +0 -2
  241. package/dist/physics/physics-clock-plugin.js.map +1 -1
  242. package/dist/physics/physics-clock.test.js.map +1 -1
  243. package/dist/physics/physics-data-plugin.d.ts +889 -13
  244. package/dist/physics/physics-data-plugin.js +8 -6
  245. package/dist/physics/physics-data-plugin.js.map +1 -1
  246. package/dist/physics/public.d.ts +21 -0
  247. package/dist/physics/public.js +23 -0
  248. package/dist/physics/public.js.map +1 -0
  249. package/dist/physics/ragdoll/bone-capsule.d.ts +8 -0
  250. package/dist/physics/ragdoll/bone-capsule.js +3 -0
  251. package/dist/physics/ragdoll/bone-capsule.js.map +1 -0
  252. package/dist/physics/ragdoll/fit-bone-capsules-input.d.ts +11 -0
  253. package/dist/physics/ragdoll/fit-bone-capsules-input.js +3 -0
  254. package/dist/physics/ragdoll/fit-bone-capsules-input.js.map +1 -0
  255. package/dist/physics/ragdoll/fit-bone-capsules.d.ts +2 -38
  256. package/dist/physics/ragdoll/fit-bone-capsules.js +13 -0
  257. package/dist/physics/ragdoll/fit-bone-capsules.js.map +1 -1
  258. package/dist/physics/ragdoll/fit-bone-capsules.test.js.map +1 -1
  259. package/dist/physics/ragdoll/skin-vertices.d.ts +6 -0
  260. package/dist/physics/ragdoll/skin-vertices.js +3 -0
  261. package/dist/physics/ragdoll/skin-vertices.js.map +1 -0
  262. package/dist/physics/rigid-body-components.d.ts +2 -0
  263. package/dist/physics/rigid-body-components.js +13 -0
  264. package/dist/physics/rigid-body-components.js.map +1 -0
  265. package/dist/physics/solvers/jolt-solver-plugin.d.ts +918 -41
  266. package/dist/physics/solvers/jolt-solver-plugin.js +19 -3
  267. package/dist/physics/solvers/jolt-solver-plugin.js.map +1 -1
  268. package/dist/physics/solvers/rapier-solver-plugin.d.ts +918 -41
  269. package/dist/physics/solvers/rapier-solver-plugin.js +7 -2
  270. package/dist/physics/solvers/rapier-solver-plugin.js.map +1 -1
  271. package/dist/physics/solvers/solver-benchmark-options.d.ts +14 -0
  272. package/dist/physics/solvers/solver-benchmark-options.js +3 -0
  273. package/dist/physics/solvers/solver-benchmark-options.js.map +1 -0
  274. package/dist/physics/solvers/solver-benchmark-result.d.ts +15 -0
  275. package/dist/physics/solvers/solver-benchmark-result.js +3 -0
  276. package/dist/physics/solvers/solver-benchmark-result.js.map +1 -0
  277. package/dist/physics/solvers/solver-benchmark.d.ts +2 -43
  278. package/dist/physics/solvers/solver-benchmark.js.map +1 -1
  279. package/dist/physics/static-collider-components.d.ts +2 -0
  280. package/dist/physics/static-collider-components.js +10 -0
  281. package/dist/physics/static-collider-components.js.map +1 -0
  282. package/package.json +14 -2
  283. package/src/core/public.ts +4 -0
  284. package/src/graphics/camera/orbit/attach-orbit-drag.ts +7 -27
  285. package/src/graphics/camera/orbit/orbit-data-plugin.ts +1 -1
  286. package/src/graphics/camera/orbit/orbit-drag-service.ts +13 -0
  287. package/src/graphics/camera/orbit/orbit-system-plugin.ts +6 -9
  288. package/src/graphics/camera/orbit/orbit.ts +5 -5
  289. package/src/graphics/camera/orbit/public.ts +2 -2
  290. package/src/graphics/index.ts +3 -0
  291. package/src/graphics/picking/picking-plugin.ts +4 -4
  292. package/src/graphics/public.ts +40 -0
  293. package/src/graphics/rendering/bone-collider-plugin.ts +16 -12
  294. package/src/graphics/rendering/display-transform-plugin.ts +2 -2
  295. package/src/graphics/rendering/ibl-render/ibl-render-plugin.ts +9 -9
  296. package/src/graphics/rendering/interpolation.test.ts +1 -1
  297. package/src/graphics/rendering/jolt-ragdoll-plugin.ts +11 -7
  298. package/src/graphics/rendering/material-palette-gpu/material-palette-gpu-plugin.ts +86 -0
  299. package/src/graphics/rendering/material-palette-gpu/material-palette-gpu.test.ts +20 -0
  300. package/src/graphics/rendering/material-palette-gpu/material-palette.ts +41 -0
  301. package/src/graphics/rendering/material-palette-gpu/palette-bind-group.ts +24 -0
  302. package/src/graphics/rendering/model-collider-plugin.ts +19 -35
  303. package/src/graphics/rendering/pbr-core-plugin.ts +16 -19
  304. package/src/graphics/rendering/pbr-render/{pbr-render-plugin.ts → pbr-factor-render-plugin.ts} +60 -111
  305. package/src/graphics/rendering/pbr-render/{pbr-array-shader.wgsl.ts → pbr-factor-shader.wgsl.ts} +19 -40
  306. package/src/graphics/rendering/pbr-render/physics-bridge-plugin.ts +95 -69
  307. package/src/graphics/rendering/pbr-render/primitive-render-shared.ts +76 -0
  308. package/src/graphics/rendering/skinning/skinning-plugin.ts +23 -41
  309. package/src/graphics/scene/model/geometry/public.ts +1 -1
  310. package/src/graphics/scene/model/mesh/mesh.ts +18 -0
  311. package/src/graphics/scene/model/mesh/public.ts +3 -0
  312. package/src/graphics/scene/model/mesh-plugin.ts +102 -0
  313. package/src/graphics/scene/model/model-loader-plugin.ts +25 -43
  314. package/src/graphics/scene/model/model-plugin.ts +1 -44
  315. package/src/graphics/scene/model/model.ts +2 -6
  316. package/src/graphics/scene/model/public.ts +3 -1
  317. package/src/graphics/scene/model/shape/bounds-from-shape-mesh.ts +20 -0
  318. package/src/graphics/scene/model/shape/shape-geometry-plugin.ts +97 -18
  319. package/src/graphics/scene/model/shape/shape-spec.ts +9 -0
  320. package/src/graphics/scene/model/world-bounds-plugin.ts +6 -25
  321. package/src/graphics/scene/node/node-data-plugin.test.ts +47 -0
  322. package/src/graphics/scene/node/node-data-plugin.ts +12 -5
  323. package/src/graphics/scene/scene-plugin.ts +3 -3
  324. package/src/index.ts +1 -70
  325. package/src/material/assemble-material-row.ts +26 -0
  326. package/src/material/definitions.ts +427 -0
  327. package/src/material/emission-mode.ts +11 -0
  328. package/src/material/index.ts +3 -0
  329. package/src/material/json/from-json-string.ts +11 -0
  330. package/src/material/json/from-json.test.ts +50 -0
  331. package/src/material/json/from-json.ts +23 -0
  332. package/src/material/json/is-properties-json.ts +77 -0
  333. package/src/material/json/library-json.ts +4 -0
  334. package/src/material/json/load-json.ts +15 -0
  335. package/src/material/json/properties-json.ts +25 -0
  336. package/src/material/json/public.ts +9 -0
  337. package/src/material/json/to-definition.ts +70 -0
  338. package/src/material/material-by-name-lookup.ts +10 -0
  339. package/src/material/material-defaults.ts +26 -0
  340. package/src/material/material-definition.ts +4 -0
  341. package/src/material/material-name.ts +3 -0
  342. package/src/material/material-plugin.test.ts +97 -0
  343. package/src/material/material-plugin.ts +67 -39
  344. package/src/material/material.ts +35 -34
  345. package/src/material/public.ts +12 -2
  346. package/src/material/require-material.ts +15 -0
  347. package/src/material/standard-material-names.ts +4 -0
  348. package/src/material/standard-materials.ts +21 -27
  349. package/src/material/stress-strain-curve/create.ts +9 -0
  350. package/src/material/stress-strain-curve/public.ts +2 -0
  351. package/src/material/stress-strain-curve/schema.test.ts +20 -0
  352. package/src/material/stress-strain-curve/schema.ts +20 -0
  353. package/src/material/stress-strain-curve/stress-strain-curve.ts +11 -0
  354. package/src/physics/README.md +9 -1
  355. package/src/physics/body/collider-shape/mass-from-volume.test.ts +8 -0
  356. package/src/physics/body/collider-shape/mass-from-volume.ts +4 -0
  357. package/src/physics/collider-primitive-render-archetype.ts +5 -0
  358. package/src/physics/collider-primitive-render-archetypes.ts +9 -0
  359. package/src/physics/index.ts +3 -0
  360. package/src/physics/is-voxel-shape-physics-pending.ts +9 -0
  361. package/src/physics/physics-clock/physics-clock.ts +17 -0
  362. package/src/physics/physics-clock-plugin.ts +1 -24
  363. package/src/physics/physics-clock.test.ts +2 -1
  364. package/src/physics/physics-data-plugin.ts +8 -6
  365. package/src/physics/public.ts +23 -0
  366. package/src/physics/ragdoll/bone-capsule.ts +11 -0
  367. package/src/physics/ragdoll/fit-bone-capsules-input.ts +14 -0
  368. package/src/physics/ragdoll/fit-bone-capsules.test.ts +2 -1
  369. package/src/physics/ragdoll/fit-bone-capsules.ts +2 -27
  370. package/src/physics/ragdoll/skin-vertices.ts +8 -0
  371. package/src/physics/rigid-body-components.ts +13 -0
  372. package/src/physics/solvers/README.md +4 -0
  373. package/src/physics/solvers/jolt-solver-plugin.ts +19 -5
  374. package/src/physics/solvers/rapier-solver-plugin.ts +5 -2
  375. package/src/physics/solvers/solver-benchmark-options.ts +16 -0
  376. package/src/physics/solvers/solver-benchmark-result.ts +17 -0
  377. package/src/physics/solvers/solver-benchmark.ts +2 -35
  378. package/src/physics/static-collider-components.ts +10 -0
  379. package/tsconfig.tsbuildinfo +1 -1
  380. package/src/graphics/rendering/material-gpu/material-arrays.ts +0 -113
  381. package/src/graphics/rendering/material-gpu/material-bind-group.ts +0 -61
  382. package/src/graphics/rendering/material-gpu/material-gpu-plugin.ts +0 -95
  383. package/src/graphics/scene/model/geometry/geometry.ts +0 -12
@@ -1,14 +1,10 @@
1
1
  import { Entity } from "@adobe/data/ecs";
2
+ import type { Material } from "./material.js";
3
+ import type { MaterialDefinition } from "./material-definition.js";
2
4
  /**
3
- * The material registry — authored materials as ECS entities (an open set;
4
- * added rarely, edited never). Each `Material` row carries physical props (read
5
- * by any solver) and visible PBR factors + texture-source URLs (read by the
6
- * renderer). A body / model references a material by `Entity` id; the
7
- * render-side `materialGpu` plugin derives GPU textures + a palette from these
8
- * rows and caches them, rebuilding only when a new material appears.
9
- *
10
- * `seedStandardMaterials` inserts the standard library and records a
11
- * `name → Entity` lookup in the `materials` resource.
5
+ * Material registry — each material type is one `Material` entity with every
6
+ * property as its own ECS component. Bodies reference a material by entity id.
7
+ * Lookup by name via `indexes.materialByName`.
12
8
  */
13
9
  export declare const plugin: {
14
10
  readonly components: {
@@ -46,6 +42,67 @@ export declare const plugin: {
46
42
  readonly precision: 1;
47
43
  readonly default: number;
48
44
  };
45
+ readonly viscosity: {
46
+ readonly type: "number";
47
+ readonly precision: 1;
48
+ readonly default: number;
49
+ };
50
+ readonly thermalConductivity: {
51
+ readonly type: "number";
52
+ readonly precision: 1;
53
+ readonly default: number;
54
+ };
55
+ readonly stressStrainCurve: {
56
+ readonly type: "object";
57
+ readonly layout: "packed";
58
+ readonly properties: {
59
+ readonly tensileYieldStrainStress: {
60
+ readonly type: "array";
61
+ readonly items: {
62
+ readonly type: "number";
63
+ readonly precision: 1;
64
+ readonly default: number;
65
+ };
66
+ readonly minItems: 2;
67
+ readonly maxItems: 2;
68
+ readonly default: readonly [0, 0];
69
+ };
70
+ readonly tensileFractureStrainStress: {
71
+ readonly type: "array";
72
+ readonly items: {
73
+ readonly type: "number";
74
+ readonly precision: 1;
75
+ readonly default: number;
76
+ };
77
+ readonly minItems: 2;
78
+ readonly maxItems: 2;
79
+ readonly default: readonly [0, 0];
80
+ };
81
+ readonly compressiveYieldStrainStress: {
82
+ readonly type: "array";
83
+ readonly items: {
84
+ readonly type: "number";
85
+ readonly precision: 1;
86
+ readonly default: number;
87
+ };
88
+ readonly minItems: 2;
89
+ readonly maxItems: 2;
90
+ readonly default: readonly [0, 0];
91
+ };
92
+ readonly compressiveFractureStrainStress: {
93
+ readonly type: "array";
94
+ readonly items: {
95
+ readonly type: "number";
96
+ readonly precision: 1;
97
+ readonly default: number;
98
+ };
99
+ readonly minItems: 2;
100
+ readonly maxItems: 2;
101
+ readonly default: readonly [0, 0];
102
+ };
103
+ };
104
+ readonly required: readonly ["tensileYieldStrainStress", "tensileFractureStrainStress", "compressiveYieldStrainStress", "compressiveFractureStrainStress"];
105
+ };
49
106
  readonly baseColorFactor: {
50
107
  readonly type: "array";
51
108
  readonly items: {
@@ -88,6 +145,22 @@ export declare const plugin: {
88
145
  readonly precision: 1;
89
146
  readonly default: number;
90
147
  };
148
+ readonly irReflectance: {
149
+ readonly type: "number";
150
+ readonly precision: 1;
151
+ readonly default: number;
152
+ };
153
+ readonly irEmission: {
154
+ readonly type: "number";
155
+ readonly precision: 1;
156
+ readonly default: number;
157
+ };
158
+ readonly emissionMode: {
159
+ readonly type: "integer";
160
+ readonly minimum: 0;
161
+ readonly maximum: 4294967295;
162
+ readonly default: number;
163
+ };
91
164
  readonly baseColorUrl: {
92
165
  readonly type: "string";
93
166
  };
@@ -104,15 +177,548 @@ export declare const plugin: {
104
177
  readonly type: "string";
105
178
  };
106
179
  };
107
- readonly resources: {
108
- readonly materials: {
109
- readonly default: Record<string, Entity>;
110
- };
111
- };
180
+ readonly resources: {};
112
181
  readonly archetypes: {
113
- readonly Material: readonly ["name", "density", "restitution", "friction", "compliance", "heatCapacity", "baseColorFactor", "emissiveFactor", "metallicFactor", "roughnessFactor", "normalScale", "occlusionStrength", "baseColorUrl", "metallicRoughnessUrl", "normalUrl", "occlusionUrl", "emissiveUrl"];
182
+ readonly Material: readonly ["name", "density", "restitution", "friction", "compliance", "heatCapacity", "viscosity", "thermalConductivity", "stressStrainCurve", "baseColorFactor", "emissiveFactor", "metallicFactor", "roughnessFactor", "normalScale", "occlusionStrength", "irReflectance", "irEmission", "emissionMode", "baseColorUrl", "metallicRoughnessUrl", "normalUrl", "occlusionUrl", "emissiveUrl"];
114
183
  };
115
184
  readonly transactions: {
185
+ readonly insertMaterial: (t: import("@adobe/data/ecs").TransactionContext<import("@adobe/data/schema").FromSchemas<{
186
+ readonly material: {
187
+ readonly type: "integer";
188
+ readonly minimum: -2147483648;
189
+ readonly maximum: 2147483647;
190
+ readonly default: number;
191
+ };
192
+ readonly name: {
193
+ readonly type: "string";
194
+ };
195
+ readonly density: {
196
+ readonly type: "number";
197
+ readonly precision: 1;
198
+ readonly default: number;
199
+ };
200
+ readonly restitution: {
201
+ readonly type: "number";
202
+ readonly precision: 1;
203
+ readonly default: number;
204
+ };
205
+ readonly friction: {
206
+ readonly type: "number";
207
+ readonly precision: 1;
208
+ readonly default: number;
209
+ };
210
+ readonly compliance: {
211
+ readonly type: "number";
212
+ readonly precision: 1;
213
+ readonly default: number;
214
+ };
215
+ readonly heatCapacity: {
216
+ readonly type: "number";
217
+ readonly precision: 1;
218
+ readonly default: number;
219
+ };
220
+ readonly viscosity: {
221
+ readonly type: "number";
222
+ readonly precision: 1;
223
+ readonly default: number;
224
+ };
225
+ readonly thermalConductivity: {
226
+ readonly type: "number";
227
+ readonly precision: 1;
228
+ readonly default: number;
229
+ };
230
+ readonly stressStrainCurve: {
231
+ readonly type: "object";
232
+ readonly layout: "packed";
233
+ readonly properties: {
234
+ readonly tensileYieldStrainStress: {
235
+ readonly type: "array";
236
+ readonly items: {
237
+ readonly type: "number";
238
+ readonly precision: 1;
239
+ readonly default: number;
240
+ };
241
+ readonly minItems: 2;
242
+ readonly maxItems: 2;
243
+ readonly default: readonly [0, 0];
244
+ };
245
+ readonly tensileFractureStrainStress: {
246
+ readonly type: "array";
247
+ readonly items: {
248
+ readonly type: "number";
249
+ readonly precision: 1;
250
+ readonly default: number;
251
+ };
252
+ readonly minItems: 2;
253
+ readonly maxItems: 2;
254
+ readonly default: readonly [0, 0];
255
+ };
256
+ readonly compressiveYieldStrainStress: {
257
+ readonly type: "array";
258
+ readonly items: {
259
+ readonly type: "number";
260
+ readonly precision: 1;
261
+ readonly default: number;
262
+ };
263
+ readonly minItems: 2;
264
+ readonly maxItems: 2;
265
+ readonly default: readonly [0, 0];
266
+ };
267
+ readonly compressiveFractureStrainStress: {
268
+ readonly type: "array";
269
+ readonly items: {
270
+ readonly type: "number";
271
+ readonly precision: 1;
272
+ readonly default: number;
273
+ };
274
+ readonly minItems: 2;
275
+ readonly maxItems: 2;
276
+ readonly default: readonly [0, 0];
277
+ };
278
+ };
279
+ readonly required: readonly ["tensileYieldStrainStress", "tensileFractureStrainStress", "compressiveYieldStrainStress", "compressiveFractureStrainStress"];
280
+ };
281
+ readonly baseColorFactor: {
282
+ readonly type: "array";
283
+ readonly items: {
284
+ readonly type: "number";
285
+ readonly precision: 1;
286
+ readonly default: number;
287
+ };
288
+ readonly minItems: 4;
289
+ readonly maxItems: 4;
290
+ readonly default: readonly [0, 0, 0, 0];
291
+ };
292
+ readonly emissiveFactor: {
293
+ readonly type: "array";
294
+ readonly items: {
295
+ readonly type: "number";
296
+ readonly precision: 1;
297
+ readonly default: number;
298
+ };
299
+ readonly minItems: 3;
300
+ readonly maxItems: 3;
301
+ readonly default: readonly [0, 0, 0];
302
+ };
303
+ readonly metallicFactor: {
304
+ readonly type: "number";
305
+ readonly precision: 1;
306
+ readonly default: number;
307
+ };
308
+ readonly roughnessFactor: {
309
+ readonly type: "number";
310
+ readonly precision: 1;
311
+ readonly default: number;
312
+ };
313
+ readonly normalScale: {
314
+ readonly type: "number";
315
+ readonly precision: 1;
316
+ readonly default: number;
317
+ };
318
+ readonly occlusionStrength: {
319
+ readonly type: "number";
320
+ readonly precision: 1;
321
+ readonly default: number;
322
+ };
323
+ readonly irReflectance: {
324
+ readonly type: "number";
325
+ readonly precision: 1;
326
+ readonly default: number;
327
+ };
328
+ readonly irEmission: {
329
+ readonly type: "number";
330
+ readonly precision: 1;
331
+ readonly default: number;
332
+ };
333
+ readonly emissionMode: {
334
+ readonly type: "integer";
335
+ readonly minimum: 0;
336
+ readonly maximum: 4294967295;
337
+ readonly default: number;
338
+ };
339
+ readonly baseColorUrl: {
340
+ readonly type: "string";
341
+ };
342
+ readonly metallicRoughnessUrl: {
343
+ readonly type: "string";
344
+ };
345
+ readonly normalUrl: {
346
+ readonly type: "string";
347
+ };
348
+ readonly occlusionUrl: {
349
+ readonly type: "string";
350
+ };
351
+ readonly emissiveUrl: {
352
+ readonly type: "string";
353
+ };
354
+ }>, import("@adobe/data/schema").FromSchemas<{}>, {
355
+ readonly Material: readonly ["name", "density", "restitution", "friction", "compliance", "heatCapacity", "viscosity", "thermalConductivity", "stressStrainCurve", "baseColorFactor", "emissiveFactor", "metallicFactor", "roughnessFactor", "normalScale", "occlusionStrength", "irReflectance", "irEmission", "emissionMode", "baseColorUrl", "metallicRoughnessUrl", "normalUrl", "occlusionUrl", "emissiveUrl"];
356
+ }, {
357
+ readonly materialByName: {
358
+ readonly key: "name";
359
+ readonly unique: true;
360
+ readonly archetype: "Material";
361
+ };
362
+ }>, row: Material) => Entity;
363
+ readonly insertMaterialDefinition: (t: import("@adobe/data/ecs").TransactionContext<import("@adobe/data/schema").FromSchemas<{
364
+ readonly material: {
365
+ readonly type: "integer";
366
+ readonly minimum: -2147483648;
367
+ readonly maximum: 2147483647;
368
+ readonly default: number;
369
+ };
370
+ readonly name: {
371
+ readonly type: "string";
372
+ };
373
+ readonly density: {
374
+ readonly type: "number";
375
+ readonly precision: 1;
376
+ readonly default: number;
377
+ };
378
+ readonly restitution: {
379
+ readonly type: "number";
380
+ readonly precision: 1;
381
+ readonly default: number;
382
+ };
383
+ readonly friction: {
384
+ readonly type: "number";
385
+ readonly precision: 1;
386
+ readonly default: number;
387
+ };
388
+ readonly compliance: {
389
+ readonly type: "number";
390
+ readonly precision: 1;
391
+ readonly default: number;
392
+ };
393
+ readonly heatCapacity: {
394
+ readonly type: "number";
395
+ readonly precision: 1;
396
+ readonly default: number;
397
+ };
398
+ readonly viscosity: {
399
+ readonly type: "number";
400
+ readonly precision: 1;
401
+ readonly default: number;
402
+ };
403
+ readonly thermalConductivity: {
404
+ readonly type: "number";
405
+ readonly precision: 1;
406
+ readonly default: number;
407
+ };
408
+ readonly stressStrainCurve: {
409
+ readonly type: "object";
410
+ readonly layout: "packed";
411
+ readonly properties: {
412
+ readonly tensileYieldStrainStress: {
413
+ readonly type: "array";
414
+ readonly items: {
415
+ readonly type: "number";
416
+ readonly precision: 1;
417
+ readonly default: number;
418
+ };
419
+ readonly minItems: 2;
420
+ readonly maxItems: 2;
421
+ readonly default: readonly [0, 0];
422
+ };
423
+ readonly tensileFractureStrainStress: {
424
+ readonly type: "array";
425
+ readonly items: {
426
+ readonly type: "number";
427
+ readonly precision: 1;
428
+ readonly default: number;
429
+ };
430
+ readonly minItems: 2;
431
+ readonly maxItems: 2;
432
+ readonly default: readonly [0, 0];
433
+ };
434
+ readonly compressiveYieldStrainStress: {
435
+ readonly type: "array";
436
+ readonly items: {
437
+ readonly type: "number";
438
+ readonly precision: 1;
439
+ readonly default: number;
440
+ };
441
+ readonly minItems: 2;
442
+ readonly maxItems: 2;
443
+ readonly default: readonly [0, 0];
444
+ };
445
+ readonly compressiveFractureStrainStress: {
446
+ readonly type: "array";
447
+ readonly items: {
448
+ readonly type: "number";
449
+ readonly precision: 1;
450
+ readonly default: number;
451
+ };
452
+ readonly minItems: 2;
453
+ readonly maxItems: 2;
454
+ readonly default: readonly [0, 0];
455
+ };
456
+ };
457
+ readonly required: readonly ["tensileYieldStrainStress", "tensileFractureStrainStress", "compressiveYieldStrainStress", "compressiveFractureStrainStress"];
458
+ };
459
+ readonly baseColorFactor: {
460
+ readonly type: "array";
461
+ readonly items: {
462
+ readonly type: "number";
463
+ readonly precision: 1;
464
+ readonly default: number;
465
+ };
466
+ readonly minItems: 4;
467
+ readonly maxItems: 4;
468
+ readonly default: readonly [0, 0, 0, 0];
469
+ };
470
+ readonly emissiveFactor: {
471
+ readonly type: "array";
472
+ readonly items: {
473
+ readonly type: "number";
474
+ readonly precision: 1;
475
+ readonly default: number;
476
+ };
477
+ readonly minItems: 3;
478
+ readonly maxItems: 3;
479
+ readonly default: readonly [0, 0, 0];
480
+ };
481
+ readonly metallicFactor: {
482
+ readonly type: "number";
483
+ readonly precision: 1;
484
+ readonly default: number;
485
+ };
486
+ readonly roughnessFactor: {
487
+ readonly type: "number";
488
+ readonly precision: 1;
489
+ readonly default: number;
490
+ };
491
+ readonly normalScale: {
492
+ readonly type: "number";
493
+ readonly precision: 1;
494
+ readonly default: number;
495
+ };
496
+ readonly occlusionStrength: {
497
+ readonly type: "number";
498
+ readonly precision: 1;
499
+ readonly default: number;
500
+ };
501
+ readonly irReflectance: {
502
+ readonly type: "number";
503
+ readonly precision: 1;
504
+ readonly default: number;
505
+ };
506
+ readonly irEmission: {
507
+ readonly type: "number";
508
+ readonly precision: 1;
509
+ readonly default: number;
510
+ };
511
+ readonly emissionMode: {
512
+ readonly type: "integer";
513
+ readonly minimum: 0;
514
+ readonly maximum: 4294967295;
515
+ readonly default: number;
516
+ };
517
+ readonly baseColorUrl: {
518
+ readonly type: "string";
519
+ };
520
+ readonly metallicRoughnessUrl: {
521
+ readonly type: "string";
522
+ };
523
+ readonly normalUrl: {
524
+ readonly type: "string";
525
+ };
526
+ readonly occlusionUrl: {
527
+ readonly type: "string";
528
+ };
529
+ readonly emissiveUrl: {
530
+ readonly type: "string";
531
+ };
532
+ }>, import("@adobe/data/schema").FromSchemas<{}>, {
533
+ readonly Material: readonly ["name", "density", "restitution", "friction", "compliance", "heatCapacity", "viscosity", "thermalConductivity", "stressStrainCurve", "baseColorFactor", "emissiveFactor", "metallicFactor", "roughnessFactor", "normalScale", "occlusionStrength", "irReflectance", "irEmission", "emissionMode", "baseColorUrl", "metallicRoughnessUrl", "normalUrl", "occlusionUrl", "emissiveUrl"];
534
+ }, {
535
+ readonly materialByName: {
536
+ readonly key: "name";
537
+ readonly unique: true;
538
+ readonly archetype: "Material";
539
+ };
540
+ }>, args: {
541
+ name: string;
542
+ definition: MaterialDefinition;
543
+ }) => Entity;
544
+ readonly insertMaterialDefinitions: (t: import("@adobe/data/ecs").TransactionContext<import("@adobe/data/schema").FromSchemas<{
545
+ readonly material: {
546
+ readonly type: "integer";
547
+ readonly minimum: -2147483648;
548
+ readonly maximum: 2147483647;
549
+ readonly default: number;
550
+ };
551
+ readonly name: {
552
+ readonly type: "string";
553
+ };
554
+ readonly density: {
555
+ readonly type: "number";
556
+ readonly precision: 1;
557
+ readonly default: number;
558
+ };
559
+ readonly restitution: {
560
+ readonly type: "number";
561
+ readonly precision: 1;
562
+ readonly default: number;
563
+ };
564
+ readonly friction: {
565
+ readonly type: "number";
566
+ readonly precision: 1;
567
+ readonly default: number;
568
+ };
569
+ readonly compliance: {
570
+ readonly type: "number";
571
+ readonly precision: 1;
572
+ readonly default: number;
573
+ };
574
+ readonly heatCapacity: {
575
+ readonly type: "number";
576
+ readonly precision: 1;
577
+ readonly default: number;
578
+ };
579
+ readonly viscosity: {
580
+ readonly type: "number";
581
+ readonly precision: 1;
582
+ readonly default: number;
583
+ };
584
+ readonly thermalConductivity: {
585
+ readonly type: "number";
586
+ readonly precision: 1;
587
+ readonly default: number;
588
+ };
589
+ readonly stressStrainCurve: {
590
+ readonly type: "object";
591
+ readonly layout: "packed";
592
+ readonly properties: {
593
+ readonly tensileYieldStrainStress: {
594
+ readonly type: "array";
595
+ readonly items: {
596
+ readonly type: "number";
597
+ readonly precision: 1;
598
+ readonly default: number;
599
+ };
600
+ readonly minItems: 2;
601
+ readonly maxItems: 2;
602
+ readonly default: readonly [0, 0];
603
+ };
604
+ readonly tensileFractureStrainStress: {
605
+ readonly type: "array";
606
+ readonly items: {
607
+ readonly type: "number";
608
+ readonly precision: 1;
609
+ readonly default: number;
610
+ };
611
+ readonly minItems: 2;
612
+ readonly maxItems: 2;
613
+ readonly default: readonly [0, 0];
614
+ };
615
+ readonly compressiveYieldStrainStress: {
616
+ readonly type: "array";
617
+ readonly items: {
618
+ readonly type: "number";
619
+ readonly precision: 1;
620
+ readonly default: number;
621
+ };
622
+ readonly minItems: 2;
623
+ readonly maxItems: 2;
624
+ readonly default: readonly [0, 0];
625
+ };
626
+ readonly compressiveFractureStrainStress: {
627
+ readonly type: "array";
628
+ readonly items: {
629
+ readonly type: "number";
630
+ readonly precision: 1;
631
+ readonly default: number;
632
+ };
633
+ readonly minItems: 2;
634
+ readonly maxItems: 2;
635
+ readonly default: readonly [0, 0];
636
+ };
637
+ };
638
+ readonly required: readonly ["tensileYieldStrainStress", "tensileFractureStrainStress", "compressiveYieldStrainStress", "compressiveFractureStrainStress"];
639
+ };
640
+ readonly baseColorFactor: {
641
+ readonly type: "array";
642
+ readonly items: {
643
+ readonly type: "number";
644
+ readonly precision: 1;
645
+ readonly default: number;
646
+ };
647
+ readonly minItems: 4;
648
+ readonly maxItems: 4;
649
+ readonly default: readonly [0, 0, 0, 0];
650
+ };
651
+ readonly emissiveFactor: {
652
+ readonly type: "array";
653
+ readonly items: {
654
+ readonly type: "number";
655
+ readonly precision: 1;
656
+ readonly default: number;
657
+ };
658
+ readonly minItems: 3;
659
+ readonly maxItems: 3;
660
+ readonly default: readonly [0, 0, 0];
661
+ };
662
+ readonly metallicFactor: {
663
+ readonly type: "number";
664
+ readonly precision: 1;
665
+ readonly default: number;
666
+ };
667
+ readonly roughnessFactor: {
668
+ readonly type: "number";
669
+ readonly precision: 1;
670
+ readonly default: number;
671
+ };
672
+ readonly normalScale: {
673
+ readonly type: "number";
674
+ readonly precision: 1;
675
+ readonly default: number;
676
+ };
677
+ readonly occlusionStrength: {
678
+ readonly type: "number";
679
+ readonly precision: 1;
680
+ readonly default: number;
681
+ };
682
+ readonly irReflectance: {
683
+ readonly type: "number";
684
+ readonly precision: 1;
685
+ readonly default: number;
686
+ };
687
+ readonly irEmission: {
688
+ readonly type: "number";
689
+ readonly precision: 1;
690
+ readonly default: number;
691
+ };
692
+ readonly emissionMode: {
693
+ readonly type: "integer";
694
+ readonly minimum: 0;
695
+ readonly maximum: 4294967295;
696
+ readonly default: number;
697
+ };
698
+ readonly baseColorUrl: {
699
+ readonly type: "string";
700
+ };
701
+ readonly metallicRoughnessUrl: {
702
+ readonly type: "string";
703
+ };
704
+ readonly normalUrl: {
705
+ readonly type: "string";
706
+ };
707
+ readonly occlusionUrl: {
708
+ readonly type: "string";
709
+ };
710
+ readonly emissiveUrl: {
711
+ readonly type: "string";
712
+ };
713
+ }>, import("@adobe/data/schema").FromSchemas<{}>, {
714
+ readonly Material: readonly ["name", "density", "restitution", "friction", "compliance", "heatCapacity", "viscosity", "thermalConductivity", "stressStrainCurve", "baseColorFactor", "emissiveFactor", "metallicFactor", "roughnessFactor", "normalScale", "occlusionStrength", "irReflectance", "irEmission", "emissionMode", "baseColorUrl", "metallicRoughnessUrl", "normalUrl", "occlusionUrl", "emissiveUrl"];
715
+ }, {
716
+ readonly materialByName: {
717
+ readonly key: "name";
718
+ readonly unique: true;
719
+ readonly archetype: "Material";
720
+ };
721
+ }>, defs: Readonly<Record<string, MaterialDefinition>>) => void;
116
722
  readonly seedStandardMaterials: (t: import("@adobe/data/ecs").TransactionContext<import("@adobe/data/schema").FromSchemas<{
117
723
  readonly material: {
118
724
  readonly type: "integer";
@@ -148,6 +754,67 @@ export declare const plugin: {
148
754
  readonly precision: 1;
149
755
  readonly default: number;
150
756
  };
757
+ readonly viscosity: {
758
+ readonly type: "number";
759
+ readonly precision: 1;
760
+ readonly default: number;
761
+ };
762
+ readonly thermalConductivity: {
763
+ readonly type: "number";
764
+ readonly precision: 1;
765
+ readonly default: number;
766
+ };
767
+ readonly stressStrainCurve: {
768
+ readonly type: "object";
769
+ readonly layout: "packed";
770
+ readonly properties: {
771
+ readonly tensileYieldStrainStress: {
772
+ readonly type: "array";
773
+ readonly items: {
774
+ readonly type: "number";
775
+ readonly precision: 1;
776
+ readonly default: number;
777
+ };
778
+ readonly minItems: 2;
779
+ readonly maxItems: 2;
780
+ readonly default: readonly [0, 0];
781
+ };
782
+ readonly tensileFractureStrainStress: {
783
+ readonly type: "array";
784
+ readonly items: {
785
+ readonly type: "number";
786
+ readonly precision: 1;
787
+ readonly default: number;
788
+ };
789
+ readonly minItems: 2;
790
+ readonly maxItems: 2;
791
+ readonly default: readonly [0, 0];
792
+ };
793
+ readonly compressiveYieldStrainStress: {
794
+ readonly type: "array";
795
+ readonly items: {
796
+ readonly type: "number";
797
+ readonly precision: 1;
798
+ readonly default: number;
799
+ };
800
+ readonly minItems: 2;
801
+ readonly maxItems: 2;
802
+ readonly default: readonly [0, 0];
803
+ };
804
+ readonly compressiveFractureStrainStress: {
805
+ readonly type: "array";
806
+ readonly items: {
807
+ readonly type: "number";
808
+ readonly precision: 1;
809
+ readonly default: number;
810
+ };
811
+ readonly minItems: 2;
812
+ readonly maxItems: 2;
813
+ readonly default: readonly [0, 0];
814
+ };
815
+ };
816
+ readonly required: readonly ["tensileYieldStrainStress", "tensileFractureStrainStress", "compressiveYieldStrainStress", "compressiveFractureStrainStress"];
817
+ };
151
818
  readonly baseColorFactor: {
152
819
  readonly type: "array";
153
820
  readonly items: {
@@ -190,6 +857,22 @@ export declare const plugin: {
190
857
  readonly precision: 1;
191
858
  readonly default: number;
192
859
  };
860
+ readonly irReflectance: {
861
+ readonly type: "number";
862
+ readonly precision: 1;
863
+ readonly default: number;
864
+ };
865
+ readonly irEmission: {
866
+ readonly type: "number";
867
+ readonly precision: 1;
868
+ readonly default: number;
869
+ };
870
+ readonly emissionMode: {
871
+ readonly type: "integer";
872
+ readonly minimum: 0;
873
+ readonly maximum: 4294967295;
874
+ readonly default: number;
875
+ };
193
876
  readonly baseColorUrl: {
194
877
  readonly type: "string";
195
878
  };
@@ -205,17 +888,203 @@ export declare const plugin: {
205
888
  readonly emissiveUrl: {
206
889
  readonly type: "string";
207
890
  };
208
- }>, import("@adobe/data/schema").FromSchemas<{
209
- readonly materials: {
210
- readonly default: Record<string, Entity>;
891
+ }>, import("@adobe/data/schema").FromSchemas<{}>, {
892
+ readonly Material: readonly ["name", "density", "restitution", "friction", "compliance", "heatCapacity", "viscosity", "thermalConductivity", "stressStrainCurve", "baseColorFactor", "emissiveFactor", "metallicFactor", "roughnessFactor", "normalScale", "occlusionStrength", "irReflectance", "irEmission", "emissionMode", "baseColorUrl", "metallicRoughnessUrl", "normalUrl", "occlusionUrl", "emissiveUrl"];
893
+ }, {
894
+ readonly materialByName: {
895
+ readonly key: "name";
896
+ readonly unique: true;
897
+ readonly archetype: "Material";
898
+ };
899
+ }>) => void;
900
+ readonly seedDefinitionMaterials: (t: import("@adobe/data/ecs").TransactionContext<import("@adobe/data/schema").FromSchemas<{
901
+ readonly material: {
902
+ readonly type: "integer";
903
+ readonly minimum: -2147483648;
904
+ readonly maximum: 2147483647;
905
+ readonly default: number;
906
+ };
907
+ readonly name: {
908
+ readonly type: "string";
909
+ };
910
+ readonly density: {
911
+ readonly type: "number";
912
+ readonly precision: 1;
913
+ readonly default: number;
914
+ };
915
+ readonly restitution: {
916
+ readonly type: "number";
917
+ readonly precision: 1;
918
+ readonly default: number;
211
919
  };
212
- }>, {
213
- readonly Material: readonly ["name", "density", "restitution", "friction", "compliance", "heatCapacity", "baseColorFactor", "emissiveFactor", "metallicFactor", "roughnessFactor", "normalScale", "occlusionStrength", "baseColorUrl", "metallicRoughnessUrl", "normalUrl", "occlusionUrl", "emissiveUrl"];
214
- }, {}>) => void;
920
+ readonly friction: {
921
+ readonly type: "number";
922
+ readonly precision: 1;
923
+ readonly default: number;
924
+ };
925
+ readonly compliance: {
926
+ readonly type: "number";
927
+ readonly precision: 1;
928
+ readonly default: number;
929
+ };
930
+ readonly heatCapacity: {
931
+ readonly type: "number";
932
+ readonly precision: 1;
933
+ readonly default: number;
934
+ };
935
+ readonly viscosity: {
936
+ readonly type: "number";
937
+ readonly precision: 1;
938
+ readonly default: number;
939
+ };
940
+ readonly thermalConductivity: {
941
+ readonly type: "number";
942
+ readonly precision: 1;
943
+ readonly default: number;
944
+ };
945
+ readonly stressStrainCurve: {
946
+ readonly type: "object";
947
+ readonly layout: "packed";
948
+ readonly properties: {
949
+ readonly tensileYieldStrainStress: {
950
+ readonly type: "array";
951
+ readonly items: {
952
+ readonly type: "number";
953
+ readonly precision: 1;
954
+ readonly default: number;
955
+ };
956
+ readonly minItems: 2;
957
+ readonly maxItems: 2;
958
+ readonly default: readonly [0, 0];
959
+ };
960
+ readonly tensileFractureStrainStress: {
961
+ readonly type: "array";
962
+ readonly items: {
963
+ readonly type: "number";
964
+ readonly precision: 1;
965
+ readonly default: number;
966
+ };
967
+ readonly minItems: 2;
968
+ readonly maxItems: 2;
969
+ readonly default: readonly [0, 0];
970
+ };
971
+ readonly compressiveYieldStrainStress: {
972
+ readonly type: "array";
973
+ readonly items: {
974
+ readonly type: "number";
975
+ readonly precision: 1;
976
+ readonly default: number;
977
+ };
978
+ readonly minItems: 2;
979
+ readonly maxItems: 2;
980
+ readonly default: readonly [0, 0];
981
+ };
982
+ readonly compressiveFractureStrainStress: {
983
+ readonly type: "array";
984
+ readonly items: {
985
+ readonly type: "number";
986
+ readonly precision: 1;
987
+ readonly default: number;
988
+ };
989
+ readonly minItems: 2;
990
+ readonly maxItems: 2;
991
+ readonly default: readonly [0, 0];
992
+ };
993
+ };
994
+ readonly required: readonly ["tensileYieldStrainStress", "tensileFractureStrainStress", "compressiveYieldStrainStress", "compressiveFractureStrainStress"];
995
+ };
996
+ readonly baseColorFactor: {
997
+ readonly type: "array";
998
+ readonly items: {
999
+ readonly type: "number";
1000
+ readonly precision: 1;
1001
+ readonly default: number;
1002
+ };
1003
+ readonly minItems: 4;
1004
+ readonly maxItems: 4;
1005
+ readonly default: readonly [0, 0, 0, 0];
1006
+ };
1007
+ readonly emissiveFactor: {
1008
+ readonly type: "array";
1009
+ readonly items: {
1010
+ readonly type: "number";
1011
+ readonly precision: 1;
1012
+ readonly default: number;
1013
+ };
1014
+ readonly minItems: 3;
1015
+ readonly maxItems: 3;
1016
+ readonly default: readonly [0, 0, 0];
1017
+ };
1018
+ readonly metallicFactor: {
1019
+ readonly type: "number";
1020
+ readonly precision: 1;
1021
+ readonly default: number;
1022
+ };
1023
+ readonly roughnessFactor: {
1024
+ readonly type: "number";
1025
+ readonly precision: 1;
1026
+ readonly default: number;
1027
+ };
1028
+ readonly normalScale: {
1029
+ readonly type: "number";
1030
+ readonly precision: 1;
1031
+ readonly default: number;
1032
+ };
1033
+ readonly occlusionStrength: {
1034
+ readonly type: "number";
1035
+ readonly precision: 1;
1036
+ readonly default: number;
1037
+ };
1038
+ readonly irReflectance: {
1039
+ readonly type: "number";
1040
+ readonly precision: 1;
1041
+ readonly default: number;
1042
+ };
1043
+ readonly irEmission: {
1044
+ readonly type: "number";
1045
+ readonly precision: 1;
1046
+ readonly default: number;
1047
+ };
1048
+ readonly emissionMode: {
1049
+ readonly type: "integer";
1050
+ readonly minimum: 0;
1051
+ readonly maximum: 4294967295;
1052
+ readonly default: number;
1053
+ };
1054
+ readonly baseColorUrl: {
1055
+ readonly type: "string";
1056
+ };
1057
+ readonly metallicRoughnessUrl: {
1058
+ readonly type: "string";
1059
+ };
1060
+ readonly normalUrl: {
1061
+ readonly type: "string";
1062
+ };
1063
+ readonly occlusionUrl: {
1064
+ readonly type: "string";
1065
+ };
1066
+ readonly emissiveUrl: {
1067
+ readonly type: "string";
1068
+ };
1069
+ }>, import("@adobe/data/schema").FromSchemas<{}>, {
1070
+ readonly Material: readonly ["name", "density", "restitution", "friction", "compliance", "heatCapacity", "viscosity", "thermalConductivity", "stressStrainCurve", "baseColorFactor", "emissiveFactor", "metallicFactor", "roughnessFactor", "normalScale", "occlusionStrength", "irReflectance", "irEmission", "emissionMode", "baseColorUrl", "metallicRoughnessUrl", "normalUrl", "occlusionUrl", "emissiveUrl"];
1071
+ }, {
1072
+ readonly materialByName: {
1073
+ readonly key: "name";
1074
+ readonly unique: true;
1075
+ readonly archetype: "Material";
1076
+ };
1077
+ }>) => void;
215
1078
  };
216
1079
  readonly systems: import("@adobe/data/ecs").SystemDeclarations<never>;
217
1080
  readonly actions: {};
218
1081
  readonly services: {};
219
1082
  readonly computed: {};
220
- readonly indexes: {};
1083
+ readonly indexes: {
1084
+ readonly materialByName: {
1085
+ readonly key: "name";
1086
+ readonly unique: true;
1087
+ readonly archetype: "Material";
1088
+ };
1089
+ };
221
1090
  };