shaders 3.2.475 → 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 (753) 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-Cx1HVeYk.js → AngularBlur-BEBs-lRR.js} +2 -3
  5. package/dist/core/{Arc-D3FuqnDL.js → Arc-D-WnjM7T.js} +1 -3
  6. package/dist/core/{Ascii-Dhn0H0LB.js → Ascii-BGPIwMc3.js} +2 -5
  7. package/dist/core/{Aurora-BUfyvIyq.js → Aurora-DqJBPdMQ.js} +2 -11
  8. package/dist/core/{BarShift-v3D-9Lx4.js → BarShift-BcCOweUh.js} +2 -3
  9. package/dist/core/{BarnDoors-C5g6Sbze.js → BarnDoors-B9B-AmCV.js} +2 -3
  10. package/dist/core/{Beam-CV5g8m92.js → Beam-QG_9OS8I.js} +2 -3
  11. package/dist/core/{Bend-BFWQSHF7.js → Bend-Cy9VAowL.js} +1 -2
  12. package/dist/core/{Blob-CLvqov4O.js → Blob-C3txJeW0.js} +2 -10
  13. package/dist/core/{BlockDissolve-DER9y4PE.js → BlockDissolve-C1SFUys7.js} +2 -3
  14. package/dist/core/{BlockNoise-DpXWJkDL.js → BlockNoise-Cm3y8hce.js} +2 -4
  15. package/dist/core/{BlueNoise-CSQPDpkm.js → BlueNoise-BCLObOMm.js} +2 -4
  16. package/dist/core/{Blur-B-Tg7Sfr.js → Blur-Dg29SnXd.js} +1 -2
  17. package/dist/core/{Boids-BZo85-QR.js → Boids-rsGsPN5h.js} +2 -5
  18. package/dist/core/{BokehBlur-B1tY-T6q.js → BokehBlur-rFSFEnb0.js} +2 -3
  19. package/dist/core/{BrickPattern-DVhe3RgK.js → BrickPattern-DqN6JKEN.js} +2 -3
  20. package/dist/core/{BrightnessContrast-DBLjHzyE.js → BrightnessContrast-J9fCSBiC.js} +1 -3
  21. package/dist/core/{BrushedMetal-CpXTd3nZ.js → BrushedMetal-74wSZKjG.js} +3 -8
  22. package/dist/core/{Bulge-CHcE-9Oo.js → Bulge-BIk0oq8j.js} +1 -2
  23. package/dist/core/{CRTScreen-CyBtBJS4.js → CRTScreen-hEH-JNRd.js} +2 -3
  24. package/dist/core/{CarbonFiber-DK-0jUEs.js → CarbonFiber-CZdUDvRU.js} +3 -7
  25. package/dist/core/{Chalkboard-PmgH_OhS.js → Chalkboard-CClJHqvs.js} +2 -3
  26. package/dist/core/{ChannelBlur-J3MHHcGy.js → ChannelBlur-BEuEwQOC.js} +1 -2
  27. package/dist/core/{CheckerWipe-Dj2kjjDA.js → CheckerWipe-KuAWj2qg.js} +2 -3
  28. package/dist/core/{Checkerboard-eFWETR1S.js → Checkerboard-Rq9ze1W3.js} +2 -3
  29. package/dist/core/{Chevron-ColsT0Fy.js → Chevron-C1j6X2Ye.js} +2 -3
  30. package/dist/core/{ChromaFlow-DrdCgPGz.js → ChromaFlow-BgsCUYIl.js} +2 -5
  31. package/dist/core/{ChromaticAberration-C_It6mLf.js → ChromaticAberration-2_4tjQ0u.js} +2 -4
  32. package/dist/core/{Chrome-2WZpUHiT.js → Chrome-Be3z6C5i.js} +4 -10
  33. package/dist/core/{Circle-C-AKxSw4.js → Circle-e_qQI3tU.js} +1 -3
  34. package/dist/core/{ColorWheel-DfF0tqXE.js → ColorWheel-s5ep1H7d.js} +2 -3
  35. package/dist/core/{CompressionArtifacts-Zvwlutd7.js → CompressionArtifacts-OE9U9Qrq.js} +1 -3
  36. package/dist/core/{ConcentricSpin-tC8mylMA.js → ConcentricSpin-CLE_5yCJ.js} +1 -2
  37. package/dist/core/{ConicGradient-CNYvyjSs.js → ConicGradient-Cji2SgVO.js} +2 -4
  38. package/dist/core/{ContourLines-C4642NJd.js → ContourLines-wpPK00cF.js} +2 -3
  39. package/dist/core/{CornerPin-BF5gFRv9.js → CornerPin-gYU0Uf2m.js} +2 -3
  40. package/dist/core/{Crescent-wC0IwPjx.js → Crescent-viNc7Unp.js} +1 -2
  41. package/dist/core/{Cross-BO7JQKSq.js → Cross-DyQSsw_k.js} +1 -2
  42. package/dist/core/{Crystal-BK3ifbmV.js → Crystal-Vjj8azWg.js} +4 -9
  43. package/dist/core/{CurlNoise-UbI-Zda_.js → CurlNoise-C7PHjDht.js} +2 -4
  44. package/dist/core/{CursorRipples-rJlfKhyh.js → CursorRipples-BzPPNkA3.js} +3 -39
  45. package/dist/core/{CursorTrail-BuyQdFKJ.js → CursorTrail-cBj0AuQA.js} +2 -4
  46. package/dist/core/{DataMosh-C_ZI55Qq.js → DataMosh-5Yr9TyVx.js} +1 -3
  47. package/dist/core/{DiamondGradient-CPhUCUoq.js → DiamondGradient-DZM7HwF5.js} +2 -4
  48. package/dist/core/{DiamondWipe-y6uIpJM4.js → DiamondWipe-CqeT7lCt.js} +2 -3
  49. package/dist/core/{DiffuseBlur-BNxowfOL.js → DiffuseBlur-Y5hSDTZF.js} +2 -3
  50. package/dist/core/{DisplacementMap-BuM2b1nC.js → DisplacementMap-FobRx5Ie.js} +2 -3
  51. package/dist/core/{Dither-Bt1qdRag.js → Dither-50rqHpt9.js} +2 -3
  52. package/dist/core/{DotGrid-DJFnwMVS.js → DotGrid-B6AGLUbR.js} +3 -4
  53. package/dist/core/{DropShadow-C-IfgfyH.js → DropShadow-CEPpgatB.js} +2 -3
  54. package/dist/core/{Duotone-DML_9JhJ.js → Duotone-D76Kp7Pb.js} +2 -3
  55. package/dist/core/{Ellipse-BuNUnN8D.js → Ellipse-BGod1LeG.js} +1 -2
  56. package/dist/core/{Emboss-DvKk4zwp.js → Emboss-DMNFb_ww.js} +3 -6
  57. package/dist/core/{Engraving-DPFVnIjD.js → Engraving-Dj7bCATQ.js} +2 -3
  58. package/dist/core/{ErosionNoise-j_b7a5cl.js → ErosionNoise-4O68wJQZ.js} +2 -4
  59. package/dist/core/{Exposure-DALA5K55.js → Exposure-h-vapOpj.js} +1 -3
  60. package/dist/core/{FallingLines-CeMOKpxK.js → FallingLines-Dzop_89k.js} +2 -3
  61. package/dist/core/{FilmGrain-DsDYCjjs.js → FilmGrain-Bs8PCfdf.js} +1 -3
  62. package/dist/core/{FilmStock-DtDMkwF6.js → FilmStock-DBjVo6rL.js} +1 -4
  63. package/dist/core/{Flip-B9Av9MVn.js → Flip-CfrS4KfZ.js} +2 -3
  64. package/dist/core/{FloatingParticles-BcMOBX1m.js → FloatingParticles-D1R2tD2J.js} +2 -5
  65. package/dist/core/{FlowField-BunLIU80.js → FlowField-Slirm5AI.js} +2 -3
  66. package/dist/core/{Flower-CvqBYUCU.js → Flower-Ddlut7QZ.js} +1 -2
  67. package/dist/core/{FlowingGradient-DQ284uMb.js → FlowingGradient-CwIgTtbj.js} +2 -7
  68. package/dist/core/{FlutedGlass-BP7av96Y.js → FlutedGlass-CMMy2GJ5.js} +2 -4
  69. package/dist/core/{Fog-DyyljY9e.js → Fog-DjjUkcTZ.js} +2 -4
  70. package/dist/core/{Form3D-x-G-Lz4z.js → Form3D-DQDOHWpC.js} +2 -4
  71. package/dist/core/{FractalNoise-DTgEv-Hq.js → FractalNoise-BjI3IOIj.js} +2 -4
  72. package/dist/core/{Frost-BhMELsXw.js → Frost-CK12HnL1.js} +3 -8
  73. package/dist/core/{GaborNoise-B7kmxcRZ.js → GaborNoise-DKEIvvRJ.js} +3 -5
  74. package/dist/core/{Glass-BMCOKCUL.js → Glass-CzcOVD5Y.js} +3 -8
  75. package/dist/core/{GlassTiles-DgVooh8h.js → GlassTiles-gjhc563g.js} +1 -2
  76. package/dist/core/{Glitch-D0pvMdGd.js → Glitch-C_XAWltC.js} +1 -2
  77. package/dist/core/{Glow-CJ3i0al6.js → Glow-CrYCanBI.js} +1 -3
  78. package/dist/core/{Godrays-DOV1VQ9x.js → Godrays-BBTMOVLP.js} +2 -3
  79. package/dist/core/{Goo-sMwsU21Y.js → Goo-Brhjk8aS.js} +3 -8
  80. package/dist/core/{GradientMap-CCuimQDS.js → GradientMap-C5325QWw.js} +2 -4
  81. package/dist/core/{Grayscale-DR1xnpde.js → Grayscale-dPjs-wvf.js} +1 -2
  82. package/dist/core/{Grid-CCUodqje.js → Grid-UjEd3O76.js} +3 -4
  83. package/dist/core/{GridDistortion-DUnC2Z_Y.js → GridDistortion-vVgYya1U.js} +1 -5
  84. package/dist/core/{Group--MS8ZNKg.js → Group-KVdmAi5g.js} +1 -1
  85. package/dist/core/{HTMLInCanvas-D_Rc6bs1.js → HTMLInCanvas-CKr2u76R.js} +1 -2
  86. package/dist/core/{Halftone-CG1LNQkk.js → Halftone-pRV3TRUW.js} +2 -3
  87. package/dist/core/{Heart-qPxh2CWp.js → Heart-CX7MvvHZ.js} +1 -2
  88. package/dist/core/{Heatmap-BZDfR2vC.js → Heatmap-Dn6qyd2e.js} +3 -8
  89. package/dist/core/{HexGrid-DquaiXLF.js → HexGrid-BIfYhkfV.js} +3 -4
  90. package/dist/core/{Hologram-JAXPZFx0.js → Hologram-ou27baPQ.js} +3 -7
  91. package/dist/core/{Holographic-BBHJp93D.js → Holographic-CiHdBSMg.js} +3 -7
  92. package/dist/core/{HueShift-a1Hl7gFy.js → HueShift-CG7pcXfg.js} +1 -3
  93. package/dist/core/{ImageTexture-CLW3uX1b.js → ImageTexture-BiZuU58C.js} +1 -2
  94. package/dist/core/{InkFlow-Dfd_5vYf.js → InkFlow-D9_L7opB.js} +2 -5
  95. package/dist/core/{Invert-DBEURmcL.js → Invert-CHEaiQZO.js} +1 -2
  96. package/dist/core/{IrisWipe-DTlGb8v-.js → IrisWipe-x22vOQHm.js} +2 -3
  97. package/dist/core/Irradiance-7yq2K87_.js +389 -0
  98. package/dist/core/{IsometricCubes-BgmQXJXU.js → IsometricCubes-CkPGWr7M.js} +2 -3
  99. package/dist/core/{Kaleidoscope-0adfaQ5F.js → Kaleidoscope-CEC5m1Ww.js} +1 -2
  100. package/dist/core/{KeyFrames-BqANGVzW.js → KeyFrames-BMGEZsAZ.js} +2 -3
  101. package/dist/core/{LensDistortion-DVRKCZv8.js → LensDistortion-DKo8PiO5.js} +2 -3
  102. package/dist/core/{LensFlare-C41jY4jH.js → LensFlare-DMS-NUtK.js} +2 -3
  103. package/dist/core/LightEdge-DxmnCRls.js +315 -0
  104. package/dist/core/{LightLeak-GWrDFcI_.js → LightLeak-yoEsZtYg.js} +2 -4
  105. package/dist/core/{Line-DuV7dLdM.js → Line-D17XDUjO.js} +2 -3
  106. package/dist/core/{LinearBlur-Bft2CjmO.js → LinearBlur-CiyjPTUH.js} +2 -3
  107. package/dist/core/{LinearGradient-BzIE4ReW.js → LinearGradient-DfjKG70q.js} +2 -4
  108. package/dist/core/{LinearWipe-ArRG9OCp.js → LinearWipe-D9CtBg6S.js} +2 -3
  109. package/dist/core/{LiquidMetal-BgvfhyiQ.js → LiquidMetal-8EG6DwV6.js} +3 -8
  110. package/dist/core/{Liquify-B6EigQqP.js → Liquify-BySXF1OB.js} +1 -4
  111. package/dist/core/{MagneticFilings-Dj35dlIq.js → MagneticFilings-DNESH3Zs.js} +2 -5
  112. package/dist/core/{Marble-0kfSSCDj.js → Marble-C9WvdxrP.js} +2 -7
  113. package/dist/core/{MeshGradient-DY_rUhFv.js → MeshGradient-d9--RXOU.js} +2 -10
  114. package/dist/core/{Mirror-C1AIyKmb.js → Mirror-1V2FF2kD.js} +1 -2
  115. package/dist/core/{MultiPointGradient-B9z1J-d8.js → MultiPointGradient-cRA9ytgL.js} +2 -3
  116. package/dist/core/{Nebula-mZDwq-yl.js → Nebula-BRV-q74y.js} +4 -87
  117. package/dist/core/{Neon-CyQE26dS.js → Neon-4PemK9Rj.js} +3 -6
  118. package/dist/core/{NoiseDissolve-DQbBbxlP.js → NoiseDissolve-B7LgD46G.js} +2 -3
  119. package/dist/core/{ObjectTracker-CZd20LeZ.js → ObjectTracker-CdzDxhpy.js} +2 -3
  120. package/dist/core/{Obsidian-CjKezopV.js → Obsidian-2J1eX9kT.js} +3 -9
  121. package/dist/core/{PagePeel-ulnjqZzc.js → PagePeel-D-ziraOm.js} +1 -2
  122. package/dist/core/{Paper-c_1INiUk.js → Paper-BxzCLyzB.js} +1 -2
  123. package/dist/core/{Parallelogram-CnjzV4-0.js → Parallelogram-D4OflTwn.js} +1 -2
  124. package/dist/core/{ParticleField-yJztI6Ts.js → ParticleField-tWNicEDO.js} +1 -4
  125. package/dist/core/{ParticleFlow-DJYrNrb8.js → ParticleFlow-BiEYFyWR.js} +2 -6
  126. package/dist/core/{Particles-kT-8Aj5V.js → Particles-B7W4yWgo.js} +3 -7
  127. package/dist/core/{PerlinNoise-C_Pczp28.js → PerlinNoise-C-irUxp9.js} +3 -5
  128. package/dist/core/{Perspective-BrbfuYVk.js → Perspective-DlnAW-pe.js} +2 -3
  129. package/dist/core/{PixelSort-DoTMcLz4.js → PixelSort-BBOTYuOE.js} +1 -4
  130. package/dist/core/{PixelThrow-B8pxI6sI.js → PixelThrow-DCJb9Lxd.js} +2 -4
  131. package/dist/core/{Pixelate-DCU9U9Wb.js → Pixelate-CZdwB--K.js} +1 -2
  132. package/dist/core/{Plasma-Xe1I1Mmb.js → Plasma-CTOQJeqy.js} +2 -4
  133. package/dist/core/{Plastic-Ce9dVqPq.js → Plastic-DvyH9x-4.js} +3 -8
  134. package/dist/core/{PolarCoordinates-mtOsxdGf.js → PolarCoordinates-XhdDAOD0.js} +1 -2
  135. package/dist/core/{Polygon-Cv63keGU.js → Polygon-CLohB-Ly.js} +2 -4
  136. package/dist/core/{Posterize-QhGDzUuf.js → Posterize-BAQfnvmK.js} +1 -2
  137. package/dist/core/{Prism-DOXMcTrS.js → Prism-DJVCVAXX.js} +2 -6
  138. package/dist/core/{ProgressiveBlur-sSQrxqcr.js → ProgressiveBlur-Dirva1on.js} +2 -3
  139. package/dist/core/{RadialGradient-DWTDAQnq.js → RadialGradient-DuSKR8Ds.js} +2 -4
  140. package/dist/core/{RadialWipe-HfofRhY0.js → RadialWipe-n8tON7x2.js} +2 -3
  141. package/dist/core/{RandomBars-DspX9Utc.js → RandomBars-BYouiIgQ.js} +2 -3
  142. package/dist/core/{ReactionDiffusion-GsRfnqUY.js → ReactionDiffusion-CHDd3y2q.js} +2 -5
  143. package/dist/core/{RectangularCoordinates-DhPRrTPT.js → RectangularCoordinates-CYFfCawa.js} +1 -2
  144. package/dist/core/{ReflectivePlane-ej7XTkZ-.js → ReflectivePlane-DFTl5U9q.js} +2 -3
  145. package/dist/core/Repeater-CnbzXuAe.js +473 -0
  146. package/dist/core/{Ring-CC1LC05E.js → Ring-CGkHVSVd.js} +1 -2
  147. package/dist/core/{RippleWipe-CmmIx59a.js → RippleWipe-DLjPzY6u.js} +2 -3
  148. package/dist/core/{Ripples-ColS9_ej.js → Ripples-C2tITU62.js} +2 -3
  149. package/dist/core/{RoundedRect-BCL_4FLA.js → RoundedRect-sfNTUaCY.js} +1 -2
  150. package/dist/core/{Saturation-E77lSl0T.js → Saturation-BRkifYWj.js} +1 -3
  151. package/dist/core/{Scratches-ZHohp7K4.js → Scratches-D87O5C2K.js} +2 -4
  152. package/dist/core/{Sharpness-CgNxIvCA.js → Sharpness-BGv613Zw.js} +1 -3
  153. package/dist/core/Shatter-DuyCFU1f.js +328 -0
  154. package/dist/core/{SimplexNoise-CZf812YP.js → SimplexNoise-CQJvmqd-.js} +2 -4
  155. package/dist/core/{SineWave-CVHPlsdX.js → SineWave-BfOgSGMP.js} +2 -3
  156. package/dist/core/{SliceWipe-4Y_DLO0N.js → SliceWipe-CD_D99sl.js} +1 -2
  157. package/dist/core/{Smoke-CzjvGgBl.js → Smoke-BDQYKRP1.js} +2 -4
  158. package/dist/core/{SmokeFill-DkMjXE-D.js → SmokeFill-CPnzQtQv.js} +3 -8
  159. package/dist/core/{SmokeFlow-DQMNHV2s.js → SmokeFlow-BkPMjZq8.js} +2 -4
  160. package/dist/core/{Solarize-DmhOkKoO.js → Solarize-DSiS32QS.js} +1 -3
  161. package/dist/core/{SolidColor-CyYoqgG3.js → SolidColor-DEKpgy1c.js} +2 -3
  162. package/dist/core/Sparkle-BZur6gPW.js +178 -0
  163. package/dist/core/{Spherize-D2gNetxE.js → Spherize-D9Yg4n6O.js} +2 -3
  164. package/dist/core/{Spiral-BCO6OJXU.js → Spiral-BCacfEpT.js} +2 -3
  165. package/dist/core/{Star-9JERbdHT.js → Star-Dnw1ihk7.js} +1 -2
  166. package/dist/core/{Stone-92McvPwz.js → Stone-Cje-_vAg.js} +1 -3
  167. package/dist/core/{Strands-B6NfRExJ.js → Strands-CFRxS1G_.js} +2 -4
  168. package/dist/core/{Stretch-DbUOkCav.js → Stretch-DXVhfIqO.js} +1 -2
  169. package/dist/core/{Stripes-BG2zbwGV.js → Stripes-CCADWwyq.js} +2 -3
  170. package/dist/core/{StudioBackground-tpZpD080.js → StudioBackground-BlzYNAsu.js} +2 -6
  171. package/dist/core/{SunBurst-BMH4MKRL.js → SunBurst-CmWbI18r.js} +2 -3
  172. package/dist/core/{Surface3D-DUZMTBel.js → Surface3D-Dmh98-0V.js} +2 -6
  173. package/dist/core/{Swirl-CzOPAKx8.js → Swirl-CzI1qSVc.js} +2 -4
  174. package/dist/core/{Teardrop-aOr2VYQI.js → Teardrop-D24uulL0.js} +1 -2
  175. package/dist/core/{Text-CV3Lr3m0.js → Text-CrZKvBw6.js} +2 -6
  176. package/dist/core/{ThinFilm-CYOodpsx.js → ThinFilm-D7R2dt1O.js} +3 -6
  177. package/dist/core/{TiltShift-Cv80ZHW3.js → TiltShift-AMMDZBvf.js} +2 -3
  178. package/dist/core/{TimeTrail-fvJO2a1q.js → TimeTrail-BCYDP2ep.js} +2 -6
  179. package/dist/core/{Tint-D4m85tFF.js → Tint-DHb5wBN5.js} +2 -3
  180. package/dist/core/{Trapezoid-B-PkXCCJ.js → Trapezoid-CL5Fxvq7.js} +1 -2
  181. package/dist/core/{TriangularGrid-hMfK10up.js → TriangularGrid-Bp-SJS-H.js} +2 -3
  182. package/dist/core/{Tritone-n1wNQ1dI.js → Tritone-C0nx7OdC.js} +2 -3
  183. package/dist/core/{Truchet-BhmcbIE9.js → Truchet-DCetyDaq.js} +2 -3
  184. package/dist/core/{Twirl-D8gALHXr.js → Twirl-D_mv9KEi.js} +1 -2
  185. package/dist/core/{VHS-CaqSB2Op.js → VHS-Cp9aDjti.js} +1 -2
  186. package/dist/core/{VenetianBlinds-B1-WjIeY.js → VenetianBlinds-DUyvaT5w.js} +2 -3
  187. package/dist/core/{Vesica-Gh1CMA7n.js → Vesica-BpzrTPTA.js} +1 -2
  188. package/dist/core/{Vibrance-ixBSdj4B.js → Vibrance-DW3J-pvW.js} +1 -3
  189. package/dist/core/{VideoTexture-DVQ1YsW2.js → VideoTexture-zoKsSrex.js} +1 -2
  190. package/dist/core/{Vignette-B9v8l0So.js → Vignette-KKbP3qdZ.js} +2 -5
  191. package/dist/core/{Voronoi-CIHogO9V.js → Voronoi-Bp2-U6lm.js} +2 -5
  192. package/dist/core/Voxels-B3e3LHH5.js +469 -0
  193. package/dist/core/{Water-Dh4UB4UF.js → Water-CoYwvqKx.js} +3 -8
  194. package/dist/core/{Watercolor-C70_K8Lv.js → Watercolor-DUNjSIN1.js} +2 -4
  195. package/dist/core/{WaveDistortion-BCKxUa-p.js → WaveDistortion-Dp8ws0z1.js} +1 -2
  196. package/dist/core/{Waveform-BKMFhH8R.js → Waveform-DDBLB6zu.js} +2 -9
  197. package/dist/core/{WaveletNoise-CFpncHiR.js → WaveletNoise-CpBkzfRT.js} +2 -4
  198. package/dist/core/{Weave-CYgbepeB.js → Weave-cWkvSEAy.js} +2 -3
  199. package/dist/core/{WebcamTexture-B0vkMk_l.js → WebcamTexture-D484SXSE.js} +1 -2
  200. package/dist/core/{Wool-CLkJUMng.js → Wool-C9L7O9fD.js} +1 -3
  201. package/dist/core/{WorleyNoise-BxznxOxV.js → WorleyNoise-B5j5lDQZ.js} +2 -3
  202. package/dist/core/{ZoomBlur-DtujxMsW.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 +15 -0
  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/waves.d.ts +6 -0
  214. package/dist/core/gpu/kit/waves.d.ts.map +1 -1
  215. package/dist/core/gpu/scaffolds/sdfShape.d.ts +1 -1
  216. package/dist/core/gpu/scaffolds/sdfShape.d.ts.map +1 -1
  217. package/dist/core/gpu/support.d.ts +12 -0
  218. package/dist/core/gpu/support.d.ts.map +1 -1
  219. package/dist/core/index.d.ts +3 -2
  220. package/dist/core/index.d.ts.map +1 -1
  221. package/dist/core/index.js +238 -255
  222. package/dist/core/llms.txt +1558 -0
  223. package/dist/core/{noiseColor-_P7nIu_L.js → noiseColor-D_bPhJ4m.js} +2 -2
  224. package/dist/core/presetRenderer.d.ts +4 -0
  225. package/dist/core/presetRenderer.d.ts.map +1 -1
  226. package/dist/core/registry.js +204 -248
  227. package/dist/core/shaderRegistry-BaozBFyh.js +445 -0
  228. package/dist/core/shaderRegistry.d.ts.map +1 -1
  229. package/dist/core/shaders/AngularBlur/index.d.ts +1 -1
  230. package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
  231. package/dist/core/shaders/AngularBlur/index.js +4 -10
  232. package/dist/core/shaders/Arc/index.js +4 -6
  233. package/dist/core/shaders/Ascii/index.d.ts +1 -1
  234. package/dist/core/shaders/Ascii/index.d.ts.map +1 -1
  235. package/dist/core/shaders/Ascii/index.js +4 -11
  236. package/dist/core/shaders/Aurora/index.js +4 -21
  237. package/dist/core/shaders/BarShift/index.js +4 -8
  238. package/dist/core/shaders/BarnDoors/index.js +4 -7
  239. package/dist/core/shaders/Beam/index.js +4 -11
  240. package/dist/core/shaders/Bend/index.js +4 -8
  241. package/dist/core/shaders/Blob/index.js +4 -18
  242. package/dist/core/shaders/BlockDissolve/index.js +4 -7
  243. package/dist/core/shaders/BlockNoise/index.d.ts +1 -1
  244. package/dist/core/shaders/BlockNoise/index.d.ts.map +1 -1
  245. package/dist/core/shaders/BlockNoise/index.js +5 -14
  246. package/dist/core/shaders/BlueNoise/index.d.ts +1 -1
  247. package/dist/core/shaders/BlueNoise/index.d.ts.map +1 -1
  248. package/dist/core/shaders/BlueNoise/index.js +5 -14
  249. package/dist/core/shaders/Blur/index.d.ts +1 -1
  250. package/dist/core/shaders/Blur/index.d.ts.map +1 -1
  251. package/dist/core/shaders/Blur/index.js +4 -10
  252. package/dist/core/shaders/Boids/index.js +4 -9
  253. package/dist/core/shaders/BokehBlur/index.js +4 -10
  254. package/dist/core/shaders/BrickPattern/index.d.ts +1 -1
  255. package/dist/core/shaders/BrickPattern/index.d.ts.map +1 -1
  256. package/dist/core/shaders/BrickPattern/index.js +4 -13
  257. package/dist/core/shaders/BrightnessContrast/index.js +4 -7
  258. package/dist/core/shaders/BrushedMetal/index.js +4 -11
  259. package/dist/core/shaders/Bulge/index.js +4 -8
  260. package/dist/core/shaders/CRTScreen/index.d.ts +2 -2
  261. package/dist/core/shaders/CRTScreen/index.d.ts.map +1 -1
  262. package/dist/core/shaders/CRTScreen/index.js +4 -10
  263. package/dist/core/shaders/CarbonFiber/index.js +4 -11
  264. package/dist/core/shaders/Chalkboard/index.d.ts +1 -1
  265. package/dist/core/shaders/Chalkboard/index.d.ts.map +1 -1
  266. package/dist/core/shaders/Chalkboard/index.js +4 -9
  267. package/dist/core/shaders/ChannelBlur/index.d.ts +1 -1
  268. package/dist/core/shaders/ChannelBlur/index.d.ts.map +1 -1
  269. package/dist/core/shaders/ChannelBlur/index.js +4 -10
  270. package/dist/core/shaders/CheckerWipe/index.js +4 -7
  271. package/dist/core/shaders/Checkerboard/index.d.ts +1 -1
  272. package/dist/core/shaders/Checkerboard/index.d.ts.map +1 -1
  273. package/dist/core/shaders/Checkerboard/index.js +4 -13
  274. package/dist/core/shaders/Chevron/index.d.ts +1 -1
  275. package/dist/core/shaders/Chevron/index.d.ts.map +1 -1
  276. package/dist/core/shaders/Chevron/index.js +4 -13
  277. package/dist/core/shaders/ChromaFlow/index.js +4 -8
  278. package/dist/core/shaders/ChromaticAberration/index.js +4 -11
  279. package/dist/core/shaders/Chrome/index.js +4 -10
  280. package/dist/core/shaders/Circle/index.js +4 -6
  281. package/dist/core/shaders/ColorWheel/index.js +4 -11
  282. package/dist/core/shaders/CompressionArtifacts/index.js +4 -7
  283. package/dist/core/shaders/ConcentricSpin/index.js +4 -8
  284. package/dist/core/shaders/ConicGradient/index.js +4 -11
  285. package/dist/core/shaders/ContourLines/index.js +4 -6
  286. package/dist/core/shaders/CornerPin/index.js +4 -8
  287. package/dist/core/shaders/Crescent/index.js +4 -5
  288. package/dist/core/shaders/Cross/index.js +4 -5
  289. package/dist/core/shaders/Crystal/index.js +4 -11
  290. package/dist/core/shaders/CurlNoise/index.d.ts +1 -1
  291. package/dist/core/shaders/CurlNoise/index.d.ts.map +1 -1
  292. package/dist/core/shaders/CurlNoise/index.js +5 -14
  293. package/dist/core/shaders/CursorRipples/index.js +4 -7
  294. package/dist/core/shaders/CursorTrail/index.js +4 -7
  295. package/dist/core/shaders/DataMosh/index.js +4 -7
  296. package/dist/core/shaders/DiamondGradient/index.js +4 -11
  297. package/dist/core/shaders/DiamondWipe/index.js +4 -7
  298. package/dist/core/shaders/DiffuseBlur/index.d.ts +1 -1
  299. package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
  300. package/dist/core/shaders/DiffuseBlur/index.js +4 -10
  301. package/dist/core/shaders/DisplacementMap/index.js +4 -8
  302. package/dist/core/shaders/Dither/index.d.ts +1 -1
  303. package/dist/core/shaders/Dither/index.d.ts.map +1 -1
  304. package/dist/core/shaders/Dither/index.js +4 -13
  305. package/dist/core/shaders/DotGrid/index.d.ts +2 -2
  306. package/dist/core/shaders/DotGrid/index.d.ts.map +1 -1
  307. package/dist/core/shaders/DotGrid/index.js +4 -13
  308. package/dist/core/shaders/DropShadow/index.d.ts +1 -1
  309. package/dist/core/shaders/DropShadow/index.d.ts.map +1 -1
  310. package/dist/core/shaders/DropShadow/index.js +4 -10
  311. package/dist/core/shaders/Duotone/index.js +4 -6
  312. package/dist/core/shaders/Ellipse/index.js +4 -5
  313. package/dist/core/shaders/Emboss/index.js +4 -9
  314. package/dist/core/shaders/Engraving/index.js +4 -9
  315. package/dist/core/shaders/ErosionNoise/index.d.ts +1 -1
  316. package/dist/core/shaders/ErosionNoise/index.d.ts.map +1 -1
  317. package/dist/core/shaders/ErosionNoise/index.js +5 -14
  318. package/dist/core/shaders/Exposure/index.js +4 -7
  319. package/dist/core/shaders/FallingLines/index.d.ts +1 -1
  320. package/dist/core/shaders/FallingLines/index.d.ts.map +1 -1
  321. package/dist/core/shaders/FallingLines/index.js +4 -13
  322. package/dist/core/shaders/FilmGrain/index.js +4 -7
  323. package/dist/core/shaders/FilmStock/index.js +4 -13
  324. package/dist/core/shaders/Flip/index.js +4 -8
  325. package/dist/core/shaders/FloatingParticles/index.d.ts +1 -1
  326. package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
  327. package/dist/core/shaders/FloatingParticles/index.js +4 -9
  328. package/dist/core/shaders/FlowField/index.js +4 -8
  329. package/dist/core/shaders/Flower/index.js +4 -5
  330. package/dist/core/shaders/FlowingGradient/index.js +4 -15
  331. package/dist/core/shaders/FlutedGlass/index.js +4 -11
  332. package/dist/core/shaders/Fog/index.js +4 -7
  333. package/dist/core/shaders/Form3D/index.js +4 -7
  334. package/dist/core/shaders/FractalNoise/index.d.ts +1 -1
  335. package/dist/core/shaders/FractalNoise/index.d.ts.map +1 -1
  336. package/dist/core/shaders/FractalNoise/index.js +4 -13
  337. package/dist/core/shaders/Frost/index.js +4 -11
  338. package/dist/core/shaders/GaborNoise/index.d.ts +2 -2
  339. package/dist/core/shaders/GaborNoise/index.d.ts.map +1 -1
  340. package/dist/core/shaders/GaborNoise/index.js +5 -14
  341. package/dist/core/shaders/Glass/index.js +4 -11
  342. package/dist/core/shaders/GlassTiles/index.d.ts +1 -1
  343. package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
  344. package/dist/core/shaders/GlassTiles/index.js +4 -8
  345. package/dist/core/shaders/Glitch/index.d.ts +1 -1
  346. package/dist/core/shaders/Glitch/index.d.ts.map +1 -1
  347. package/dist/core/shaders/Glitch/index.js +4 -10
  348. package/dist/core/shaders/Glow/index.d.ts +1 -1
  349. package/dist/core/shaders/Glow/index.d.ts.map +1 -1
  350. package/dist/core/shaders/Glow/index.js +4 -11
  351. package/dist/core/shaders/Godrays/index.js +4 -12
  352. package/dist/core/shaders/Goo/index.js +4 -11
  353. package/dist/core/shaders/GradientMap/index.js +4 -7
  354. package/dist/core/shaders/Grayscale/index.js +4 -6
  355. package/dist/core/shaders/Grid/index.d.ts +2 -2
  356. package/dist/core/shaders/Grid/index.d.ts.map +1 -1
  357. package/dist/core/shaders/Grid/index.js +4 -13
  358. package/dist/core/shaders/GridDistortion/index.js +4 -11
  359. package/dist/core/shaders/Group/index.js +4 -6
  360. package/dist/core/shaders/HTMLInCanvas/index.js +4 -7
  361. package/dist/core/shaders/Halftone/index.d.ts +1 -1
  362. package/dist/core/shaders/Halftone/index.d.ts.map +1 -1
  363. package/dist/core/shaders/Halftone/index.js +4 -13
  364. package/dist/core/shaders/Heart/index.js +4 -5
  365. package/dist/core/shaders/Heatmap/index.js +4 -11
  366. package/dist/core/shaders/HexGrid/index.d.ts +2 -2
  367. package/dist/core/shaders/HexGrid/index.d.ts.map +1 -1
  368. package/dist/core/shaders/HexGrid/index.js +4 -13
  369. package/dist/core/shaders/Hologram/index.js +4 -10
  370. package/dist/core/shaders/Holographic/index.js +4 -10
  371. package/dist/core/shaders/HueShift/index.js +4 -7
  372. package/dist/core/shaders/ImageTexture/index.js +4 -6
  373. package/dist/core/shaders/InkFlow/index.js +4 -8
  374. package/dist/core/shaders/Invert/index.js +4 -6
  375. package/dist/core/shaders/IrisWipe/index.js +4 -7
  376. package/dist/core/shaders/Irradiance/index.js +4 -13
  377. package/dist/core/shaders/IsometricCubes/index.d.ts +1 -1
  378. package/dist/core/shaders/IsometricCubes/index.d.ts.map +1 -1
  379. package/dist/core/shaders/IsometricCubes/index.js +4 -13
  380. package/dist/core/shaders/Kaleidoscope/index.js +4 -8
  381. package/dist/core/shaders/KeyFrames/index.js +4 -10
  382. package/dist/core/shaders/LensDistortion/index.js +4 -6
  383. package/dist/core/shaders/LensFlare/index.d.ts +1 -1
  384. package/dist/core/shaders/LensFlare/index.d.ts.map +1 -1
  385. package/dist/core/shaders/LensFlare/index.js +4 -12
  386. package/dist/core/shaders/LightEdge/index.js +4 -10
  387. package/dist/core/shaders/LightLeak/index.js +4 -12
  388. package/dist/core/shaders/Line/index.js +4 -10
  389. package/dist/core/shaders/LinearBlur/index.d.ts +1 -1
  390. package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
  391. package/dist/core/shaders/LinearBlur/index.js +4 -10
  392. package/dist/core/shaders/LinearGradient/index.js +4 -11
  393. package/dist/core/shaders/LinearWipe/index.js +4 -7
  394. package/dist/core/shaders/LiquidMetal/index.js +4 -11
  395. package/dist/core/shaders/Liquify/index.js +4 -10
  396. package/dist/core/shaders/MagneticFilings/index.js +4 -9
  397. package/dist/core/shaders/Marble/index.d.ts +1 -1
  398. package/dist/core/shaders/Marble/index.d.ts.map +1 -1
  399. package/dist/core/shaders/Marble/index.js +4 -15
  400. package/dist/core/shaders/MeshGradient/index.js +4 -17
  401. package/dist/core/shaders/Mirror/index.js +4 -8
  402. package/dist/core/shaders/MultiPointGradient/index.js +4 -11
  403. package/dist/core/shaders/Nebula/index.js +4 -13
  404. package/dist/core/shaders/Neon/index.js +4 -9
  405. package/dist/core/shaders/NoiseDissolve/index.js +4 -7
  406. package/dist/core/shaders/ObjectTracker/index.js +4 -10
  407. package/dist/core/shaders/Obsidian/index.js +4 -15
  408. package/dist/core/shaders/PagePeel/index.js +4 -10
  409. package/dist/core/shaders/Paper/index.d.ts +1 -1
  410. package/dist/core/shaders/Paper/index.d.ts.map +1 -1
  411. package/dist/core/shaders/Paper/index.js +4 -8
  412. package/dist/core/shaders/Parallelogram/index.js +4 -5
  413. package/dist/core/shaders/ParticleField/index.js +4 -9
  414. package/dist/core/shaders/ParticleFlow/index.js +4 -10
  415. package/dist/core/shaders/Particles/index.js +4 -9
  416. package/dist/core/shaders/PerlinNoise/index.d.ts +2 -2
  417. package/dist/core/shaders/PerlinNoise/index.d.ts.map +1 -1
  418. package/dist/core/shaders/PerlinNoise/index.js +5 -14
  419. package/dist/core/shaders/Perspective/index.js +4 -8
  420. package/dist/core/shaders/PixelSort/index.js +4 -8
  421. package/dist/core/shaders/PixelThrow/index.js +4 -8
  422. package/dist/core/shaders/Pixelate/index.d.ts +1 -1
  423. package/dist/core/shaders/Pixelate/index.d.ts.map +1 -1
  424. package/dist/core/shaders/Pixelate/index.js +4 -10
  425. package/dist/core/shaders/Plasma/index.js +4 -11
  426. package/dist/core/shaders/Plastic/index.js +4 -11
  427. package/dist/core/shaders/PolarCoordinates/index.js +4 -8
  428. package/dist/core/shaders/Polygon/index.js +4 -6
  429. package/dist/core/shaders/Posterize/index.js +4 -6
  430. package/dist/core/shaders/Prism/index.js +4 -12
  431. package/dist/core/shaders/ProgressiveBlur/index.d.ts +1 -1
  432. package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
  433. package/dist/core/shaders/ProgressiveBlur/index.js +4 -10
  434. package/dist/core/shaders/RadialGradient/index.js +4 -11
  435. package/dist/core/shaders/RadialWipe/index.js +4 -7
  436. package/dist/core/shaders/RandomBars/index.js +4 -7
  437. package/dist/core/shaders/ReactionDiffusion/index.js +4 -8
  438. package/dist/core/shaders/RectangularCoordinates/index.js +4 -8
  439. package/dist/core/shaders/ReflectivePlane/index.js +4 -10
  440. package/dist/core/shaders/Repeater/index.js +4 -5
  441. package/dist/core/shaders/Ring/index.js +4 -5
  442. package/dist/core/shaders/RippleWipe/index.js +4 -7
  443. package/dist/core/shaders/Ripples/index.d.ts +1 -1
  444. package/dist/core/shaders/Ripples/index.d.ts.map +1 -1
  445. package/dist/core/shaders/Ripples/index.js +4 -13
  446. package/dist/core/shaders/RoundedRect/index.js +4 -5
  447. package/dist/core/shaders/Saturation/index.js +4 -7
  448. package/dist/core/shaders/Scratches/index.d.ts +1 -1
  449. package/dist/core/shaders/Scratches/index.d.ts.map +1 -1
  450. package/dist/core/shaders/Scratches/index.js +5 -14
  451. package/dist/core/shaders/Sharpness/index.d.ts +1 -1
  452. package/dist/core/shaders/Sharpness/index.d.ts.map +1 -1
  453. package/dist/core/shaders/Sharpness/index.js +4 -11
  454. package/dist/core/shaders/Shatter/index.js +4 -6
  455. package/dist/core/shaders/SimplexNoise/index.d.ts +1 -1
  456. package/dist/core/shaders/SimplexNoise/index.d.ts.map +1 -1
  457. package/dist/core/shaders/SimplexNoise/index.js +5 -14
  458. package/dist/core/shaders/SineWave/index.js +4 -10
  459. package/dist/core/shaders/SliceWipe/index.js +4 -8
  460. package/dist/core/shaders/Smoke/index.js +4 -7
  461. package/dist/core/shaders/SmokeFill/index.js +4 -10
  462. package/dist/core/shaders/SmokeFlow/index.js +4 -7
  463. package/dist/core/shaders/Solarize/index.js +4 -7
  464. package/dist/core/shaders/SolidColor/index.js +4 -11
  465. package/dist/core/shaders/Sparkle/index.d.ts +57 -0
  466. package/dist/core/shaders/Sparkle/index.d.ts.map +1 -0
  467. package/dist/core/shaders/Sparkle/index.js +5 -0
  468. package/dist/core/shaders/Spherize/index.d.ts +1 -1
  469. package/dist/core/shaders/Spherize/index.d.ts.map +1 -1
  470. package/dist/core/shaders/Spherize/index.js +4 -10
  471. package/dist/core/shaders/Spiral/index.js +4 -11
  472. package/dist/core/shaders/Star/index.js +4 -5
  473. package/dist/core/shaders/Stone/index.d.ts +1 -1
  474. package/dist/core/shaders/Stone/index.d.ts.map +1 -1
  475. package/dist/core/shaders/Stone/index.js +4 -14
  476. package/dist/core/shaders/Strands/index.d.ts +1 -1
  477. package/dist/core/shaders/Strands/index.d.ts.map +1 -1
  478. package/dist/core/shaders/Strands/index.js +4 -13
  479. package/dist/core/shaders/Stretch/index.js +4 -8
  480. package/dist/core/shaders/Stripes/index.d.ts +1 -1
  481. package/dist/core/shaders/Stripes/index.d.ts.map +1 -1
  482. package/dist/core/shaders/Stripes/index.js +4 -13
  483. package/dist/core/shaders/StudioBackground/index.js +4 -14
  484. package/dist/core/shaders/SunBurst/index.js +4 -12
  485. package/dist/core/shaders/Surface3D/index.js +4 -8
  486. package/dist/core/shaders/Swirl/index.js +4 -11
  487. package/dist/core/shaders/Teardrop/index.js +4 -5
  488. package/dist/core/shaders/Text/index.js +4 -12
  489. package/dist/core/shaders/ThinFilm/index.js +4 -9
  490. package/dist/core/shaders/TiltShift/index.d.ts +1 -1
  491. package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
  492. package/dist/core/shaders/TiltShift/index.js +4 -10
  493. package/dist/core/shaders/TimeTrail/index.js +4 -8
  494. package/dist/core/shaders/Tint/index.js +4 -6
  495. package/dist/core/shaders/Trapezoid/index.js +4 -5
  496. package/dist/core/shaders/TriangularGrid/index.d.ts +1 -1
  497. package/dist/core/shaders/TriangularGrid/index.d.ts.map +1 -1
  498. package/dist/core/shaders/TriangularGrid/index.js +4 -13
  499. package/dist/core/shaders/Tritone/index.js +4 -6
  500. package/dist/core/shaders/Truchet/index.d.ts +1 -1
  501. package/dist/core/shaders/Truchet/index.d.ts.map +1 -1
  502. package/dist/core/shaders/Truchet/index.js +4 -13
  503. package/dist/core/shaders/Twirl/index.js +4 -8
  504. package/dist/core/shaders/VHS/index.d.ts +1 -1
  505. package/dist/core/shaders/VHS/index.d.ts.map +1 -1
  506. package/dist/core/shaders/VHS/index.js +4 -10
  507. package/dist/core/shaders/VenetianBlinds/index.js +4 -7
  508. package/dist/core/shaders/Vesica/index.js +4 -5
  509. package/dist/core/shaders/Vibrance/index.js +4 -7
  510. package/dist/core/shaders/VideoTexture/index.js +4 -6
  511. package/dist/core/shaders/Vignette/index.js +4 -8
  512. package/dist/core/shaders/Voronoi/index.d.ts +1 -1
  513. package/dist/core/shaders/Voronoi/index.d.ts.map +1 -1
  514. package/dist/core/shaders/Voronoi/index.js +4 -13
  515. package/dist/core/shaders/Voxels/index.js +4 -14
  516. package/dist/core/shaders/Water/index.js +4 -11
  517. package/dist/core/shaders/Watercolor/index.d.ts +1 -1
  518. package/dist/core/shaders/Watercolor/index.d.ts.map +1 -1
  519. package/dist/core/shaders/Watercolor/index.js +4 -10
  520. package/dist/core/shaders/WaveDistortion/index.js +4 -8
  521. package/dist/core/shaders/Waveform/index.js +4 -16
  522. package/dist/core/shaders/WaveletNoise/index.d.ts +1 -1
  523. package/dist/core/shaders/WaveletNoise/index.d.ts.map +1 -1
  524. package/dist/core/shaders/WaveletNoise/index.js +5 -14
  525. package/dist/core/shaders/Weave/index.d.ts +1 -1
  526. package/dist/core/shaders/Weave/index.d.ts.map +1 -1
  527. package/dist/core/shaders/Weave/index.js +4 -13
  528. package/dist/core/shaders/WebcamTexture/index.js +4 -6
  529. package/dist/core/shaders/Wool/index.d.ts +1 -1
  530. package/dist/core/shaders/Wool/index.d.ts.map +1 -1
  531. package/dist/core/shaders/Wool/index.js +4 -14
  532. package/dist/core/shaders/WorleyNoise/index.d.ts +1 -1
  533. package/dist/core/shaders/WorleyNoise/index.d.ts.map +1 -1
  534. package/dist/core/shaders/WorleyNoise/index.js +4 -13
  535. package/dist/core/shaders/ZoomBlur/index.d.ts +1 -1
  536. package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
  537. package/dist/core/shaders/ZoomBlur/index.js +4 -10
  538. package/dist/core/std/effects/blurs.d.ts +656 -138
  539. package/dist/core/std/effects/blurs.d.ts.map +1 -1
  540. package/dist/core/std/effects/color.d.ts +209 -32
  541. package/dist/core/std/effects/color.d.ts.map +1 -1
  542. package/dist/core/std/effects/edgeGlow.d.ts +86 -17
  543. package/dist/core/std/effects/edgeGlow.d.ts.map +1 -1
  544. package/dist/core/std/effects/fracture.d.ts +72 -8
  545. package/dist/core/std/effects/fracture.d.ts.map +1 -1
  546. package/dist/core/std/effects/index.d.ts +15 -0
  547. package/dist/core/std/effects/index.d.ts.map +1 -0
  548. package/dist/core/std/effects/instances.d.ts +87 -8
  549. package/dist/core/std/effects/instances.d.ts.map +1 -1
  550. package/dist/core/std/effects/lens.d.ts +48 -12
  551. package/dist/core/std/effects/lens.d.ts.map +1 -1
  552. package/dist/core/std/effects/overlay.d.ts +63 -22
  553. package/dist/core/std/effects/overlay.d.ts.map +1 -1
  554. package/dist/core/std/effects/pointerFields.d.ts +45 -20
  555. package/dist/core/std/effects/pointerFields.d.ts.map +1 -1
  556. package/dist/core/std/effects/reveal.d.ts +118 -40
  557. package/dist/core/std/effects/reveal.d.ts.map +1 -1
  558. package/dist/core/std/effects/stylize.d.ts +139 -70
  559. package/dist/core/std/effects/stylize.d.ts.map +1 -1
  560. package/dist/core/std/filter.d.ts +72 -12
  561. package/dist/core/std/filter.d.ts.map +1 -1
  562. package/dist/core/std/frames.d.ts +91 -24
  563. package/dist/core/std/frames.d.ts.map +1 -1
  564. package/dist/core/std/index.d.ts +46 -8
  565. package/dist/core/std/index.d.ts.map +1 -1
  566. package/dist/core/std/index.js +4 -0
  567. package/dist/core/std/invoke.d.ts +107 -12
  568. package/dist/core/std/invoke.d.ts.map +1 -1
  569. package/dist/core/std/lists.d.ts +40 -10
  570. package/dist/core/std/lists.d.ts.map +1 -1
  571. package/dist/core/std/lower.d.ts +73 -1
  572. package/dist/core/std/lower.d.ts.map +1 -1
  573. package/dist/core/std/mask.d.ts +60 -17
  574. package/dist/core/std/mask.d.ts.map +1 -1
  575. package/dist/core/std/math.d.ts +484 -9
  576. package/dist/core/std/math.d.ts.map +1 -1
  577. package/dist/core/std/motion.d.ts +130 -10
  578. package/dist/core/std/motion.d.ts.map +1 -1
  579. package/dist/core/std/paint/compose.d.ts +57 -16
  580. package/dist/core/std/paint/compose.d.ts.map +1 -1
  581. package/dist/core/std/paint/fields.d.ts +376 -93
  582. package/dist/core/std/paint/fields.d.ts.map +1 -1
  583. package/dist/core/std/paint/figures.d.ts +32 -17
  584. package/dist/core/std/paint/figures.d.ts.map +1 -1
  585. package/dist/core/std/paint/gradients.d.ts +58 -25
  586. package/dist/core/std/paint/gradients.d.ts.map +1 -1
  587. package/dist/core/std/paint/light.d.ts +501 -77
  588. package/dist/core/std/paint/light.d.ts.map +1 -1
  589. package/dist/core/std/paint/materials.d.ts +678 -151
  590. package/dist/core/std/paint/materials.d.ts.map +1 -1
  591. package/dist/core/std/paint/media.d.ts +47 -32
  592. package/dist/core/std/paint/media.d.ts.map +1 -1
  593. package/dist/core/std/paint/noise.d.ts +436 -87
  594. package/dist/core/std/paint/noise.d.ts.map +1 -1
  595. package/dist/core/std/paint/patterns.d.ts +473 -91
  596. package/dist/core/std/paint/patterns.d.ts.map +1 -1
  597. package/dist/core/std/paint/radiance.d.ts +75 -29
  598. package/dist/core/std/paint/radiance.d.ts.map +1 -1
  599. package/dist/core/std/paint/volume.d.ts +68 -27
  600. package/dist/core/std/paint/volume.d.ts.map +1 -1
  601. package/dist/core/std/paint/voxels.d.ts +46 -26
  602. package/dist/core/std/paint/voxels.d.ts.map +1 -1
  603. package/dist/core/std/shape.d.ts +195 -1
  604. package/dist/core/std/shape.d.ts.map +1 -1
  605. package/dist/core/std/signal.d.ts +55 -15
  606. package/dist/core/std/signal.d.ts.map +1 -1
  607. package/dist/core/std/sim/agentForces.d.ts +441 -99
  608. package/dist/core/std/sim/agentForces.d.ts.map +1 -1
  609. package/dist/core/std/sim/agentFrame.d.ts +94 -20
  610. package/dist/core/std/sim/agentFrame.d.ts.map +1 -1
  611. package/dist/core/std/sim/agentRender.d.ts +187 -60
  612. package/dist/core/std/sim/agentRender.d.ts.map +1 -1
  613. package/dist/core/std/sim/agents.d.ts +99 -28
  614. package/dist/core/std/sim/agents.d.ts.map +1 -1
  615. package/dist/core/std/sim/feedback.d.ts +40 -19
  616. package/dist/core/std/sim/feedback.d.ts.map +1 -1
  617. package/dist/core/std/sim/fluids.d.ts +127 -63
  618. package/dist/core/std/sim/fluids.d.ts.map +1 -1
  619. package/dist/core/std/sim/grids.d.ts +200 -48
  620. package/dist/core/std/sim/grids.d.ts.map +1 -1
  621. package/dist/core/std/sim/index.d.ts +14 -0
  622. package/dist/core/std/sim/index.d.ts.map +1 -0
  623. package/dist/core/std/sim/shapeFields.d.ts +56 -0
  624. package/dist/core/std/sim/shapeFields.d.ts.map +1 -1
  625. package/dist/core/std/sim.d.ts +112 -10
  626. package/dist/core/std/sim.d.ts.map +1 -1
  627. package/dist/core/std/slots.d.ts +72 -6
  628. package/dist/core/std/slots.d.ts.map +1 -1
  629. package/dist/core/std/types.d.ts +97 -60
  630. package/dist/core/std/types.d.ts.map +1 -1
  631. package/dist/core/std/values.d.ts +33 -14
  632. package/dist/core/std/values.d.ts.map +1 -1
  633. package/dist/core/std/warps.d.ts +221 -76
  634. package/dist/core/std/warps.d.ts.map +1 -1
  635. package/dist/core/std/wgsl.d.ts +115 -0
  636. package/dist/core/std/wgsl.d.ts.map +1 -0
  637. package/dist/core/std-ClftfWpF.js +218889 -0
  638. package/dist/core/{support-GJphyuEe.js → support-D3W86vgR.js} +11 -1
  639. package/dist/core/telemetry/index.js +1 -1
  640. package/dist/core/utilities/transformations/index.js +1 -1
  641. package/dist/js/bundle.js +182 -180
  642. package/dist/js/createShader.d.ts.map +1 -1
  643. package/dist/js/createShader.js +4 -3
  644. package/dist/js/types.d.ts +5 -0
  645. package/dist/js/types.d.ts.map +1 -1
  646. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  647. package/dist/js/utils/generatePresetCode.js +35 -22
  648. package/dist/react/CustomShader.js +178 -0
  649. package/dist/react/Preview.js +1 -0
  650. package/dist/react/Shader.js +1 -1
  651. package/dist/react/Sparkle.js +226 -0
  652. package/dist/react/bundle.js +178 -176
  653. package/dist/react/components/Sparkle.d.ts +41 -0
  654. package/dist/react/components/Sparkle.d.ts.map +1 -0
  655. package/dist/react/engine/CustomShader.d.ts +37 -0
  656. package/dist/react/engine/CustomShader.d.ts.map +1 -0
  657. package/dist/react/engine/Preview.d.ts.map +1 -1
  658. package/dist/react/index.d.ts +5 -0
  659. package/dist/react/index.d.ts.map +1 -1
  660. package/dist/react/index.js +4 -2
  661. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  662. package/dist/react/utils/generatePresetCode.js +35 -22
  663. package/dist/registry.js +310 -58
  664. package/dist/solid/components/Sparkle.d.ts +38 -0
  665. package/dist/solid/components/Sparkle.d.ts.map +1 -0
  666. package/dist/solid/components/Sparkle.js +232 -0
  667. package/dist/solid/engine/CustomShader.d.ts +35 -0
  668. package/dist/solid/engine/CustomShader.d.ts.map +1 -0
  669. package/dist/solid/engine/CustomShader.js +160 -0
  670. package/dist/solid/engine/Preview.d.ts.map +1 -1
  671. package/dist/solid/engine/Preview.js +319 -317
  672. package/dist/solid/engine/Shader.js +1 -1
  673. package/dist/solid/index.d.ts +5 -0
  674. package/dist/solid/index.d.ts.map +1 -1
  675. package/dist/solid/index.js +95 -86
  676. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  677. package/dist/solid/utils/generatePresetCode.js +35 -22
  678. package/dist/svelte/components/Sparkle.svelte.d.ts +28 -0
  679. package/dist/svelte/engine/CustomShader.svelte.d.ts +40 -0
  680. package/dist/svelte/index.d.ts +4 -0
  681. package/dist/svelte/index.js +1237 -877
  682. package/dist/svelte/source/components/Sparkle.svelte +352 -0
  683. package/dist/svelte/source/engine/CustomShader.svelte +216 -0
  684. package/dist/svelte/source/engine/Preview.svelte +5 -3
  685. package/dist/svelte/source/index.js +4 -0
  686. package/dist/svelte/utils/generatePresetCode.js +35 -22
  687. package/dist/vue/CustomShader.js +3 -0
  688. package/dist/vue/CustomShader.vue_vue_type_script_setup_true_lang.js +173 -0
  689. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  690. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  691. package/dist/vue/Sparkle.js +3 -0
  692. package/dist/vue/Sparkle.vue_vue_type_script_setup_true_lang.js +233 -0
  693. package/dist/vue/components/Sparkle.vue.d.ts +63 -0
  694. package/dist/vue/components/Sparkle.vue.d.ts.map +1 -0
  695. package/dist/vue/index.d.ts +4 -0
  696. package/dist/vue/index.d.ts.map +1 -1
  697. package/dist/vue/index.js +4 -2
  698. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  699. package/dist/vue/utils/generatePresetCode.js +35 -22
  700. package/package.json +27 -2
  701. package/dist/core/Irradiance-DtC4tqNu.js +0 -4191
  702. package/dist/core/LightEdge-BV9bO8YB.js +0 -2339
  703. package/dist/core/Repeater-DU_EhoxD.js +0 -762
  704. package/dist/core/Shatter-DYKKCVD8.js +0 -1479
  705. package/dist/core/Voxels-LEG0c9YC.js +0 -8547
  706. package/dist/core/agents-CdLlm-5E.js +0 -5357
  707. package/dist/core/agents-DZaZ4n9_.js +0 -15709
  708. package/dist/core/blur-CrEChFnm.js +0 -8015
  709. package/dist/core/blurs-D5a6ad3o.js +0 -1751
  710. package/dist/core/canvasRaster-DDBkrdY8.js +0 -80
  711. package/dist/core/color-CY5teMWa.js +0 -3619
  712. package/dist/core/compose-DNU_Ut36.js +0 -46
  713. package/dist/core/device-m0ud8-Fn.js +0 -10
  714. package/dist/core/feedback-yfT0pT6A.js +0 -46
  715. package/dist/core/fields-CXwmEUsd.js +0 -475
  716. package/dist/core/figures-BRYcB-p2.js +0 -48
  717. package/dist/core/filter-BrhpSs3Z.js +0 -23
  718. package/dist/core/fluids-CBhAiGAx.js +0 -226
  719. package/dist/core/fonts-BUXTd9qb.js +0 -59
  720. package/dist/core/frames-Clw8-BpA.js +0 -78
  721. package/dist/core/glass-DIEus1UY.js +0 -2532
  722. package/dist/core/gradientPaints-Cx2bT20T.js +0 -6564
  723. package/dist/core/gradients-C15o7_xy.js +0 -159
  724. package/dist/core/grids-Cv99xcJg.js +0 -151
  725. package/dist/core/lens-ChO_HVpe.js +0 -352
  726. package/dist/core/light-Bba_Pie_.js +0 -271
  727. package/dist/core/lightfields-D120ZvMt.js +0 -2255
  728. package/dist/core/lower-DtoDQ7hV.js +0 -49452
  729. package/dist/core/mask-6rnSCir2.js +0 -28
  730. package/dist/core/materials-BjsiWqS0.js +0 -2944
  731. package/dist/core/math-7PlusTFx.js +0 -56
  732. package/dist/core/media-CgWmWvGq.js +0 -832
  733. package/dist/core/mediaLifecycle-BTPb5i1-.js +0 -320
  734. package/dist/core/motionBlur-DzaHMq9p.js +0 -6766
  735. package/dist/core/noise-G7a5U0ar.js +0 -546
  736. package/dist/core/noisePaints-B_axPpuv.js +0 -3619
  737. package/dist/core/noiseStylize-CUrW_HiC.js +0 -65
  738. package/dist/core/overlay-W4DAsSzP.js +0 -4712
  739. package/dist/core/patterns-RTt6Fek8.js +0 -9723
  740. package/dist/core/pointerFields-Ch_-cbCV.js +0 -2339
  741. package/dist/core/porters-CQwDd2t4.js +0 -30201
  742. package/dist/core/reveal-dbBiS7gE.js +0 -1688
  743. package/dist/core/sdf3d-BMqCSSPB.js +0 -21082
  744. package/dist/core/shaderRegistry-Bs0XOv9A.js +0 -443
  745. package/dist/core/shape-B2CoDi6l.js +0 -20
  746. package/dist/core/shapePaints-7HrXeLYX.js +0 -3354
  747. package/dist/core/signal-emJuvOI3.js +0 -34
  748. package/dist/core/slots-BqIef2iV.js +0 -32
  749. package/dist/core/stylize-CiN0ZaMu.js +0 -4541
  750. package/dist/core/tone-CsRho9qb.js +0 -763
  751. package/dist/core/warpMaps-Dbuleg2M.js +0 -10773
  752. package/dist/core/warps-gIr3RmZV.js +0 -276
  753. /package/dist/core/{transformations-CzFmhZww.js → transformations-P50Uo_Ju.js} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { GpuComputeNode, GpuFragmentParams } from '../../gpu/contract';
2
2
  import { ComputeStep } from '../../gpu/compute';
3
3
 
4
- /** The TypeGPU root, via the contract (direct `typegpu` imports are restricted to src/gpu/). */
4
+ /** The GPU device handle the build callback receives, for creating the buffers and passes your stages use. */
5
5
  export type GridRoot = NonNullable<GpuFragmentParams['gpu']>['root'];
6
- /** The renderer's per-frame params, as the grid consumers read them. */
6
+ /** What the renderer reports each frame: the pointer in uv, the frame delta in seconds, the canvas size in pixels. */
7
7
  export interface GridFrameParams {
8
8
  pointer?: {
9
9
  x: number;
@@ -15,95 +15,210 @@ export interface GridFrameParams {
15
15
  height: number;
16
16
  };
17
17
  }
18
- /** One frame of the simulation, handed to every stage. */
18
+ /** One frame, as every stage sees it: the clamped delta, the clock, and your props. */
19
19
  export interface GridFrame {
20
- /** `fp.deltaTime ?? 0`, clamped to `clampDt`. */
20
+ /** Seconds since the last frame, never more than `clampDt`. */
21
21
  dt: number;
22
- /** `Date.now()` this frame — the settle gates' clock. */
22
+ /** Wall-clock milliseconds this frame. */
23
23
  now: number;
24
+ /** A numeric prop's current value, or `fallback` when it is not a number this frame. */
24
25
  num(key: string, fallback: number): number;
26
+ /** Any prop's current value. */
25
27
  getCpuValue(key: string): unknown;
26
28
  frameParams: GridFrameParams;
27
29
  }
28
- /** One stage of the frame program. Phases run in order: ready → tick → skip → emit. */
30
+ /**
31
+ * One stage of the frame. Build them with `op.*` rather than by hand.
32
+ *
33
+ * Each frame runs every stage's `ready`, then every `tick`, then every `skip`, then every
34
+ * `emit`, in list order.
35
+ */
29
36
  export interface GridStage {
30
- /** Frame gate: false → the whole frame returns null (a late-bound input is still pending). */
37
+ /** Return false to run nothing this frame (an input the stage needs has not arrived yet). */
31
38
  ready?(): boolean;
32
- /** Pre-gate bookkeeping (pointer smoothing, activity flags). */
39
+ /** Bookkeeping before any gate: pointer smoothing, activity flags. */
33
40
  tick?(f: GridFrame): void;
34
- /** Settle gate: true → skip the frame entirely (the last published texture persists). */
41
+ /** Return true to skip the whole frame. The last published texture stays on screen. */
35
42
  skip?(f: GridFrame): boolean;
36
- /** Push this stage's dispatches / uniform writes. */
43
+ /** Add this stage's GPU passes and value writes to the frame. */
37
44
  emit?(f: GridFrame, nodes: ComputeStep[]): void;
38
45
  }
46
+ /** What a GPU grid simulation declares: its outputs, its frame-delta clamp, and its stages. */
39
47
  export interface GridSimConfig {
40
- /** Compute outputs the fragment samples (state/display textures, child RTT handles). */
48
+ /** The textures the fragment samples, by the name it reads them under in `computeOutputs`. */
41
49
  outputs: Record<string, unknown>;
42
- /** Late input binding (child RTT → luma prepass, child-modulated kernels). Spread only if set. */
50
+ /** Receive the child's picture once it exists (it is allocated after the layer composes). */
43
51
  bindInputs?: (resolve: (key: string) => {
44
52
  texture: unknown;
45
53
  } | undefined) => void;
46
- /** Frame-delta clamp (seconds). */
54
+ /** Longest frame step accepted, in seconds. 0.016–0.05 keeps a tab switch from jumping the field. */
47
55
  clampDt: number;
48
- /** Frames with `dt <= 0`: run anyway (default) or skip (Liquify's guard). */
56
+ /** What to do on a frame with no elapsed time: run anyway (default) or skip it. */
49
57
  zeroDt?: 'run' | 'skip';
58
+ /** The frame program, in order. */
50
59
  stages: GridStage[];
51
60
  }
52
61
  /**
53
- * The grid-simulation noun. Spread it into a definition: `...gridSim((params, root) => ({...}))`.
54
- * The build callback runs at compute-node creation (per instance, after the no-device bail); it may
55
- * return null to opt out entirely (a required child is missing).
62
+ * A field of cells advanced every frame by an ordered list of stages. Spread it into a
63
+ * definition next to a `gpu.fragment` that samples one of its outputs.
64
+ *
65
+ * The build callback runs once per instance of the layer, with the GPU device, and returns the
66
+ * outputs, the frame-delta clamp and the stages. Return null to run nothing (a required child is
67
+ * missing). Without a GPU the fragment should fall back to the child or to transparent.
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * ...gridSim((params, root) => ({outputs: {state}, clampDt: 0.05, stages: [op.values('write', (f) => paramsU.write({dt: f.dt, radius: f.num('radius', 0.4)})), op.pass(update), op.publish(() => output)]}))
72
+ * ```
73
+ * @tip Everything created in the build callback (buffers, passes, trackers) belongs to that layer instance. Create nothing at module scope that holds per-frame state.
74
+ * @see op, hostGridProgram, simulate, fluidSim, feedbackSim
56
75
  */
57
76
  export declare function gridSim(build: (params: GpuFragmentParams, root: GridRoot) => GridSimConfig | null): {
58
77
  compute: GpuComputeNode;
59
78
  };
60
- /** A parity-alternating sort chain's handle: which ping-pong side is current after this frame. */
79
+ /** A sort chain's stage, which also reports which of its two buffers holds the current result. */
61
80
  export interface SortPassStage extends GridStage {
62
81
  side(): 'A' | 'B';
63
82
  }
83
+ /**
84
+ * The stages a grid frame is built from. List them in `stages` in the order they should run.
85
+ *
86
+ * Bookkeeping: `host` (before any gate), `values` (write this frame's values), `readyWhen`
87
+ * (wait for an input), `settle` (sleep once the field is still). Work: `pass` (one GPU pass),
88
+ * `cache` (a pass picked per frame), `seedOnce` (a one-shot reset), `iterate` (a pass N times),
89
+ * `sortPass` (a compare-swap chain), `publish` (write the result the layer samples).
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * stages: [op.readyWhen(() => ready), op.values('write', (f) => paramsU.write({dt: f.dt})), op.iterate({count: () => 8, step: (i, nodes) => nodes.push(react.with(i % 2 ? groupBA : groupAB))}), op.publish(() => output)]
94
+ * ```
95
+ * @tip A `values` stage sits before the passes that read it. Stages run in list order.
96
+ * @see gridSim
97
+ */
64
98
  export declare const op: {
65
- /** Named pre-gate host step (pointer smoothing, activity flags). Runs in the tick phase. */
99
+ /**
100
+ * A named step that runs before any gate: pointer smoothing, activity flags, anything a
101
+ * later `settle` needs to know.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * op.host('cursor', (f) => { active = (f.frameParams.pointer?.x ?? 0.5) !== lastX })
106
+ * ```
107
+ * @see values, settle
108
+ */
66
109
  readonly host: (name: string, run: (f: GridFrame) => void) => GridStage;
67
- /** Named emit-phase host step (per-frame uniform writes / prop derivation). */
110
+ /**
111
+ * A named step that writes this frame's values for the passes after it.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * op.values('write', (f) => paramsU.write({dt: f.dt, radius: f.num('radius', 0.4)}))
116
+ * ```
117
+ * @tip Read props here with `f.num('prop', fallback)` so a prop that is briefly not a number cannot reach the GPU as `undefined`.
118
+ * @see host, pass
119
+ */
68
120
  readonly values: (name: string, run: (f: GridFrame) => void) => GridStage;
69
121
  /**
70
- * Settle gate: once nothing has driven the sim for `settleMs` of SIMULATED time, skip frames
71
- * entirely — the last published texture persists on screen, so a settled sim costs zero GPU time.
122
+ * Sleep the simulation once nothing has driven it for `settleMs` of simulated time. Frames
123
+ * are skipped and the last published texture stays on screen, so a still field costs nothing.
72
124
  *
73
- * Simulated, not wall-clock: a hidden tab stops rAF, so no frames step the field while the user
74
- * is away. Measured on the wall clock the gate would freeze the sim the moment the tab came back
75
- * with the field still fully visible (it never decayed). Only frames that actually dispatch
76
- * count toward the settle budget.
125
+ * `activeWhen` says whether something drove the field this frame. `settleMs` is how long the
126
+ * field takes to fade after the last activity, in milliseconds.
127
+ *
128
+ * @example
129
+ * ```ts
130
+ * op.settle({activeWhen: () => moving, settleMs: (f) => 4000 / Math.max(f.num('decay', 1), 0.1)})
131
+ * ```
132
+ * @tip Simulated time, not wall-clock: a hidden tab does not count, so the field is still fading when the user comes back.
133
+ * @see host
77
134
  */
78
135
  readonly settle: (opts: {
79
136
  activeWhen: (f: GridFrame) => boolean;
80
137
  settleMs: (f: GridFrame) => number;
81
138
  }) => GridStage;
82
- /** Frame gate on a late-bound input (child RTT arriving via `bindInputs`). */
139
+ /**
140
+ * Run nothing until `fn` returns true, typically once the child's picture has arrived
141
+ * through `bindInputs`.
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * op.readyWhen(() => lumaReady)
146
+ * ```
147
+ * @see cache
148
+ */
83
149
  readonly readyWhen: (fn: () => boolean) => GridStage;
84
- /** One dispatch of a fixed pass. */
150
+ /**
151
+ * One GPU pass, the same every frame.
152
+ *
153
+ * @example
154
+ * ```ts
155
+ * op.pass(update)
156
+ * ```
157
+ * @see cache, iterate, publish
158
+ */
85
159
  readonly pass: (step: ComputeStep) => GridStage;
86
- /** A per-frame cache prepass, resolved per frame (PixelSort's late-rebound child-luma snapshot). */
160
+ /**
161
+ * A GPU pass chosen per frame, for a pass whose input is rebound after the frame starts.
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * op.cache(() => lumaPipeline)
166
+ * ```
167
+ * @see readyWhen, pass
168
+ */
87
169
  readonly cache: (step: (f: GridFrame) => ComputeStep) => GridStage;
88
- /** The publish tail: write the sim state into the texture the fragment samples. Resolved per
89
- * frame so it can follow a ping-pong side (`() => output.with(side() === 'A' ? bgA : bgB)`). */
170
+ /**
171
+ * The last stage: write the state into the texture the layer samples. Chosen per frame so it
172
+ * can follow whichever buffer holds the current result.
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * op.publish(() => outputPass.with(sort.side() === 'A' ? outputBgA : outputBgB))
177
+ * ```
178
+ * @see pass, sortPass
179
+ */
90
180
  readonly publish: (step: (f: GridFrame) => ComputeStep) => GridStage;
91
- /** One-shot (re)initialisation ahead of the step loop, latched on `staleWhen`. */
181
+ /**
182
+ * A one-shot reset run before the rest of the frame whenever `staleWhen` says the state is
183
+ * stale: on the first frame, or when a seed prop changes.
184
+ *
185
+ * @example
186
+ * ```ts
187
+ * op.seedOnce({pass: seed, staleWhen: () => needsSeed, onSeed: () => { needsSeed = false }})
188
+ * ```
189
+ * @see iterate
190
+ */
92
191
  readonly seedOnce: (opts: {
93
192
  pass: ComputeStep;
94
193
  staleWhen: (f: GridFrame) => boolean;
95
194
  onSeed?: () => void;
96
195
  }) => GridStage;
97
- /** N ordered iterations of a step (the caller's `step` handles its own ping-pong swap). */
196
+ /**
197
+ * Run a step `count` times this frame. Your `step` adds the pass for iteration `i` and picks
198
+ * which buffer it reads and writes.
199
+ *
200
+ * @example
201
+ * ```ts
202
+ * op.iterate({count: (f) => Math.round(f.num('speed', 8)), step: (i, nodes) => nodes.push(react.with(i % 2 ? groupBA : groupAB))})
203
+ * ```
204
+ * @tip A reaction-diffusion field reads smoother when you raise the iteration count than when you raise the step size.
205
+ * @see pass, sortPass
206
+ */
98
207
  readonly iterate: (opts: {
99
208
  count: (f: GridFrame) => number;
100
209
  step: (i: number, nodes: ComputeStep[], f: GridFrame) => void;
101
210
  }) => GridStage;
102
211
  /**
103
- * Odd-even transposition sort chain: `passes` compare-swap dispatches, alternating parity and
104
- * ping-pong side per pass. The parity tick PERSISTS across frames (harness policy — a new frame
105
- * continues the transposition sequence where the last one stopped, which is what makes the sort
106
- * converge "bit by bit"). `side()` reports the current buffer for the publish pass.
212
+ * A compare-and-swap sort that converges a little more every frame: `passes` swaps per frame,
213
+ * alternating odd and even pairs and the two buffers. `side()` tells `publish` which buffer
214
+ * holds the current order.
215
+ *
216
+ * @example
217
+ * ```ts
218
+ * const sort = op.sortPass({passes: () => 1 + Math.round(strength * 4), pass: (parity, side) => (parity ? swap1 : swap0).with(side === 'A' ? groupAB : groupBA)})
219
+ * ```
220
+ * @tip The alternation continues across frames instead of restarting, which is what makes the sort settle bit by bit.
221
+ * @see publish, iterate
107
222
  */
108
223
  readonly sortPass: (opts: {
109
224
  passes: (f: GridFrame) => number;
@@ -111,9 +226,18 @@ export declare const op: {
111
226
  }) => SortPassStage;
112
227
  };
113
228
  /**
114
- * Viewport dimensions with the standard resize-tracked fallback: `tracked()` is the last
115
- * `onResize` value (what a texture-space prepass wants), `safe(fp)` prefers this frame's reported
116
- * dimensions and floors both at 1 (what an aspect computation wants).
229
+ * The canvas size in pixels, kept current across resizes, in the two forms a stage wants.
230
+ *
231
+ * `tracked()` is the size at the last resize, for a pass that works in the canvas's own pixels.
232
+ * `safe(fp)` prefers the size this frame reports and never returns less than 1, for an aspect
233
+ * ratio.
234
+ *
235
+ * @example
236
+ * ```ts
237
+ * const viewport = trackedViewport(params)
238
+ * op.values('write', (f) => { const s = viewport.safe(f.frameParams); paramsU.write({aspect: s.width / s.height}) })
239
+ * ```
240
+ * @see gridSim
117
241
  */
118
242
  export declare function trackedViewport(params: GpuFragmentParams): {
119
243
  tracked(): {
@@ -125,9 +249,9 @@ export declare function trackedViewport(params: GpuFragmentParams): {
125
249
  height: number;
126
250
  };
127
251
  };
128
- /** One frame of a CPU grid program. */
252
+ /** One frame of a JavaScript-stepped grid: the clamped delta, the clock and the pointer in uv. */
129
253
  export interface HostFrame {
130
- /** Wall-clock delta since the last frame, clamped (these sims ignore the renderer's deltaTime). */
254
+ /** Seconds since the last frame, never more than `clampDt`. */
131
255
  dt: number;
132
256
  now: number;
133
257
  pointer: {
@@ -136,24 +260,52 @@ export interface HostFrame {
136
260
  };
137
261
  frameParams: unknown;
138
262
  }
139
- /** A named CPU step. Return `'skip'` to end the frame (idle gate). */
263
+ /** One named JavaScript step. Return `'skip'` to end the frame early. */
140
264
  export interface HostStep {
141
265
  name: string;
142
266
  run(f: HostFrame): void | 'skip';
143
267
  }
268
+ /**
269
+ * One named step of a JavaScript-stepped grid. Return `'skip'` to end the frame here, which is
270
+ * how an idle gate is written.
271
+ *
272
+ * @example
273
+ * ```ts
274
+ * hostStep('dtGuard', (f) => (f.dt <= 0 ? 'skip' : undefined))
275
+ * ```
276
+ * @see hostGridProgram
277
+ */
144
278
  export declare const hostStep: (name: string, run: (f: HostFrame) => void | "skip") => HostStep;
145
279
  /**
146
- * An ordered CPU frame program for `onBeforeRender`: wall-clock dt (clamped), then each named step
147
- * in order until one skips.
280
+ * A frame program for a small grid stepped in plain JavaScript: the steps run in order every
281
+ * frame until one returns `'skip'`. Hand the result to `onBeforeRender`.
282
+ *
283
+ * Use it when the field is small (a 32×32 flow grid) and the arithmetic reads better as loops.
284
+ * Publish the cells with `hostFieldTexture` in the last step.
285
+ *
286
+ * @example
287
+ * ```ts
288
+ * onBeforeRender(hostGridProgram({clampDt: 0.016, steps: [hostStep('advect', (f) => advect(f.dt)), hostStep('publish', () => { pack(field.texData); field.upload() })]}))
289
+ * ```
290
+ * @see hostStep, hostFieldTexture, gridSim
148
291
  */
149
292
  export declare function hostGridProgram(opts: {
150
293
  clampDt: number;
151
294
  steps: HostStep[];
152
295
  }): (fp: unknown) => void;
153
296
  /**
154
- * The CPU field's GPU face: an rgba16float data texture (filterable — a filtering sampler rejects
155
- * r32float, so cells are half-encoded before upload) registered as a media texture the fragment
156
- * samples. `texData` is the upload staging buffer the publish step packs into.
297
+ * The texture a JavaScript-stepped grid is read through. Pack the cells into `texData` (four
298
+ * half-floats per cell, row by row), call `upload()`, and sample `texture` in the fragment.
299
+ *
300
+ * `size` is the grid's side in cells. The texture filters smoothly, so a coarse grid reads as
301
+ * a continuous field.
302
+ *
303
+ * @example
304
+ * ```ts
305
+ * const field = hostFieldTexture(params, {size: 32, label: 'flow'})
306
+ * ```
307
+ * @tip Values go in as half-floats: convert each number with `toHalfFloat` before writing it into `texData`.
308
+ * @see hostGridProgram
157
309
  */
158
310
  export declare function hostFieldTexture(params: GpuFragmentParams, opts: {
159
311
  size: number;
@@ -1 +1 @@
1
- {"version":3,"file":"grids.d.ts","sourceRoot":"","sources":["../../../src/std/sim/grids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grids.d.ts","sourceRoot":"","sources":["../../../src/std/sim/grids.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * std/sim — the simulation vocabulary (compute-backed state), grouped by family. The grid
3
+ * simulation nouns (`simulate`, `op`, `GridSim`) stay top-level on `shaders/std`; these are the
4
+ * L1 words the agent, fluid, feedback and grid simulations are built from.
5
+ */
6
+ export * as agents from './agents';
7
+ export * as agentForces from './agentForces';
8
+ export * as agentFrame from './agentFrame';
9
+ export * as agentRender from './agentRender';
10
+ export * as feedback from './feedback';
11
+ export * as fluids from './fluids';
12
+ export * as grids from './grids';
13
+ export * as shapeFields from './shapeFields';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/std/sim/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA"}
@@ -77,10 +77,66 @@ declare function analytic3d(layout: RotatedFieldLayout, baked: ShapeField3): Sha
77
77
  * border-touching feature can even read inside).
78
78
  */
79
79
  declare function svgLifted3d(layout: RotatedFieldLayout, baked: ShapeField3): ShapeField3;
80
+ /**
81
+ * The signed-distance function of the shape a swarm lives in, for `force.containment`.
82
+ *
83
+ * Four builders, one per shape source. Each returns a `ShapeField3`: a GPU function from a
84
+ * shape-local 3D point to a signed distance, negative inside. `analyticExtruded` takes a flat
85
+ * shape (circle, polygon, star…) and gives it a depth from `params.halfDepth`. `svgExtruded`
86
+ * does the same for an SVG outline uploaded as a distance texture. `analytic3d` wraps a true
87
+ * 3D solid so it rotates under the swarm. `svgLifted3d` wraps an SVG lifted into 3D.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * force.containment(simLayout, {field: shapeField.analyticExtruded(simLayout, buildAnalyticSdfFn(shapeType)), gradEps: 0.02, wall: {featherFrom: -0.1, featherTo: 0.01, base: 1.1, springK: 22}, recall: {from: 1.5, to: 1.9, k: 9}, homing: {from: 0.12, to: 0.45, k: 5}, entrainment: {featherHalf: 0.05}})
92
+ * ```
93
+ * @tip Pick the builder at bake time from the shape props and hand ONE field to the integrator. The swarm never needs to know which kind it is.
94
+ * @see force, integrator
95
+ */
80
96
  export declare const shapeField: {
97
+ /**
98
+ * A flat shape given depth: the 2D distance of a circle, polygon or star, extruded in z by
99
+ * `params.halfDepth`. The shape's sub-props are read live from `params.sa*`.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * shapeField.analyticExtruded(simLayout, buildAnalyticSdfFn('hexagon'))
104
+ * ```
105
+ * @see svgExtruded, analytic3d
106
+ */
81
107
  readonly analyticExtruded: typeof analyticExtruded;
108
+ /**
109
+ * An SVG outline given depth: the outline's distance texture, extruded in z by
110
+ * `params.halfDepth`. `size` is the texture's side in texels.
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * shapeField.svgExtruded(simLayout, svgSdfLayout, {size: 512})
115
+ * ```
116
+ * @tip Outside the texture's footprint the distance keeps growing, so strays still find their way back.
117
+ * @see analyticExtruded, svgLifted3d
118
+ */
82
119
  readonly svgExtruded: typeof svgExtruded;
120
+ /**
121
+ * A true 3D solid (sphere, torus, knot…) from its baked distance function, rotated by the
122
+ * shape's live rotation so the swarm follows the surface as it turns.
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * shapeField.analytic3d(setup3d.layout, setup3d.sdfFn as ShapeField3)
127
+ * ```
128
+ * @see analyticExtruded, svgLifted3d
129
+ */
83
130
  readonly analytic3d: typeof analytic3d;
131
+ /**
132
+ * An SVG outline lifted into a 3D solid, rotated by the shape's live rotation.
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * shapeField.svgLifted3d(setup3d.layout, setup3d.sdfFn as ShapeField3)
137
+ * ```
138
+ * @see svgExtruded, analytic3d
139
+ */
84
140
  readonly svgLifted3d: typeof svgLifted3d;
85
141
  };
86
142
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"shapeFields.d.ts","sourceRoot":"","sources":["../../../src/std/sim/shapeFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAO,CAAC,EAAa,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAU9C,wEAAwE;AACxE,KAAK,aAAa,GAAG,CACjB,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAC9E,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KACjE;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAC,CAAA;AAEzB;4EAC4E;AAC5E,UAAU,0BAA0B;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC7B;AAED,wEAAwE;AACxE,UAAU,aAAa;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACtB;AAED,wFAAwF;AACxF,UAAU,kBAAkB;IACxB,QAAQ,CAAC,CAAC,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE;YAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;SAAC,CAAA;KAAC,CAAA;CAC/D;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACrB,MAAM,EAAE;IAAC,QAAQ,CAAC,CAAC,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAA;KAAC,CAAA;CAAC,EACnE,KAAK,EAAE,aAAa,GACrB,WAAW,CAQb;AAED;;;;;;GAMG;AACH,iBAAS,WAAW,CAChB,MAAM,EAAE;IAAC,QAAQ,CAAC,CAAC,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE;YAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC,CAAA;CAAC,EACrE,SAAS,EAAE;IAAC,QAAQ,CAAC,CAAC,EAAE;QAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;KAAC,CAAA;CAAC,EAC9E,GAAG,EAAE;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GACpB,WAAW,CAcb;AAED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAK/E;AAED;;;;;GAKG;AACH,iBAAS,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAQhF;AAED,eAAO,MAAM,UAAU;;;;;CAKb,CAAA"}
1
+ {"version":3,"file":"shapeFields.d.ts","sourceRoot":"","sources":["../../../src/std/sim/shapeFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAO,CAAC,EAAa,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAU9C,wEAAwE;AACxE,KAAK,aAAa,GAAG,CACjB,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAC9E,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KACjE;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAC,CAAA;AAEzB;4EAC4E;AAC5E,UAAU,0BAA0B;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC7B;AAED,wEAAwE;AACxE,UAAU,aAAa;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACtB;AAED,wFAAwF;AACxF,UAAU,kBAAkB;IACxB,QAAQ,CAAC,CAAC,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE;YAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;SAAC,CAAA;KAAC,CAAA;CAC/D;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACrB,MAAM,EAAE;IAAC,QAAQ,CAAC,CAAC,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAA;KAAC,CAAA;CAAC,EACnE,KAAK,EAAE,aAAa,GACrB,WAAW,CAQb;AAED;;;;;;GAMG;AACH,iBAAS,WAAW,CAChB,MAAM,EAAE;IAAC,QAAQ,CAAC,CAAC,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE;YAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC,CAAA;CAAC,EACrE,SAAS,EAAE;IAAC,QAAQ,CAAC,CAAC,EAAE;QAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;KAAC,CAAA;CAAC,EAC9E,GAAG,EAAE;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GACpB,WAAW,CAcb;AAED;;;;GAIG;AACH,iBAAS,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAK/E;AAED;;;;;GAKG;AACH,iBAAS,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,GAAG,WAAW,CAQhF;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU;IACnB;;;;;;;;;OASG;;IAIH;;;;;;;;;;OAUG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;OAQG;;CAGG,CAAA"}
@@ -1,62 +1,164 @@
1
1
  import { PropRef } from './values';
2
2
  import { PointerSignal, PointerSpeedSignal } from './signal';
3
3
 
4
- /** Damped `avg − prev` wave propagation. Needs `history: 2` (reads t−1 AND t−2). */
4
+ /**
5
+ * A step that makes the grid ripple like a water surface, fading by `damping`.
6
+ *
7
+ * Needs `history: 2` on the grid, because a wave reads the two previous frames. `damping`
8
+ * is a prop on a 0–20 scale: 0 rings forever, 20 dies in a few frames.
9
+ */
5
10
  export interface WaveOp {
6
11
  readonly kind: 'op.wave';
7
12
  readonly damping: PropRef;
8
13
  }
9
- /** Gaussian brush injection at a positioned signal, scaled by an amount signal. */
14
+ /**
15
+ * A step that presses a soft round brush into the grid wherever the pointer moves.
16
+ *
17
+ * `at` is the pointer signal, `amount` the pointer-speed signal that scales the push (a still
18
+ * pointer adds nothing), `radius` a prop on a 0.1–1 scale.
19
+ */
10
20
  export interface SplatOp {
11
21
  readonly kind: 'op.splat';
12
22
  readonly at: PointerSignal;
13
23
  readonly amount: PointerSpeedSignal;
14
24
  readonly radius: PropRef;
15
25
  }
16
- /** Central-difference gradient of the field → an RG vector-field texture (a derive op). */
26
+ /**
27
+ * A derived output: the slope of the grid at every cell, as a 2D vector.
28
+ *
29
+ * This is what a distortion wants: `displaceBy` moves each pixel along the slope.
30
+ */
17
31
  export interface GradientOp {
18
32
  readonly kind: 'op.gradient';
19
33
  }
34
+ /** Any step that advances the grid each frame. */
20
35
  export type GridStepOp = WaveOp | SplatOp;
36
+ /** Any output derived from the grid after the steps have run. */
21
37
  export type GridDeriveOp = GradientOp;
38
+ /**
39
+ * The steps and outputs a grid simulation is built from.
40
+ *
41
+ * `op.wave` and `op.splat` go in `step` and run in order once per frame. `op.gradient` goes in
42
+ * `derive`, named, and becomes an output an effect can read with `sim.output('name')`.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * step: [op.wave({damping: p('decay')}), op.splat({at: pointer({teleportGuard: 'on'}), amount: pointerSpeed({max: 2}), radius: p('radius')})],
47
+ * derive: {displacement: op.gradient()},
48
+ * ```
49
+ * @tip The current engine implements exactly `[op.wave, op.splat]` with `op.gradient` derived. Other combinations throw at definition time.
50
+ * @see simulate, GridSim
51
+ */
22
52
  export declare const op: {
53
+ /**
54
+ * A wave step: the grid ripples outward from any disturbance and fades by `damping` (a prop,
55
+ * 0–20).
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * op.wave({damping: p('decay')})
60
+ * ```
61
+ * @tip Declare `history: 2` on the grid. A wave needs the two previous frames.
62
+ * @see op.splat
63
+ */
23
64
  readonly wave: (config: {
24
65
  damping: PropRef;
25
66
  }) => WaveOp;
67
+ /**
68
+ * A brush step: a soft round push into the grid at the pointer, scaled by how fast it
69
+ * moves. `radius` is a prop on a 0.1–1 scale.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * op.splat({at: pointer({teleportGuard: 'on'}), amount: pointerSpeed({max: 2}), radius: p('radius')})
74
+ * ```
75
+ * @tip Use `pointer({teleportGuard: 'on'})`. The pointer entering the canvas is then not a stroke.
76
+ * @see op.wave, pointer, pointerSpeed
77
+ */
26
78
  readonly splat: (config: {
27
79
  at: PointerSignal;
28
80
  amount: PointerSpeedSignal;
29
81
  radius: PropRef;
30
82
  }) => SplatOp;
83
+ /**
84
+ * A derived output: the grid's slope at every cell as a 2D vector, ready for `displaceBy`.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * derive: {displacement: op.gradient()}
89
+ * ```
90
+ * @see displaceBy
91
+ */
31
92
  readonly gradient: () => GradientOp;
32
93
  };
94
+ /**
95
+ * What a grid simulation declares: its size, how many past frames it keeps, its steps, and its
96
+ * named outputs.
97
+ */
33
98
  export interface GridSimConfig {
34
- /** Square grid resolution (state texels per side). */
99
+ /** Cells per side of the square grid. 128 is plenty for a ripple field. */
35
100
  resolution: number;
36
- /** History levels the step ops read (the wave equation needs 2: t−1 and t−2). */
101
+ /** How many past frames the steps read. A wave needs 2. */
37
102
  history: number;
38
- /** Ordered per-texel step ops, run once per frame. */
103
+ /** The steps that advance the grid, run in this order once per frame. */
39
104
  step: GridStepOp[];
40
- /** Named derived outputs, consumable as fields by effects (`sim.output(name)`). */
105
+ /** Named outputs an effect can read through `sim.output(name)`. */
41
106
  derive: Record<string, GridDeriveOp>;
42
- /** Rest semantics: when the engine may stop dispatching. */
107
+ /** Let the engine stop running the simulation once the field has faded to nothing. */
43
108
  rest?: {
44
109
  settlesWhen: 'derived-from-damping';
45
110
  };
46
111
  }
47
- /** A reference to one of a simulation's derived outputs (feeds effect slots). */
112
+ /**
113
+ * A handle to one named output of a simulation, the thing you hand to `displaceBy`.
114
+ *
115
+ * @see displaceBy, GridSim
116
+ */
48
117
  export interface SimOutputRef {
49
118
  readonly kind: 'simOutput';
50
119
  readonly sim: GridSim;
51
120
  readonly output: string;
52
121
  }
53
- /** A declared grid simulation. Reference its outputs by identity: `sim.output('name')`. */
122
+ /**
123
+ * A declared grid simulation. Read its outputs with `output('name')` and pass them to an effect.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * effect: displaceBy(waves.output('displacement'), {strength: p('intensity'), chromatic: p('chromaticSplit'), edges: p('edges')})
128
+ * ```
129
+ * @tip Asking for an output that was not declared in `derive` throws with the list of names that were.
130
+ * @see simulate, SimOutputRef
131
+ */
54
132
  export declare class GridSim {
55
133
  readonly config: GridSimConfig;
56
134
  constructor(config: GridSimConfig);
57
135
  output(name: string): SimOutputRef;
58
136
  }
137
+ /**
138
+ * Declare a simulation the engine runs for you. `simulate.grid` gives a square grid of numbers
139
+ * advanced once per frame by the steps you list.
140
+ *
141
+ * Declare it once at module scope, then read its outputs inside the definition. The engine
142
+ * allocates the state, keeps the history, tracks the pointer and sleeps the simulation once it
143
+ * has settled.
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * const waves = simulate.grid({resolution: 128, history: 2, step: [op.wave({damping: p('decay')}), op.splat({at: pointer({teleportGuard: 'on'}), amount: pointerSpeed({max: 2}), radius: p('radius')})], derive: {displacement: op.gradient()}, rest: {settlesWhen: 'derived-from-damping'}})
148
+ * ```
149
+ * @tip Reach for `sim.grids`, `sim.fluids`, `sim.feedback` or `sim.agents` only when the effect needs its own GPU step. If a wave field and a displacement say it, stay here.
150
+ * @see op, GridSim, displaceBy
151
+ */
59
152
  export declare const simulate: {
153
+ /**
154
+ * A square grid of numbers advanced once per frame by `step`, with named outputs in `derive`.
155
+ *
156
+ * @example
157
+ * ```ts
158
+ * const waves = simulate.grid({resolution: 128, history: 2, step: [op.wave({damping: p('decay')}), op.splat({at: pointer({teleportGuard: 'on'}), amount: pointerSpeed({max: 2}), radius: p('radius')})], derive: {displacement: op.gradient()}})
159
+ * ```
160
+ * @see op, GridSim
161
+ */
60
162
  readonly grid: (config: GridSimConfig) => GridSim;
61
163
  };
62
164
  //# sourceMappingURL=sim.d.ts.map