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
@@ -5,129 +5,375 @@ import { ArgSpec } from '../invoke';
5
5
  import { GatherEffect } from '../types';
6
6
  import { PropRef } from '../values';
7
7
 
8
- /** The sampling stage: produce the initial color from the child RTT. */
8
+ /**
9
+ * The first stage of a stacked effect: reads the child as a texture and returns the starting
10
+ * color at this pixel.
11
+ *
12
+ * Pass one to `gatherStack` as its first argument. The overlay stages then edit its result in order.
13
+ * @see gatherStack, OverlayStage, childTap
14
+ */
9
15
  export type SampleStage = (params: RttFilterParams) => Expr;
10
- /** One post-sample overlay stage: color in → color out. */
16
+ /**
17
+ * One editing stage of a stacked effect: takes the color so far and returns the edited color.
18
+ *
19
+ * Stages run in the order you list them in `gatherStack`.
20
+ * @see gatherStack, SampleStage
21
+ */
11
22
  export type OverlayStage = (color: Expr, params: RttFilterParams) => Expr;
12
- /** Compose a gather effect from a sampling stage and an ordered list of overlays. */
23
+ /**
24
+ * Assemble an effect from one sampling stage and an ordered list of overlay stages.
25
+ *
26
+ * The child renders to a texture, the sampling stage reads it, and each overlay edits the result
27
+ * in turn. Put the result in a filter's `effect:` field. Pass `{resultAlpha: 'straight'}` only
28
+ * when the stack already returns straight (not premultiplied) alpha, as `crispTap` and
29
+ * `refractedTaps` do.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * effect: gatherStack(rgbSplit({amount: p('colorShift')}), [scanlines({frequency: p('lines'), intensity: 0.3}), opaque()])
34
+ * ```
35
+ * @tip An empty overlay list is fine: `gatherStack(stage, [])` wraps a lone sampling stage.
36
+ * @see SampleStage, OverlayStage, GatherFrame
37
+ */
13
38
  export declare function gatherStack(sample: SampleStage, overlays: OverlayStage[], opts?: {
14
39
  resultAlpha?: 'premultiplied' | 'straight';
15
40
  }): GatherEffect;
16
41
  /**
17
- * A shared geometry frame: one Expr (usually an `asLocal` struct) that several stages of a
18
- * recipe read. The producer is memoized per composition, so every stage sees the same local.
42
+ * A geometry that several stages of one effect share: a warped coordinate, a surface normal, a
43
+ * coverage mask.
44
+ *
45
+ * Make one with a frame word (`sphereFrame`, `glitchFrame`, `fluteFrame`, `peelFrame`), keep it
46
+ * in a module constant, and hand that same frame to every stage. It is computed once per pixel
47
+ * however many stages read it.
48
+ * @see sphereFrame, glitchFrame, fluteFrame, peelFrame
19
49
  */
20
50
  export type GatherFrame = (params: RttFilterParams) => Expr;
21
51
  /**
22
- * RGB split: sample the child at ±`amount·0.002` horizontal offsets and take red from the +tap,
23
- * green from the centre, blue from the −tap.
52
+ * The child with its red and blue pulled a little to either side, like a misaligned CRT.
53
+ *
54
+ * `amount` is the shift; 1 moves red and blue each by 0.002 of the canvas width, 0–10 is the
55
+ * usual range. Returns a three-channel color, so finish the stack with `opaque`.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * effect: gatherStack(rgbSplit({amount: p('colorShift')}), [opaque()])
60
+ * ```
61
+ * @see glitchRgbSplit, scanlines, phosphorMask, opaque
24
62
  */
25
63
  export declare function rgbSplit(opts: {
26
64
  amount: ArgSpec;
27
65
  }): SampleStage;
28
- /** VHS tape-warp UVs: vec4(lumaUV.xy, chromaUV.zw) from the wobble/jitter tape geometry, driven by
29
- * the global clock × speed. Feed into {@link chromaSmearTaps}. */
66
+ /**
67
+ * The wobbling, jittering coordinates of a worn VHS tape, to feed into `chromaSmearTaps`.
68
+ *
69
+ * `wobble` (0–5) is the tape damage: waves, creases and head-switching noise that burst on and
70
+ * off over time. `jitter` (0–1) is fine per-scanline noise. `speed` scales the global clock,
71
+ * so the definition needs no `animatedTime`.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * chromaSmearTaps({warp: tapeWarp({wobble: p('wobble'), jitter: p('scanlineNoise'), speed: p('speed')}), smear: p('smear')})
76
+ * ```
77
+ * @see chromaSmearTaps, beatPulse
78
+ */
30
79
  export declare function tapeWarp(opts: {
31
80
  wobble: ArgSpec;
32
81
  jitter: ArgSpec;
33
82
  speed: ArgSpec;
34
83
  }): (params: RttFilterParams) => Expr;
35
84
  /**
36
- * Chroma smear: one sharp luma tap + 5 chroma taps trailing by `smear·0.0075` each, recombined
37
- * through YIQ (sharp Y, smeared I/Q). Alpha comes from the luma tap.
85
+ * The child sampled like a VHS deck: brightness stays sharp while color bleeds sideways.
86
+ *
87
+ * `warp` is the coordinate set from `tapeWarp`. `smear` sets how far color trails; positive
88
+ * trails it to the right, negative to the left, −2 to 2 is the usual range. Alpha comes from the
89
+ * sharp tap.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * effect: gatherStack(chromaSmearTaps({warp: tapeWarp({wobble: p('wobble'), jitter: p('noise'), speed: p('speed')}), smear: p('smear')}), [beatPulse({wobble: p('wobble'), speed: p('speed')})])
94
+ * ```
95
+ * @see tapeWarp, beatPulse, rgbSplit
38
96
  */
39
97
  export declare function chromaSmearTaps(opts: {
40
98
  warp: (params: RttFilterParams) => Expr;
41
99
  smear: ArgSpec;
42
100
  }): SampleStage;
43
- /** Brightness/contrast adjustment around mid-grey. */
101
+ /**
102
+ * The brightest color in a small ring around a point: the layer grown outward, so a spot
103
+ * just outside a bright area still reads as bright.
104
+ *
105
+ * `read` samples the layer at a uv and returns straight color (pass `params.sampleStraight`).
106
+ * `center` is the uv to look around; `radius` is the ring's radius per axis in uv, as a
107
+ * `vec2` (divide a pixel radius by the viewport size). `taps` points sit evenly round the
108
+ * ring starting at `angle` degrees, plus the centre itself. Returns the brightest of them as
109
+ * `color` (straight) and its brightness as `luma` (Rec.709 luminance times alpha).
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * const {color, luma} = brightestNear(params.sampleStraight, pointUV, {radius: div(p, viewport), taps: 4, angle: 45})
114
+ * ```
115
+ * @tip Thin bright details smaller than the gap between taps can slip through; more taps
116
+ * close the gaps at one sample each.
117
+ * @see gatherStack
118
+ */
119
+ export declare function brightestNear(read: (uv: Expr) => Expr, center: Expr, opts: {
120
+ radius: Expr;
121
+ taps: number;
122
+ angle?: number;
123
+ }): {
124
+ color: Expr;
125
+ luma: Expr;
126
+ };
127
+ /**
128
+ * Brightness and contrast, pivoting around mid-grey.
129
+ *
130
+ * 1 leaves both unchanged; 0.5–2 is the usual range. Works on the three-channel color of a
131
+ * stack begun with `rgbSplit`.
132
+ *
133
+ * @example
134
+ * ```ts
135
+ * adjust({brightness: p('brightness'), contrast: p('contrast')})
136
+ * ```
137
+ * @see rgbSplit, scanlines, opaque
138
+ */
44
139
  export declare function adjust(opts: {
45
140
  brightness: ArgSpec;
46
141
  contrast: ArgSpec;
47
142
  }): OverlayStage;
48
- /** Sinusoidal scanlines over uv.y. */
143
+ /**
144
+ * Horizontal scanlines darkening the child in a smooth wave.
145
+ *
146
+ * `frequency` is the number of lines from top to bottom (100–800). `intensity` (0–1) is how
147
+ * dark the troughs get. Works on the three-channel color of a stack begun with `rgbSplit`.
148
+ *
149
+ * @example
150
+ * ```ts
151
+ * scanlines({frequency: p('scanlineFrequency'), intensity: p('scanlineIntensity')})
152
+ * ```
153
+ * @see distortedScanlines, phosphorMask, vignetteOverlay
154
+ */
49
155
  export declare function scanlines(opts: {
50
156
  frequency: ArgSpec;
51
157
  intensity: ArgSpec;
52
158
  }): OverlayStage;
53
- /** Subtle RGB phosphor mask; `pitch` is the phosphor cell size. */
159
+ /**
160
+ * A faint red, green and blue phosphor stripe pattern across the child.
161
+ *
162
+ * `pitch` sets how many stripes fit across the canvas, about half of `pitch`; 8–128 is the usual
163
+ * range. Works on the three-channel color of a stack begun with `rgbSplit`.
164
+ *
165
+ * @example
166
+ * ```ts
167
+ * phosphorMask({pitch: p('pixelSize')})
168
+ * ```
169
+ * @see scanlines, rgbSplit
170
+ */
54
171
  export declare function phosphorMask(opts: {
55
172
  pitch: ArgSpec;
56
173
  }): OverlayStage;
57
- /** Aspect-corrected circular vignette darkening. */
174
+ /**
175
+ * Darkens the child toward its corners.
176
+ *
177
+ * `radius` (0–1) is how far the darkening reaches inward, 0 for the edges only and 1 for all the
178
+ * way to the centre. `intensity` (0–1) blends it in. Round on any canvas shape. Works on the
179
+ * three-channel color of a stack begun with `rgbSplit`.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * vignetteOverlay({radius: p('vignetteRadius'), intensity: p('vignetteIntensity')})
184
+ * ```
185
+ * @see scanlines, opaque
186
+ */
58
187
  export declare function vignetteOverlay(opts: {
59
188
  radius: ArgSpec;
60
189
  intensity: ArgSpec;
61
190
  }): OverlayStage;
62
- /** Finish a vec3 color stack as an opaque vec4 (alpha 1). */
191
+ /**
192
+ * Closes a three-channel stack as a solid color with alpha 1.
193
+ *
194
+ * Put it last after `rgbSplit`, `adjust`, `scanlines`, `phosphorMask` or `vignetteOverlay`,
195
+ * which work on color only and drop the child's alpha.
196
+ *
197
+ * @example
198
+ * ```ts
199
+ * effect: gatherStack(rgbSplit({amount: 1}), [scanlines({frequency: 200, intensity: 0.3}), opaque()])
200
+ * ```
201
+ * @see rgbSplit, gatherStack
202
+ */
63
203
  export declare function opaque(): OverlayStage;
64
- /** AC beat: a very subtle brightness pulse from the global clock, clamped to [0,1]. */
204
+ /**
205
+ * A faint brightness throb, like the mains hum of an old television.
206
+ *
207
+ * `wobble` scales the throb (0 turns it off). `speed` scales the global clock. Works on the
208
+ * four-channel color of a stack begun with `chromaSmearTaps`.
209
+ *
210
+ * @example
211
+ * ```ts
212
+ * beatPulse({wobble: p('wobble'), speed: p('speed')})
213
+ * ```
214
+ * @see chromaSmearTaps, tapeWarp
215
+ */
65
216
  export declare function beatPulse(opts: {
66
217
  wobble: ArgSpec;
67
218
  speed: ArgSpec;
68
219
  }): OverlayStage;
69
- /** A motion-blur tap trajectory: the path kind plus the prop that anchors it. */
220
+ /**
221
+ * The path a motion blur smears along: its kind plus the prop that anchors it.
222
+ *
223
+ * Make one with `blurPath.linear`, `blurPath.orbit` or `blurPath.zoom` and pass it to `motionBlur`.
224
+ * @see blurPath, motionBlur
225
+ */
70
226
  export interface BlurPathSpec {
71
227
  readonly kind: motionBlurKit.MotionBlurPathKind;
72
228
  readonly focus: PropRef;
73
229
  }
74
- /** The tap trajectories {@link motionBlur} can follow. */
230
+ /**
231
+ * The three paths `motionBlur` can smear along.
232
+ *
233
+ * @example
234
+ * ```ts
235
+ * effect: motionBlur({path: blurPath.zoom(p('center')), amount: p('intensity')})
236
+ * ```
237
+ * @see motionBlur
238
+ */
75
239
  export declare const blurPath: {
76
- /** Straight-line smear along a fixed direction (an angle prop, in degrees). */
240
+ /**
241
+ * A straight streak along an angle prop, in degrees (0 points right, 90 points down).
242
+ * @example
243
+ * ```ts
244
+ * effect: motionBlur({path: blurPath.linear(p('angle')), amount: p('intensity')})
245
+ * ```
246
+ * @see motionBlur
247
+ */
77
248
  linear: (angle: PropRef) => BlurPathSpec;
78
- /** Arc smear rotating around a center point (a position prop). */
249
+ /**
250
+ * An arc streak rotating around a center prop (a position in uv).
251
+ * @example
252
+ * ```ts
253
+ * effect: motionBlur({path: blurPath.orbit(p('center')), amount: p('intensity')})
254
+ * ```
255
+ * @see motionBlur
256
+ */
79
257
  orbit: (center: PropRef) => BlurPathSpec;
80
- /** Radial smear streaking outward from a center point (a position prop). */
258
+ /**
259
+ * A radial streak rushing outward from a center prop (a position in uv).
260
+ * @example
261
+ * ```ts
262
+ * effect: motionBlur({path: blurPath.zoom(p('center')), amount: p('intensity')})
263
+ * ```
264
+ * @see motionBlur
265
+ */
81
266
  zoom: (center: PropRef) => BlurPathSpec;
82
267
  };
83
268
  /**
84
- * Motion blur: 32 Gaussian-weighted samples of the child gathered along a tap trajectory —
85
- * `blurPath.linear` (directional), `blurPath.orbit` (rotational), or `blurPath.zoom` (radial).
269
+ * Smears the child along a path: a straight streak, an arc around a point, or a zoom out of a point.
270
+ *
271
+ * `amount` is a 0–100 intensity. A linear streak spans about twice `amount` in pixels; at 100 an
272
+ * orbit sweeps about 29 degrees and a zoom pulls in from twice the distance to its center.
273
+ *
274
+ * @example
275
+ * ```ts
276
+ * effect: motionBlur({path: blurPath.linear(p('angle')), amount: p('intensity')})
277
+ * ```
278
+ * @tip Samples past the canvas edge repeat the border color. Wrap the layer in a larger group if the smear must fade out instead.
279
+ * @see blurPath, gaussianBlur, scatter
86
280
  */
87
281
  export declare function motionBlur(opts: {
88
282
  path: BlurPathSpec;
89
283
  amount: ArgSpec;
90
284
  }): GatherEffect;
91
285
  /**
92
- * Scatter: displace every pixel by a per-pixel random offset of up to `amount` pixels — a
93
- * grain-like diffusion, not a Gaussian blur. `edges` binds a structural edge-mode prop
94
- * ('stretch' | 'transparent' | 'mirror' | 'wrap').
286
+ * Scatters every pixel of the child by a random offset: a grainy diffusion, not a smooth blur.
287
+ *
288
+ * `amount` is the largest offset in pixels. `edges` is a prop with `transform: transformEdges`
289
+ * and `compileTime: true` ('stretch' | 'transparent' | 'mirror' | 'wrap') that says what to read
290
+ * where an offset lands outside the canvas.
291
+ *
292
+ * @example
293
+ * ```ts
294
+ * effect: scatter({amount: p('intensity'), edges: p('edges')})
295
+ * ```
296
+ * @see gaussianBlur, motionBlur
95
297
  */
96
298
  export declare function scatter(opts: {
97
299
  amount: ArgSpec;
98
300
  edges: PropRef;
99
301
  }): GatherEffect;
100
302
  /**
101
- * Sharpen: a 5-tap unsharp-mask convolution — centre × (1 + 4·amount) minus the four orthogonal
102
- * one-pixel neighbours × amount. At `amount` 0 the kernel is the identity.
303
+ * Sharpens the child by boosting the contrast between each pixel and its neighbours.
304
+ *
305
+ * `amount` 0 leaves the child unchanged; 0–5 is the usual range. Alpha is untouched.
306
+ *
307
+ * @example
308
+ * ```ts
309
+ * effect: sharpen(p('sharpness'))
310
+ * ```
311
+ * @tip Declare `identityWhen: isZero('sharpness')` and `recompile: crosses(0)` on the prop so 0 costs nothing.
312
+ * @see gaussianBlur, scatter
103
313
  */
104
314
  export declare function sharpen(amount: ArgSpec): GatherEffect;
105
315
  /**
106
- * Pixelate: quantise the child to a grid of `scale` cells along the longest edge, sampling each
107
- * cell once, and cut each cell to a rounded rectangle via `gap` (spacing) and `roundness`
108
- * (0 = square, 1 = circle) — the cut is an alpha mask, not a coordinate bend.
316
+ * Turns the child into a grid of flat cells, each showing one color.
317
+ *
318
+ * `scale` is the number of cells along the canvas's longer edge (1–200; more cells means smaller
319
+ * pixels). `gap` (0–1) is the transparent space between cells as a fraction of a cell.
320
+ * `roundness` (0–1) rounds each cell from a square to a circle.
321
+ *
322
+ * @example
323
+ * ```ts
324
+ * effect: pixelate({scale: p('scale'), gap: p('gap'), roundness: p('roundness')})
325
+ * ```
326
+ * @see scatter, sharpen
109
327
  */
110
328
  export declare function pixelate(opts: {
111
329
  scale: ArgSpec;
112
330
  gap: ArgSpec;
113
331
  roundness: ArgSpec;
114
332
  }): GatherEffect;
115
- /** Sphere-bulge geometry: bulged UV + boundary coverage + surface normal. */
333
+ /**
334
+ * The geometry of a sphere bulging out of the canvas: where each pixel reads the child from,
335
+ * where the sphere ends, and which way its surface faces.
336
+ *
337
+ * `center` is a position in uv. `radius` 1 is half the canvas height. `depth` is how far it bulges
338
+ * toward the viewer, 0 for flat and up to about 3. Feed the frame to `crispTap` and `rimLit`.
339
+ *
340
+ * @example
341
+ * ```ts
342
+ * const sphere = sphereFrame({center: p('center'), radius: p('radius'), depth: p('depth')})
343
+ * ```
344
+ * @see crispTap, rimLit, GatherFrame
345
+ */
116
346
  export declare function sphereFrame(opts: {
117
347
  center: ArgSpec;
118
348
  radius: ArgSpec;
119
349
  depth: ArgSpec;
120
350
  }): GatherFrame;
121
351
  /**
122
- * One Catmull-Rom tap at the frame's warped UV, unpremultiplied. Catmull-Rom, not bilinear: a
123
- * magnifying warp blows up its centre, and one bilinear tap turns any hard edge underneath
124
- * (text, a logo) into visible facets.
352
+ * One clean sample of the child at a frame's warped coordinate.
353
+ *
354
+ * Use it under a warp that magnifies: hard edges in the child (text, a logo) stay smooth instead
355
+ * of breaking into facets. Returns straight alpha, so close the stack with
356
+ * `{resultAlpha: 'straight'}`.
357
+ *
358
+ * @example
359
+ * ```ts
360
+ * effect: gatherStack(crispTap(sphere), [rimLit(sphere, {position: p('light'), intensity: 0.5, softness: 0.5, color: p('lightColor')})], {resultAlpha: 'straight'})
361
+ * ```
362
+ * @see sphereFrame, rimLit, childTap
125
363
  */
126
364
  export declare function crispTap(frame: GatherFrame): SampleStage;
127
365
  /**
128
- * Directional fresnel rim over the frame's surface normal — the tinted rim is ADDED and the
129
- * alpha gated by the frame's boundary coverage. Added color is what a uv+mask analytic fold
130
- * can't carry, so a recipe with this stage stays on the RTT fragment path.
366
+ * A tinted rim of light around the edge of a bulged surface, added on top of the child's color.
367
+ *
368
+ * `position` is where the light sits, in uv. `intensity` (0–1) is its strength, 0 for off.
369
+ * `softness` (0–1) runs from a hard edge to a soft glow. `color` is a color prop. Outside the
370
+ * frame's surface the result is transparent.
371
+ *
372
+ * @example
373
+ * ```ts
374
+ * rimLit(sphere, {position: p('lightPosition'), intensity: p('lightIntensity'), softness: p('lightSoftness'), color: p('lightColor')})
375
+ * ```
376
+ * @see sphereFrame, crispTap, fluteHighlight
131
377
  */
132
378
  export declare function rimLit(frame: GatherFrame, opts: {
133
379
  position: ArgSpec;
@@ -136,9 +382,19 @@ export declare function rimLit(frame: GatherFrame, opts: {
136
382
  color: PropRef;
137
383
  }): OverlayStage;
138
384
  /**
139
- * The shared glitch geometry: burst pulse, jitter bands, block shifts, and mirror flips — its
140
- * burst/band hashes feed the split, fills, and scanlines. Animated by the GLOBAL clock scaled
141
- * by `speed` (not a per-node animated time).
385
+ * The shared geometry of a digital glitch: when bursts fire, which horizontal bands jitter, and
386
+ * which blocks shift or flip.
387
+ *
388
+ * `intensity` (0–1) sets both the strength and how often bursts happen. `speed` scales the global
389
+ * clock, so no `animatedTime` is needed. `blockDensity` is the base number of bands (2–50).
390
+ * `mirrorAmount` (0–1) is the chance a block shows flipped content. Keep the frame in a module
391
+ * constant and pass it to `glitchRgbSplit`, `colorBarFills` and `distortedScanlines`.
392
+ *
393
+ * @example
394
+ * ```ts
395
+ * const glitch = glitchFrame({intensity: p('intensity'), speed: p('speed'), blockDensity: p('blockDensity'), mirrorAmount: p('mirrorAmount')})
396
+ * ```
397
+ * @see glitchRgbSplit, colorBarFills, distortedScanlines, GatherFrame
142
398
  */
143
399
  export declare function glitchFrame(opts: {
144
400
  intensity: ArgSpec;
@@ -147,21 +403,60 @@ export declare function glitchFrame(opts: {
147
403
  mirrorAmount: ArgSpec;
148
404
  }): GatherFrame;
149
405
  /**
150
- * RGB-split sampling around the frame's mirrored coordinate. Alpha comes from the centred green
151
- * tap, so a transparent child stays transparent through the glitch.
406
+ * The child sampled through a glitch frame, with red and blue pulled apart inside the active bands.
407
+ *
408
+ * `shift` is the split distance, 0–20. A transparent child stays transparent through the glitch.
409
+ *
410
+ * @example
411
+ * ```ts
412
+ * effect: gatherStack(glitchRgbSplit(glitch, {shift: p('rgbShift')}), [colorBarFills(glitch, {intensity: 0.2})])
413
+ * ```
414
+ * @see glitchFrame, colorBarFills, rgbSplit
152
415
  */
153
416
  export declare function glitchRgbSplit(frame: GatherFrame, opts: {
154
417
  shift: ArgSpec;
155
418
  }): SampleStage;
156
- /** Vivid color-bar fills in the frame's active glitch blocks. */
419
+ /**
420
+ * Neon color bars filling the blocks a glitch frame currently has active.
421
+ *
422
+ * `intensity` (0–1) is how strongly the bars show. They respect the child's alpha.
423
+ *
424
+ * @example
425
+ * ```ts
426
+ * colorBarFills(glitch, {intensity: p('colorBarIntensity')})
427
+ * ```
428
+ * @see glitchFrame, glitchRgbSplit, distortedScanlines
429
+ */
157
430
  export declare function colorBarFills(frame: GatherFrame, opts: {
158
431
  intensity: ArgSpec;
159
432
  }): OverlayStage;
160
- /** CRT-style scanlines confined to the frame's distorted regions. */
433
+ /**
434
+ * CRT-style scanlines that appear only where a glitch frame is currently distorting.
435
+ *
436
+ * `intensity` (0–1) is how visible they are.
437
+ *
438
+ * @example
439
+ * ```ts
440
+ * distortedScanlines(glitch, {intensity: p('scanlineIntensity')})
441
+ * ```
442
+ * @see glitchFrame, scanlines
443
+ */
161
444
  export declare function distortedScanlines(frame: GatherFrame, opts: {
162
445
  intensity: ArgSpec;
163
446
  }): OverlayStage;
164
- /** The two halves a compute-backed blur contributes to a custom-tier definition. */
447
+ /**
448
+ * The two halves a heavy blur adds to a definition: a pass that blurs the child ahead of time,
449
+ * and the fragment that reads it.
450
+ *
451
+ * Spread the whole object into a definition that declares `species: 'custom'`,
452
+ * `requiresRTT: true` and `requiresChild: true`.
453
+ *
454
+ * @example
455
+ * ```ts
456
+ * ...gaussianBlur({intensity: p('intensity')})
457
+ * ```
458
+ * @see gaussianBlur, channelBlur, progressiveBlur, tiltShift, bloom
459
+ */
165
460
  export interface ComputeBackedEffect {
166
461
  compute: GpuComputeNode;
167
462
  gpu: {
@@ -169,18 +464,33 @@ export interface ComputeBackedEffect {
169
464
  };
170
465
  }
171
466
  /**
172
- * Gaussian blur: a 2-pass separable Gaussian at fixed compute resolution (decoupled from canvas).
173
- * A static/mouse/auto intensity runs the fixed-kernel path with a live per-frame radius read; an
174
- * intensity bound to a map fills a per-pixel radius map from the map source and runs the variable
175
- * Gaussian. color comes from the blurred buffer, alpha from the sharp child.
467
+ * A soft, even blur of the child.
468
+ *
469
+ * `intensity` is a prop from 0 to about 200; 100 is a blur radius of about 36 pixels. Bind the
470
+ * prop to a map to vary the blur across the canvas. Only color blurs; the child's alpha stays
471
+ * sharp, so soft edges need a group or mask around the layer.
472
+ *
473
+ * @example
474
+ * ```ts
475
+ * ...gaussianBlur({intensity: p('intensity')})
476
+ * ```
477
+ * @tip The blur runs at a fixed working resolution, so its cost does not grow with the canvas.
478
+ * @see channelBlur, progressiveBlur, tiltShift, bloom, motionBlur
176
479
  */
177
480
  export declare function gaussianBlur(opts: {
178
481
  intensity: PropRef;
179
482
  }): ComputeBackedEffect;
180
483
  /**
181
- * Channel blur: one fixed Gaussian at the MAX per-channel radius, with each channel mixed between
182
- * the sharp source and the blurred buffer by `channelRadius / maxRadius` — the max-intensity
183
- * channel takes the full blur, a zero channel stays exactly sharp.
484
+ * Blurs red, green and blue by separate amounts, for a soft chromatic fringe.
485
+ *
486
+ * Each of `red`, `green` and `blue` is a prop from 0 to 100; 100 is a radius of about 10 pixels.
487
+ * A channel at 0 stays exactly sharp.
488
+ *
489
+ * @example
490
+ * ```ts
491
+ * ...channelBlur({red: p('redIntensity'), green: p('greenIntensity'), blue: p('blueIntensity')})
492
+ * ```
493
+ * @see gaussianBlur, rgbSplit
184
494
  */
185
495
  export declare function channelBlur(opts: {
186
496
  red: PropRef;
@@ -188,9 +498,18 @@ export declare function channelBlur(opts: {
188
498
  blue: PropRef;
189
499
  }): ComputeBackedEffect;
190
500
  /**
191
- * Progressive blur: a variable-radius Gaussian whose per-pixel radius ramps directionally from
192
- * `center` along `angle` over `falloff`, up to the intensity's max radius. A map-driven intensity
193
- * samples the per-pixel max radius from the map source instead.
501
+ * A blur that ramps from sharp to full strength in one direction across the child.
502
+ *
503
+ * The ramp starts at `center` (a position in uv) and runs along `angle` (degrees, 0 points
504
+ * right), reaching full blur `falloff` (0–1, in uv) past the center. `intensity` (0–100) is the
505
+ * blur at the far end; 100 is a radius of about 36 pixels. Bind `intensity` to a map to vary the
506
+ * ceiling per pixel. Alpha stays sharp.
507
+ *
508
+ * @example
509
+ * ```ts
510
+ * ...progressiveBlur({intensity: p('intensity'), angle: p('angle'), center: p('center'), falloff: p('falloff')})
511
+ * ```
512
+ * @see tiltShift, gaussianBlur
194
513
  */
195
514
  export declare function progressiveBlur(opts: {
196
515
  intensity: PropRef;
@@ -199,10 +518,17 @@ export declare function progressiveBlur(opts: {
199
518
  falloff: PropRef;
200
519
  }): ComputeBackedEffect;
201
520
  /**
202
- * Tilt shift: a variable-radius Gaussian whose per-pixel radius ramps with perpendicular distance
203
- * from a focus line (halfKernel 14 — the ~36px max radius keeps tap spacing under the banding
204
- * threshold with ~40% fewer taps). The fragment re-derives the same blur amount to mix the
205
- * canvas-res sharp source against the compute-res blurred buffer, so in-focus pixels stay crisp.
521
+ * Keeps a band of the child in focus and blurs everything beyond it, like a tilt-shift lens.
522
+ *
523
+ * The band runs through `center` (a position in uv) at `angle` (degrees, 0 is horizontal) and
524
+ * is `width` wide (0–1, in uv). Beyond it the blur ramps to full strength over `falloff` (0–1).
525
+ * `intensity` (0–100) is the blur at the far edges. Pixels inside the band stay pixel-sharp.
526
+ *
527
+ * @example
528
+ * ```ts
529
+ * ...tiltShift({intensity: p('intensity'), width: p('width'), falloff: p('falloff'), angle: p('angle'), center: p('center')})
530
+ * ```
531
+ * @see progressiveBlur, gaussianBlur, bokehDefocus
206
532
  */
207
533
  export declare function tiltShift(opts: {
208
534
  intensity: PropRef;
@@ -212,32 +538,82 @@ export declare function tiltShift(opts: {
212
538
  center: PropRef;
213
539
  }): ComputeBackedEffect;
214
540
  /**
215
- * Bloom (Glow): bright-extract the child above `threshold` at aspect-aware compute resolution,
216
- * blur the extract by `size` (per-pixel from the map source when size carries a map driver), and
217
- * composite `original + bloom × intensity` with the halo allowed to extend past the child's alpha.
218
- * A scalar size of 0 skips compute entirely (pair it with `recompile: crosses(0)` on the size prop).
541
+ * A glow: the child's bright parts spread into a soft halo that adds back on top.
542
+ *
543
+ * Pixels brighter than `threshold` (0–1) glow. `size` is the halo's spread in pixels (clean up
544
+ * to about 72). `intensity` (0–50) is how bright the halo is. The halo reaches past the child's
545
+ * alpha, so a glowing shape lights up transparent space around it. At size 0 nothing runs; give
546
+ * the size prop `recompile: crosses(0)`.
547
+ *
548
+ * @example
549
+ * ```ts
550
+ * ...bloom({intensity: p('intensity'), threshold: p('threshold'), size: p('size')})
551
+ * ```
552
+ * @see screenedBloom, gaussianBlur, bokehDefocus
219
553
  */
220
554
  export declare function bloom(opts: {
221
555
  intensity: PropRef;
222
556
  threshold: PropRef;
223
557
  size: PropRef;
224
558
  }): ComputeBackedEffect;
225
- /** The plain centre tap of the child RTT (premultiplied). */
559
+ /**
560
+ * The child's own color at this pixel, unchanged.
561
+ *
562
+ * The sampling stage for an effect that only adds something around the child, like a shadow.
563
+ *
564
+ * @example
565
+ * ```ts
566
+ * effect: gatherStack(childTap(), [shadowComposite({coverage, color: p('color'), intensity: p('intensity'), cutout: p('cutout')})])
567
+ * ```
568
+ * @see shadowComposite, crispTap
569
+ */
226
570
  export declare function childTap(): SampleStage;
227
- /** The compass-angle shadow displacement: where to read the child's silhouette from. */
571
+ /**
572
+ * The coordinate a shadow reads the child's silhouette from: `distance` away in the compass
573
+ * direction `angle`.
574
+ *
575
+ * `angle` is in degrees, 0 up, 90 right, 180 down. `distance` (0–1) is a fraction of the canvas
576
+ * height and covers the same number of pixels in either axis. Pass the result as the `at` of
577
+ * `silhouetteCoverage`.
578
+ *
579
+ * @example
580
+ * ```ts
581
+ * silhouetteCoverage({at: shadowOffset({angle: p('angle'), distance: p('distance')}), blur: p('blur')})
582
+ * ```
583
+ * @see silhouetteCoverage, shadowComposite
584
+ */
228
585
  export declare function shadowOffset(opts: {
229
586
  angle: ArgSpec;
230
587
  distance: ArgSpec;
231
588
  }): (params: RttFilterParams) => Expr;
232
- /** Two-pass separable Gaussian over the child's alpha silhouette, read at the `at` coordinate. */
589
+ /**
590
+ * A soft copy of the child's alpha silhouette: a number per pixel from 0 to 1.
591
+ *
592
+ * `at` is where to read the silhouette from, usually `shadowOffset`. `blur` is the softness as a
593
+ * radius in pixels (0–20). Feed it to `shadowComposite` as the `coverage`.
594
+ *
595
+ * @example
596
+ * ```ts
597
+ * silhouetteCoverage({at: shadowOffset({angle: 135, distance: 0.1}), blur: p('blur')})
598
+ * ```
599
+ * @see shadowOffset, shadowComposite
600
+ */
233
601
  export declare function silhouetteCoverage(opts: {
234
602
  at: (params: RttFilterParams) => Expr;
235
603
  blur: ArgSpec;
236
604
  }): (params: RttFilterParams) => Expr;
237
605
  /**
238
- * Tint the coverage `color` × `intensity` and composite the shadow behind the child — or, with
239
- * `cutout` (a structural boolean prop), show only the shadow with the child's silhouette
240
- * punched out.
606
+ * A tinted shadow behind the child.
607
+ *
608
+ * `coverage` is the soft silhouette from `silhouetteCoverage`, tinted with `color` (a color
609
+ * prop) at `intensity` (0–1) and placed under the child. `cutout` is a boolean prop with
610
+ * `compileTime: true`; when true only the shadow shows, with the child's shape punched out of it.
611
+ *
612
+ * @example
613
+ * ```ts
614
+ * effect: gatherStack(childTap(), [shadowComposite({coverage: silhouetteCoverage({at: shadowOffset({angle: p('angle'), distance: p('distance')}), blur: p('blur')}), color: p('color'), intensity: p('intensity'), cutout: p('cutout')})])
615
+ * ```
616
+ * @see childTap, shadowOffset, silhouetteCoverage
241
617
  */
242
618
  export declare function shadowComposite(opts: {
243
619
  coverage: (params: RttFilterParams) => Expr;
@@ -246,10 +622,23 @@ export declare function shadowComposite(opts: {
246
622
  cutout: PropRef;
247
623
  }): OverlayStage;
248
624
  /**
249
- * Fluted-glass geometry: refracted UV + chromatic offset + flute slope. `shape` binds a
250
- * compile-time prop baking the slope-exponent endpoints + waves flag. The flute pattern drifts
251
- * by the definition's animated clock (declare `animatedTime: {speed: 'speed'}`), negated so
252
- * positive speed drifts visually right at angle 0.
625
+ * The geometry of fluted (reeded) glass over the child: where each pixel reads through the
626
+ * glass, how far its colors split, and the slope of the flute at that point.
627
+ *
628
+ * `shape` is a `compileTime` prop whose transform maps 'bars', 'rounded' and 'waves' to 0, 1
629
+ * and 2. `angle` is in degrees, 0 for vertical flutes. `frequency` is the number of flutes
630
+ * across the longer edge (1–20). `softness` (0–1) eases each flute from flat-with-sharp-seams to
631
+ * a gentle curve. `waveAmplitude` and `waveFrequency` shape the waves variant only.
632
+ * `refraction` (0–4) is how hard each flute bends the child. `aberration` (0–1) is the color
633
+ * split at the seams. The pattern drifts on the layer's clock, so declare
634
+ * `animatedTime: {speed: 'speed'}`. Keep the frame in a module constant and pass it to
635
+ * `refractedTaps` and `fluteHighlight`.
636
+ *
637
+ * @example
638
+ * ```ts
639
+ * const flute = fluteFrame({shape: p('shape'), angle: p('angle'), frequency: p('frequency'), softness: p('softness'), waveAmplitude: p('waveAmplitude'), waveFrequency: p('waveFrequency'), refraction: p('refraction'), aberration: p('aberration')})
640
+ * ```
641
+ * @see refractedTaps, fluteHighlight, GatherFrame
253
642
  */
254
643
  export declare function fluteFrame(opts: {
255
644
  shape: PropRef;
@@ -262,18 +651,35 @@ export declare function fluteFrame(opts: {
262
651
  aberration: ArgSpec;
263
652
  }): GatherFrame;
264
653
  /**
265
- * The refracted tap(s) at the frame's UV, edge-clipped and unpremultiplied. `edges` binds the
266
- * compile-time sampling branch; `aberration` is a uniform whose on/off crossing is structural —
267
- * one tap vs a 3-tap chromatic split along the frame's offset (pair it with a crosses-0
268
- * recompile rule).
654
+ * The child seen through a flute frame, with edge handling and a color split when `aberration`
655
+ * is above 0.
656
+ *
657
+ * `edges` is a prop with `transform: transformEdges` and `compileTime: true`. `aberration` is
658
+ * the same prop the frame uses; give it a recompile rule that fires when it crosses 0. Returns
659
+ * straight alpha, so close the stack with `{resultAlpha: 'straight'}`.
660
+ *
661
+ * @example
662
+ * ```ts
663
+ * effect: gatherStack(refractedTaps(flute, {aberration: p('aberration'), edges: p('edges')}), [fluteHighlight(flute, {lightAngle: 30, highlight: 0.2, softness: 0.3, color: p('highlightColor')})], {resultAlpha: 'straight'})
664
+ * ```
665
+ * @see fluteFrame, fluteHighlight, crispTap
269
666
  */
270
667
  export declare function refractedTaps(frame: GatherFrame, opts: {
271
668
  aberration: PropRef;
272
669
  edges: PropRef;
273
670
  }): SampleStage;
274
671
  /**
275
- * Blinn specular over the frame's flute slope, tinted and added on top — weighted by alpha so
276
- * transparent regions pick up no phantom highlight.
672
+ * A specular highlight running along each flute, added on top of the child's color.
673
+ *
674
+ * `lightAngle` is the light's direction in degrees, 0 head-on and 90 grazing (−90 to 90).
675
+ * `highlight` (0–2) is its strength. `softness` (0–1) spreads the peak from pin-tight to a
676
+ * broad sheen. `color` is a color prop. Transparent parts of the child pick up no highlight.
677
+ *
678
+ * @example
679
+ * ```ts
680
+ * fluteHighlight(flute, {lightAngle: p('lightAngle'), highlight: p('highlight'), softness: p('highlightSoftness'), color: p('highlightColor')})
681
+ * ```
682
+ * @see fluteFrame, refractedTaps, rimLit
277
683
  */
278
684
  export declare function fluteHighlight(frame: GatherFrame, opts: {
279
685
  lightAngle: ArgSpec;
@@ -281,41 +687,106 @@ export declare function fluteHighlight(frame: GatherFrame, opts: {
281
687
  softness: ArgSpec;
282
688
  color: PropRef;
283
689
  }): OverlayStage;
284
- /** A scalar shading term of a peel recipe, read against the peel frame. */
690
+ /**
691
+ * One shading term of a page peel: a number per pixel read against the peel frame.
692
+ *
693
+ * `curlShading`, `curlSheen`, `overhangShadow` and `revealShadow` each make one; `peelCompose`
694
+ * takes all four.
695
+ * @see peelCompose, peelFrame
696
+ */
285
697
  export type PeelShade = (params: RttFilterParams) => Expr;
286
698
  /**
287
- * Page-peel geometry: curl UV, fold angle, crease distances + shadow reaches. `corner` binds the
288
- * compile-time cpu-only STRING prop (no transform — an inline transform would make the bridge
289
- * write the string into an f32 field); its geometry lands as literal args.
699
+ * The geometry of a page curling up from one corner: where the curl reads the child from, how
700
+ * far it has turned, and how far each pixel is from the crease.
701
+ *
702
+ * `corner` is a `compileTime` string prop ('top-left' | 'top-right' | 'bottom-left' |
703
+ * 'bottom-right') with no transform. `amount` (0–1) is how far the peel has progressed, 0 flat
704
+ * and 1 fully peeled. `radius` is the tightness of the curl as a fraction of the page diagonal
705
+ * (0.02–0.4). Keep the frame in a module constant and pass it to the peel shading words and
706
+ * `peelCompose`.
707
+ *
708
+ * @example
709
+ * ```ts
710
+ * const peel = peelFrame({corner: p('corner'), amount: p('amount'), radius: p('radius')})
711
+ * ```
712
+ * @tip Leave the `corner` prop without a `transform`: it must stay a string for the frame to read.
713
+ * @see peelCompose, curlShading, curlSheen, overhangShadow, revealShadow
290
714
  */
291
715
  export declare function peelFrame(opts: {
292
716
  corner: PropRef;
293
717
  amount: ArgSpec;
294
718
  radius: ArgSpec;
295
719
  }): GatherFrame;
296
- /** Crook darkening down the underside of the curl. */
720
+ /**
721
+ * The darkening in the crook of a curl, easing to full brightness at the lip.
722
+ *
723
+ * `shading` (0–1) is how deep the darkening goes.
724
+ *
725
+ * @example
726
+ * ```ts
727
+ * curlShading(peel, {shading: p('shading')})
728
+ * ```
729
+ * @see peelFrame, peelCompose, curlSheen
730
+ */
297
731
  export declare function curlShading(frame: GatherFrame, opts: {
298
732
  shading: ArgSpec;
299
733
  }): PeelShade;
300
- /** The specular band running up the curl. */
734
+ /**
735
+ * The band of light running up a curl.
736
+ *
737
+ * `highlight` (0–1) is its strength. `softness` (0–1) runs from a tight gloss to a broad satin.
738
+ *
739
+ * @example
740
+ * ```ts
741
+ * curlSheen(peel, {highlight: p('highlight'), softness: p('highlightSoftness')})
742
+ * ```
743
+ * @see peelFrame, peelCompose, curlShading
744
+ */
301
745
  export declare function curlSheen(frame: GatherFrame, opts: {
302
746
  highlight: ArgSpec;
303
747
  softness: ArgSpec;
304
748
  }): PeelShade;
305
- /** The contact shadow the curl casts on the flat page past the crease. */
749
+ /**
750
+ * The shadow a lifted curl casts on the flat page just past the crease.
751
+ *
752
+ * `amount` is the same peel amount the frame uses. `shadow` (0–1) is the shadow's strength.
753
+ *
754
+ * @example
755
+ * ```ts
756
+ * overhangShadow(peel, {amount: p('amount'), shadow: p('shadow')})
757
+ * ```
758
+ * @see peelFrame, peelCompose, revealShadow
759
+ */
306
760
  export declare function overhangShadow(frame: GatherFrame, opts: {
307
761
  amount: ArgSpec;
308
762
  shadow: ArgSpec;
309
763
  }): PeelShade;
310
- /** The shadow on the revealed backing just inside the crease. */
764
+ /**
765
+ * The shadow on the surface a peel reveals, just inside the crease.
766
+ *
767
+ * `amount` is the same peel amount the frame uses. `shadow` (0–1) is the shadow's strength.
768
+ *
769
+ * @example
770
+ * ```ts
771
+ * revealShadow(peel, {amount: p('amount'), shadow: p('shadow')})
772
+ * ```
773
+ * @see peelFrame, peelCompose, overhangShadow
774
+ */
311
775
  export declare function revealShadow(frame: GatherFrame, opts: {
312
776
  amount: ArgSpec;
313
777
  shadow: ArgSpec;
314
778
  }): PeelShade;
315
779
  /**
316
- * The fold composite — cast shadow, shaded flat page, lit curl, back to front. Samples the child
317
- * at the frame's curl UV (the lip) and at the screen UV (the flat page). Premultiplied — the
318
- * gather species appends the unpremultiply tail.
780
+ * A finished page peel: the cast shadows, the flat page and the lit curl, layered back to front.
781
+ *
782
+ * The sampling stage of a peel. Pass the four shading terms built on the same frame. Wrap it in
783
+ * `gatherStack` with no overlays.
784
+ *
785
+ * @example
786
+ * ```ts
787
+ * effect: gatherStack(peelCompose(peel, {shade: curlShading(peel, {shading: 0.55}), sheen: curlSheen(peel, {highlight: 0.4, softness: 0.2}), overhang: overhangShadow(peel, {amount: p('amount'), shadow: 1}), reveal: revealShadow(peel, {amount: p('amount'), shadow: 1})}), [])
788
+ * ```
789
+ * @see peelFrame, curlShading, curlSheen, overhangShadow, revealShadow
319
790
  */
320
791
  export declare function peelCompose(frame: GatherFrame, parts: {
321
792
  shade: PeelShade;
@@ -323,24 +794,11 @@ export declare function peelCompose(frame: GatherFrame, parts: {
323
794
  overhang: PeelShade;
324
795
  reveal: PeelShade;
325
796
  }): SampleStage;
326
- /**
327
- * Reflected sample coordinate: mirror across the horizontal line at `lineY`. Y is down (top=0),
328
- * so a point at uv.y > lineY reflects to `2·lineY - uv.y`. Pure function.
329
- */
797
+ /** @internal */
330
798
  export declare const mirrorRowUV: import('typegpu').TgpuFn<(uv: d.Vec2f, lineY: d.F32) => d.Vec2f>;
331
- /**
332
- * Planar-reflection composite (pre-unpremultiply). Above the line returns the original content
333
- * untouched; below it, the (edge-handled) reflection sample composited "over" the original via
334
- * premultiplied alpha, faded by `visibility` (full up to distance−fadeWidth, smoothly to 0 by
335
- * `distance`; `falloff` is the fade-zone width as a fraction of distance). Pure function.
336
- */
799
+ /** @internal */
337
800
  export declare const planarReflectionCompose: import('typegpu').TgpuFn<(original: d.Vec4f, refl: d.Vec4f, uvY: d.F32, lineY: d.F32, distance: d.F32, falloff: d.F32) => d.Vec4f>;
338
- /**
339
- * GPU-free construction of the depth-ramp blur-map fill graph. Per compute pixel, the desired
340
- * blur radius ramps with the row's depth below the line:
341
- * `blur × smoothstep(0, blurDistance, height − v) × DEPTH_RAMP_RADIUS_PX` (source pixels).
342
- * Row-based (depends only on cy/computeHeight); 2D dispatch, STORAGE textureStore.
343
- */
801
+ /** @internal */
344
802
  export declare function buildDepthRampFillGraph(computeWidth: number, computeHeight: number): {
345
803
  layout: import('typegpu').TgpuBindGroupLayout<{
346
804
  blurMap: {
@@ -361,12 +819,34 @@ export declare function buildDepthRampFillGraph(computeWidth: number, computeHei
361
819
  blurDistance: d.F32;
362
820
  }>;
363
821
  };
364
- /** The reflected sample coordinate stage (identity above the line; the composite gates on it). */
822
+ /**
823
+ * The coordinate mirrored across a horizontal line, for reading a reflection below it.
824
+ *
825
+ * `line` is a prop, 0–1 down the canvas in uv. Returns a function of the fragment params that
826
+ * gives the mirrored uv. Above the line the coordinate is still mirrored; `planarReflection`
827
+ * only shows the reflection below it.
828
+ *
829
+ * @example
830
+ * ```ts
831
+ * const reflectedUV = mirrorAcrossRow(p('height'))
832
+ * ```
833
+ * @see planarReflection, depthRampBlur
834
+ */
365
835
  export declare function mirrorAcrossRow(line: PropRef): (params: GpuFragmentParams) => Expr;
366
836
  /**
367
- * Depth-ramped variable blur (compute): RTT the child, fill a per-pixel radius map from the
368
- * line geometry, run kit/blur's variable Gaussian. Map-driven slots use their static scalar
369
- * (compute maps don't drive these per-pixel — the Blur/ProgressiveBlur precedent).
837
+ * The blur half of a mirror floor: blurs the child more the further a row sits below the line.
838
+ *
839
+ * `line` is the same 0–1 line prop as `mirrorAcrossRow`. `blur` is the blur far below the line,
840
+ * 0–5 where 1 is a radius of about 12 pixels. `blurDistance` (in uv, 0.01–1) is how far below
841
+ * the line the blur takes to reach full strength. `halfKernel` is the number of taps each side
842
+ * per pass; 30 is a good value. Spread it into a definition with `species: 'custom'` and read
843
+ * the result in the fragment as `computeOutputs.blurredTexture`.
844
+ *
845
+ * @example
846
+ * ```ts
847
+ * ...depthRampBlur({line: p('height'), blur: p('blur'), blurDistance: p('blurDistance'), halfKernel: 30})
848
+ * ```
849
+ * @see planarReflection, mirrorAcrossRow, progressiveBlur
370
850
  */
371
851
  export declare function depthRampBlur(opts: {
372
852
  line: PropRef;
@@ -376,26 +856,47 @@ export declare function depthRampBlur(opts: {
376
856
  }): {
377
857
  compute: GpuComputeNode;
378
858
  };
379
- /** The over-composite stage: the (edge-handled) reflection tap composited "over" the original
380
- * below the line, faded to transparent over `distance`/`falloff`. */
859
+ /**
860
+ * A mirror floor: the child as it is above a line, and its reflection fading out below it.
861
+ *
862
+ * `line` (0–1 in uv), `distance` (how far below the line the reflection stays visible, in uv)
863
+ * and `falloff` (the width of the fade as a fraction of `distance`) are props. `edges` is a prop
864
+ * with `transform: transformEdges` and `compileTime: true`. `original` is the child's color at
865
+ * this pixel, `reflection` samples the child (or its blurred copy) at a coordinate, and
866
+ * `reflectedUV` is usually `mirrorAcrossRow(line)`. Returns a fragment function whose result is
867
+ * premultiplied; unpremultiply it before returning from `gpu.fragment`.
868
+ *
869
+ * @example
870
+ * ```ts
871
+ * planarReflection({line: p('height'), distance: p('distance'), falloff: p('falloff'), edges: p('edges')}, source.sample(ctx.uv), (uv) => blurred.sample(uv), mirrorAcrossRow(p('height')))(params)
872
+ * ```
873
+ * @see mirrorAcrossRow, depthRampBlur
874
+ */
381
875
  export declare function planarReflection(opts: {
382
876
  line: PropRef;
383
877
  distance: PropRef;
384
878
  falloff: PropRef;
385
879
  edges: PropRef;
386
880
  }, original: Expr, reflection: (uv: Expr) => Expr, reflectedUV: (params: GpuFragmentParams) => Expr): (params: GpuFragmentParams) => Expr;
387
- /**
388
- * Screen a tinted glow (blurred bright highlights) over a base color.
389
- * `tintStrength = (rgb tint, strength)`. The glow's coverage extends the alpha into transparent
390
- * areas (Glow's aura precedent) so the halo isn't clipped to the child's α.
391
- */
881
+ /** @internal */
392
882
  export declare const tintedScreenGlow: import('typegpu').TgpuFn<(base: d.Vec4f, glow: d.Vec4f, tintStrength: d.Vec4f) => d.Vec4f>;
393
883
  /**
394
- * Screened-bloom recipe: the compute half is the kit's highlight-bloom mechanism
395
- * (`withBloomCompute`: bright-extract + variable-Gaussian blur at capped compute resolution);
396
- * the screen half tints the blurred highlights and screens them back over the graded color
397
- * (no-op when the bloom buffer is absent — GPU-free resolve, or `strength` = 0, which returns
398
- * null from `compute`; pair the strength prop with `recompile: crosses(0)`).
884
+ * A tinted glow of the child's bright parts, screened over a color you have already graded:
885
+ * film halation, phosphor bloom.
886
+ *
887
+ * `strength` is a prop; at 0 the glow pass does not run, so give it `recompile: crosses(0)`.
888
+ * `radius` is a prop for the glow's spread in pixels. `tint` is an rgb triple (0–1) and
889
+ * `threshold` (0–1) the brightness a pixel must pass to glow. `output` and `extractName` are
890
+ * names unique to your definition. Returns `compute`, to set as the definition's `compute:`, and
891
+ * `screen(base, at, params)`, which screens the glow at coordinate `at` over `base` in the
892
+ * fragment. The glow reaches past the child's alpha.
893
+ *
894
+ * @example
895
+ * ```ts
896
+ * const halation = screenedBloom({strength: p('halation'), radius: p('halationRadius'), tint: [1, 0.38, 0.16], threshold: 0.62, output: 'halationTexture', extractName: 'myHalationExtract'})
897
+ * ```
898
+ * @tip Build it once at module level so the `compute:` field and the fragment read the same part.
899
+ * @see bloom, frameSway
399
900
  */
400
901
  export declare function screenedBloom(slots: {
401
902
  strength: PropRef;
@@ -408,28 +909,45 @@ export declare function screenedBloom(slots: {
408
909
  compute: GpuComputeNode;
409
910
  screen: (base: Expr, at: Expr, params: GpuFragmentParams) => Expr;
410
911
  };
411
- /**
412
- * Frame sway — a tiny animated translation + rotation about the frame centre, like an unsteady
413
- * projector gate. `amount` scales both amplitude and (via the gated clock) presence; `t` is the
414
- * per-frame sway-time accumulator. Returns the UV to sample the content at (a clamp sampler
415
- * handles the sliver pushed off-frame). amount=0 → returns `uv` unchanged.
416
- */
912
+ /** @internal */
417
913
  export declare const swayUV: import('typegpu').TgpuFn<(uv: d.Vec2f, amount: d.F32, t: d.F32) => d.Vec2f>;
418
914
  /**
419
- * The frame-sway stage: a gated clock (the `field` extraField — advances only while `amount` > 0,
420
- * freezes rather than snapping back at 0) drives a tiny animated translation + rotation of the
421
- * content sample UV. Declare the extraField `{schema: f32, initial: 0}` on the definition.
915
+ * A slight drifting shift and rotation of where the child is read from, like film in an
916
+ * unsteady projector gate.
917
+ *
918
+ * `amount` is a prop from 0 to 1. `field` names an entry you declare in the definition's
919
+ * `extraFields` as `{schema: schema.f32, initial: 0}`; the sway's clock lives there. Returns a
920
+ * function of the fragment params that gives the uv to sample the child at. When `amount` drops
921
+ * to 0 the motion freezes in place rather than snapping back.
922
+ *
923
+ * @example
924
+ * ```ts
925
+ * const weave = frameSway({amount: p('weave'), field: 'weaveTime'})
926
+ * ```
927
+ * @tip Build it once at module level and call it inside `gpu.fragment`; it registers its own per-frame clock.
928
+ * @see screenedBloom
422
929
  */
423
930
  export declare function frameSway(slots: {
424
931
  amount: PropRef;
425
932
  field: string;
426
933
  }): (params: GpuFragmentParams) => Expr;
427
934
  /**
428
- * The bokeh-defocus recipe: the aperture-table gather compute (uniform-radius, or the map-driven
429
- * fork when `radius` binds a spatial map — mouse/auto radius stays a per-frame scalar) + the
430
- * defocused-buffer sampling fragment. The aperture (shape + blades) is fully RUNTIME: changing
431
- * it regenerates the CPU tap table and rewrites one small uniform — no recompile. Compute
432
- * unavailable (GPU-free resolve / no device) → sharp unpremultiplied passthrough.
935
+ * A photographic lens blur where bright highlights bloom into aperture-shaped discs.
936
+ *
937
+ * `radius` (0–100) is the defocus; 100 is a disc about 80 pixels across. `gain` (0–10) is how
938
+ * strongly highlights bloom and `threshold` (0–1) the brightness they must pass. `shape` is a
939
+ * string prop: 'blades' | 'circle' | 'star' | 'heart' | 'flower' | 'cross' | 'ring'. `blades`
940
+ * (0–9) counts blades or points for the blades, star and flower shapes; 0–2 is a round iris.
941
+ * `rotation` is in degrees and `fringe` (0–1) adds color fringing at the disc edges. Both color
942
+ * and coverage blur, so silhouettes soften like a real lens. Changing the aperture never
943
+ * recompiles. Spread it into a definition with `species: 'custom'`, `requiresRTT: true` and
944
+ * `requiresChild: true`.
945
+ *
946
+ * @example
947
+ * ```ts
948
+ * ...bokehDefocus({radius: p('radius'), gain: p('highlightGain'), threshold: p('highlightThreshold'), shape: p('bladeShape'), blades: p('bladeCount'), rotation: p('bladeRotation'), fringe: p('chromaticFringe')})
949
+ * ```
950
+ * @see gaussianBlur, tiltShift, bloom
433
951
  */
434
952
  export declare function bokehDefocus(opts: {
435
953
  radius: PropRef;