shaders 3.2.474 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (812) hide show
  1. package/LICENSE +21 -142
  2. package/README.md +192 -19
  3. package/dist/cli.js +2 -2
  4. package/dist/core/{AngularBlur-g4-fDx1N.js → AngularBlur-BEBs-lRR.js} +2 -3
  5. package/dist/core/{Arc-B4VGPOtO.js → Arc-D-WnjM7T.js} +1 -3
  6. package/dist/core/{Ascii-DxiduEzP.js → Ascii-BGPIwMc3.js} +2 -5
  7. package/dist/core/{Aurora-FgWLcSkh.js → Aurora-DqJBPdMQ.js} +2 -11
  8. package/dist/core/{BarShift-BukEd3jr.js → BarShift-BcCOweUh.js} +2 -3
  9. package/dist/core/{BarnDoors-BC0LM0aD.js → BarnDoors-B9B-AmCV.js} +2 -3
  10. package/dist/core/{Beam-CxAXVlAf.js → Beam-QG_9OS8I.js} +2 -3
  11. package/dist/core/{Bend-BfVVIo2C.js → Bend-Cy9VAowL.js} +1 -2
  12. package/dist/core/{Blob-D_IbcUCc.js → Blob-C3txJeW0.js} +2 -10
  13. package/dist/core/{BlockDissolve-C9nsgIz9.js → BlockDissolve-C1SFUys7.js} +2 -3
  14. package/dist/core/{BlockNoise-BgwbD0rx.js → BlockNoise-Cm3y8hce.js} +2 -4
  15. package/dist/core/{BlueNoise-BdwOaq4G.js → BlueNoise-BCLObOMm.js} +2 -4
  16. package/dist/core/{Blur-ceuv7ZTm.js → Blur-Dg29SnXd.js} +1 -2
  17. package/dist/core/{Boids-DEHsYo46.js → Boids-rsGsPN5h.js} +2 -5
  18. package/dist/core/{BokehBlur-C8xJ0xA8.js → BokehBlur-rFSFEnb0.js} +3 -4
  19. package/dist/core/{BrickPattern-C-6QFzp6.js → BrickPattern-DqN6JKEN.js} +2 -3
  20. package/dist/core/{BrightnessContrast-CMUaNvo0.js → BrightnessContrast-J9fCSBiC.js} +1 -3
  21. package/dist/core/{BrushedMetal-CQsu_96R.js → BrushedMetal-74wSZKjG.js} +3 -8
  22. package/dist/core/{Bulge-CgO7_0fe.js → Bulge-BIk0oq8j.js} +1 -2
  23. package/dist/core/{CRTScreen-DNqe2klB.js → CRTScreen-hEH-JNRd.js} +2 -3
  24. package/dist/core/{CarbonFiber-D0vgwlrV.js → CarbonFiber-CZdUDvRU.js} +4 -8
  25. package/dist/core/{Chalkboard-CDUJz_Ae.js → Chalkboard-CClJHqvs.js} +2 -3
  26. package/dist/core/{ChannelBlur-Z8ZvN6W3.js → ChannelBlur-BEuEwQOC.js} +1 -2
  27. package/dist/core/{CheckerWipe-DXm9kDaS.js → CheckerWipe-KuAWj2qg.js} +2 -3
  28. package/dist/core/{Checkerboard-DZAABNKo.js → Checkerboard-Rq9ze1W3.js} +2 -3
  29. package/dist/core/{Chevron-Dn1iHSiS.js → Chevron-C1j6X2Ye.js} +2 -3
  30. package/dist/core/{ChromaFlow-lnaJ4o1Y.js → ChromaFlow-BgsCUYIl.js} +2 -5
  31. package/dist/core/{ChromaticAberration-CGOQe4Pp.js → ChromaticAberration-2_4tjQ0u.js} +2 -4
  32. package/dist/core/{Chrome-DPAmErfN.js → Chrome-Be3z6C5i.js} +5 -11
  33. package/dist/core/{Circle-DVPhvXdr.js → Circle-e_qQI3tU.js} +1 -3
  34. package/dist/core/{ColorWheel-DXkVOQl2.js → ColorWheel-s5ep1H7d.js} +2 -3
  35. package/dist/core/{CompressionArtifacts-CEw9gfTu.js → CompressionArtifacts-OE9U9Qrq.js} +1 -3
  36. package/dist/core/{ConcentricSpin-GtNEq1T1.js → ConcentricSpin-CLE_5yCJ.js} +1 -2
  37. package/dist/core/{ConicGradient-DYPNJAOg.js → ConicGradient-Cji2SgVO.js} +2 -4
  38. package/dist/core/{ContourLines-DEmEepvT.js → ContourLines-wpPK00cF.js} +2 -3
  39. package/dist/core/{CornerPin-CJJeGyVf.js → CornerPin-gYU0Uf2m.js} +2 -3
  40. package/dist/core/{Crescent-C7yy9-xf.js → Crescent-viNc7Unp.js} +1 -2
  41. package/dist/core/{Cross-DyYrdTVw.js → Cross-DyQSsw_k.js} +1 -2
  42. package/dist/core/{Crystal-DQJd5oAd.js → Crystal-Vjj8azWg.js} +4 -9
  43. package/dist/core/{CurlNoise-Bjc6hhjR.js → CurlNoise-C7PHjDht.js} +2 -4
  44. package/dist/core/{CursorRipples-C1PNyYcB.js → CursorRipples-BzPPNkA3.js} +3 -39
  45. package/dist/core/{CursorTrail-C6v97bId.js → CursorTrail-cBj0AuQA.js} +2 -4
  46. package/dist/core/{DataMosh-AX4kIi4R.js → DataMosh-5Yr9TyVx.js} +1 -3
  47. package/dist/core/{DiamondGradient-Bj6mUxOy.js → DiamondGradient-DZM7HwF5.js} +2 -4
  48. package/dist/core/{DiamondWipe-BNSkpUn9.js → DiamondWipe-CqeT7lCt.js} +2 -3
  49. package/dist/core/{DiffuseBlur-C7l-5Dw3.js → DiffuseBlur-Y5hSDTZF.js} +2 -3
  50. package/dist/core/{DisplacementMap-DGpLSlxs.js → DisplacementMap-FobRx5Ie.js} +2 -3
  51. package/dist/core/{Dither-C9KDpqgP.js → Dither-50rqHpt9.js} +2 -3
  52. package/dist/core/{DotGrid-CkAtf-j_.js → DotGrid-B6AGLUbR.js} +3 -4
  53. package/dist/core/{DropShadow-BxI_a7dC.js → DropShadow-CEPpgatB.js} +2 -3
  54. package/dist/core/{Duotone-CrJ0P0SL.js → Duotone-D76Kp7Pb.js} +2 -3
  55. package/dist/core/{Ellipse-C2Tie_19.js → Ellipse-BGod1LeG.js} +1 -2
  56. package/dist/core/{Emboss-BjOlYydL.js → Emboss-DMNFb_ww.js} +3 -6
  57. package/dist/core/{Engraving-RpxXPqQq.js → Engraving-Dj7bCATQ.js} +2 -3
  58. package/dist/core/{ErosionNoise-D0qefxhq.js → ErosionNoise-4O68wJQZ.js} +2 -4
  59. package/dist/core/{Exposure-B7W7AVbY.js → Exposure-h-vapOpj.js} +1 -3
  60. package/dist/core/{FallingLines-Cxhmtqf4.js → FallingLines-Dzop_89k.js} +2 -3
  61. package/dist/core/{FilmGrain-CghUJIeK.js → FilmGrain-Bs8PCfdf.js} +1 -3
  62. package/dist/core/{FilmStock-DmOaROtC.js → FilmStock-DBjVo6rL.js} +1 -4
  63. package/dist/core/{Flip-BuOdbWjK.js → Flip-CfrS4KfZ.js} +2 -3
  64. package/dist/core/{FloatingParticles-BfFlt06Y.js → FloatingParticles-D1R2tD2J.js} +2 -5
  65. package/dist/core/{FlowField-A2njOtGx.js → FlowField-Slirm5AI.js} +2 -3
  66. package/dist/core/{Flower-CwdJOVR1.js → Flower-Ddlut7QZ.js} +1 -2
  67. package/dist/core/{FlowingGradient-D3BG2FW9.js → FlowingGradient-CwIgTtbj.js} +2 -7
  68. package/dist/core/{FlutedGlass-BWlTrLF-.js → FlutedGlass-CMMy2GJ5.js} +2 -4
  69. package/dist/core/{Fog-CpmIyRtJ.js → Fog-DjjUkcTZ.js} +2 -4
  70. package/dist/core/{Form3D-D-eUD4_k.js → Form3D-DQDOHWpC.js} +2 -4
  71. package/dist/core/{FractalNoise-DsESU8cP.js → FractalNoise-BjI3IOIj.js} +2 -4
  72. package/dist/core/{Frost-B1s1W_Qm.js → Frost-CK12HnL1.js} +4 -9
  73. package/dist/core/{GaborNoise-D3U1iz9E.js → GaborNoise-DKEIvvRJ.js} +3 -5
  74. package/dist/core/{Glass-O5o5OxlN.js → Glass-CzcOVD5Y.js} +3 -8
  75. package/dist/core/{GlassTiles-BxdT6Ee8.js → GlassTiles-gjhc563g.js} +1 -2
  76. package/dist/core/{Glitch-DQeLaNdU.js → Glitch-C_XAWltC.js} +1 -2
  77. package/dist/core/{Glow-DksG7wdu.js → Glow-CrYCanBI.js} +1 -3
  78. package/dist/core/{Godrays-D2Pzd9K9.js → Godrays-BBTMOVLP.js} +2 -3
  79. package/dist/core/{Goo-BL_ifIPI.js → Goo-Brhjk8aS.js} +3 -8
  80. package/dist/core/{GradientMap-B-5yUYjX.js → GradientMap-C5325QWw.js} +2 -4
  81. package/dist/core/{Grayscale-g7jQsxgi.js → Grayscale-dPjs-wvf.js} +1 -2
  82. package/dist/core/{Grid-DAglpJFP.js → Grid-UjEd3O76.js} +3 -4
  83. package/dist/core/{GridDistortion-CNlIESbs.js → GridDistortion-vVgYya1U.js} +1 -5
  84. package/dist/core/{Group-CeOfFv2K.js → Group-KVdmAi5g.js} +1 -1
  85. package/dist/core/{HTMLInCanvas-BgwCnbYn.js → HTMLInCanvas-CKr2u76R.js} +1 -2
  86. package/dist/core/{Halftone-DCiP4EDq.js → Halftone-pRV3TRUW.js} +4 -5
  87. package/dist/core/{Heart-CQhtzwFu.js → Heart-CX7MvvHZ.js} +1 -2
  88. package/dist/core/{Heatmap-e-lF_uZu.js → Heatmap-Dn6qyd2e.js} +3 -8
  89. package/dist/core/{HexGrid-BY_BPH8J.js → HexGrid-BIfYhkfV.js} +3 -4
  90. package/dist/core/{Hologram-BA_LJPm0.js → Hologram-ou27baPQ.js} +4 -8
  91. package/dist/core/{Holographic-CX8OG-Wa.js → Holographic-CiHdBSMg.js} +3 -7
  92. package/dist/core/{HueShift-BnwOshrg.js → HueShift-CG7pcXfg.js} +1 -3
  93. package/dist/core/{ImageTexture-Cd6vH2Z0.js → ImageTexture-BiZuU58C.js} +1 -2
  94. package/dist/core/{InkFlow-B7F9i3Kd.js → InkFlow-D9_L7opB.js} +9 -12
  95. package/dist/core/{Invert-6Q5kX8vd.js → Invert-CHEaiQZO.js} +1 -2
  96. package/dist/core/{IrisWipe-Cl5yYdEi.js → IrisWipe-x22vOQHm.js} +2 -3
  97. package/dist/core/Irradiance-7yq2K87_.js +389 -0
  98. package/dist/core/{IsometricCubes-BhK9MhCy.js → IsometricCubes-CkPGWr7M.js} +2 -3
  99. package/dist/core/{Kaleidoscope-D4X5N_qk.js → Kaleidoscope-CEC5m1Ww.js} +1 -2
  100. package/dist/core/{KeyFrames-Dv1vFfMa.js → KeyFrames-BMGEZsAZ.js} +2 -3
  101. package/dist/core/{LensDistortion-BqVp5WBS.js → LensDistortion-DKo8PiO5.js} +2 -3
  102. package/dist/core/{LensFlare-z0k68uJ1.js → LensFlare-DMS-NUtK.js} +2 -3
  103. package/dist/core/LightEdge-DxmnCRls.js +315 -0
  104. package/dist/core/{LightLeak-BgFq4bLG.js → LightLeak-yoEsZtYg.js} +2 -4
  105. package/dist/core/{Line--Ur3CJp1.js → Line-D17XDUjO.js} +2 -3
  106. package/dist/core/{LinearBlur-BkHF6lVm.js → LinearBlur-CiyjPTUH.js} +2 -3
  107. package/dist/core/{LinearGradient-DIdq_fiw.js → LinearGradient-DfjKG70q.js} +2 -4
  108. package/dist/core/{LinearWipe-DuCB9oV_.js → LinearWipe-D9CtBg6S.js} +2 -3
  109. package/dist/core/{LiquidMetal-B2Cz80Ka.js → LiquidMetal-8EG6DwV6.js} +3 -8
  110. package/dist/core/{Liquify-CvPn1ze-.js → Liquify-BySXF1OB.js} +1 -4
  111. package/dist/core/{MagneticFilings-BOgYrPhz.js → MagneticFilings-DNESH3Zs.js} +2 -5
  112. package/dist/core/{Marble-c2QGDXxB.js → Marble-C9WvdxrP.js} +2 -7
  113. package/dist/core/{MeshGradient-DMsza5tg.js → MeshGradient-d9--RXOU.js} +2 -10
  114. package/dist/core/{Mirror-Ck8qk1Km.js → Mirror-1V2FF2kD.js} +1 -2
  115. package/dist/core/{MultiPointGradient-DwO6snxn.js → MultiPointGradient-cRA9ytgL.js} +2 -3
  116. package/dist/core/{Nebula-3a9pYBDC.js → Nebula-BRV-q74y.js} +7 -90
  117. package/dist/core/{Neon-Cf95sJ7W.js → Neon-4PemK9Rj.js} +3 -6
  118. package/dist/core/{NoiseDissolve-DgvzEFOD.js → NoiseDissolve-B7LgD46G.js} +2 -3
  119. package/dist/core/{ObjectTracker-IopW8Jvf.js → ObjectTracker-CdzDxhpy.js} +3 -4
  120. package/dist/core/{Obsidian-BL_0ordp.js → Obsidian-2J1eX9kT.js} +9 -15
  121. package/dist/core/{PagePeel-BeAr_n0U.js → PagePeel-D-ziraOm.js} +1 -2
  122. package/dist/core/{Paper-BDEsyIPI.js → Paper-BxzCLyzB.js} +1 -2
  123. package/dist/core/{Parallelogram-Duj-0MLr.js → Parallelogram-D4OflTwn.js} +1 -2
  124. package/dist/core/{ParticleField-gk7JuNx4.js → ParticleField-tWNicEDO.js} +1 -4
  125. package/dist/core/{ParticleFlow-BzWOl7Hm.js → ParticleFlow-BiEYFyWR.js} +2 -6
  126. package/dist/core/{Particles-DYAtR6jZ.js → Particles-B7W4yWgo.js} +3 -7
  127. package/dist/core/{PerlinNoise-BHQ318g4.js → PerlinNoise-C-irUxp9.js} +3 -5
  128. package/dist/core/{Perspective-xBfd9BSE.js → Perspective-DlnAW-pe.js} +2 -3
  129. package/dist/core/{PixelSort-Bx9sUnGm.js → PixelSort-BBOTYuOE.js} +1 -4
  130. package/dist/core/{PixelThrow-0nJiGsmZ.js → PixelThrow-DCJb9Lxd.js} +2 -4
  131. package/dist/core/{Pixelate-CvCzoA0h.js → Pixelate-CZdwB--K.js} +1 -2
  132. package/dist/core/{Plasma-Be1yxNcP.js → Plasma-CTOQJeqy.js} +2 -4
  133. package/dist/core/{Plastic-Bom1oFFR.js → Plastic-DvyH9x-4.js} +3 -8
  134. package/dist/core/{PolarCoordinates-BGwTZ6NO.js → PolarCoordinates-XhdDAOD0.js} +1 -2
  135. package/dist/core/{Polygon-Byw5C7Qy.js → Polygon-CLohB-Ly.js} +2 -4
  136. package/dist/core/{Posterize-BHOstvyj.js → Posterize-BAQfnvmK.js} +1 -2
  137. package/dist/core/{Prism-pNsLhW8w.js → Prism-DJVCVAXX.js} +4 -8
  138. package/dist/core/{ProgressiveBlur-CR1IbvKQ.js → ProgressiveBlur-Dirva1on.js} +2 -3
  139. package/dist/core/{RadialGradient-BFOrMAK1.js → RadialGradient-DuSKR8Ds.js} +2 -4
  140. package/dist/core/{RadialWipe-BYnlbrNm.js → RadialWipe-n8tON7x2.js} +2 -3
  141. package/dist/core/{RandomBars-B7erRRHx.js → RandomBars-BYouiIgQ.js} +2 -3
  142. package/dist/core/{ReactionDiffusion-BnY40jHs.js → ReactionDiffusion-CHDd3y2q.js} +2 -5
  143. package/dist/core/{RectangularCoordinates-D9-3PQAz.js → RectangularCoordinates-CYFfCawa.js} +1 -2
  144. package/dist/core/{ReflectivePlane-BI-LIR2c.js → ReflectivePlane-DFTl5U9q.js} +2 -3
  145. package/dist/core/Repeater-CnbzXuAe.js +473 -0
  146. package/dist/core/{Ring-CvvtJYAf.js → Ring-CGkHVSVd.js} +1 -2
  147. package/dist/core/{RippleWipe-kAzZWsjR.js → RippleWipe-DLjPzY6u.js} +2 -3
  148. package/dist/core/{Ripples-BFLep1r1.js → Ripples-C2tITU62.js} +2 -3
  149. package/dist/core/{RoundedRect-DirNijIY.js → RoundedRect-sfNTUaCY.js} +1 -2
  150. package/dist/core/{Saturation-CfkRhJpe.js → Saturation-BRkifYWj.js} +1 -3
  151. package/dist/core/{Scratches-Dchfw1_5.js → Scratches-D87O5C2K.js} +2 -4
  152. package/dist/core/{Sharpness-DZzAnlsl.js → Sharpness-BGv613Zw.js} +1 -3
  153. package/dist/core/Shatter-DuyCFU1f.js +328 -0
  154. package/dist/core/{SimplexNoise-CmV42gYT.js → SimplexNoise-CQJvmqd-.js} +2 -4
  155. package/dist/core/{SineWave-TqnpIKO4.js → SineWave-BfOgSGMP.js} +2 -3
  156. package/dist/core/{SliceWipe-Dz8vj6bi.js → SliceWipe-CD_D99sl.js} +1 -2
  157. package/dist/core/{Smoke-B1TnZnG6.js → Smoke-BDQYKRP1.js} +2 -4
  158. package/dist/core/{SmokeFill-C8gSZ22X.js → SmokeFill-CPnzQtQv.js} +3 -8
  159. package/dist/core/{SmokeFlow-dd5uLztm.js → SmokeFlow-BkPMjZq8.js} +2 -4
  160. package/dist/core/{Solarize-CIQa9pKw.js → Solarize-DSiS32QS.js} +1 -3
  161. package/dist/core/{SolidColor-DuoQVKGk.js → SolidColor-DEKpgy1c.js} +2 -3
  162. package/dist/core/Sparkle-BZur6gPW.js +178 -0
  163. package/dist/core/{Spherize-FWwWEUyE.js → Spherize-D9Yg4n6O.js} +2 -3
  164. package/dist/core/{Spiral-DI1eG0E3.js → Spiral-BCacfEpT.js} +2 -3
  165. package/dist/core/{Star-DT-hnlIJ.js → Star-Dnw1ihk7.js} +1 -2
  166. package/dist/core/{Stone-oW35zD22.js → Stone-Cje-_vAg.js} +1 -3
  167. package/dist/core/{Strands-asB3fUr9.js → Strands-CFRxS1G_.js} +2 -4
  168. package/dist/core/{Stretch-Cm_B4WGY.js → Stretch-DXVhfIqO.js} +1 -2
  169. package/dist/core/{Stripes-BnJiniJY.js → Stripes-CCADWwyq.js} +2 -3
  170. package/dist/core/{StudioBackground-DwSO5KNV.js → StudioBackground-BlzYNAsu.js} +2 -6
  171. package/dist/core/{SunBurst-BL-BryZO.js → SunBurst-CmWbI18r.js} +2 -3
  172. package/dist/core/{Surface3D-DSvh7Zof.js → Surface3D-Dmh98-0V.js} +2 -6
  173. package/dist/core/{Swirl-BVPy039a.js → Swirl-CzI1qSVc.js} +2 -4
  174. package/dist/core/{Teardrop-CR1UqYaF.js → Teardrop-D24uulL0.js} +1 -2
  175. package/dist/core/{Text-fP5temat.js → Text-CrZKvBw6.js} +2 -6
  176. package/dist/core/{ThinFilm-CTQeVw7E.js → ThinFilm-D7R2dt1O.js} +11 -14
  177. package/dist/core/{TiltShift-BvYpYELk.js → TiltShift-AMMDZBvf.js} +2 -3
  178. package/dist/core/{TimeTrail-DqdYuHn7.js → TimeTrail-BCYDP2ep.js} +4 -8
  179. package/dist/core/{Tint-BXJMHYvg.js → Tint-DHb5wBN5.js} +2 -3
  180. package/dist/core/{Trapezoid--AgyKOWQ.js → Trapezoid-CL5Fxvq7.js} +1 -2
  181. package/dist/core/{TriangularGrid-CmDApxz9.js → TriangularGrid-Bp-SJS-H.js} +2 -3
  182. package/dist/core/{Tritone-DCd_IRp7.js → Tritone-C0nx7OdC.js} +2 -3
  183. package/dist/core/{Truchet-g1_jcoZ4.js → Truchet-DCetyDaq.js} +2 -3
  184. package/dist/core/{Twirl-JY-PXDS2.js → Twirl-D_mv9KEi.js} +1 -2
  185. package/dist/core/{VHS-ZWR6D4Da.js → VHS-Cp9aDjti.js} +2 -3
  186. package/dist/core/{VenetianBlinds-B7laTyPO.js → VenetianBlinds-DUyvaT5w.js} +2 -3
  187. package/dist/core/{Vesica-BTNW2p5u.js → Vesica-BpzrTPTA.js} +1 -2
  188. package/dist/core/{Vibrance-DmhtRT2D.js → Vibrance-DW3J-pvW.js} +1 -3
  189. package/dist/core/{VideoTexture-DK3EaAHY.js → VideoTexture-zoKsSrex.js} +1 -2
  190. package/dist/core/{Vignette-hyFfUS20.js → Vignette-KKbP3qdZ.js} +2 -5
  191. package/dist/core/{Voronoi-DhexPwNM.js → Voronoi-Bp2-U6lm.js} +2 -5
  192. package/dist/core/Voxels-B3e3LHH5.js +469 -0
  193. package/dist/core/{Water-BsBnXYYB.js → Water-CoYwvqKx.js} +7 -12
  194. package/dist/core/{Watercolor-C1HipGGO.js → Watercolor-DUNjSIN1.js} +2 -4
  195. package/dist/core/{WaveDistortion-VXyHFcJ3.js → WaveDistortion-Dp8ws0z1.js} +1 -2
  196. package/dist/core/{Waveform-CSP_4nZF.js → Waveform-DDBLB6zu.js} +2 -9
  197. package/dist/core/{WaveletNoise-CQqAufyv.js → WaveletNoise-CpBkzfRT.js} +2 -4
  198. package/dist/core/{Weave-DwX8T4_Q.js → Weave-cWkvSEAy.js} +2 -3
  199. package/dist/core/{WebcamTexture-B4SLwIP1.js → WebcamTexture-D484SXSE.js} +1 -2
  200. package/dist/core/{Wool-qg-z_TFC.js → Wool-C9L7O9fD.js} +1 -3
  201. package/dist/core/{WorleyNoise-CjVw20Fl.js → WorleyNoise-B5j5lDQZ.js} +2 -3
  202. package/dist/core/{ZoomBlur-Lm_pVpMf.js → ZoomBlur-bPC1dBu2.js} +2 -3
  203. package/dist/core/customShaders.d.ts +71 -0
  204. package/dist/core/customShaders.d.ts.map +1 -0
  205. package/dist/core/docs-manifest.json +29177 -0
  206. package/dist/core/gpu/composer.d.ts +2 -0
  207. package/dist/core/gpu/composer.d.ts.map +1 -1
  208. package/dist/core/gpu/contract.d.ts +17 -2
  209. package/dist/core/gpu/contract.d.ts.map +1 -1
  210. package/dist/core/gpu/frame.d.ts +5 -2
  211. package/dist/core/gpu/frame.d.ts.map +1 -1
  212. package/dist/core/gpu/index.d.ts.map +1 -1
  213. package/dist/core/gpu/kit/aa.d.ts +1 -1
  214. package/dist/core/gpu/kit/agents.d.ts +1 -1
  215. package/dist/core/gpu/kit/blur.d.ts +4 -4
  216. package/dist/core/gpu/kit/cells.d.ts +3 -3
  217. package/dist/core/gpu/kit/cellular.d.ts +1 -1
  218. package/dist/core/gpu/kit/colorOps.d.ts +6 -6
  219. package/dist/core/gpu/kit/effects/glass.d.ts +2 -2
  220. package/dist/core/gpu/kit/effects/thinFilm.d.ts +4 -4
  221. package/dist/core/gpu/kit/fields.d.ts.map +1 -1
  222. package/dist/core/gpu/kit/host/pointer.d.ts +1 -1
  223. package/dist/core/gpu/kit/lensParts.d.ts +3 -3
  224. package/dist/core/gpu/kit/lightfields.d.ts +3 -3
  225. package/dist/core/gpu/kit/materialParts.d.ts +1 -1
  226. package/dist/core/gpu/kit/materialParts.d.ts.map +1 -1
  227. package/dist/core/gpu/kit/media.d.ts +1 -1
  228. package/dist/core/gpu/kit/media.d.ts.map +1 -1
  229. package/dist/core/gpu/kit/motionBlur.d.ts +2 -2
  230. package/dist/core/gpu/kit/noiseColor.d.ts +5 -5
  231. package/dist/core/gpu/kit/noiseColor.d.ts.map +1 -1
  232. package/dist/core/gpu/kit/noisePaints.d.ts +1 -1
  233. package/dist/core/gpu/kit/sdf.d.ts +2 -2
  234. package/dist/core/gpu/kit/stylizePaints.d.ts +1 -1
  235. package/dist/core/gpu/kit/stylizePaints.d.ts.map +1 -1
  236. package/dist/core/gpu/kit/tone.d.ts +1 -1
  237. package/dist/core/gpu/kit/waves.d.ts +6 -0
  238. package/dist/core/gpu/kit/waves.d.ts.map +1 -1
  239. package/dist/core/gpu/passManager.d.ts +1 -1
  240. package/dist/core/gpu/passManager.d.ts.map +1 -1
  241. package/dist/core/gpu/scaffolds/fluids.d.ts +7 -7
  242. package/dist/core/gpu/scaffolds/fluids.d.ts.map +1 -1
  243. package/dist/core/gpu/scaffolds/gridKernels.d.ts +8 -8
  244. package/dist/core/gpu/scaffolds/gridKernels.d.ts.map +1 -1
  245. package/dist/core/gpu/scaffolds/pointwiseFilter.d.ts +5 -5
  246. package/dist/core/gpu/scaffolds/pointwiseFilter.d.ts.map +1 -1
  247. package/dist/core/gpu/scaffolds/radiance.d.ts +5 -5
  248. package/dist/core/gpu/scaffolds/radiance.d.ts.map +1 -1
  249. package/dist/core/gpu/scaffolds/rttFilter.d.ts +2 -2
  250. package/dist/core/gpu/scaffolds/rttFilter.d.ts.map +1 -1
  251. package/dist/core/gpu/scaffolds/sdfShape.d.ts +2 -2
  252. package/dist/core/gpu/scaffolds/sdfShape.d.ts.map +1 -1
  253. package/dist/core/gpu/scaffolds/uvRemapShader.d.ts +4 -4
  254. package/dist/core/gpu/support.d.ts +12 -0
  255. package/dist/core/gpu/support.d.ts.map +1 -1
  256. package/dist/core/index.d.ts +3 -2
  257. package/dist/core/index.d.ts.map +1 -1
  258. package/dist/core/index.js +238 -255
  259. package/dist/core/llms.txt +1558 -0
  260. package/dist/core/{noiseColor-DuWjYRmO.js → noiseColor-D_bPhJ4m.js} +2 -2
  261. package/dist/core/presetRenderer.d.ts +4 -0
  262. package/dist/core/presetRenderer.d.ts.map +1 -1
  263. package/dist/core/registry.js +204 -248
  264. package/dist/core/shaderRegistry-BaozBFyh.js +445 -0
  265. package/dist/core/shaderRegistry.d.ts.map +1 -1
  266. package/dist/core/shaders/AngularBlur/index.d.ts +1 -1
  267. package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
  268. package/dist/core/shaders/AngularBlur/index.js +4 -10
  269. package/dist/core/shaders/Arc/index.js +4 -6
  270. package/dist/core/shaders/Ascii/index.d.ts +1 -1
  271. package/dist/core/shaders/Ascii/index.d.ts.map +1 -1
  272. package/dist/core/shaders/Ascii/index.js +4 -11
  273. package/dist/core/shaders/Aurora/index.js +4 -21
  274. package/dist/core/shaders/BarShift/index.js +4 -8
  275. package/dist/core/shaders/BarnDoors/index.js +4 -7
  276. package/dist/core/shaders/Beam/index.js +4 -11
  277. package/dist/core/shaders/Bend/index.js +4 -8
  278. package/dist/core/shaders/Blob/index.js +4 -18
  279. package/dist/core/shaders/BlockDissolve/index.js +4 -7
  280. package/dist/core/shaders/BlockNoise/index.d.ts +1 -1
  281. package/dist/core/shaders/BlockNoise/index.d.ts.map +1 -1
  282. package/dist/core/shaders/BlockNoise/index.js +5 -14
  283. package/dist/core/shaders/BlueNoise/index.d.ts +1 -1
  284. package/dist/core/shaders/BlueNoise/index.d.ts.map +1 -1
  285. package/dist/core/shaders/BlueNoise/index.js +5 -14
  286. package/dist/core/shaders/Blur/index.d.ts +1 -1
  287. package/dist/core/shaders/Blur/index.d.ts.map +1 -1
  288. package/dist/core/shaders/Blur/index.js +4 -10
  289. package/dist/core/shaders/Boids/index.js +4 -9
  290. package/dist/core/shaders/BokehBlur/index.d.ts +1 -1
  291. package/dist/core/shaders/BokehBlur/index.js +4 -10
  292. package/dist/core/shaders/BrickPattern/index.d.ts +1 -1
  293. package/dist/core/shaders/BrickPattern/index.d.ts.map +1 -1
  294. package/dist/core/shaders/BrickPattern/index.js +4 -13
  295. package/dist/core/shaders/BrightnessContrast/index.js +4 -7
  296. package/dist/core/shaders/BrushedMetal/index.js +4 -11
  297. package/dist/core/shaders/Bulge/index.js +4 -8
  298. package/dist/core/shaders/CRTScreen/index.d.ts +2 -2
  299. package/dist/core/shaders/CRTScreen/index.d.ts.map +1 -1
  300. package/dist/core/shaders/CRTScreen/index.js +4 -10
  301. package/dist/core/shaders/CarbonFiber/index.d.ts +1 -1
  302. package/dist/core/shaders/CarbonFiber/index.js +4 -11
  303. package/dist/core/shaders/Chalkboard/index.d.ts +1 -1
  304. package/dist/core/shaders/Chalkboard/index.d.ts.map +1 -1
  305. package/dist/core/shaders/Chalkboard/index.js +4 -9
  306. package/dist/core/shaders/ChannelBlur/index.d.ts +1 -1
  307. package/dist/core/shaders/ChannelBlur/index.d.ts.map +1 -1
  308. package/dist/core/shaders/ChannelBlur/index.js +4 -10
  309. package/dist/core/shaders/CheckerWipe/index.js +4 -7
  310. package/dist/core/shaders/Checkerboard/index.d.ts +1 -1
  311. package/dist/core/shaders/Checkerboard/index.d.ts.map +1 -1
  312. package/dist/core/shaders/Checkerboard/index.js +4 -13
  313. package/dist/core/shaders/Chevron/index.d.ts +1 -1
  314. package/dist/core/shaders/Chevron/index.d.ts.map +1 -1
  315. package/dist/core/shaders/Chevron/index.js +4 -13
  316. package/dist/core/shaders/ChromaFlow/index.js +4 -8
  317. package/dist/core/shaders/ChromaticAberration/index.js +4 -11
  318. package/dist/core/shaders/Chrome/index.d.ts +1 -1
  319. package/dist/core/shaders/Chrome/index.js +4 -10
  320. package/dist/core/shaders/Circle/index.js +4 -6
  321. package/dist/core/shaders/ColorWheel/index.js +4 -11
  322. package/dist/core/shaders/CompressionArtifacts/index.d.ts +2 -2
  323. package/dist/core/shaders/CompressionArtifacts/index.d.ts.map +1 -1
  324. package/dist/core/shaders/CompressionArtifacts/index.js +4 -7
  325. package/dist/core/shaders/ConcentricSpin/index.js +4 -8
  326. package/dist/core/shaders/ConicGradient/index.js +4 -11
  327. package/dist/core/shaders/ContourLines/index.js +4 -6
  328. package/dist/core/shaders/CornerPin/index.js +4 -8
  329. package/dist/core/shaders/Crescent/index.js +4 -5
  330. package/dist/core/shaders/Cross/index.js +4 -5
  331. package/dist/core/shaders/Crystal/index.js +4 -11
  332. package/dist/core/shaders/CurlNoise/index.d.ts +1 -1
  333. package/dist/core/shaders/CurlNoise/index.d.ts.map +1 -1
  334. package/dist/core/shaders/CurlNoise/index.js +5 -14
  335. package/dist/core/shaders/CursorRipples/index.js +4 -7
  336. package/dist/core/shaders/CursorTrail/index.js +4 -7
  337. package/dist/core/shaders/DataMosh/index.js +4 -7
  338. package/dist/core/shaders/DiamondGradient/index.js +4 -11
  339. package/dist/core/shaders/DiamondWipe/index.js +4 -7
  340. package/dist/core/shaders/DiffuseBlur/index.d.ts +1 -1
  341. package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
  342. package/dist/core/shaders/DiffuseBlur/index.js +4 -10
  343. package/dist/core/shaders/DisplacementMap/index.js +4 -8
  344. package/dist/core/shaders/Dither/index.d.ts +1 -1
  345. package/dist/core/shaders/Dither/index.d.ts.map +1 -1
  346. package/dist/core/shaders/Dither/index.js +4 -13
  347. package/dist/core/shaders/DotGrid/index.d.ts +2 -2
  348. package/dist/core/shaders/DotGrid/index.d.ts.map +1 -1
  349. package/dist/core/shaders/DotGrid/index.js +4 -13
  350. package/dist/core/shaders/DropShadow/index.d.ts +1 -1
  351. package/dist/core/shaders/DropShadow/index.d.ts.map +1 -1
  352. package/dist/core/shaders/DropShadow/index.js +4 -10
  353. package/dist/core/shaders/Duotone/index.js +4 -6
  354. package/dist/core/shaders/Ellipse/index.js +4 -5
  355. package/dist/core/shaders/Emboss/index.js +4 -9
  356. package/dist/core/shaders/Engraving/index.js +4 -9
  357. package/dist/core/shaders/ErosionNoise/index.d.ts +1 -1
  358. package/dist/core/shaders/ErosionNoise/index.d.ts.map +1 -1
  359. package/dist/core/shaders/ErosionNoise/index.js +5 -14
  360. package/dist/core/shaders/Exposure/index.js +4 -7
  361. package/dist/core/shaders/FallingLines/index.d.ts +1 -1
  362. package/dist/core/shaders/FallingLines/index.d.ts.map +1 -1
  363. package/dist/core/shaders/FallingLines/index.js +4 -13
  364. package/dist/core/shaders/FilmGrain/index.js +4 -7
  365. package/dist/core/shaders/FilmStock/index.js +4 -13
  366. package/dist/core/shaders/Flip/index.js +4 -8
  367. package/dist/core/shaders/FloatingParticles/index.d.ts +2 -2
  368. package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
  369. package/dist/core/shaders/FloatingParticles/index.js +4 -9
  370. package/dist/core/shaders/FlowField/index.js +4 -8
  371. package/dist/core/shaders/Flower/index.js +4 -5
  372. package/dist/core/shaders/FlowingGradient/index.js +4 -15
  373. package/dist/core/shaders/FlutedGlass/index.js +4 -11
  374. package/dist/core/shaders/Fog/index.js +4 -7
  375. package/dist/core/shaders/Form3D/index.js +4 -7
  376. package/dist/core/shaders/FractalNoise/index.d.ts +1 -1
  377. package/dist/core/shaders/FractalNoise/index.d.ts.map +1 -1
  378. package/dist/core/shaders/FractalNoise/index.js +4 -13
  379. package/dist/core/shaders/Frost/index.d.ts +1 -1
  380. package/dist/core/shaders/Frost/index.js +4 -11
  381. package/dist/core/shaders/GaborNoise/index.d.ts +2 -2
  382. package/dist/core/shaders/GaborNoise/index.d.ts.map +1 -1
  383. package/dist/core/shaders/GaborNoise/index.js +5 -14
  384. package/dist/core/shaders/Glass/index.js +4 -11
  385. package/dist/core/shaders/GlassTiles/index.d.ts +1 -1
  386. package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
  387. package/dist/core/shaders/GlassTiles/index.js +4 -8
  388. package/dist/core/shaders/Glitch/index.d.ts +1 -1
  389. package/dist/core/shaders/Glitch/index.d.ts.map +1 -1
  390. package/dist/core/shaders/Glitch/index.js +4 -10
  391. package/dist/core/shaders/Glow/index.d.ts +1 -1
  392. package/dist/core/shaders/Glow/index.d.ts.map +1 -1
  393. package/dist/core/shaders/Glow/index.js +4 -11
  394. package/dist/core/shaders/Godrays/index.js +4 -12
  395. package/dist/core/shaders/Goo/index.js +4 -11
  396. package/dist/core/shaders/GradientMap/index.js +4 -7
  397. package/dist/core/shaders/Grayscale/index.js +4 -6
  398. package/dist/core/shaders/Grid/index.d.ts +2 -2
  399. package/dist/core/shaders/Grid/index.d.ts.map +1 -1
  400. package/dist/core/shaders/Grid/index.js +4 -13
  401. package/dist/core/shaders/GridDistortion/index.js +4 -11
  402. package/dist/core/shaders/Group/index.js +4 -6
  403. package/dist/core/shaders/HTMLInCanvas/index.js +4 -7
  404. package/dist/core/shaders/Halftone/index.d.ts +3 -3
  405. package/dist/core/shaders/Halftone/index.d.ts.map +1 -1
  406. package/dist/core/shaders/Halftone/index.js +4 -13
  407. package/dist/core/shaders/Heart/index.js +4 -5
  408. package/dist/core/shaders/Heatmap/index.js +4 -11
  409. package/dist/core/shaders/HexGrid/index.d.ts +2 -2
  410. package/dist/core/shaders/HexGrid/index.d.ts.map +1 -1
  411. package/dist/core/shaders/HexGrid/index.js +4 -13
  412. package/dist/core/shaders/Hologram/index.d.ts +1 -1
  413. package/dist/core/shaders/Hologram/index.js +4 -10
  414. package/dist/core/shaders/Holographic/index.js +4 -10
  415. package/dist/core/shaders/HueShift/index.js +4 -7
  416. package/dist/core/shaders/ImageTexture/index.js +4 -6
  417. package/dist/core/shaders/InkFlow/index.d.ts +7 -7
  418. package/dist/core/shaders/InkFlow/index.js +4 -8
  419. package/dist/core/shaders/Invert/index.js +4 -6
  420. package/dist/core/shaders/IrisWipe/index.js +4 -7
  421. package/dist/core/shaders/Irradiance/index.d.ts +1 -1
  422. package/dist/core/shaders/Irradiance/index.d.ts.map +1 -1
  423. package/dist/core/shaders/Irradiance/index.js +4 -13
  424. package/dist/core/shaders/IsometricCubes/index.d.ts +1 -1
  425. package/dist/core/shaders/IsometricCubes/index.d.ts.map +1 -1
  426. package/dist/core/shaders/IsometricCubes/index.js +4 -13
  427. package/dist/core/shaders/Kaleidoscope/index.js +4 -8
  428. package/dist/core/shaders/KeyFrames/index.js +4 -10
  429. package/dist/core/shaders/LensDistortion/index.js +4 -6
  430. package/dist/core/shaders/LensFlare/index.d.ts +1 -1
  431. package/dist/core/shaders/LensFlare/index.d.ts.map +1 -1
  432. package/dist/core/shaders/LensFlare/index.js +4 -12
  433. package/dist/core/shaders/LightEdge/index.js +4 -10
  434. package/dist/core/shaders/LightLeak/index.js +4 -12
  435. package/dist/core/shaders/Line/index.js +4 -10
  436. package/dist/core/shaders/LinearBlur/index.d.ts +1 -1
  437. package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
  438. package/dist/core/shaders/LinearBlur/index.js +4 -10
  439. package/dist/core/shaders/LinearGradient/index.js +4 -11
  440. package/dist/core/shaders/LinearWipe/index.js +4 -7
  441. package/dist/core/shaders/LiquidMetal/index.js +4 -11
  442. package/dist/core/shaders/Liquify/index.js +4 -10
  443. package/dist/core/shaders/MagneticFilings/index.js +4 -9
  444. package/dist/core/shaders/Marble/index.d.ts +1 -1
  445. package/dist/core/shaders/Marble/index.d.ts.map +1 -1
  446. package/dist/core/shaders/Marble/index.js +4 -15
  447. package/dist/core/shaders/MeshGradient/index.js +4 -17
  448. package/dist/core/shaders/Mirror/index.js +4 -8
  449. package/dist/core/shaders/MultiPointGradient/index.js +4 -11
  450. package/dist/core/shaders/Nebula/index.d.ts +3 -3
  451. package/dist/core/shaders/Nebula/index.js +4 -13
  452. package/dist/core/shaders/Neon/index.js +4 -9
  453. package/dist/core/shaders/NoiseDissolve/index.js +4 -7
  454. package/dist/core/shaders/ObjectTracker/index.d.ts +1 -1
  455. package/dist/core/shaders/ObjectTracker/index.js +4 -10
  456. package/dist/core/shaders/Obsidian/index.d.ts +5 -5
  457. package/dist/core/shaders/Obsidian/index.js +4 -15
  458. package/dist/core/shaders/PagePeel/index.js +4 -10
  459. package/dist/core/shaders/Paper/index.d.ts +1 -1
  460. package/dist/core/shaders/Paper/index.d.ts.map +1 -1
  461. package/dist/core/shaders/Paper/index.js +4 -8
  462. package/dist/core/shaders/Parallelogram/index.js +4 -5
  463. package/dist/core/shaders/ParticleField/index.js +4 -9
  464. package/dist/core/shaders/ParticleFlow/index.js +4 -10
  465. package/dist/core/shaders/Particles/index.js +4 -9
  466. package/dist/core/shaders/PerlinNoise/index.d.ts +2 -2
  467. package/dist/core/shaders/PerlinNoise/index.d.ts.map +1 -1
  468. package/dist/core/shaders/PerlinNoise/index.js +5 -14
  469. package/dist/core/shaders/Perspective/index.js +4 -8
  470. package/dist/core/shaders/PixelSort/index.js +4 -8
  471. package/dist/core/shaders/PixelThrow/index.js +4 -8
  472. package/dist/core/shaders/Pixelate/index.d.ts +1 -1
  473. package/dist/core/shaders/Pixelate/index.d.ts.map +1 -1
  474. package/dist/core/shaders/Pixelate/index.js +4 -10
  475. package/dist/core/shaders/Plasma/index.js +4 -11
  476. package/dist/core/shaders/Plastic/index.js +4 -11
  477. package/dist/core/shaders/PolarCoordinates/index.js +4 -8
  478. package/dist/core/shaders/Polygon/index.js +4 -6
  479. package/dist/core/shaders/Posterize/index.js +4 -6
  480. package/dist/core/shaders/Prism/index.d.ts +2 -2
  481. package/dist/core/shaders/Prism/index.js +4 -12
  482. package/dist/core/shaders/ProgressiveBlur/index.d.ts +1 -1
  483. package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
  484. package/dist/core/shaders/ProgressiveBlur/index.js +4 -10
  485. package/dist/core/shaders/RadialGradient/index.js +4 -11
  486. package/dist/core/shaders/RadialWipe/index.js +4 -7
  487. package/dist/core/shaders/RandomBars/index.js +4 -7
  488. package/dist/core/shaders/ReactionDiffusion/index.js +4 -8
  489. package/dist/core/shaders/RectangularCoordinates/index.js +4 -8
  490. package/dist/core/shaders/ReflectivePlane/index.js +4 -10
  491. package/dist/core/shaders/Repeater/index.js +4 -5
  492. package/dist/core/shaders/Ring/index.js +4 -5
  493. package/dist/core/shaders/RippleWipe/index.js +4 -7
  494. package/dist/core/shaders/Ripples/index.d.ts +1 -1
  495. package/dist/core/shaders/Ripples/index.d.ts.map +1 -1
  496. package/dist/core/shaders/Ripples/index.js +4 -13
  497. package/dist/core/shaders/RoundedRect/index.js +4 -5
  498. package/dist/core/shaders/Saturation/index.js +4 -7
  499. package/dist/core/shaders/Scratches/index.d.ts +1 -1
  500. package/dist/core/shaders/Scratches/index.d.ts.map +1 -1
  501. package/dist/core/shaders/Scratches/index.js +5 -14
  502. package/dist/core/shaders/Sharpness/index.d.ts +1 -1
  503. package/dist/core/shaders/Sharpness/index.d.ts.map +1 -1
  504. package/dist/core/shaders/Sharpness/index.js +4 -11
  505. package/dist/core/shaders/Shatter/index.js +4 -6
  506. package/dist/core/shaders/SimplexNoise/index.d.ts +1 -1
  507. package/dist/core/shaders/SimplexNoise/index.d.ts.map +1 -1
  508. package/dist/core/shaders/SimplexNoise/index.js +5 -14
  509. package/dist/core/shaders/SineWave/index.js +4 -10
  510. package/dist/core/shaders/SliceWipe/index.js +4 -8
  511. package/dist/core/shaders/Smoke/index.js +4 -7
  512. package/dist/core/shaders/SmokeFill/index.js +4 -10
  513. package/dist/core/shaders/SmokeFlow/index.js +4 -7
  514. package/dist/core/shaders/Solarize/index.js +4 -7
  515. package/dist/core/shaders/SolidColor/index.js +4 -11
  516. package/dist/core/shaders/Sparkle/index.d.ts +57 -0
  517. package/dist/core/shaders/Sparkle/index.d.ts.map +1 -0
  518. package/dist/core/shaders/Sparkle/index.js +5 -0
  519. package/dist/core/shaders/Spherize/index.d.ts +1 -1
  520. package/dist/core/shaders/Spherize/index.d.ts.map +1 -1
  521. package/dist/core/shaders/Spherize/index.js +4 -10
  522. package/dist/core/shaders/Spiral/index.js +4 -11
  523. package/dist/core/shaders/Star/index.js +4 -5
  524. package/dist/core/shaders/Stone/index.d.ts +1 -1
  525. package/dist/core/shaders/Stone/index.d.ts.map +1 -1
  526. package/dist/core/shaders/Stone/index.js +4 -14
  527. package/dist/core/shaders/Strands/index.d.ts +1 -1
  528. package/dist/core/shaders/Strands/index.d.ts.map +1 -1
  529. package/dist/core/shaders/Strands/index.js +4 -13
  530. package/dist/core/shaders/Stretch/index.js +4 -8
  531. package/dist/core/shaders/Stripes/index.d.ts +1 -1
  532. package/dist/core/shaders/Stripes/index.d.ts.map +1 -1
  533. package/dist/core/shaders/Stripes/index.js +4 -13
  534. package/dist/core/shaders/StudioBackground/index.js +4 -14
  535. package/dist/core/shaders/SunBurst/index.js +4 -12
  536. package/dist/core/shaders/Surface3D/index.js +4 -8
  537. package/dist/core/shaders/Swirl/index.js +4 -11
  538. package/dist/core/shaders/Teardrop/index.js +4 -5
  539. package/dist/core/shaders/Text/index.js +4 -12
  540. package/dist/core/shaders/ThinFilm/index.d.ts +8 -8
  541. package/dist/core/shaders/ThinFilm/index.js +4 -9
  542. package/dist/core/shaders/TiltShift/index.d.ts +1 -1
  543. package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
  544. package/dist/core/shaders/TiltShift/index.js +4 -10
  545. package/dist/core/shaders/TimeTrail/index.d.ts +2 -2
  546. package/dist/core/shaders/TimeTrail/index.js +4 -8
  547. package/dist/core/shaders/Tint/index.js +4 -6
  548. package/dist/core/shaders/Trapezoid/index.js +4 -5
  549. package/dist/core/shaders/TriangularGrid/index.d.ts +1 -1
  550. package/dist/core/shaders/TriangularGrid/index.d.ts.map +1 -1
  551. package/dist/core/shaders/TriangularGrid/index.js +4 -13
  552. package/dist/core/shaders/Tritone/index.js +4 -6
  553. package/dist/core/shaders/Truchet/index.d.ts +1 -1
  554. package/dist/core/shaders/Truchet/index.d.ts.map +1 -1
  555. package/dist/core/shaders/Truchet/index.js +4 -13
  556. package/dist/core/shaders/Twirl/index.js +4 -8
  557. package/dist/core/shaders/VHS/index.d.ts +2 -2
  558. package/dist/core/shaders/VHS/index.d.ts.map +1 -1
  559. package/dist/core/shaders/VHS/index.js +4 -10
  560. package/dist/core/shaders/VenetianBlinds/index.js +4 -7
  561. package/dist/core/shaders/Vesica/index.js +4 -5
  562. package/dist/core/shaders/Vibrance/index.js +4 -7
  563. package/dist/core/shaders/VideoTexture/index.js +4 -6
  564. package/dist/core/shaders/Vignette/index.js +4 -8
  565. package/dist/core/shaders/Voronoi/index.d.ts +1 -1
  566. package/dist/core/shaders/Voronoi/index.d.ts.map +1 -1
  567. package/dist/core/shaders/Voronoi/index.js +4 -13
  568. package/dist/core/shaders/Voxels/index.d.ts +5 -5
  569. package/dist/core/shaders/Voxels/index.js +4 -14
  570. package/dist/core/shaders/Water/index.d.ts +3 -3
  571. package/dist/core/shaders/Water/index.js +4 -11
  572. package/dist/core/shaders/Watercolor/index.d.ts +1 -1
  573. package/dist/core/shaders/Watercolor/index.d.ts.map +1 -1
  574. package/dist/core/shaders/Watercolor/index.js +4 -10
  575. package/dist/core/shaders/WaveDistortion/index.js +4 -8
  576. package/dist/core/shaders/Waveform/index.js +4 -16
  577. package/dist/core/shaders/WaveletNoise/index.d.ts +1 -1
  578. package/dist/core/shaders/WaveletNoise/index.d.ts.map +1 -1
  579. package/dist/core/shaders/WaveletNoise/index.js +5 -14
  580. package/dist/core/shaders/Weave/index.d.ts +1 -1
  581. package/dist/core/shaders/Weave/index.d.ts.map +1 -1
  582. package/dist/core/shaders/Weave/index.js +4 -13
  583. package/dist/core/shaders/WebcamTexture/index.js +4 -6
  584. package/dist/core/shaders/Wool/index.d.ts +1 -1
  585. package/dist/core/shaders/Wool/index.d.ts.map +1 -1
  586. package/dist/core/shaders/Wool/index.js +4 -14
  587. package/dist/core/shaders/WorleyNoise/index.d.ts +1 -1
  588. package/dist/core/shaders/WorleyNoise/index.d.ts.map +1 -1
  589. package/dist/core/shaders/WorleyNoise/index.js +4 -13
  590. package/dist/core/shaders/ZoomBlur/index.d.ts +1 -1
  591. package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
  592. package/dist/core/shaders/ZoomBlur/index.js +4 -10
  593. package/dist/core/std/effects/blurs.d.ts +656 -138
  594. package/dist/core/std/effects/blurs.d.ts.map +1 -1
  595. package/dist/core/std/effects/color.d.ts +209 -32
  596. package/dist/core/std/effects/color.d.ts.map +1 -1
  597. package/dist/core/std/effects/edgeGlow.d.ts +86 -17
  598. package/dist/core/std/effects/edgeGlow.d.ts.map +1 -1
  599. package/dist/core/std/effects/fracture.d.ts +72 -8
  600. package/dist/core/std/effects/fracture.d.ts.map +1 -1
  601. package/dist/core/std/effects/index.d.ts +15 -0
  602. package/dist/core/std/effects/index.d.ts.map +1 -0
  603. package/dist/core/std/effects/instances.d.ts +87 -8
  604. package/dist/core/std/effects/instances.d.ts.map +1 -1
  605. package/dist/core/std/effects/lens.d.ts +48 -12
  606. package/dist/core/std/effects/lens.d.ts.map +1 -1
  607. package/dist/core/std/effects/overlay.d.ts +63 -22
  608. package/dist/core/std/effects/overlay.d.ts.map +1 -1
  609. package/dist/core/std/effects/pointerFields.d.ts +45 -20
  610. package/dist/core/std/effects/pointerFields.d.ts.map +1 -1
  611. package/dist/core/std/effects/reveal.d.ts +118 -40
  612. package/dist/core/std/effects/reveal.d.ts.map +1 -1
  613. package/dist/core/std/effects/stylize.d.ts +139 -70
  614. package/dist/core/std/effects/stylize.d.ts.map +1 -1
  615. package/dist/core/std/filter.d.ts +72 -12
  616. package/dist/core/std/filter.d.ts.map +1 -1
  617. package/dist/core/std/frames.d.ts +91 -24
  618. package/dist/core/std/frames.d.ts.map +1 -1
  619. package/dist/core/std/index.d.ts +46 -8
  620. package/dist/core/std/index.d.ts.map +1 -1
  621. package/dist/core/std/index.js +4 -0
  622. package/dist/core/std/invoke.d.ts +107 -12
  623. package/dist/core/std/invoke.d.ts.map +1 -1
  624. package/dist/core/std/lists.d.ts +40 -10
  625. package/dist/core/std/lists.d.ts.map +1 -1
  626. package/dist/core/std/lower.d.ts +73 -1
  627. package/dist/core/std/lower.d.ts.map +1 -1
  628. package/dist/core/std/mask.d.ts +60 -17
  629. package/dist/core/std/mask.d.ts.map +1 -1
  630. package/dist/core/std/math.d.ts +484 -9
  631. package/dist/core/std/math.d.ts.map +1 -1
  632. package/dist/core/std/motion.d.ts +130 -10
  633. package/dist/core/std/motion.d.ts.map +1 -1
  634. package/dist/core/std/paint/compose.d.ts +57 -16
  635. package/dist/core/std/paint/compose.d.ts.map +1 -1
  636. package/dist/core/std/paint/fields.d.ts +378 -95
  637. package/dist/core/std/paint/fields.d.ts.map +1 -1
  638. package/dist/core/std/paint/figures.d.ts +32 -17
  639. package/dist/core/std/paint/figures.d.ts.map +1 -1
  640. package/dist/core/std/paint/gradients.d.ts +58 -25
  641. package/dist/core/std/paint/gradients.d.ts.map +1 -1
  642. package/dist/core/std/paint/light.d.ts +501 -77
  643. package/dist/core/std/paint/light.d.ts.map +1 -1
  644. package/dist/core/std/paint/materials.d.ts +678 -151
  645. package/dist/core/std/paint/materials.d.ts.map +1 -1
  646. package/dist/core/std/paint/media.d.ts +47 -32
  647. package/dist/core/std/paint/media.d.ts.map +1 -1
  648. package/dist/core/std/paint/noise.d.ts +436 -87
  649. package/dist/core/std/paint/noise.d.ts.map +1 -1
  650. package/dist/core/std/paint/patterns.d.ts +474 -92
  651. package/dist/core/std/paint/patterns.d.ts.map +1 -1
  652. package/dist/core/std/paint/radiance.d.ts +75 -29
  653. package/dist/core/std/paint/radiance.d.ts.map +1 -1
  654. package/dist/core/std/paint/volume.d.ts +68 -27
  655. package/dist/core/std/paint/volume.d.ts.map +1 -1
  656. package/dist/core/std/paint/voxels.d.ts +46 -26
  657. package/dist/core/std/paint/voxels.d.ts.map +1 -1
  658. package/dist/core/std/shape.d.ts +195 -1
  659. package/dist/core/std/shape.d.ts.map +1 -1
  660. package/dist/core/std/signal.d.ts +55 -15
  661. package/dist/core/std/signal.d.ts.map +1 -1
  662. package/dist/core/std/sim/agentForces.d.ts +441 -99
  663. package/dist/core/std/sim/agentForces.d.ts.map +1 -1
  664. package/dist/core/std/sim/agentFrame.d.ts +94 -20
  665. package/dist/core/std/sim/agentFrame.d.ts.map +1 -1
  666. package/dist/core/std/sim/agentRender.d.ts +187 -60
  667. package/dist/core/std/sim/agentRender.d.ts.map +1 -1
  668. package/dist/core/std/sim/agents.d.ts +99 -28
  669. package/dist/core/std/sim/agents.d.ts.map +1 -1
  670. package/dist/core/std/sim/feedback.d.ts +40 -19
  671. package/dist/core/std/sim/feedback.d.ts.map +1 -1
  672. package/dist/core/std/sim/fluids.d.ts +127 -63
  673. package/dist/core/std/sim/fluids.d.ts.map +1 -1
  674. package/dist/core/std/sim/grids.d.ts +200 -48
  675. package/dist/core/std/sim/grids.d.ts.map +1 -1
  676. package/dist/core/std/sim/index.d.ts +14 -0
  677. package/dist/core/std/sim/index.d.ts.map +1 -0
  678. package/dist/core/std/sim/shapeFields.d.ts +56 -0
  679. package/dist/core/std/sim/shapeFields.d.ts.map +1 -1
  680. package/dist/core/std/sim.d.ts +112 -10
  681. package/dist/core/std/sim.d.ts.map +1 -1
  682. package/dist/core/std/slots.d.ts +72 -6
  683. package/dist/core/std/slots.d.ts.map +1 -1
  684. package/dist/core/std/types.d.ts +97 -60
  685. package/dist/core/std/types.d.ts.map +1 -1
  686. package/dist/core/std/values.d.ts +33 -14
  687. package/dist/core/std/values.d.ts.map +1 -1
  688. package/dist/core/std/warps.d.ts +221 -76
  689. package/dist/core/std/warps.d.ts.map +1 -1
  690. package/dist/core/std/wgsl.d.ts +115 -0
  691. package/dist/core/std/wgsl.d.ts.map +1 -0
  692. package/dist/core/std-ClftfWpF.js +218889 -0
  693. package/dist/core/{support-GJphyuEe.js → support-D3W86vgR.js} +11 -1
  694. package/dist/core/telemetry/index.js +1 -1
  695. package/dist/core/utilities/colorStops.d.ts +2 -2
  696. package/dist/core/utilities/listProps.d.ts +2 -2
  697. package/dist/core/utilities/listProps.d.ts.map +1 -1
  698. package/dist/core/utilities/noiseColor.d.ts +3 -3
  699. package/dist/core/utilities/transformations/index.js +1 -1
  700. package/dist/js/bundle.js +182 -180
  701. package/dist/js/createShader.d.ts.map +1 -1
  702. package/dist/js/createShader.js +4 -3
  703. package/dist/js/types.d.ts +5 -0
  704. package/dist/js/types.d.ts.map +1 -1
  705. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  706. package/dist/js/utils/generatePresetCode.js +35 -22
  707. package/dist/react/CustomShader.js +178 -0
  708. package/dist/react/Preview.js +1 -0
  709. package/dist/react/Shader.js +1 -1
  710. package/dist/react/Sparkle.js +226 -0
  711. package/dist/react/bundle.js +178 -176
  712. package/dist/react/components/Sparkle.d.ts +41 -0
  713. package/dist/react/components/Sparkle.d.ts.map +1 -0
  714. package/dist/react/engine/CustomShader.d.ts +37 -0
  715. package/dist/react/engine/CustomShader.d.ts.map +1 -0
  716. package/dist/react/engine/Preview.d.ts.map +1 -1
  717. package/dist/react/index.d.ts +5 -0
  718. package/dist/react/index.d.ts.map +1 -1
  719. package/dist/react/index.js +4 -2
  720. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  721. package/dist/react/utils/generatePresetCode.js +35 -22
  722. package/dist/registry.js +410 -158
  723. package/dist/solid/components/Sparkle.d.ts +38 -0
  724. package/dist/solid/components/Sparkle.d.ts.map +1 -0
  725. package/dist/solid/components/Sparkle.js +232 -0
  726. package/dist/solid/engine/CustomShader.d.ts +35 -0
  727. package/dist/solid/engine/CustomShader.d.ts.map +1 -0
  728. package/dist/solid/engine/CustomShader.js +160 -0
  729. package/dist/solid/engine/Preview.d.ts.map +1 -1
  730. package/dist/solid/engine/Preview.js +319 -317
  731. package/dist/solid/engine/Shader.js +1 -1
  732. package/dist/solid/index.d.ts +5 -0
  733. package/dist/solid/index.d.ts.map +1 -1
  734. package/dist/solid/index.js +95 -86
  735. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  736. package/dist/solid/utils/generatePresetCode.js +35 -22
  737. package/dist/svelte/components/Sparkle.svelte.d.ts +28 -0
  738. package/dist/svelte/engine/CustomShader.svelte.d.ts +40 -0
  739. package/dist/svelte/index.d.ts +4 -0
  740. package/dist/svelte/index.js +1237 -877
  741. package/dist/svelte/source/components/Sparkle.svelte +352 -0
  742. package/dist/svelte/source/engine/CustomShader.svelte +216 -0
  743. package/dist/svelte/source/engine/Preview.svelte +5 -3
  744. package/dist/svelte/source/index.js +4 -0
  745. package/dist/svelte/utils/generatePresetCode.js +35 -22
  746. package/dist/vue/CustomShader.js +3 -0
  747. package/dist/vue/CustomShader.vue_vue_type_script_setup_true_lang.js +173 -0
  748. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  749. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  750. package/dist/vue/Sparkle.js +3 -0
  751. package/dist/vue/Sparkle.vue_vue_type_script_setup_true_lang.js +233 -0
  752. package/dist/vue/components/Sparkle.vue.d.ts +63 -0
  753. package/dist/vue/components/Sparkle.vue.d.ts.map +1 -0
  754. package/dist/vue/index.d.ts +4 -0
  755. package/dist/vue/index.d.ts.map +1 -1
  756. package/dist/vue/index.js +4 -2
  757. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  758. package/dist/vue/utils/generatePresetCode.js +35 -22
  759. package/package.json +27 -2
  760. package/dist/core/Irradiance-B36wYze9.js +0 -4191
  761. package/dist/core/LightEdge-AFfkNhDP.js +0 -2339
  762. package/dist/core/Repeater-C5LILb_Y.js +0 -762
  763. package/dist/core/Shatter-Dz3sH2ON.js +0 -1479
  764. package/dist/core/Voxels-Ca-6rRrz.js +0 -8547
  765. package/dist/core/agents-CBSp2UK_.js +0 -15709
  766. package/dist/core/agents-DXoEcto0.js +0 -5357
  767. package/dist/core/blur-7yjVyMvI.js +0 -8015
  768. package/dist/core/blurs-d4B9aUyx.js +0 -1751
  769. package/dist/core/canvasRaster-DDBkrdY8.js +0 -80
  770. package/dist/core/color-Do6tU0ry.js +0 -3619
  771. package/dist/core/compose-Dkf3v-xS.js +0 -46
  772. package/dist/core/device-m0ud8-Fn.js +0 -10
  773. package/dist/core/feedback-Dro_hxd4.js +0 -46
  774. package/dist/core/fields-DgADOKsP.js +0 -475
  775. package/dist/core/figures-B3lUGP8u.js +0 -48
  776. package/dist/core/filter-BrhpSs3Z.js +0 -23
  777. package/dist/core/fluids-umEWgdvj.js +0 -226
  778. package/dist/core/fonts-BUXTd9qb.js +0 -59
  779. package/dist/core/frames-BLqt7oaW.js +0 -78
  780. package/dist/core/glass-ABppDbYG.js +0 -2532
  781. package/dist/core/gradientPaints-5HpJVNfb.js +0 -6564
  782. package/dist/core/gradients-CIxKrfME.js +0 -159
  783. package/dist/core/grids-Cv99xcJg.js +0 -151
  784. package/dist/core/lens-DJQNJKCW.js +0 -352
  785. package/dist/core/light-D3BIVkxy.js +0 -271
  786. package/dist/core/lightfields-DvrUaH_6.js +0 -2255
  787. package/dist/core/lower-Bd2jez_2.js +0 -49452
  788. package/dist/core/mask-CeSwL79Q.js +0 -28
  789. package/dist/core/materials-4Oqvm_9m.js +0 -2944
  790. package/dist/core/math-D864seEs.js +0 -56
  791. package/dist/core/media-DXUY3ltG.js +0 -832
  792. package/dist/core/mediaLifecycle-BTPb5i1-.js +0 -320
  793. package/dist/core/motionBlur-g_WSi2iq.js +0 -6766
  794. package/dist/core/noise-d7rmP9yc.js +0 -546
  795. package/dist/core/noisePaints-CfHcXL02.js +0 -3619
  796. package/dist/core/noiseStylize-CUrW_HiC.js +0 -65
  797. package/dist/core/overlay-D5w0585O.js +0 -4712
  798. package/dist/core/patterns-Bg8lSdqH.js +0 -9723
  799. package/dist/core/pointerFields-CRecZwuZ.js +0 -2339
  800. package/dist/core/porters-OTkIMOyl.js +0 -30201
  801. package/dist/core/reveal-CfaAg-rg.js +0 -1688
  802. package/dist/core/sdf3d-2AWC_wdn.js +0 -21082
  803. package/dist/core/shaderRegistry-BUvL8ZZS.js +0 -443
  804. package/dist/core/shape-CAkSlCi8.js +0 -20
  805. package/dist/core/shapePaints-Bg2UwCZo.js +0 -3354
  806. package/dist/core/signal-emJuvOI3.js +0 -34
  807. package/dist/core/slots-BqIef2iV.js +0 -32
  808. package/dist/core/stylize-DiuoSq16.js +0 -4541
  809. package/dist/core/tone-BKhfiOBn.js +0 -763
  810. package/dist/core/warpMaps-Y8xSo-QJ.js +0 -10773
  811. package/dist/core/warps-P5O3NWLe.js +0 -276
  812. /package/dist/core/{transformations-CzFmhZww.js → transformations-P50Uo_Ju.js} +0 -0
@@ -1,11 +1,11 @@
1
1
  import { d } from '../../gpu/kit/index';
2
2
 
3
3
  type AtomicU32 = d.atomicU32;
4
- /** A mutable vec4f state array entry (`agents`, `pos`, `vel`, …). */
4
+ /** A per-agent buffer of four numbers each (`agents`, `pos`, `vel`, …). */
5
5
  export type Vec4StateArray = d.v4f[];
6
- /** A 3D force contribution: `(pos, vel, seed) → vec3f`. */
6
+ /** A push on a 3D agent, from its position, velocity and per-agent seed. */
7
7
  export type AgentForce3 = (pos: d.v3f, vel: d.v3f, seed: number) => d.v3f;
8
- /** A baked shape-local signed-distance field: `(pos) → f32`. */
8
+ /** The signed distance to a shape's surface at a shape-local 3D point, negative inside. Build one with `shapeField`. */
9
9
  export type ShapeField3 = (pos: d.v3f) => number;
10
10
  interface VolumeParamsView {
11
11
  readonly dt: number;
@@ -27,7 +27,7 @@ interface VolumeParamsView {
27
27
  readonly gridOffY: number;
28
28
  readonly gridOffZ: number;
29
29
  }
30
- /** Layout view for the volume family: vec4 pos/vel state + the density grid + params. */
30
+ /** What a 3D swarm's layout must name: `pos`, `vel`, the `dens` grid and the `params` values. */
31
31
  export interface VolumeSwarmLayout {
32
32
  readonly $: {
33
33
  readonly pos: Vec4StateArray;
@@ -36,23 +36,23 @@ export interface VolumeSwarmLayout {
36
36
  readonly params: VolumeParamsView;
37
37
  };
38
38
  }
39
- /** What `force.pressure` returns: the force part plus the density-grid machinery it owns. */
39
+ /** What `force.pressure` returns: the force, plus the two density-grid steps and the grid's cell count for the program. */
40
40
  export interface PressureForce {
41
41
  force: AgentForce3;
42
- /** Full-grid clear, dispatched `fixed` over `cells`. */
42
+ /** Clears the density grid. Dispatch it `fixed` over `cells`, first in the program. */
43
43
  clearKernel: (i: number) => void;
44
- /** Per-agent trilinear density splat. */
44
+ /** Adds each agent to the density grid. Dispatch it over `agents`, before the update. */
45
45
  splatKernel: (i: number) => void;
46
46
  /** The density grid's cell count (the clear dispatch size). */
47
47
  cells: number;
48
48
  }
49
49
  /**
50
- * Gas-pressure force over an auxiliary 3D density grid — even filling as an emergent property.
51
- * The part owns the grid ENTIRELY: the per-frame clear + trilinear splat kernels, the trilinear
52
- * sampler the force differentiates (piecewise-constant per-cell gradients herd agents onto the
53
- * cell lattice), and the R3 sub-cell dither contract (`params.gridOffX/Y/Z`, written per frame
54
- * from `agentFrame.r3SubCellOffset`) that keeps the lattice from standing in moiré with a shape
55
- * boundary. Layout needs: `pos`, `dens` (atomic u32, `gridDim³`), `params.{spread, gridOff*}`.
50
+ * A push away from crowding, so a swarm fills its shape evenly. Agents are counted into a
51
+ * coarse 3D grid every frame and slide down its density.
52
+ *
53
+ * `gridDim` is the grid's side in cells, `domain` the half-width it covers in shape-local
54
+ * units. Strength comes from `params.spread`. Put `clearKernel` and `splatKernel` in the
55
+ * program before the update step.
56
56
  */
57
57
  declare function pressure(layout: VolumeSwarmLayout, cfg: {
58
58
  gridDim: number;
@@ -64,50 +64,50 @@ declare function pressure(layout: VolumeSwarmLayout, cfg: {
64
64
  };
65
65
  }): PressureForce;
66
66
  /**
67
- * The containment BUNDLE — the four forces that share one SDF evaluation (a signed distance,
68
- * its central-difference gradient, and the radial distance): the surface spring wall, the
69
- * far-field recall, the gradient-free homing, and the rotation entrainment. Bundled so the
70
- * shared intermediates are computed once, exactly as the hand-written integrator did.
67
+ * Everything that keeps a swarm inside its shape, as one force: a spring wall at the surface,
68
+ * a pull back from far away, a pull toward the middle where the surface is ambiguous, and a
69
+ * drag that carries agents along when the shape rotates.
70
+ *
71
+ * `field` is the shape's distance function (see `shapeField`). Distances and feathers are in
72
+ * shape-local units, where the shape spans −0.5 to 0.5.
71
73
  */
72
74
  declare function containment(layout: VolumeSwarmLayout, cfg: {
73
75
  field: ShapeField3;
74
- /** Central-difference epsilon for the field gradient. */
76
+ /** How far apart the two samples of the field's slope are taken. 0.02 is typical. */
75
77
  gradEps: number;
76
- /** Spring through the surface: feathers in over [featherFrom, featherTo], plus a linear
77
- * outside term — strong outside, diffuse inside (a sharp feather packs a coherent shell). */
78
+ /** The spring at the surface: fades in from `featherFrom` to `featherTo` (signed distance), `base` push plus `springK` per unit outside. */
78
79
  wall: {
79
80
  featherFrom: number;
80
81
  featherTo: number;
81
82
  base: number;
82
83
  springK: number;
83
84
  };
84
- /** Smooth pull home once an agent leaves the domain (a hard clamp piles strays into lines). */
85
+ /** The pull home once an agent is `from`..`to` from the origin, with strength `k`. */
85
86
  recall: {
86
87
  from: number;
87
88
  to: number;
88
89
  k: number;
89
90
  };
90
- /** SDF-VALUE-driven pull toward the origin — direction-safe where the gradient degenerates. */
91
+ /** The pull toward the middle where the signed distance is `from`..`to`, with strength `k`. */
91
92
  homing: {
92
93
  from: number;
93
94
  to: number;
94
95
  k: number;
95
96
  };
96
- /** Drag toward the rotating container's feature velocity ω×r, feathered to inside. */
97
+ /** How wide a band around the surface the rotation drag fades over. */
97
98
  entrainment: {
98
99
  featherHalf: number;
99
100
  };
100
101
  }): AgentForce3;
101
- /** The cursor magnet as an xy cylinder around the pointer ray (positive pushes away) — the
102
- * shared kit force field. Layout needs `params.{cursorX, cursorY, cursorForce, cursorRadSq}`. */
102
+ /** The cursor as a magnet on a 3D swarm: a push away from the pointer (or a pull, when `params.cursorForce` is negative) within `params.cursorRadSq`. */
103
103
  declare function cursorXY(layout: VolumeSwarmLayout): AgentForce3;
104
- /** Constant gravity (pre-rotated into shape space on the CPU). Needs `params.{gravX, gravY}`. */
104
+ /** A constant pull in the direction of `params.gravX, gravY`, already rotated into the shape's space on the CPU. */
105
105
  declare function gravity(layout: VolumeSwarmLayout): AgentForce3;
106
106
  /**
107
- * Hash-turbulence kick, scaled by `params.agitation`. The large multipliers are load-bearing:
108
- * the fract-based hash needs its input to wrap many times to be white — at small ranges it
109
- * degrades into a smooth, near-symmetric function of position and the whole swarm gets herded
110
- * into coherent (mirror-symmetric) drift cells.
107
+ * A random jitter per agent that keeps a swarm alive, scaled by `params.agitation`.
108
+ *
109
+ * Keep the scale constants large. Small ones make the noise smooth and the whole swarm drifts
110
+ * in lockstep.
111
111
  */
112
112
  declare function turbulence(layout: VolumeSwarmLayout, cfg: {
113
113
  posScale: number;
@@ -116,12 +116,13 @@ declare function turbulence(layout: VolumeSwarmLayout, cfg: {
116
116
  seedScale: number;
117
117
  gain: number;
118
118
  }): AgentForce3;
119
- /** Fold a declared 3D force list into one part, preserving the declared sum order. */
119
+ /** @internal Fold a declared 3D force list into one part, preserving the declared sum order. The integrator does this for you. */
120
120
  export declare function composeForces3(parts: AgentForce3[]): AgentForce3;
121
121
  /**
122
- * The volume-family integrator: fold the declared forces, run the shared semi-implicit Euler
123
- * (drag + speed clamp), advance, and hard-clamp position as a distant safety net. State written
124
- * back as pos = (xyz, seed), vel = (xyz, |v|) — the resolve's speed ramp reads vel.w.
122
+ * The update step for a 3D swarm: sum the forces, apply drag (`params.dragMul`) and a speed
123
+ * limit, move, and never let an agent past `posClamp` from the origin.
124
+ *
125
+ * Velocity's fourth value is the speed, which the volume render reads for its color ramp.
125
126
  */
126
127
  declare function forces3d(layout: VolumeSwarmLayout, cfg: {
127
128
  forces: AgentForce3[];
@@ -129,7 +130,7 @@ declare function forces3d(layout: VolumeSwarmLayout, cfg: {
129
130
  posClamp: number;
130
131
  name: string;
131
132
  }): (i: number) => void;
132
- /** A steering-force contribution: `(pos, vel, maxSpeedI) → vec2f`, clamped by the part. */
133
+ /** A steering push on a 2D agent, from its position, velocity and its own top speed. */
133
134
  export type AgentSteer2 = (pos: d.v2f, vel: d.v2f, maxSpeedI: number) => d.v2f;
134
135
  interface SteeringParamsView {
135
136
  readonly count: number;
@@ -151,7 +152,7 @@ interface SteeringParamsView {
151
152
  readonly margin: number;
152
153
  readonly turnForce: number;
153
154
  }
154
- /** Layout view for the steering family. */
155
+ /** What a flock's layout must name: `agents`, the `agit` excitement buffer and the `params` values. */
155
156
  export interface SteeringLayout {
156
157
  readonly $: {
157
158
  readonly agents: Vec4StateArray;
@@ -160,52 +161,64 @@ export interface SteeringLayout {
160
161
  };
161
162
  }
162
163
  /**
163
- * The Reynolds triple — separation / alignment / cohesion over ONE brute-force neighbour scan
164
- * (the static-MAX loop bound with the runtime-count early break is engine policy inside the
165
- * part: the count slider never recompiles). Weights and radii are runtime uniforms
166
- * (`sepW/aliW/cohW`, `perceptionSq/sepRadiusSq`); each steer is maxForce-clamped.
164
+ * Flocking: each agent keeps its distance from close neighbours, matches the heading of the
165
+ * ones it can see, and drifts toward their centre.
166
+ *
167
+ * Weights and radii are live values: `params.sepW`, `aliW`, `cohW`, `perceptionSq`,
168
+ * `sepRadiusSq`. `maxAgents` is the buffer size. Distances are in canvas heights.
167
169
  */
168
170
  declare function flocking(layout: SteeringLayout, cfg: {
169
171
  maxAgents: number;
170
172
  }): AgentSteer2;
171
- /** Cursor field: attract (mode 1) or repel/predator (mode 2), fading to zero at the radius. */
173
+ /** The cursor on a flock: `params.cursorMode` 1 attracts, 2 scatters like a predator, 0 does nothing, fading to zero at `params.cursorRadius`. */
172
174
  declare function cursorSteer(layout: SteeringLayout): AgentSteer2;
173
- /** Soft edge turn: steer back before reaching a wall so the flock curves away in an arc.
174
- * (At most one x and one y term is nonzero, so the per-axis sums are exact.) */
175
+ /** A gentle turn back toward the canvas within `params.margin` of an edge, so the flock arcs away instead of bouncing. */
175
176
  declare function wallTurn(layout: SteeringLayout): AgentSteer2;
176
- /** Fold a declared steering list into one part, preserving the declared sum order. */
177
+ /** @internal Fold a declared steering list into one part, preserving the declared sum order. The integrator does this for you. */
177
178
  export declare function composeSteer2(parts: AgentSteer2[]): AgentSteer2;
178
179
  /**
179
- * The steering-family integrator: per-agent cruise variation, the folded steering forces, the
180
- * agitation envelope (steering effort above the cruising baseline charges instantly, cools
181
- * exponentially — the resolve's rest→excited ramp reads it), then Euler with a speed clamp
182
- * that keeps a minimum cruise, and a reflective hard safety net at the domain walls.
180
+ * The update step for a flock: sum the steering, keep every agent cruising between
181
+ * `cruiseFloor` and its own top speed, and bounce off the canvas edges as a last resort.
182
+ *
183
+ * It also keeps an excitement value per agent that jumps when an agent steers hard and cools
184
+ * over time, which the oriented render turns into the rest-to-excited color.
183
185
  */
184
186
  declare function steering2d(layout: SteeringLayout, cfg: {
185
187
  forces: AgentSteer2[];
188
+ /** Excitement: effort above `rest` (in max-force units) charges by `gain`, and cools at `cool` per second. */
186
189
  agitation: {
187
190
  rest: number;
188
191
  gain: number;
189
192
  cool: number;
190
193
  };
191
- /** Minimum cruise as a ratio of the per-agent max speed. */
194
+ /** Slowest cruise, as a fraction of each agent's top speed. */
192
195
  cruiseFloor: number;
193
- /** Velocity retained (negated) on wall contact. */
196
+ /** Speed kept when an agent bounces off an edge (0–1). */
194
197
  wallRestitution: number;
195
198
  name: string;
196
199
  }): (i: number) => void;
197
- /** The field sampled at one agent: line direction (φ), strength, and the radial unit. */
200
+ /**
201
+ * What a field sample carries: the direction away from the source (`rhat`), the `strength`,
202
+ * and the line angle `phi` in radians. Build one when writing your own `AgentFieldAt`.
203
+ *
204
+ * @example
205
+ * ```ts
206
+ * return FieldSample({rhat, strength: fieldStr, phi: std.atan2(B.y, B.x)})
207
+ * ```
208
+ * @see field.dipoleOrRadial, torque
209
+ */
198
210
  export declare const FieldSample: d.WgslStruct<{
199
211
  rhat: d.Vec2f;
200
212
  strength: d.F32;
201
213
  phi: d.F32;
202
214
  }>;
215
+ /** A field sample's value: `rhat`, `strength`, `phi`. */
203
216
  export type FieldSampleValue = d.Infer<typeof FieldSample>;
204
- /** A torque contribution: `(field, θ, fi) → f32`. */
217
+ /** A turn on a turning agent, from the field at its position, its angle and its index. */
205
218
  export type AgentTorque = (fld: FieldSampleValue, theta: number, fi: number) => number;
206
- /** A field sampler part: `(pos) → FieldSample`. */
219
+ /** A sample of a field at a 2D position. */
207
220
  export type AgentFieldAt = (pos: d.v2f) => FieldSampleValue;
208
- /** A derived home-position part: `(fi) → vec2f`. */
221
+ /** An agent's resting position, from its index. */
209
222
  export type AgentHome2 = (fi: number) => d.v2f;
210
223
  interface OrientationParamsView {
211
224
  readonly dt: number;
@@ -229,7 +242,7 @@ interface OrientationParamsView {
229
242
  readonly cellH: number;
230
243
  readonly jitter: number;
231
244
  }
232
- /** Layout view for the orientation family. */
245
+ /** What a turning-agent layout must name: `agents`, the `agit` excitement buffer and the `params` values. */
233
246
  export interface OrientationLayout {
234
247
  readonly $: {
235
248
  readonly agents: Vec4StateArray;
@@ -238,33 +251,33 @@ export interface OrientationLayout {
238
251
  };
239
252
  }
240
253
  /**
241
- * The cursor field sample every torque/pull shares: r̂ from the pointer, the dipole-or-radial
242
- * line direction (`params.fieldType` selects at runtime), and a Gaussian strength falloff by
243
- * distance (`params.{strength, reachSq}`). The dipole axis is the CPU-smoothed cursor motion
244
- * (`params.{axisX, axisY}` — see `agentFrame.createMotionAxis`).
254
+ * The field of a magnet at the cursor: a bar magnet along the pointer's travel direction
255
+ * (`params.fieldType` 0) or a single pole (1), fading with distance by `params.reachSq`.
245
256
  */
246
257
  declare function dipoleOrRadial(layout: OrientationLayout): AgentFieldAt;
247
- /** Each agent's rest orientation (radians): random per agent (mode 0), horizontal (1),
248
- * vertical (2) — `restMode` is a runtime uniform. */
258
+ /** @internal Each agent's rest orientation (radians): random per agent (mode 0), horizontal (1), vertical (2). Used by `torque.rest`. */
249
259
  export declare const restOrientationAngle: import('typegpu').TgpuFn<(fi: d.F32, restMode: d.F32) => d.F32>;
250
- /** Swing onto the local field line: nematic torque `alignK · strength · sin(2Δ)`. */
260
+ /** A turn onto the field's line, like a compass needle, with strength `params.alignK` times the field's strength. */
251
261
  declare function alignToField(layout: OrientationLayout): AgentTorque;
252
- /** Weak nematic pull to the rest orientation — dominant only where the field is faint. */
262
+ /** A weak turn back to each agent's rest angle (`params.restMode`: 0 random, 1 horizontal, 2 vertical), felt only where the field is faint. */
253
263
  declare function restTorque(layout: OrientationLayout): AgentTorque;
254
- /** Fold a declared torque list into one part, preserving the declared sum order. */
264
+ /** @internal Fold a declared torque list into one part, preserving the declared sum order. The integrator does this for you. */
255
265
  export declare function composeTorques(parts: AgentTorque[]): AgentTorque;
256
266
  /**
257
- * Rest (home) position on a jittered grid (`params.{gridCols, cellW, cellH, jitter}`), laid out
258
- * over an `overscan` border beyond the viewport so pulled-in edges backfill from off-screen.
267
+ * A resting position for each agent on a jittered grid that runs `overscan` past the canvas
268
+ * on every side, so agents pulled inward are backfilled from off screen.
269
+ *
270
+ * Reads `params.gridCols`, `cellW`, `cellH` (from `agentFrame.fitJitteredGrid`) and `jitter`.
259
271
  */
260
272
  declare function jitteredGridHome(layout: OrientationLayout, cfg: {
261
273
  overscan: number;
262
274
  }): AgentHome2;
263
275
  /**
264
- * The orientation-family integrator: derive home + sample the field once, integrate the folded
265
- * torques with angular drag (underdamped → visible settling), charge the angular-activity
266
- * envelope from |ω|, then the gentle position dynamics — the field pull (−r̂·pullK·strength),
267
- * the exponential spring home, and the hard wander clamp. Orientation carries the effect.
276
+ * The update step for agents that turn in place: sample the field once at each agent's home,
277
+ * sum the torques, spin with angular drag (`params.damping`), and let the agent drift a little
278
+ * toward the field and spring back home, never more than `maxOffset` away.
279
+ *
280
+ * Fast spinning charges the excitement value the oriented render colors by.
268
281
  */
269
282
  declare function orientation2d(layout: OrientationLayout, cfg: {
270
283
  home: AgentHome2;
@@ -282,14 +295,14 @@ interface DriftParamsView {
282
295
  readonly cursorRadSq: number;
283
296
  readonly cursorForce: number;
284
297
  }
285
- /** Layout view for the drift family. */
298
+ /** What a drifting-mote layout must name: `agents` and the `params` values. */
286
299
  export interface DriftLayout {
287
300
  readonly $: {
288
301
  readonly agents: Vec4StateArray;
289
302
  readonly params: DriftParamsView;
290
303
  };
291
304
  }
292
- /** A per-agent deterministic drift velocity part: `(fi) → vec2f`. */
305
+ /** A built-in velocity for an agent, from its index alone. */
293
306
  export type AgentDrift = (fi: number) => d.v2f;
294
307
  /** Params view for the varied-heading drift part. */
295
308
  interface HeadingDriftParamsView {
@@ -299,23 +312,20 @@ interface HeadingDriftParamsView {
299
312
  readonly angleVarRad: number;
300
313
  }
301
314
  /**
302
- * Shared-heading drift with per-agent variance: the shared heading varied per agent by
303
- * `params.angleVarRad` (± the half-range) and the shared speed by `params.speedVar` (±½),
304
- * both hashed from the index — a coherent stream that never reads robotic. Layout needs
305
- * `params.{driftBase, angleRad, speedVar, angleVarRad}`.
315
+ * A shared drift with per-agent variety: every mote moves along `params.angleRad` at
316
+ * `params.driftBase`, each varied by its own hashed amount up to `params.angleVarRad`
317
+ * (radians, ± half the range) and `params.speedVar` (± half).
306
318
  */
307
319
  declare function variedHeading(layout: {
308
320
  readonly $: {
309
321
  readonly params: HeadingDriftParamsView;
310
322
  };
311
323
  }): AgentDrift;
312
- /** Cursor gust: a kit magnet impulse on the stored velocity (already ×dt), zero while the
313
- * force slider sits at 0 (a uniform-valued branch — fully coherent). */
324
+ /** A puff from the cursor on drifting motes: a push within `params.cursorRadSq` scaled by `params.cursorForce`, nothing at all while the force is 0. */
314
325
  declare function cursorGust(layout: DriftLayout): (pos: d.v2f) => d.v2f;
315
326
  /**
316
- * The drift-family integrator: gust impulse → exponential gust decay → advance by the
317
- * deterministic drift + gust → toroidal wrap over [0, domainX] × [0, 1] (floor-subtract
318
- * handles any overshoot in one step).
327
+ * The update step for drifting motes: add the gust, let it fade by `params.dragMul`, move by
328
+ * the drift plus the gust, and wrap around the canvas edges so coverage stays even.
319
329
  */
320
330
  declare function drift2d(layout: DriftLayout, cfg: {
321
331
  drift: AgentDrift;
@@ -342,7 +352,7 @@ interface ReliefParamsView {
342
352
  readonly cursorZForce: number;
343
353
  readonly cursorRadSq: number;
344
354
  }
345
- /** Layout view for the relief family (`src` is the late-bound child RTT). */
355
+ /** What an image-relief layout must name: `pos`, `vel`, `col`, the child picture `src` and the `params` values. */
346
356
  export interface ReliefLayout {
347
357
  readonly $: {
348
358
  readonly pos: Vec4StateArray;
@@ -352,41 +362,116 @@ export interface ReliefLayout {
352
362
  readonly params: ReliefParamsView;
353
363
  };
354
364
  }
355
- /** A depth-channel extractor: `(rgb, a) → f32` over the UNPREMULTIPLIED child colour. */
365
+ /** One number in 0–1 read out of a color and its alpha: a brightness, a channel, a saturation. */
356
366
  export type AgentChannel = (rgb: d.v3f, a: number) => number;
357
- /** The extractor menu + its canonical mode numbering (0 luminance … 6 alpha). */
367
+ /**
368
+ * Which part of the child's color drives a particle: `luminance`, `luminanceInverted`, `red`,
369
+ * `green`, `blue`, `saturation` or `alpha`, each a number in 0–1. `byMode` maps a select
370
+ * prop's number (0 luminance … 6 alpha) to the same functions.
371
+ *
372
+ * @example
373
+ * ```ts
374
+ * integrator.relief(fieldLayout, {channel: channel.byMode[channelMode] ?? channel.luminance, cursor: force.cursorInView(fieldLayout, {perspK: 0.9}), stiffness: 18, maxSpeed: 4, minAlpha: 0.02, name: 'reliefUpdate'})
375
+ * ```
376
+ * @see integrator
377
+ */
358
378
  export declare const channel: {
379
+ /**
380
+ * The color's brightness, 0 black to 1 white.
381
+ *
382
+ * @example
383
+ * ```ts
384
+ * channel: channel.luminance
385
+ * ```
386
+ */
359
387
  readonly luminance: AgentChannel;
388
+ /**
389
+ * One minus the brightness, so dark areas rise.
390
+ *
391
+ * @example
392
+ * ```ts
393
+ * channel: channel.luminanceInverted
394
+ * ```
395
+ */
360
396
  readonly luminanceInverted: AgentChannel;
397
+ /**
398
+ * The red channel.
399
+ *
400
+ * @example
401
+ * ```ts
402
+ * channel: channel.red
403
+ * ```
404
+ */
361
405
  readonly red: AgentChannel;
406
+ /**
407
+ * The green channel.
408
+ *
409
+ * @example
410
+ * ```ts
411
+ * channel: channel.green
412
+ * ```
413
+ */
362
414
  readonly green: AgentChannel;
415
+ /**
416
+ * The blue channel.
417
+ *
418
+ * @example
419
+ * ```ts
420
+ * channel: channel.blue
421
+ * ```
422
+ */
363
423
  readonly blue: AgentChannel;
424
+ /**
425
+ * How colorful the pixel is, 0 grey to 1 pure.
426
+ *
427
+ * @example
428
+ * ```ts
429
+ * channel: channel.saturation
430
+ * ```
431
+ */
364
432
  readonly saturation: AgentChannel;
433
+ /**
434
+ * The pixel's alpha.
435
+ *
436
+ * @example
437
+ * ```ts
438
+ * channel: channel.alpha
439
+ * ```
440
+ */
365
441
  readonly alpha: AgentChannel;
442
+ /**
443
+ * The same seven by a select prop's number: 0 luminance, 1 inverted, 2 red, 3 green,
444
+ * 4 blue, 5 saturation, 6 alpha.
445
+ *
446
+ * @example
447
+ * ```ts
448
+ * channel: channel.byMode[channelMode] ?? channel.luminance
449
+ * ```
450
+ */
366
451
  readonly byMode: Record<number, AgentChannel>;
367
452
  };
368
453
  /**
369
- * The view-space cursor magnet: project the agent's CURRENT position through the same camera
370
- * path as the splat (rotation → perspective·zoom → screen offset) so the cursor interacts with
371
- * what is actually under the pointer at any camera angle, apply the kit magnet in view space
372
- * (xy shove + z bulge), and rotate the force back into field space by Rᵀ.
454
+ * The cursor on an image relief seen through a camera: the push is worked out where the
455
+ * particle appears on screen, so the cursor moves what is actually under it at any camera
456
+ * angle. `perspK` is the projection strength, the same value the relief render uses.
373
457
  */
374
458
  declare function cursorInView(layout: ReliefLayout, cfg: {
375
459
  perspK: number;
376
460
  }): (homeW: d.v2f, off: d.v2f, z: number) => d.v3f;
377
461
  /**
378
- * The relief-family integrator: bilinear-sample the live child at the home UV, unpremultiply
379
- * and store the colour, derive the depth target from the declared channel, then the spring
380
- * toward home (xy) / target (z) plus the view-space cursor magnet, through the shared
381
- * semi-implicit Euler. A particle SNAPS to its target until it has actually seen child content
382
- * (the vel.w latch) — no start lurch, no fly-in on load.
462
+ * The update step for particles standing on an image: each particle reads the child's color
463
+ * at its home, rises to a height given by `channel`, springs back toward home with
464
+ * `stiffness`, and answers the `cursor`. Dispatched over a 2D grid.
465
+ *
466
+ * A particle snaps straight to its target until it has seen real content, so nothing lurches
467
+ * on load.
383
468
  */
384
469
  declare function relief(layout: ReliefLayout, cfg: {
385
470
  channel: AgentChannel;
386
471
  cursor: (homeW: d.v2f, off: d.v2f, z: number) => d.v3f;
387
472
  stiffness: number;
388
473
  maxSpeed: number;
389
- /** Child alpha below which a particle is never latched (matches the splat's early-out). */
474
+ /** Child alpha below which a particle is never latched. Match the render's `minAlpha`. */
390
475
  minAlpha: number;
391
476
  name: string;
392
477
  }): (x: number, y: number) => void;
@@ -395,7 +480,7 @@ interface AdvectParamsView {
395
480
  readonly aspect: number;
396
481
  readonly advect: number;
397
482
  }
398
- /** Layout view for the advection family (`velTex` is the solved fluid velocity handoff). */
483
+ /** What a fluid-carried layout must name: `agents`, the fluid's velocity texture `velTex` and the `params` values. */
399
484
  export interface AdvectLayout {
400
485
  readonly $: {
401
486
  readonly agents: Vec4StateArray;
@@ -404,10 +489,12 @@ export interface AdvectLayout {
404
489
  };
405
490
  }
406
491
  /**
407
- * The advection-family integrator: sample the fluid grid bilinearly at the agent's screen-uv,
408
- * convert grid cells/sec to world units/sec, ease velocity toward the field (framerate-
409
- * independent inertia), add the weak R2 home spring (re-evens coverage once the flow dies —
410
- * the fluid box does not wrap), integrate, and clamp to the domain.
492
+ * The update step for particles carried by a fluid: read the fluid's velocity under each
493
+ * particle, ease toward it over about `1/inertiaRate` seconds, drift gently back to an even
494
+ * spread at `homeRate` once the flow dies, and stay inside the canvas.
495
+ *
496
+ * `gridN` is the fluid grid's side in cells. `params.advect` scales how strongly the fluid
497
+ * carries the particles.
411
498
  */
412
499
  declare function advect2d(layout: AdvectLayout, cfg: {
413
500
  gridN: number;
@@ -415,35 +502,290 @@ declare function advect2d(layout: AdvectLayout, cfg: {
415
502
  homeRate: number;
416
503
  name: string;
417
504
  }): (i: number) => void;
505
+ /**
506
+ * The pushes an agent can feel. Each is built over your layout and returns a part the matching
507
+ * integrator folds in list order.
508
+ *
509
+ * For a 3D swarm (`integrator.forces3d`): `pressure` (spread out evenly), `containment` (stay
510
+ * inside the shape), `cursorXY`, `gravity`, `turbulence`. For a flock (`integrator.steering2d`):
511
+ * `flocking`, `cursorSteer`, `wallTurn`. For drifting motes (`integrator.drift2d`):
512
+ * `cursorGust`. For an image relief (`integrator.relief`): `cursorInView`.
513
+ *
514
+ * @example
515
+ * ```ts
516
+ * integrator.steering2d(simLayout, {forces: [force.flocking(simLayout, {maxAgents: 4096}), force.cursorSteer(simLayout), force.wallTurn(simLayout)], agitation: {rest: 1.5, gain: 0.45, cool: 1.3}, cruiseFloor: 0.35, wallRestitution: 0.6, name: 'boidsUpdate'})
517
+ * ```
518
+ * @tip Order matters only for readability. The forces are summed, so list them from the most important down.
519
+ * @see integrator, torque, shapeField, agentFrame
520
+ */
418
521
  export declare const force: {
522
+ /**
523
+ * Spread a 3D swarm evenly by pushing agents away from crowded cells of a density grid.
524
+ * Returns the force plus the two grid steps to put in the program before the update.
525
+ *
526
+ * @example
527
+ * ```ts
528
+ * const pressure = force.pressure(simLayout, {gridDim: 32, domain: 1, names: {clear: 'swarmClearDensity', splat: 'swarmDensity'}})
529
+ * ```
530
+ * @tip Register `pressure.clearKernel` as a `fixed` step over `pressure.cells` and `pressure.splatKernel` over `agents`, both before the update.
531
+ * @see containment, integrator.forces3d
532
+ */
419
533
  readonly pressure: typeof pressure;
534
+ /**
535
+ * Keep a 3D swarm inside a shape: a spring at the surface, a pull back from far away, and a
536
+ * drag when the shape rotates.
537
+ *
538
+ * @example
539
+ * ```ts
540
+ * forces: [pressure.force, force.containment(simLayout, {field: hexField, gradEps: 0.02, wall: {featherFrom: -0.1, featherTo: 0.01, base: 1.1, springK: 22}, recall: {from: 0.85, to: 1.1, k: 9}, homing: {from: 0.12, to: 0.45, k: 5}, entrainment: {featherHalf: 0.05}})]
541
+ * ```
542
+ * @see shapeField, pressure
543
+ */
420
544
  readonly containment: typeof containment;
545
+ /**
546
+ * The cursor as a magnet on a 3D swarm, pushing away (or pulling in when the force is
547
+ * negative).
548
+ *
549
+ * @example
550
+ * ```ts
551
+ * forces: [pressure.force, force.cursorXY(simLayout), force.gravity(simLayout)]
552
+ * ```
553
+ * @see gravity, turbulence
554
+ */
421
555
  readonly cursorXY: typeof cursorXY;
556
+ /**
557
+ * A constant pull on a 3D swarm in the direction of `params.gravX, gravY`.
558
+ *
559
+ * @example
560
+ * ```ts
561
+ * forces: [pressure.force, force.cursorXY(simLayout), force.gravity(simLayout)]
562
+ * ```
563
+ * @see cursorXY
564
+ */
422
565
  readonly gravity: typeof gravity;
566
+ /**
567
+ * A per-agent jitter that keeps a 3D swarm alive, scaled by `params.agitation`.
568
+ *
569
+ * @example
570
+ * ```ts
571
+ * forces: [pressure.force, force.turbulence(simLayout, {posScale: 193, timeX: 31.7, timeY: 27.3, seedScale: 997, gain: 5})]
572
+ * ```
573
+ * @tip Keep the scale constants large. Small ones make the noise smooth and the whole swarm drifts in step.
574
+ * @see cursorXY
575
+ */
423
576
  readonly turbulence: typeof turbulence;
577
+ /**
578
+ * Separation, alignment and cohesion for a flock, with live weights and radii.
579
+ *
580
+ * @example
581
+ * ```ts
582
+ * forces: [force.flocking(simLayout, {maxAgents: 4096}), force.cursorSteer(simLayout), force.wallTurn(simLayout)]
583
+ * ```
584
+ * @see cursorSteer, wallTurn, integrator.steering2d
585
+ */
424
586
  readonly flocking: typeof flocking;
587
+ /**
588
+ * The cursor on a flock: attract, scatter like a predator, or nothing.
589
+ *
590
+ * @example
591
+ * ```ts
592
+ * forces: [force.flocking(simLayout, {maxAgents: 4096}), force.cursorSteer(simLayout)]
593
+ * ```
594
+ * @see flocking
595
+ */
425
596
  readonly cursorSteer: typeof cursorSteer;
597
+ /**
598
+ * A soft turn back toward the canvas near an edge, so a flock arcs instead of bouncing.
599
+ *
600
+ * @example
601
+ * ```ts
602
+ * forces: [force.flocking(simLayout, {maxAgents: 4096}), force.wallTurn(simLayout)]
603
+ * ```
604
+ * @see flocking
605
+ */
426
606
  readonly wallTurn: typeof wallTurn;
607
+ /**
608
+ * A puff from the cursor on drifting motes, zero while the force slider sits at 0.
609
+ *
610
+ * @example
611
+ * ```ts
612
+ * integrator.drift2d(simLayout, {drift: drift.variedHeading(simLayout), gust: force.cursorGust(simLayout), name: 'motesUpdate'})
613
+ * ```
614
+ * @see drift.variedHeading, integrator.drift2d
615
+ */
427
616
  readonly cursorGust: typeof cursorGust;
617
+ /**
618
+ * The cursor on an image relief, applied where each particle appears on screen.
619
+ *
620
+ * @example
621
+ * ```ts
622
+ * integrator.relief(fieldLayout, {channel: channel.luminance, cursor: force.cursorInView(fieldLayout, {perspK: 0.9}), stiffness: 18, maxSpeed: 4, minAlpha: 0.02, name: 'reliefUpdate'})
623
+ * ```
624
+ * @see integrator.relief, channel
625
+ */
428
626
  readonly cursorInView: typeof cursorInView;
429
627
  };
628
+ /**
629
+ * The turns an agent that spins in place can feel, for `integrator.orientation2d`.
630
+ *
631
+ * @example
632
+ * ```ts
633
+ * torques: [torque.alignToField(simLayout), torque.rest(simLayout)]
634
+ * ```
635
+ * @see field, integrator
636
+ */
430
637
  export declare const torque: {
638
+ /**
639
+ * Swing onto the field's line like a compass needle.
640
+ *
641
+ * @example
642
+ * ```ts
643
+ * torques: [torque.alignToField(simLayout), torque.rest(simLayout)]
644
+ * ```
645
+ * @see rest, field.dipoleOrRadial
646
+ */
431
647
  readonly alignToField: typeof alignToField;
648
+ /**
649
+ * A weak swing back to each agent's rest angle, felt only where the field is faint.
650
+ *
651
+ * @example
652
+ * ```ts
653
+ * torques: [torque.alignToField(simLayout), torque.rest(simLayout)]
654
+ * ```
655
+ * @see alignToField
656
+ */
432
657
  readonly rest: typeof restTorque;
433
658
  };
659
+ /**
660
+ * What a turning agent samples at its position: the magnetic field at the cursor, and its
661
+ * resting place on a jittered grid.
662
+ *
663
+ * @example
664
+ * ```ts
665
+ * integrator.orientation2d(simLayout, {home: field.jitteredGridHome(simLayout, {overscan: 0.1}), fieldAt: field.dipoleOrRadial(simLayout), torques: [torque.alignToField(simLayout), torque.rest(simLayout)], maxOffset: 0.02, name: 'filingsUpdate'})
666
+ * ```
667
+ * @see torque, integrator, agentFrame
668
+ */
434
669
  export declare const field: {
670
+ /**
671
+ * The field of a magnet at the cursor: a bar magnet along its travel, or a single pole.
672
+ *
673
+ * @example
674
+ * ```ts
675
+ * integrator.orientation2d(simLayout, {home, fieldAt: field.dipoleOrRadial(simLayout), torques, maxOffset: 0.12, name: 'filingsUpdate'})
676
+ * ```
677
+ * @see jitteredGridHome, torque.alignToField
678
+ */
435
679
  readonly dipoleOrRadial: typeof dipoleOrRadial;
680
+ /**
681
+ * Each agent's resting position on a jittered grid that runs past the canvas edges.
682
+ *
683
+ * @example
684
+ * ```ts
685
+ * const home = field.jitteredGridHome(simLayout, {overscan: 0.14})
686
+ * ```
687
+ * @tip The same home part goes to `renderAgents.orientedWorld` as `home`, so agents are drawn where they rest.
688
+ * @see dipoleOrRadial
689
+ */
436
690
  readonly jitteredGridHome: typeof jitteredGridHome;
437
691
  };
692
+ /**
693
+ * A built-in velocity for motes that glide, for `integrator.drift2d`.
694
+ *
695
+ * @example
696
+ * ```ts
697
+ * integrator.drift2d(simLayout, {drift: drift.variedHeading(simLayout), gust: force.cursorGust(simLayout), name: 'motesUpdate'})
698
+ * ```
699
+ * @see integrator
700
+ */
438
701
  export declare const drift: {
702
+ /**
703
+ * One shared heading and speed, each varied a little per mote.
704
+ *
705
+ * @example
706
+ * ```ts
707
+ * integrator.drift2d(simLayout, {drift: drift.variedHeading(simLayout), gust: force.cursorGust(simLayout), name: 'motesUpdate'})
708
+ * ```
709
+ * @see force.cursorGust, integrator.drift2d
710
+ */
439
711
  readonly variedHeading: typeof variedHeading;
440
712
  };
713
+ /**
714
+ * The update step of an agent simulation: one per kind of agent. Each takes your layout and
715
+ * the parts, and returns the step to register as `update` in `bake`.
716
+ *
717
+ * `forces3d` moves a 3D swarm under summed forces with drag and a speed limit. `steering2d`
718
+ * moves a flock that keeps cruising and arcs off the edges. `orientation2d` turns agents in
719
+ * place under summed torques. `drift2d` glides motes and wraps them around the canvas.
720
+ * `relief` stands particles on the child's image. `advect2d` carries particles along a fluid.
721
+ *
722
+ * @example
723
+ * ```ts
724
+ * const update = integrator.forces3d(simLayout, {forces: [pressure.force, force.containment(simLayout, containmentCfg), force.cursorXY(simLayout), force.gravity(simLayout)], maxSpeed: 3, posClamp: 1.9, name: 'swarmUpdate'})
725
+ * ```
726
+ * @tip Drag arrives as a per-frame multiplier in `params.dragMul`. Compute it with `agentFrame.expDecay(rate, dt)` so it does not depend on frame rate.
727
+ * @see force, torque, drift, field, renderAgents, agentSim
728
+ */
441
729
  export declare const integrator: {
730
+ /**
731
+ * A 3D swarm under summed forces, with drag, a speed limit and a position clamp.
732
+ *
733
+ * @example
734
+ * ```ts
735
+ * integrator.forces3d(simLayout, {forces: [pressure.force, force.containment(simLayout, containmentCfg), force.cursorXY(simLayout), force.gravity(simLayout)], maxSpeed: 3, posClamp: 1.9, name: 'swarmUpdate'})
736
+ * ```
737
+ * @see force.pressure, force.containment
738
+ */
442
739
  readonly forces3d: typeof forces3d;
740
+ /**
741
+ * A flock under summed steering, kept cruising, arcing off the canvas edges.
742
+ *
743
+ * @example
744
+ * ```ts
745
+ * integrator.steering2d(simLayout, {forces: [force.flocking(simLayout, {maxAgents: 4096}), force.cursorSteer(simLayout), force.wallTurn(simLayout)], agitation: {rest: 1.5, gain: 0.45, cool: 1.3}, cruiseFloor: 0.35, wallRestitution: 0.6, name: 'boidsUpdate'})
746
+ * ```
747
+ * @see force.flocking
748
+ */
443
749
  readonly steering2d: typeof steering2d;
750
+ /**
751
+ * Agents that turn in place under summed torques and drift a little toward the field.
752
+ *
753
+ * @example
754
+ * ```ts
755
+ * integrator.orientation2d(simLayout, {home: field.jitteredGridHome(simLayout, {overscan: 0.14}), fieldAt: field.dipoleOrRadial(simLayout), torques: [torque.alignToField(simLayout), torque.rest(simLayout)], maxOffset: 0.12, name: 'filingsUpdate'})
756
+ * ```
757
+ * @see torque, field
758
+ */
444
759
  readonly orientation2d: typeof orientation2d;
760
+ /**
761
+ * Motes that glide on a built-in drift plus a fading gust, wrapping around the canvas.
762
+ *
763
+ * @example
764
+ * ```ts
765
+ * integrator.drift2d(simLayout, {drift: drift.variedHeading(simLayout), gust: force.cursorGust(simLayout), name: 'motesUpdate'})
766
+ * ```
767
+ * @see drift.variedHeading, force.cursorGust
768
+ */
445
769
  readonly drift2d: typeof drift2d;
770
+ /**
771
+ * Particles standing on the child's image, rising by a color channel, springing home.
772
+ *
773
+ * @example
774
+ * ```ts
775
+ * integrator.relief(fieldLayout, {channel: channel.luminance, cursor: force.cursorInView(fieldLayout, {perspK: 0.9}), stiffness: 18, maxSpeed: 4, minAlpha: 0.02, name: 'reliefUpdate'})
776
+ * ```
777
+ * @see channel, force.cursorInView
778
+ */
446
779
  readonly relief: typeof relief;
780
+ /**
781
+ * Particles carried by a fluid's velocity texture, easing back to an even spread.
782
+ *
783
+ * @example
784
+ * ```ts
785
+ * integrator.advect2d(pfLayout, {gridN: 256, inertiaRate: 6, homeRate: 0.6, name: 'particleFlowIntegrate'})
786
+ * ```
787
+ * @see fluidSim
788
+ */
447
789
  readonly advect2d: typeof advect2d;
448
790
  };
449
791
  export {};