shaders 4.0.3 → 4.0.4

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 (490) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/AngularBlur-CI9YxDuh.js +129 -0
  3. package/dist/core/{Arc-B5grj-p3.js → Arc-DGqWR3Bd.js} +1 -1
  4. package/dist/core/{Ascii-Chul_q9B.js → Ascii-CPdyy-Ce.js} +1 -1
  5. package/dist/core/{Aurora-COjCTZzM.js → Aurora-DY2TB0JW.js} +1 -1
  6. package/dist/core/{BarShift-CmMkOiz1.js → BarShift-CgnJnCB2.js} +1 -1
  7. package/dist/core/{BarnDoors-B_Tfvd5_.js → BarnDoors-BrftoIvA.js} +1 -1
  8. package/dist/core/{Beam-DqUZIoO-.js → Beam-CChBswEo.js} +1 -1
  9. package/dist/core/{Bend-CzoMkg0C.js → Bend-BHYjcxYe.js} +1 -1
  10. package/dist/core/{Blob-D-FcfCk_.js → Blob-BB6VUuE3.js} +1 -1
  11. package/dist/core/{BlockDissolve-Cfg38mph.js → BlockDissolve-BxVJeBmh.js} +1 -1
  12. package/dist/core/{BlockNoise-AOm3USwt.js → BlockNoise-BRGG5VGx.js} +2 -2
  13. package/dist/core/{BlueNoise-B1goUO9x.js → BlueNoise-DS6NWeuL.js} +2 -2
  14. package/dist/core/{Blur-orV6Zo0Q.js → Blur-B6uikNMR.js} +1 -1
  15. package/dist/core/{Boids-CaGoO9l6.js → Boids-Bt3Vqqmj.js} +1 -1
  16. package/dist/core/{BokehBlur-Bak9qlJC.js → BokehBlur-CPRNbaGM.js} +15 -2
  17. package/dist/core/{BrickPattern-57nSncIU.js → BrickPattern-D8lK5t7i.js} +1 -1
  18. package/dist/core/{BrightnessContrast-CT-FMH50.js → BrightnessContrast-A-MXcsJ3.js} +1 -1
  19. package/dist/core/{BrushedMetal-CsOf111o.js → BrushedMetal-CwBg_OrC.js} +1 -1
  20. package/dist/core/{Bulge-BENQmcJz.js → Bulge-D2DRILIE.js} +1 -1
  21. package/dist/core/{CRTScreen-DRg0NNys.js → CRTScreen-DPS9lxJ2.js} +1 -1
  22. package/dist/core/{CarbonFiber-CP8sfZpO.js → CarbonFiber-qcPJhSIR.js} +1 -1
  23. package/dist/core/{Chalkboard-DIKb88fc.js → Chalkboard-Bq0qg-b5.js} +1 -1
  24. package/dist/core/{ChannelBlur-hR8wijV7.js → ChannelBlur-Bm_ox1-N.js} +1 -1
  25. package/dist/core/{CheckerWipe-BiWuSCaB.js → CheckerWipe-B0rXlaTa.js} +1 -1
  26. package/dist/core/{Checkerboard-CI7mErmL.js → Checkerboard-DTBwkFnn.js} +1 -1
  27. package/dist/core/{Chevron-B8Vhf4mu.js → Chevron-D0Ocr6Wt.js} +1 -1
  28. package/dist/core/{ChromaFlow-BA40CkCT.js → ChromaFlow-CD0wG8VV.js} +1 -1
  29. package/dist/core/{ChromaticAberration-Co8JMSWY.js → ChromaticAberration-DZsNUXIc.js} +1 -1
  30. package/dist/core/{Chrome-1t9oTBIF.js → Chrome-DdeXQM4v.js} +1 -1
  31. package/dist/core/{Circle-BQq87Fzk.js → Circle-CpaQmHOS.js} +1 -1
  32. package/dist/core/{ColorWheel-X5JCwd6p.js → ColorWheel-Ciz39YtU.js} +1 -1
  33. package/dist/core/{CompressionArtifacts-CfZMsMVi.js → CompressionArtifacts-BrRmzBmd.js} +1 -1
  34. package/dist/core/{ConcentricSpin-D8srFQgv.js → ConcentricSpin-kSb7VlpT.js} +1 -1
  35. package/dist/core/{ConicGradient-zgpOve2I.js → ConicGradient-BUGGpeBn.js} +1 -1
  36. package/dist/core/{ContourLines-CIPNR5U6.js → ContourLines-CAkGuO_l.js} +1 -1
  37. package/dist/core/{CornerPin-DDatnonj.js → CornerPin-sTeTdO54.js} +1 -1
  38. package/dist/core/{Crescent-2VNndYEF.js → Crescent-JPQZbAgM.js} +1 -1
  39. package/dist/core/{Cross--RtTa2r5.js → Cross-DPxLnAXd.js} +1 -1
  40. package/dist/core/{Crystal-RuFWVxDw.js → Crystal-BbLoU4xM.js} +1 -1
  41. package/dist/core/{CurlNoise-Dz7E3WIq.js → CurlNoise-BrgjFOTL.js} +2 -2
  42. package/dist/core/{CursorRipples-DWwT4wnN.js → CursorRipples-DIUoRojU.js} +1 -1
  43. package/dist/core/{CursorTrail-DtEejGeY.js → CursorTrail-DKHkxUqL.js} +1 -1
  44. package/dist/core/{DataMosh-DHklBXQy.js → DataMosh-BZlgABHW.js} +1 -1
  45. package/dist/core/{DiamondGradient-j3Af00XM.js → DiamondGradient-DGGQpuc0.js} +1 -1
  46. package/dist/core/{DiamondWipe-BwzZIEYX.js → DiamondWipe-D2rUDoG_.js} +1 -1
  47. package/dist/core/{DiffuseBlur-CztumKI8.js → DiffuseBlur-BXChd2KQ.js} +16 -2
  48. package/dist/core/{DisplacementMap-_R0XWmDv.js → DisplacementMap-D89sVcBJ.js} +1 -1
  49. package/dist/core/{Dither-BMtSn0ET.js → Dither-VDLOXe9H.js} +1 -1
  50. package/dist/core/{DotGrid-5pz59elN.js → DotGrid-it63myH-.js} +1 -1
  51. package/dist/core/{DropShadow-Afbu-AM5.js → DropShadow-VzD0-Byt.js} +1 -1
  52. package/dist/core/{Duotone-CPNAyquB.js → Duotone-BroCb_su.js} +1 -1
  53. package/dist/core/{Ellipse-CIdAfmRX.js → Ellipse-W8NyZcKM.js} +1 -1
  54. package/dist/core/{Emboss-B0ZaXWSG.js → Emboss-DOgQmAti.js} +1 -1
  55. package/dist/core/{Engraving-C6DmtOdA.js → Engraving-BE1m1Bod.js} +1 -1
  56. package/dist/core/{ErosionNoise-3QrqYZy6.js → ErosionNoise-zHZiriUE.js} +2 -2
  57. package/dist/core/{Exposure-CQ6luJ-4.js → Exposure-D4bDba84.js} +1 -1
  58. package/dist/core/{FallingLines-y-XE0joI.js → FallingLines-DPEUnSeK.js} +1 -1
  59. package/dist/core/{FilmGrain-Bxz_2Za0.js → FilmGrain-CdyASl8G.js} +1 -1
  60. package/dist/core/{FilmStock-BsPw-b6W.js → FilmStock-Bg3La848.js} +1 -1
  61. package/dist/core/{Flip-CML4rm2V.js → Flip-BtN-1Tm7.js} +1 -1
  62. package/dist/core/{FloatingParticles-CDQaOt3i.js → FloatingParticles-BKf0oRZt.js} +1 -1
  63. package/dist/core/{FlowField-CEhUrnv4.js → FlowField-CjsNplw1.js} +1 -1
  64. package/dist/core/{Flower-Bp75dXJa.js → Flower-DFRo3Foo.js} +1 -1
  65. package/dist/core/{FlowingGradient-CGBB_tvE.js → FlowingGradient-Cma6CyNn.js} +1 -1
  66. package/dist/core/{FlutedGlass-CkwFDUxi.js → FlutedGlass-D4e-TR_b.js} +1 -1
  67. package/dist/core/{Fog-Dhy6FKme.js → Fog-CKLqyJFd.js} +1 -1
  68. package/dist/core/{Form3D-CFaxdFCN.js → Form3D-DdUVksGn.js} +1 -1
  69. package/dist/core/{FractalNoise-DMLBHVU1.js → FractalNoise-xT6nfDL8.js} +1 -1
  70. package/dist/core/{Frost-CvCAXumf.js → Frost-fqtsE0VN.js} +1 -1
  71. package/dist/core/{GaborNoise-pBwEWsvq.js → GaborNoise-DQx5Dmdl.js} +2 -2
  72. package/dist/core/{Glass--gVUc74k.js → Glass-B8B3LKIr.js} +1 -1
  73. package/dist/core/{GlassTiles-C7iGBDOu.js → GlassTiles-DOoBsjL2.js} +1 -1
  74. package/dist/core/{Glitch-DdIqzf1U.js → Glitch-CZgWlgKN.js} +1 -1
  75. package/dist/core/{Glow-Be0YEdsy.js → Glow-CcVl6l0_.js} +1 -1
  76. package/dist/core/{Godrays-BkR81S_6.js → Godrays-bPYI6IYx.js} +1 -1
  77. package/dist/core/{Goo-BuQBpLC1.js → Goo-LWpHTOQ9.js} +1 -1
  78. package/dist/core/{GradientMap-BhzXbIUo.js → GradientMap-DCGtaGpD.js} +1 -1
  79. package/dist/core/{Grayscale-CgPfjxpC.js → Grayscale-DKh1spZ5.js} +1 -1
  80. package/dist/core/{Grid-Bf4drnEK.js → Grid-D6WroKOX.js} +1 -1
  81. package/dist/core/{GridDistortion-OKWF9BkP.js → GridDistortion-Biq_fOA1.js} +1 -1
  82. package/dist/core/{Group-CmvLWhtc.js → Group-BYKXw6yw.js} +1 -1
  83. package/dist/core/{HTMLInCanvas-t9ohcHFo.js → HTMLInCanvas-Cl7fosAr.js} +1 -1
  84. package/dist/core/{Halftone-CL2X2QB3.js → Halftone-B5ypTuq9.js} +1 -1
  85. package/dist/core/{Heart-B0VJdilk.js → Heart-CSpPJ77t.js} +1 -1
  86. package/dist/core/{Heatmap-CmoQKw_9.js → Heatmap-DlFZVct7.js} +1 -1
  87. package/dist/core/{HexGrid-qzOUXxGp.js → HexGrid-ji4m18iC.js} +1 -1
  88. package/dist/core/{Hologram-DoxZwBsb.js → Hologram-CfYQV4AY.js} +1 -1
  89. package/dist/core/{Holographic-DOx95C7o.js → Holographic-eZAfsWGx.js} +1 -1
  90. package/dist/core/{HueShift-DJsP1low.js → HueShift-DRWqpyEk.js} +1 -1
  91. package/dist/core/{ImageTexture-GyknRQS4.js → ImageTexture-CTL2VXJa.js} +1 -1
  92. package/dist/core/{InkFlow-zlXRbwHy.js → InkFlow-C2eoJ8E_.js} +1 -1
  93. package/dist/core/{Invert-3ZoLoQJH.js → Invert-Cdz7BiuY.js} +1 -1
  94. package/dist/core/{IrisWipe-BuX7mBHl.js → IrisWipe-CMftEbHA.js} +1 -1
  95. package/dist/core/{Irradiance-DAx-vIdy.js → Irradiance-DYOzfcYd.js} +1 -1
  96. package/dist/core/{IsometricCubes-7sbQ2VJA.js → IsometricCubes-Cf17PZKl.js} +1 -1
  97. package/dist/core/{Kaleidoscope-CsLdv8Az.js → Kaleidoscope-eV3KxWC_.js} +1 -1
  98. package/dist/core/{KeyFrames-BzO618Dz.js → KeyFrames-BYXhTMvZ.js} +1 -1
  99. package/dist/core/{LensDistortion-BLR3_sbS.js → LensDistortion-BvHcaPAj.js} +1 -1
  100. package/dist/core/{LensFlare-DTM_QH_n.js → LensFlare-WftiuGke.js} +1 -1
  101. package/dist/core/{LightEdge-D9XK4MVu.js → LightEdge-pY69-oXa.js} +1 -1
  102. package/dist/core/{LightLeak-Cle2_fM9.js → LightLeak-BHcmHoPq.js} +1 -1
  103. package/dist/core/{Line-DHya7Oc3.js → Line-Dy4n9kG0.js} +1 -1
  104. package/dist/core/LinearBlur-BMGYoL9G.js +129 -0
  105. package/dist/core/{LinearGradient-DQmjBptA.js → LinearGradient-BLD0pXpY.js} +1 -1
  106. package/dist/core/{LinearWipe-CQlYqf9e.js → LinearWipe-NgkvKYWw.js} +1 -1
  107. package/dist/core/{LiquidMetal-BYDcC5TU.js → LiquidMetal-jhFloJ2w.js} +1 -1
  108. package/dist/core/{Liquify-zEXo6xUV.js → Liquify-BHy1V26i.js} +1 -1
  109. package/dist/core/{MagneticFilings-D7kyi6PI.js → MagneticFilings-D4biKXSd.js} +1 -1
  110. package/dist/core/{Marble-DMBDSQC1.js → Marble-CxZXeCW1.js} +1 -1
  111. package/dist/core/{MeshGradient-ByUJxHX0.js → MeshGradient-BBdSnGNG.js} +1 -1
  112. package/dist/core/{Mirror-Bjfbugbi.js → Mirror-Dz-2FX2p.js} +1 -1
  113. package/dist/core/{MultiPointGradient-BJMQ5JbT.js → MultiPointGradient-CyBo3Mt7.js} +1 -1
  114. package/dist/core/{Nebula-c7wMpb9v.js → Nebula-3XuPYIo-.js} +1 -1
  115. package/dist/core/{Neon-xm7nkRIp.js → Neon-CIiz8Go1.js} +1 -1
  116. package/dist/core/{NoiseDissolve-DTSS-5J7.js → NoiseDissolve-BcKmhJWB.js} +1 -1
  117. package/dist/core/{ObjectTracker-CeiMs5_g.js → ObjectTracker-RiBh2YFe.js} +1 -1
  118. package/dist/core/{Obsidian-CEzCs0lZ.js → Obsidian-CSWNH0g3.js} +1 -1
  119. package/dist/core/{PagePeel-D8-jVFVt.js → PagePeel-DKXXJnW2.js} +1 -1
  120. package/dist/core/{Paper-o3JcSJga.js → Paper-BWiPnSdk.js} +1 -1
  121. package/dist/core/{Parallelogram-DZdZTiv_.js → Parallelogram-Bdibf18e.js} +1 -1
  122. package/dist/core/{ParticleField-mb50mtLl.js → ParticleField-DP2tJXxN.js} +1 -1
  123. package/dist/core/{ParticleFlow-NxmRBFxq.js → ParticleFlow-BxyJp6kF.js} +1 -1
  124. package/dist/core/{Particles-ynCeKlnk.js → Particles-CgvGZNOx.js} +1 -1
  125. package/dist/core/{PerlinNoise-B43AbgNy.js → PerlinNoise-BMkkfzp-.js} +2 -2
  126. package/dist/core/{Perspective-Bdr4mrFK.js → Perspective-DS7zqsdY.js} +1 -1
  127. package/dist/core/{PixelSort-y1sMZn8T.js → PixelSort-DdGs1Lpj.js} +1 -1
  128. package/dist/core/{PixelThrow-MoKF4eJQ.js → PixelThrow-FtEE5D8Y.js} +1 -1
  129. package/dist/core/{Pixelate-Dt3Dvyye.js → Pixelate-YSpsPOUv.js} +1 -1
  130. package/dist/core/{Plasma-BHPsAkrx.js → Plasma-BXs3UGgs.js} +1 -1
  131. package/dist/core/{Plastic-8Al38_Uo.js → Plastic-B8OV6H19.js} +1 -1
  132. package/dist/core/{PolarCoordinates-BuiRt8Ae.js → PolarCoordinates-vfm49iUU.js} +1 -1
  133. package/dist/core/{Polygon-CElChfL_.js → Polygon-fXyaW28S.js} +1 -1
  134. package/dist/core/{Posterize-CkX1ySem.js → Posterize-B_zadptA.js} +1 -1
  135. package/dist/core/{Prism-B_8r_ACa.js → Prism-D3bKRs_2.js} +1 -1
  136. package/dist/core/{ProgressiveBlur-BY9XCK4l.js → ProgressiveBlur-CMV_hP7G.js} +31 -2
  137. package/dist/core/{RadialGradient-D4ELylxQ.js → RadialGradient-CGGOtyw2.js} +1 -1
  138. package/dist/core/{RadialWipe-DNvkJb42.js → RadialWipe-Qak8GgIA.js} +1 -1
  139. package/dist/core/{RandomBars-5D9oIVCD.js → RandomBars-Cug34S8m.js} +1 -1
  140. package/dist/core/{ReactionDiffusion-BGmksqeC.js → ReactionDiffusion-B2KSbRPy.js} +1 -1
  141. package/dist/core/{RectangularCoordinates-0l5t-2No.js → RectangularCoordinates-C4rRfUyf.js} +1 -1
  142. package/dist/core/{ReflectivePlane-BqefdbHK.js → ReflectivePlane-CbY9iTWt.js} +1 -1
  143. package/dist/core/{Repeater-CJj0PHTv.js → Repeater-3YxvbkxY.js} +1 -1
  144. package/dist/core/{Ring-Czf6zylA.js → Ring-Zofg3GkM.js} +1 -1
  145. package/dist/core/{RippleWipe-gk_KAy9N.js → RippleWipe-CpihXaME.js} +1 -1
  146. package/dist/core/{Ripples-DSmJplDh.js → Ripples-BdyGWeeL.js} +1 -1
  147. package/dist/core/{RoundedRect-DCFq3bhP.js → RoundedRect-BjAUDa5D.js} +1 -1
  148. package/dist/core/{Satin-BEbTbcTD.js → Satin-yYWeplbY.js} +1 -1
  149. package/dist/core/{Saturation-D0hjM6vJ.js → Saturation-qIjYNU3K.js} +1 -1
  150. package/dist/core/{Scratches-CBbSvaL9.js → Scratches-C6Xr7JRO.js} +2 -2
  151. package/dist/core/{Sharpness-CxNkUCd4.js → Sharpness-0-Tm5xJh.js} +1 -1
  152. package/dist/core/{Shatter-OGsXkOO8.js → Shatter-BWms5ZCO.js} +1 -1
  153. package/dist/core/{SimplexNoise-EZ9qyUZl.js → SimplexNoise-BASO2QMY.js} +2 -2
  154. package/dist/core/{SineWave-jv-D2nek.js → SineWave-DNry_0Lh.js} +1 -1
  155. package/dist/core/{SliceWipe-CyQ8KwJe.js → SliceWipe-BM170JUl.js} +1 -1
  156. package/dist/core/{Smoke-D5t3guA6.js → Smoke-BHLwUBhz.js} +1 -1
  157. package/dist/core/{SmokeFill-DDqH7q9k.js → SmokeFill-CPPIQi-V.js} +1 -1
  158. package/dist/core/{SmokeFlow-dqFWC3nR.js → SmokeFlow-BvNcVjm6.js} +1 -1
  159. package/dist/core/{Solarize-DQKm8tad.js → Solarize-gkgg0wtw.js} +1 -1
  160. package/dist/core/{SolidColor-AuMQ8wsV.js → SolidColor-Dd1vZDVk.js} +1 -1
  161. package/dist/core/{Sparkle-DB3i_Vm0.js → Sparkle-DrXTAu56.js} +1 -1
  162. package/dist/core/{Spherize-BvO_quYf.js → Spherize-CuSUrEgb.js} +1 -1
  163. package/dist/core/{Spiral-A7K8dyqa.js → Spiral-CD2QDECd.js} +1 -1
  164. package/dist/core/{Star-Bhjof1Aq.js → Star-BumDeOUg.js} +1 -1
  165. package/dist/core/{Stone-BqVeG7vJ.js → Stone-DEC9Bd4P.js} +1 -1
  166. package/dist/core/{Strands-B_yNFviv.js → Strands-U8_IPQDU.js} +1 -1
  167. package/dist/core/{Stretch-CoJ0ZxXU.js → Stretch-RbG9gHTh.js} +1 -1
  168. package/dist/core/{Stripes-DnVSZwzX.js → Stripes-80ILPa8Q.js} +1 -1
  169. package/dist/core/{StudioBackground-WLPZVlBE.js → StudioBackground-SFRLc09j.js} +1 -1
  170. package/dist/core/{SunBurst-V0H9L8IC.js → SunBurst-DjNvFBRl.js} +1 -1
  171. package/dist/core/{Surface3D-CYrJo3xx.js → Surface3D-Bqk4Yeop.js} +1 -1
  172. package/dist/core/{Swirl-C5du-FPv.js → Swirl-CnMHiJHz.js} +1 -1
  173. package/dist/core/{Teardrop-BmMSpSnv.js → Teardrop-EmqO3Sx3.js} +1 -1
  174. package/dist/core/{Text-BI5tmkPX.js → Text-BJsHmsCm.js} +1 -1
  175. package/dist/core/{ThinFilm-Ce-bUUyq.js → ThinFilm-D3vXChVM.js} +1 -1
  176. package/dist/core/{TiltShift-DnjqzNPb.js → TiltShift-Domqy4zc.js} +31 -2
  177. package/dist/core/{TimeTrail-CZBKfdhv.js → TimeTrail-Do0hbdMs.js} +1 -1
  178. package/dist/core/{Tint-CiaVTPnf.js → Tint-CqpbM-1T.js} +1 -1
  179. package/dist/core/{Trapezoid-C5uh_TK4.js → Trapezoid-BywMSCKO.js} +1 -1
  180. package/dist/core/{TriangularGrid-B1E1yy5Y.js → TriangularGrid-BB-qGVAE.js} +1 -1
  181. package/dist/core/{Tritone-VDEMnDwQ.js → Tritone-DLT7D5QR.js} +1 -1
  182. package/dist/core/{Truchet-Bl6ASWtj.js → Truchet-CJRz81E8.js} +1 -1
  183. package/dist/core/{Twirl-BzLRq2-1.js → Twirl-DtcfYyaH.js} +1 -1
  184. package/dist/core/{VHS-BjOXkojN.js → VHS-CpYqcXq6.js} +1 -1
  185. package/dist/core/{VenetianBlinds-D6S_TOHF.js → VenetianBlinds-BHtiUoTI.js} +1 -1
  186. package/dist/core/{Vesica-Br6UVZt3.js → Vesica-CG8204gz.js} +1 -1
  187. package/dist/core/{Vibrance-D5x8kNPO.js → Vibrance-DtpQpHSp.js} +1 -1
  188. package/dist/core/{VideoTexture-CJIi00YZ.js → VideoTexture-DYm45n8L.js} +1 -1
  189. package/dist/core/{Vignette-BgPDqyZY.js → Vignette-DEIm5mc4.js} +1 -1
  190. package/dist/core/{Voronoi-C_0qmF5M.js → Voronoi-7nJncKbX.js} +1 -1
  191. package/dist/core/{Voxels-Cr2nX-J2.js → Voxels-k2uzj3MD.js} +1 -1
  192. package/dist/core/{Water-C1hpWaDG.js → Water-CEVn9O9R.js} +1 -1
  193. package/dist/core/{Watercolor-DcHvJiR0.js → Watercolor-Cm-kAcSI.js} +1 -1
  194. package/dist/core/{WaveDistortion-Dh79dGBr.js → WaveDistortion-DRzsmI4m.js} +1 -1
  195. package/dist/core/{Waveform-WaNoseGL.js → Waveform-C8-Mb-ck.js} +1 -1
  196. package/dist/core/{WaveletNoise-B7BbHyRe.js → WaveletNoise-D-3fuI6R.js} +2 -2
  197. package/dist/core/{Weave-ltmDeQ91.js → Weave-DqVqtYkP.js} +1 -1
  198. package/dist/core/{WebcamTexture-CxehSVcP.js → WebcamTexture-DPjuo0ZC.js} +1 -1
  199. package/dist/core/{Wool-BGpl5MnC.js → Wool-DgctZosq.js} +1 -1
  200. package/dist/core/{WorleyNoise-COzM7yGf.js → WorleyNoise-DH4396Rb.js} +1 -1
  201. package/dist/core/ZoomBlur-yWwweO4r.js +143 -0
  202. package/dist/core/docs-manifest.json +96 -58
  203. package/dist/core/gpu/kit/blur.d.ts +47 -6
  204. package/dist/core/gpu/kit/blur.d.ts.map +1 -1
  205. package/dist/core/gpu/kit/motionBlur.d.ts +88 -1
  206. package/dist/core/gpu/kit/motionBlur.d.ts.map +1 -1
  207. package/dist/core/index.js +203 -203
  208. package/dist/core/llms.txt +6 -3
  209. package/dist/core/{noiseColor-oUufQir9.js → noiseColor-B6kUgUln.js} +1 -1
  210. package/dist/core/registry.js +203 -203
  211. package/dist/core/shaderRegistry-C-P5WvzF.js +447 -0
  212. package/dist/core/shaders/AngularBlur/index.d.ts +36 -0
  213. package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
  214. package/dist/core/shaders/AngularBlur/index.js +2 -2
  215. package/dist/core/shaders/Arc/index.js +2 -2
  216. package/dist/core/shaders/Ascii/index.js +2 -2
  217. package/dist/core/shaders/Aurora/index.js +2 -2
  218. package/dist/core/shaders/BarShift/index.js +2 -2
  219. package/dist/core/shaders/BarnDoors/index.js +2 -2
  220. package/dist/core/shaders/Beam/index.js +2 -2
  221. package/dist/core/shaders/Bend/index.js +2 -2
  222. package/dist/core/shaders/Blob/index.js +2 -2
  223. package/dist/core/shaders/BlockDissolve/index.js +2 -2
  224. package/dist/core/shaders/BlockNoise/index.js +3 -3
  225. package/dist/core/shaders/BlueNoise/index.js +3 -3
  226. package/dist/core/shaders/Blur/index.js +2 -2
  227. package/dist/core/shaders/Boids/index.js +2 -2
  228. package/dist/core/shaders/BokehBlur/index.d.ts +7 -0
  229. package/dist/core/shaders/BokehBlur/index.d.ts.map +1 -1
  230. package/dist/core/shaders/BokehBlur/index.js +2 -2
  231. package/dist/core/shaders/BrickPattern/index.js +2 -2
  232. package/dist/core/shaders/BrightnessContrast/index.js +2 -2
  233. package/dist/core/shaders/BrushedMetal/index.js +2 -2
  234. package/dist/core/shaders/Bulge/index.js +2 -2
  235. package/dist/core/shaders/CRTScreen/index.js +2 -2
  236. package/dist/core/shaders/CarbonFiber/index.js +2 -2
  237. package/dist/core/shaders/Chalkboard/index.js +2 -2
  238. package/dist/core/shaders/ChannelBlur/index.js +2 -2
  239. package/dist/core/shaders/CheckerWipe/index.js +2 -2
  240. package/dist/core/shaders/Checkerboard/index.js +2 -2
  241. package/dist/core/shaders/Chevron/index.js +2 -2
  242. package/dist/core/shaders/ChromaFlow/index.js +2 -2
  243. package/dist/core/shaders/ChromaticAberration/index.js +2 -2
  244. package/dist/core/shaders/Chrome/index.js +2 -2
  245. package/dist/core/shaders/Circle/index.js +2 -2
  246. package/dist/core/shaders/ColorWheel/index.js +2 -2
  247. package/dist/core/shaders/CompressionArtifacts/index.js +2 -2
  248. package/dist/core/shaders/ConcentricSpin/index.js +2 -2
  249. package/dist/core/shaders/ConicGradient/index.js +2 -2
  250. package/dist/core/shaders/ContourLines/index.js +2 -2
  251. package/dist/core/shaders/CornerPin/index.js +2 -2
  252. package/dist/core/shaders/Crescent/index.js +2 -2
  253. package/dist/core/shaders/Cross/index.js +2 -2
  254. package/dist/core/shaders/Crystal/index.js +2 -2
  255. package/dist/core/shaders/CurlNoise/index.js +3 -3
  256. package/dist/core/shaders/CursorRipples/index.js +2 -2
  257. package/dist/core/shaders/CursorTrail/index.js +2 -2
  258. package/dist/core/shaders/DataMosh/index.js +2 -2
  259. package/dist/core/shaders/DiamondGradient/index.js +2 -2
  260. package/dist/core/shaders/DiamondWipe/index.js +2 -2
  261. package/dist/core/shaders/DiffuseBlur/index.d.ts +6 -0
  262. package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
  263. package/dist/core/shaders/DiffuseBlur/index.js +2 -2
  264. package/dist/core/shaders/DisplacementMap/index.js +2 -2
  265. package/dist/core/shaders/Dither/index.js +2 -2
  266. package/dist/core/shaders/DotGrid/index.js +2 -2
  267. package/dist/core/shaders/DropShadow/index.js +2 -2
  268. package/dist/core/shaders/Duotone/index.js +2 -2
  269. package/dist/core/shaders/Ellipse/index.js +2 -2
  270. package/dist/core/shaders/Emboss/index.js +2 -2
  271. package/dist/core/shaders/Engraving/index.js +2 -2
  272. package/dist/core/shaders/ErosionNoise/index.js +3 -3
  273. package/dist/core/shaders/Exposure/index.js +2 -2
  274. package/dist/core/shaders/FallingLines/index.js +2 -2
  275. package/dist/core/shaders/FilmGrain/index.js +2 -2
  276. package/dist/core/shaders/FilmStock/index.js +2 -2
  277. package/dist/core/shaders/Flip/index.js +2 -2
  278. package/dist/core/shaders/FloatingParticles/index.js +2 -2
  279. package/dist/core/shaders/FlowField/index.js +2 -2
  280. package/dist/core/shaders/Flower/index.js +2 -2
  281. package/dist/core/shaders/FlowingGradient/index.js +2 -2
  282. package/dist/core/shaders/FlutedGlass/index.js +2 -2
  283. package/dist/core/shaders/Fog/index.js +2 -2
  284. package/dist/core/shaders/Form3D/index.js +2 -2
  285. package/dist/core/shaders/FractalNoise/index.js +2 -2
  286. package/dist/core/shaders/Frost/index.js +2 -2
  287. package/dist/core/shaders/GaborNoise/index.js +3 -3
  288. package/dist/core/shaders/Glass/index.js +2 -2
  289. package/dist/core/shaders/GlassTiles/index.js +2 -2
  290. package/dist/core/shaders/Glitch/index.js +2 -2
  291. package/dist/core/shaders/Glow/index.js +2 -2
  292. package/dist/core/shaders/Godrays/index.js +2 -2
  293. package/dist/core/shaders/Goo/index.js +2 -2
  294. package/dist/core/shaders/GradientMap/index.js +2 -2
  295. package/dist/core/shaders/Grayscale/index.js +2 -2
  296. package/dist/core/shaders/Grid/index.js +2 -2
  297. package/dist/core/shaders/GridDistortion/index.js +2 -2
  298. package/dist/core/shaders/Group/index.js +2 -2
  299. package/dist/core/shaders/HTMLInCanvas/index.js +2 -2
  300. package/dist/core/shaders/Halftone/index.js +2 -2
  301. package/dist/core/shaders/Heart/index.js +2 -2
  302. package/dist/core/shaders/Heatmap/index.js +2 -2
  303. package/dist/core/shaders/HexGrid/index.js +2 -2
  304. package/dist/core/shaders/Hologram/index.js +2 -2
  305. package/dist/core/shaders/Holographic/index.js +2 -2
  306. package/dist/core/shaders/HueShift/index.js +2 -2
  307. package/dist/core/shaders/ImageTexture/index.js +2 -2
  308. package/dist/core/shaders/InkFlow/index.js +2 -2
  309. package/dist/core/shaders/Invert/index.js +2 -2
  310. package/dist/core/shaders/IrisWipe/index.js +2 -2
  311. package/dist/core/shaders/Irradiance/index.js +2 -2
  312. package/dist/core/shaders/IsometricCubes/index.js +2 -2
  313. package/dist/core/shaders/Kaleidoscope/index.js +2 -2
  314. package/dist/core/shaders/KeyFrames/index.js +2 -2
  315. package/dist/core/shaders/LensDistortion/index.js +2 -2
  316. package/dist/core/shaders/LensFlare/index.js +2 -2
  317. package/dist/core/shaders/LightEdge/index.js +2 -2
  318. package/dist/core/shaders/LightLeak/index.js +2 -2
  319. package/dist/core/shaders/Line/index.js +2 -2
  320. package/dist/core/shaders/LinearBlur/index.d.ts +36 -0
  321. package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
  322. package/dist/core/shaders/LinearBlur/index.js +2 -2
  323. package/dist/core/shaders/LinearGradient/index.js +2 -2
  324. package/dist/core/shaders/LinearWipe/index.js +2 -2
  325. package/dist/core/shaders/LiquidMetal/index.js +2 -2
  326. package/dist/core/shaders/Liquify/index.js +2 -2
  327. package/dist/core/shaders/MagneticFilings/index.js +2 -2
  328. package/dist/core/shaders/Marble/index.js +2 -2
  329. package/dist/core/shaders/MeshGradient/index.js +2 -2
  330. package/dist/core/shaders/Mirror/index.js +2 -2
  331. package/dist/core/shaders/MultiPointGradient/index.js +2 -2
  332. package/dist/core/shaders/Nebula/index.js +2 -2
  333. package/dist/core/shaders/Neon/index.js +2 -2
  334. package/dist/core/shaders/NoiseDissolve/index.js +2 -2
  335. package/dist/core/shaders/ObjectTracker/index.js +2 -2
  336. package/dist/core/shaders/Obsidian/index.js +2 -2
  337. package/dist/core/shaders/PagePeel/index.js +2 -2
  338. package/dist/core/shaders/Paper/index.js +2 -2
  339. package/dist/core/shaders/Parallelogram/index.js +2 -2
  340. package/dist/core/shaders/ParticleField/index.js +2 -2
  341. package/dist/core/shaders/ParticleFlow/index.js +2 -2
  342. package/dist/core/shaders/Particles/index.js +2 -2
  343. package/dist/core/shaders/PerlinNoise/index.js +3 -3
  344. package/dist/core/shaders/Perspective/index.js +2 -2
  345. package/dist/core/shaders/PixelSort/index.js +2 -2
  346. package/dist/core/shaders/PixelThrow/index.js +2 -2
  347. package/dist/core/shaders/Pixelate/index.js +2 -2
  348. package/dist/core/shaders/Plasma/index.js +2 -2
  349. package/dist/core/shaders/Plastic/index.js +2 -2
  350. package/dist/core/shaders/PolarCoordinates/index.js +2 -2
  351. package/dist/core/shaders/Polygon/index.js +2 -2
  352. package/dist/core/shaders/Posterize/index.js +2 -2
  353. package/dist/core/shaders/Prism/index.js +2 -2
  354. package/dist/core/shaders/ProgressiveBlur/index.d.ts +14 -0
  355. package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
  356. package/dist/core/shaders/ProgressiveBlur/index.js +2 -2
  357. package/dist/core/shaders/RadialGradient/index.js +2 -2
  358. package/dist/core/shaders/RadialWipe/index.js +2 -2
  359. package/dist/core/shaders/RandomBars/index.js +2 -2
  360. package/dist/core/shaders/ReactionDiffusion/index.js +2 -2
  361. package/dist/core/shaders/RectangularCoordinates/index.js +2 -2
  362. package/dist/core/shaders/ReflectivePlane/index.js +2 -2
  363. package/dist/core/shaders/Repeater/index.js +2 -2
  364. package/dist/core/shaders/Ring/index.js +2 -2
  365. package/dist/core/shaders/RippleWipe/index.js +2 -2
  366. package/dist/core/shaders/Ripples/index.js +2 -2
  367. package/dist/core/shaders/RoundedRect/index.js +2 -2
  368. package/dist/core/shaders/Satin/index.js +2 -2
  369. package/dist/core/shaders/Saturation/index.js +2 -2
  370. package/dist/core/shaders/Scratches/index.js +3 -3
  371. package/dist/core/shaders/Sharpness/index.js +2 -2
  372. package/dist/core/shaders/Shatter/index.js +2 -2
  373. package/dist/core/shaders/SimplexNoise/index.js +3 -3
  374. package/dist/core/shaders/SineWave/index.js +2 -2
  375. package/dist/core/shaders/SliceWipe/index.js +2 -2
  376. package/dist/core/shaders/Smoke/index.js +2 -2
  377. package/dist/core/shaders/SmokeFill/index.js +2 -2
  378. package/dist/core/shaders/SmokeFlow/index.js +2 -2
  379. package/dist/core/shaders/Solarize/index.js +2 -2
  380. package/dist/core/shaders/SolidColor/index.js +2 -2
  381. package/dist/core/shaders/Sparkle/index.js +2 -2
  382. package/dist/core/shaders/Spherize/index.js +2 -2
  383. package/dist/core/shaders/Spiral/index.js +2 -2
  384. package/dist/core/shaders/Star/index.js +2 -2
  385. package/dist/core/shaders/Stone/index.js +2 -2
  386. package/dist/core/shaders/Strands/index.js +2 -2
  387. package/dist/core/shaders/Stretch/index.js +2 -2
  388. package/dist/core/shaders/Stripes/index.js +2 -2
  389. package/dist/core/shaders/StudioBackground/index.js +2 -2
  390. package/dist/core/shaders/SunBurst/index.js +2 -2
  391. package/dist/core/shaders/Surface3D/index.js +2 -2
  392. package/dist/core/shaders/Swirl/index.js +2 -2
  393. package/dist/core/shaders/Teardrop/index.js +2 -2
  394. package/dist/core/shaders/Text/index.js +2 -2
  395. package/dist/core/shaders/ThinFilm/index.js +2 -2
  396. package/dist/core/shaders/TiltShift/index.d.ts +14 -0
  397. package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
  398. package/dist/core/shaders/TiltShift/index.js +2 -2
  399. package/dist/core/shaders/TimeTrail/index.js +2 -2
  400. package/dist/core/shaders/Tint/index.js +2 -2
  401. package/dist/core/shaders/Trapezoid/index.js +2 -2
  402. package/dist/core/shaders/TriangularGrid/index.js +2 -2
  403. package/dist/core/shaders/Tritone/index.js +2 -2
  404. package/dist/core/shaders/Truchet/index.js +2 -2
  405. package/dist/core/shaders/Twirl/index.js +2 -2
  406. package/dist/core/shaders/VHS/index.js +2 -2
  407. package/dist/core/shaders/VenetianBlinds/index.js +2 -2
  408. package/dist/core/shaders/Vesica/index.js +2 -2
  409. package/dist/core/shaders/Vibrance/index.js +2 -2
  410. package/dist/core/shaders/VideoTexture/index.js +2 -2
  411. package/dist/core/shaders/Vignette/index.js +2 -2
  412. package/dist/core/shaders/Voronoi/index.js +2 -2
  413. package/dist/core/shaders/Voxels/index.js +2 -2
  414. package/dist/core/shaders/Water/index.js +2 -2
  415. package/dist/core/shaders/Watercolor/index.js +2 -2
  416. package/dist/core/shaders/WaveDistortion/index.js +2 -2
  417. package/dist/core/shaders/Waveform/index.js +2 -2
  418. package/dist/core/shaders/WaveletNoise/index.js +3 -3
  419. package/dist/core/shaders/Weave/index.js +2 -2
  420. package/dist/core/shaders/WebcamTexture/index.js +2 -2
  421. package/dist/core/shaders/Wool/index.js +2 -2
  422. package/dist/core/shaders/WorleyNoise/index.js +2 -2
  423. package/dist/core/shaders/ZoomBlur/index.d.ts +42 -0
  424. package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
  425. package/dist/core/shaders/ZoomBlur/index.js +2 -2
  426. package/dist/core/std/effects/blurs.d.ts +54 -6
  427. package/dist/core/std/effects/blurs.d.ts.map +1 -1
  428. package/dist/core/std/index.js +1 -1
  429. package/dist/core/{std-ebybEx3c.js → std-DcYKWFSQ.js} +6991 -3849
  430. package/dist/js/bundle.js +89 -89
  431. package/dist/js/createShader.js +1 -1
  432. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  433. package/dist/js/utils/generatePresetCode.js +32 -7
  434. package/dist/react/Shader.js +1 -1
  435. package/dist/react/bundle.js +75 -75
  436. package/dist/react/components/AngularBlur.d.ts +7 -1
  437. package/dist/react/components/AngularBlur.d.ts.map +1 -1
  438. package/dist/react/components/DiffuseBlur.d.ts +2 -1
  439. package/dist/react/components/DiffuseBlur.d.ts.map +1 -1
  440. package/dist/react/components/LinearBlur.d.ts +7 -1
  441. package/dist/react/components/LinearBlur.d.ts.map +1 -1
  442. package/dist/react/components/ZoomBlur.d.ts +8 -1
  443. package/dist/react/components/ZoomBlur.d.ts.map +1 -1
  444. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  445. package/dist/react/utils/generatePresetCode.js +32 -7
  446. package/dist/registry.js +720 -0
  447. package/dist/solid/components/AngularBlur.d.ts +7 -1
  448. package/dist/solid/components/AngularBlur.d.ts.map +1 -1
  449. package/dist/solid/components/DiffuseBlur.d.ts +2 -1
  450. package/dist/solid/components/DiffuseBlur.d.ts.map +1 -1
  451. package/dist/solid/components/LinearBlur.d.ts +7 -1
  452. package/dist/solid/components/LinearBlur.d.ts.map +1 -1
  453. package/dist/solid/components/ZoomBlur.d.ts +8 -1
  454. package/dist/solid/components/ZoomBlur.d.ts.map +1 -1
  455. package/dist/solid/engine/Shader.js +1 -1
  456. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  457. package/dist/solid/utils/generatePresetCode.js +32 -7
  458. package/dist/svelte/components/AngularBlur.svelte.d.ts +6 -0
  459. package/dist/svelte/components/DiffuseBlur.svelte.d.ts +1 -0
  460. package/dist/svelte/components/LinearBlur.svelte.d.ts +6 -0
  461. package/dist/svelte/components/ZoomBlur.svelte.d.ts +7 -0
  462. package/dist/svelte/index.js +1 -1
  463. package/dist/svelte/source/components/AngularBlur.svelte +6 -0
  464. package/dist/svelte/source/components/DiffuseBlur.svelte +1 -0
  465. package/dist/svelte/source/components/LinearBlur.svelte +6 -0
  466. package/dist/svelte/source/components/ZoomBlur.svelte +7 -0
  467. package/dist/svelte/utils/generatePresetCode.js +32 -7
  468. package/dist/vue/AngularBlur.vue_vue_type_script_setup_true_lang.js +6 -0
  469. package/dist/vue/BokehBlur.vue_vue_type_script_setup_true_lang.js +2 -1
  470. package/dist/vue/DiffuseBlur.vue_vue_type_script_setup_true_lang.js +1 -0
  471. package/dist/vue/LinearBlur.vue_vue_type_script_setup_true_lang.js +6 -0
  472. package/dist/vue/ProgressiveBlur.vue_vue_type_script_setup_true_lang.js +3 -1
  473. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  474. package/dist/vue/TiltShift.vue_vue_type_script_setup_true_lang.js +3 -1
  475. package/dist/vue/ZoomBlur.vue_vue_type_script_setup_true_lang.js +7 -0
  476. package/dist/vue/components/AngularBlur.vue.d.ts +6 -0
  477. package/dist/vue/components/AngularBlur.vue.d.ts.map +1 -1
  478. package/dist/vue/components/DiffuseBlur.vue.d.ts +1 -0
  479. package/dist/vue/components/DiffuseBlur.vue.d.ts.map +1 -1
  480. package/dist/vue/components/LinearBlur.vue.d.ts +6 -0
  481. package/dist/vue/components/LinearBlur.vue.d.ts.map +1 -1
  482. package/dist/vue/components/ZoomBlur.vue.d.ts +7 -0
  483. package/dist/vue/components/ZoomBlur.vue.d.ts.map +1 -1
  484. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  485. package/dist/vue/utils/generatePresetCode.js +32 -7
  486. package/package.json +1 -1
  487. package/dist/core/AngularBlur-CadOY7zB.js +0 -43
  488. package/dist/core/LinearBlur-DgJP8TuW.js +0 -43
  489. package/dist/core/ZoomBlur-jsmAeX03.js +0 -43
  490. package/dist/core/shaderRegistry-jxUBiD5N.js +0 -447
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "engineVersion": "4.0.3",
4
- "generatedAt": "2026-10-08T23:34:23.198Z",
3
+ "engineVersion": "4.0.4",
4
+ "generatedAt": "2026-10-09T13:23:52.458Z",
5
5
  "groups": [
6
6
  {
7
7
  "id": "define",
@@ -1940,9 +1940,11 @@
1940
1940
  "effects.blurs.BlurPathSpec",
1941
1941
  "effects.blurs.ComputeBackedEffect",
1942
1942
  "effects.blurs.GatherFrame",
1943
+ "effects.blurs.MotionBlurDetailSlots",
1943
1944
  "effects.blurs.OverlayStage",
1944
1945
  "effects.blurs.PeelShade",
1945
- "effects.blurs.SampleStage"
1946
+ "effects.blurs.SampleStage",
1947
+ "effects.blurs.VariableBlurDetailSlots"
1946
1948
  ],
1947
1949
  "intro": "Effects that read the layer inside them (the child) as a texture and rebuild it: blurs, glows,\nsharpening, pixelation, shadows, retro screens, glitches, fluted glass, page peels and mirror\nfloors. A **pointwise** effect edits the child's color at one pixel; the words here are\n**gather** effects, which sample the child at other pixels too, so they can smear, spread and\ndisplace it. Every word here goes in a filter definition's `effect:` field, or spreads into a\ndefinition when it needs its own pass over the child first.\n\nFinished effects are one call: `gaussianBlur`, `motionBlur`, `bloom`, `pixelate`, `sharpen`,\n`scatter`, `bokehDefocus`. Stacked looks are assembled with `gatherStack` from a **sampling\nstage** (how the child is first read: `rgbSplit`, `chromaSmearTaps`, `crispTap`, `childTap`)\nand ordered **overlay stages** that edit the result (`scanlines`, `adjust`, `rimLit`,\n`shadowComposite`). When several stages need the same geometry, build a **frame** once\n(`sphereFrame`, `glitchFrame`, `fluteFrame`, `peelFrame`) and hand it to each of them.\n\nBlurs that need a separate pass (`gaussianBlur`, `channelBlur`, `progressiveBlur`,\n`tiltShift`, `bloom`, `bokehDefocus`) return both halves at once. Spread them into a definition\nthat declares `species: 'custom'`, `requiresRTT: true` and `requiresChild: true` instead of\nusing `effect:`.",
1948
1950
  "example": "import {defineShader, p, effects, transformColor, transformBoolean} from 'shaders/std'\n\nconst {gatherStack, childTap, shadowOffset, silhouetteCoverage, shadowComposite} = effects.blurs\n\n// A soft drop shadow: read the child's silhouette offset in a compass direction, blur it,\n// tint it, and place it behind the child.\nexport const SoftShadow = defineShader({\n name: 'SoftShadow',\n props: {\n color: {default: '#000000', transform: transformColor},\n distance: {default: 0.1},\n angle: {default: 135},\n blur: {default: 5},\n intensity: {default: 0.5},\n cutout: {default: false, transform: transformBoolean, compileTime: true},\n },\n effect: gatherStack(childTap(), [\n shadowComposite({\n coverage: silhouetteCoverage({\n at: shadowOffset({angle: p('angle'), distance: p('distance')}),\n blur: p('blur'),\n }),\n color: p('color'),\n intensity: p('intensity'),\n cutout: p('cutout'),\n }),\n ]),\n})",
@@ -3472,22 +3474,28 @@
3472
3474
  "usage": "crosses"
3473
3475
  },
3474
3476
  "usedBy": [
3477
+ "AngularBlur",
3475
3478
  "BrightnessContrast",
3479
+ "DiffuseBlur",
3476
3480
  "Exposure",
3477
3481
  "FilmGrain",
3478
3482
  "FilmStock",
3479
3483
  "Glow",
3480
3484
  "GradientMap",
3481
3485
  "HueShift",
3486
+ "LinearBlur",
3482
3487
  "MeshGradient",
3488
+ "ProgressiveBlur",
3483
3489
  "Repeater",
3484
3490
  "Saturation",
3485
3491
  "Sharpness",
3486
3492
  "Solarize",
3487
3493
  "Sparkle",
3494
+ "TiltShift",
3488
3495
  "Vibrance",
3489
3496
  "Vignette",
3490
- "Watercolor"
3497
+ "Watercolor",
3498
+ "ZoomBlur"
3491
3499
  ],
3492
3500
  "documented": true,
3493
3501
  "source": {
@@ -20157,12 +20165,14 @@
20157
20165
  "category": "effects.blurs",
20158
20166
  "module": "std/effects/blurs.ts",
20159
20167
  "summary": "Smears the child along a path: a straight streak, an arc around a point, or a zoom out of a point.",
20160
- "description": "`amount` is a 0–100 intensity. A linear streak spans about twice `amount` in pixels; at 100 an orbit sweeps about 29 degrees and a zoom pulls in from twice the distance to its center.",
20168
+ "description": "`amount` is a 0–100 intensity. A linear streak spans about twice `amount` in pixels; at 100 an orbit sweeps about 29 degrees and a zoom pulls in from twice the distance to its center. `detail` adds the lens dials (`dispersion`, `falloff`, `focus`) and streak dials (`bias`, `highlights`, `jitter`, and `spiral` for a zoom); all are off at 0 and cost nothing until one is set.",
20161
20169
  "examples": [
20162
- "effect: motionBlur({path: blurPath.linear(p('angle')), amount: p('intensity')})"
20170
+ "effect: motionBlur({path: blurPath.linear(p('angle')), amount: p('intensity')})",
20171
+ "effect: motionBlur({path: blurPath.zoom(p('center')), amount: p('intensity'), detail: {dispersion: p('dispersion'), falloff: p('falloff'), focus: p('focus'), bias: p('bias'), highlights: p('highlights'), jitter: p('jitter'), spiral: p('spiral')}})"
20163
20172
  ],
20164
20173
  "tips": [
20165
- "Samples past the canvas edge repeat the border color. Wrap the layer in a larger group if the smear must fade out instead."
20174
+ "Samples past the canvas edge repeat the border color. Wrap the layer in a larger group if the smear must fade out instead.",
20175
+ "Give every `detail` prop `recompile: crosses(0)`; the detail gather is only compiled while one of them is non-zero."
20166
20176
  ],
20167
20177
  "see": [
20168
20178
  "effects.blurs.blurPath",
@@ -20181,14 +20191,14 @@
20181
20191
  "documented": true,
20182
20192
  "source": {
20183
20193
  "file": "std/effects/blurs.ts",
20184
- "line": 396
20194
+ "line": 429
20185
20195
  },
20186
20196
  "kind": "function",
20187
- "signature": "motionBlur(opts: {path: BlurPathSpec; amount: ArgSpec}): GatherEffect",
20197
+ "signature": "motionBlur(opts: {path: BlurPathSpec; amount: ArgSpec; detail?: MotionBlurDetailSlots}): GatherEffect",
20188
20198
  "params": [
20189
20199
  {
20190
20200
  "name": "opts",
20191
- "type": "{path: BlurPathSpec; amount: ArgSpec}",
20201
+ "type": "{path: BlurPathSpec; amount: ArgSpec; detail?: MotionBlurDetailSlots}",
20192
20202
  "optional": false
20193
20203
  }
20194
20204
  ]
@@ -20200,7 +20210,7 @@
20200
20210
  "category": "effects.blurs",
20201
20211
  "module": "std/effects/blurs.ts",
20202
20212
  "summary": "Scatters every pixel of the child by a random offset: a grainy diffusion, not a smooth blur.",
20203
- "description": "`amount` is the largest offset in pixels. `edges` is a prop with `transform: transformEdges` and `compileTime: true` ('stretch' | 'transparent' | 'mirror' | 'wrap') that says what to read where an offset lands outside the canvas.",
20213
+ "description": "`amount` is the largest offset in pixels. `edges` is a prop with `transform: transformEdges` and `compileTime: true` ('stretch' | 'transparent' | 'mirror' | 'wrap') that says what to read where an offset lands outside the canvas. `chromatic` (0–1, optional) scatters red and blue on their own, for a sparkly colour grain; it is off at 0, so give it `recompile: crosses(0)`.",
20204
20214
  "examples": [
20205
20215
  "effect: scatter({amount: p('intensity'), edges: p('edges')})"
20206
20216
  ],
@@ -20219,14 +20229,14 @@
20219
20229
  "documented": true,
20220
20230
  "source": {
20221
20231
  "file": "std/effects/blurs.ts",
20222
- "line": 428
20232
+ "line": 491
20223
20233
  },
20224
20234
  "kind": "function",
20225
- "signature": "scatter(opts: {amount: ArgSpec; edges: PropRef}): GatherEffect",
20235
+ "signature": "scatter(opts: {amount: ArgSpec; edges: PropRef; chromatic?: PropRef}): GatherEffect",
20226
20236
  "params": [
20227
20237
  {
20228
20238
  "name": "opts",
20229
- "type": "{amount: ArgSpec; edges: PropRef}",
20239
+ "type": "{amount: ArgSpec; edges: PropRef; chromatic?: PropRef}",
20230
20240
  "optional": false
20231
20241
  }
20232
20242
  ]
@@ -20259,7 +20269,7 @@
20259
20269
  "documented": true,
20260
20270
  "source": {
20261
20271
  "file": "std/effects/blurs.ts",
20262
- "line": 457
20272
+ "line": 521
20263
20273
  },
20264
20274
  "kind": "function",
20265
20275
  "signature": "sharpen(amount: ArgSpec): GatherEffect",
@@ -20297,7 +20307,7 @@
20297
20307
  "documented": true,
20298
20308
  "source": {
20299
20309
  "file": "std/effects/blurs.ts",
20300
- "line": 485
20310
+ "line": 549
20301
20311
  },
20302
20312
  "kind": "function",
20303
20313
  "signature": "pixelate(opts: {scale: ArgSpec; gap: ArgSpec; roundness: ArgSpec}): GatherEffect",
@@ -20336,7 +20346,7 @@
20336
20346
  "documented": true,
20337
20347
  "source": {
20338
20348
  "file": "std/effects/blurs.ts",
20339
- "line": 516
20349
+ "line": 580
20340
20350
  },
20341
20351
  "kind": "function",
20342
20352
  "signature": "sphereFrame(opts: {center: ArgSpec; radius: ArgSpec; depth: ArgSpec}): GatherFrame",
@@ -20375,7 +20385,7 @@
20375
20385
  "documented": true,
20376
20386
  "source": {
20377
20387
  "file": "std/effects/blurs.ts",
20378
- "line": 539
20388
+ "line": 603
20379
20389
  },
20380
20390
  "kind": "function",
20381
20391
  "signature": "crispTap(frame: GatherFrame): SampleStage",
@@ -20414,7 +20424,7 @@
20414
20424
  "documented": true,
20415
20425
  "source": {
20416
20426
  "file": "std/effects/blurs.ts",
20417
- "line": 562
20427
+ "line": 626
20418
20428
  },
20419
20429
  "kind": "function",
20420
20430
  "signature": "rimLit(frame: GatherFrame, opts: {\n position: ArgSpec\n intensity: ArgSpec\n softness: ArgSpec\n color: PropRef\n}): OverlayStage",
@@ -20459,7 +20469,7 @@
20459
20469
  "documented": true,
20460
20470
  "source": {
20461
20471
  "file": "std/effects/blurs.ts",
20462
- "line": 596
20472
+ "line": 660
20463
20473
  },
20464
20474
  "kind": "function",
20465
20475
  "signature": "glitchFrame(opts: {\n intensity: ArgSpec\n speed: ArgSpec\n blockDensity: ArgSpec\n mirrorAmount: ArgSpec\n}): GatherFrame",
@@ -20498,7 +20508,7 @@
20498
20508
  "documented": true,
20499
20509
  "source": {
20500
20510
  "file": "std/effects/blurs.ts",
20501
- "line": 622
20511
+ "line": 686
20502
20512
  },
20503
20513
  "kind": "function",
20504
20514
  "signature": "glitchRgbSplit(frame: GatherFrame, opts: {shift: ArgSpec}): SampleStage",
@@ -20542,7 +20552,7 @@
20542
20552
  "documented": true,
20543
20553
  "source": {
20544
20554
  "file": "std/effects/blurs.ts",
20545
- "line": 649
20555
+ "line": 713
20546
20556
  },
20547
20557
  "kind": "function",
20548
20558
  "signature": "colorBarFills(frame: GatherFrame, opts: {intensity: ArgSpec}): OverlayStage",
@@ -20585,7 +20595,7 @@
20585
20595
  "documented": true,
20586
20596
  "source": {
20587
20597
  "file": "std/effects/blurs.ts",
20588
- "line": 671
20598
+ "line": 735
20589
20599
  },
20590
20600
  "kind": "function",
20591
20601
  "signature": "distortedScanlines(frame: GatherFrame, opts: {intensity: ArgSpec}): OverlayStage",
@@ -20633,7 +20643,7 @@
20633
20643
  "documented": true,
20634
20644
  "source": {
20635
20645
  "file": "std/effects/blurs.ts",
20636
- "line": 721
20646
+ "line": 785
20637
20647
  },
20638
20648
  "kind": "function",
20639
20649
  "signature": "gaussianBlur(opts: {intensity: PropRef}): ComputeBackedEffect",
@@ -20671,7 +20681,7 @@
20671
20681
  "documented": true,
20672
20682
  "source": {
20673
20683
  "file": "std/effects/blurs.ts",
20674
- "line": 771
20684
+ "line": 835
20675
20685
  },
20676
20686
  "kind": "function",
20677
20687
  "signature": "channelBlur(opts: {red: PropRef; green: PropRef; blue: PropRef}): ComputeBackedEffect",
@@ -20690,7 +20700,7 @@
20690
20700
  "category": "effects.blurs",
20691
20701
  "module": "std/effects/blurs.ts",
20692
20702
  "summary": "A blur that ramps from sharp to full strength in one direction across the child.",
20693
- "description": "The ramp starts at `center` (a position in uv) and runs along `angle` (degrees, 0 points right), reaching full blur `falloff` (0–1, in uv) past the center. `intensity` (0–100) is the blur at the far end; 100 is a radius of about 36 pixels. Bind `intensity` to a map to vary the ceiling per pixel. Alpha stays sharp.",
20703
+ "description": "The ramp starts at `center` (a position in uv) and runs along `angle` (degrees, 0 points right), reaching full blur `falloff` (0–1, in uv) past the center. `intensity` (0–100) is the blur at the far end; 100 is a radius of about 36 pixels. Bind `intensity` to a map to vary the ceiling per pixel. Alpha stays sharp. `detail` adds the lens dials (see `VariableBlurDetailSlots`), both off at 0.",
20694
20704
  "examples": [
20695
20705
  "...progressiveBlur({intensity: p('intensity'), angle: p('angle'), center: p('center'), falloff: p('falloff')})"
20696
20706
  ],
@@ -20709,14 +20719,14 @@
20709
20719
  "documented": true,
20710
20720
  "source": {
20711
20721
  "file": "std/effects/blurs.ts",
20712
- "line": 811
20722
+ "line": 904
20713
20723
  },
20714
20724
  "kind": "function",
20715
- "signature": "progressiveBlur(opts: {\n intensity: PropRef\n angle: PropRef\n center: PropRef\n falloff: PropRef\n}): ComputeBackedEffect",
20725
+ "signature": "progressiveBlur(opts: {\n intensity: PropRef\n angle: PropRef\n center: PropRef\n falloff: PropRef\n detail?: VariableBlurDetailSlots\n}): ComputeBackedEffect",
20716
20726
  "params": [
20717
20727
  {
20718
20728
  "name": "opts",
20719
- "type": "{\n intensity: PropRef\n angle: PropRef\n center: PropRef\n falloff: PropRef\n}",
20729
+ "type": "{\n intensity: PropRef\n angle: PropRef\n center: PropRef\n falloff: PropRef\n detail?: VariableBlurDetailSlots\n}",
20720
20730
  "optional": false
20721
20731
  }
20722
20732
  ]
@@ -20728,7 +20738,7 @@
20728
20738
  "category": "effects.blurs",
20729
20739
  "module": "std/effects/blurs.ts",
20730
20740
  "summary": "Keeps a band of the child in focus and blurs everything beyond it, like a tilt-shift lens.",
20731
- "description": "The band runs through `center` (a position in uv) at `angle` (degrees, 0 is horizontal) and is `width` wide (0–1, in uv). Beyond it the blur ramps to full strength over `falloff` (0–1). `intensity` (0–100) is the blur at the far edges. Pixels inside the band stay pixel-sharp.",
20741
+ "description": "The band runs through `center` (a position in uv) at `angle` (degrees, 0 is horizontal) and is `width` wide (0–1, in uv). Beyond it the blur ramps to full strength over `falloff` (0–1). `intensity` (0–100) is the blur at the far edges. Pixels inside the band stay pixel-sharp. `detail` adds the lens dials (see `VariableBlurDetailSlots`), both off at 0.",
20732
20742
  "examples": [
20733
20743
  "...tiltShift({intensity: p('intensity'), width: p('width'), falloff: p('falloff'), angle: p('angle'), center: p('center')})"
20734
20744
  ],
@@ -20748,14 +20758,14 @@
20748
20758
  "documented": true,
20749
20759
  "source": {
20750
20760
  "file": "std/effects/blurs.ts",
20751
- "line": 885
20761
+ "line": 983
20752
20762
  },
20753
20763
  "kind": "function",
20754
- "signature": "tiltShift(opts: {\n intensity: PropRef\n width: PropRef\n falloff: PropRef\n angle: PropRef\n center: PropRef\n}): ComputeBackedEffect",
20764
+ "signature": "tiltShift(opts: {\n intensity: PropRef\n width: PropRef\n falloff: PropRef\n angle: PropRef\n center: PropRef\n detail?: VariableBlurDetailSlots\n}): ComputeBackedEffect",
20755
20765
  "params": [
20756
20766
  {
20757
20767
  "name": "opts",
20758
- "type": "{\n intensity: PropRef\n width: PropRef\n falloff: PropRef\n angle: PropRef\n center: PropRef\n}",
20768
+ "type": "{\n intensity: PropRef\n width: PropRef\n falloff: PropRef\n angle: PropRef\n center: PropRef\n detail?: VariableBlurDetailSlots\n}",
20759
20769
  "optional": false
20760
20770
  }
20761
20771
  ]
@@ -20787,7 +20797,7 @@
20787
20797
  "documented": true,
20788
20798
  "source": {
20789
20799
  "file": "std/effects/blurs.ts",
20790
- "line": 967
20800
+ "line": 1069
20791
20801
  },
20792
20802
  "kind": "function",
20793
20803
  "signature": "bloom(opts: {intensity: PropRef; threshold: PropRef; size: PropRef}): ComputeBackedEffect",
@@ -20825,7 +20835,7 @@
20825
20835
  "documented": true,
20826
20836
  "source": {
20827
20837
  "file": "std/effects/blurs.ts",
20828
- "line": 1005
20838
+ "line": 1107
20829
20839
  },
20830
20840
  "kind": "function",
20831
20841
  "signature": "childTap(): SampleStage",
@@ -20857,7 +20867,7 @@
20857
20867
  "documented": true,
20858
20868
  "source": {
20859
20869
  "file": "std/effects/blurs.ts",
20860
- "line": 1023
20870
+ "line": 1125
20861
20871
  },
20862
20872
  "kind": "function",
20863
20873
  "signature": "shadowOffset(opts: {angle: ArgSpec; distance: ArgSpec}): (params: RttFilterParams) => Expr",
@@ -20895,7 +20905,7 @@
20895
20905
  "documented": true,
20896
20906
  "source": {
20897
20907
  "file": "std/effects/blurs.ts",
20898
- "line": 1044
20908
+ "line": 1146
20899
20909
  },
20900
20910
  "kind": "function",
20901
20911
  "signature": "silhouetteCoverage(opts: {at: (params: RttFilterParams) => Expr; blur: ArgSpec}): (params: RttFilterParams) => Expr",
@@ -20934,7 +20944,7 @@
20934
20944
  "documented": true,
20935
20945
  "source": {
20936
20946
  "file": "std/effects/blurs.ts",
20937
- "line": 1069
20947
+ "line": 1171
20938
20948
  },
20939
20949
  "kind": "function",
20940
20950
  "signature": "shadowComposite(opts: {\n coverage: (params: RttFilterParams) => Expr\n color: PropRef\n intensity: ArgSpec\n cutout: PropRef\n}): OverlayStage",
@@ -20973,7 +20983,7 @@
20973
20983
  "documented": true,
20974
20984
  "source": {
20975
20985
  "file": "std/effects/blurs.ts",
20976
- "line": 1115
20986
+ "line": 1217
20977
20987
  },
20978
20988
  "kind": "function",
20979
20989
  "signature": "fluteFrame(opts: {\n shape: PropRef\n angle: ArgSpec\n frequency: ArgSpec\n softness: ArgSpec\n waveAmplitude: ArgSpec\n waveFrequency: ArgSpec\n refraction: ArgSpec\n aberration: ArgSpec\n}): GatherFrame",
@@ -21012,7 +21022,7 @@
21012
21022
  "documented": true,
21013
21023
  "source": {
21014
21024
  "file": "std/effects/blurs.ts",
21015
- "line": 1158
21025
+ "line": 1260
21016
21026
  },
21017
21027
  "kind": "function",
21018
21028
  "signature": "refractedTaps(frame: GatherFrame, opts: {aberration: PropRef; edges: PropRef}): SampleStage",
@@ -21056,7 +21066,7 @@
21056
21066
  "documented": true,
21057
21067
  "source": {
21058
21068
  "file": "std/effects/blurs.ts",
21059
- "line": 1188
21069
+ "line": 1290
21060
21070
  },
21061
21071
  "kind": "function",
21062
21072
  "signature": "fluteHighlight(frame: GatherFrame, opts: {\n lightAngle: ArgSpec\n highlight: ArgSpec\n softness: ArgSpec\n color: PropRef\n}): OverlayStage",
@@ -21104,7 +21114,7 @@
21104
21114
  "documented": true,
21105
21115
  "source": {
21106
21116
  "file": "std/effects/blurs.ts",
21107
- "line": 1233
21117
+ "line": 1335
21108
21118
  },
21109
21119
  "kind": "function",
21110
21120
  "signature": "peelFrame(opts: {corner: PropRef; amount: ArgSpec; radius: ArgSpec}): GatherFrame",
@@ -21143,7 +21153,7 @@
21143
21153
  "documented": true,
21144
21154
  "source": {
21145
21155
  "file": "std/effects/blurs.ts",
21146
- "line": 1256
21156
+ "line": 1358
21147
21157
  },
21148
21158
  "kind": "function",
21149
21159
  "signature": "curlShading(frame: GatherFrame, opts: {shading: ArgSpec}): PeelShade",
@@ -21187,7 +21197,7 @@
21187
21197
  "documented": true,
21188
21198
  "source": {
21189
21199
  "file": "std/effects/blurs.ts",
21190
- "line": 1272
21200
+ "line": 1374
21191
21201
  },
21192
21202
  "kind": "function",
21193
21203
  "signature": "curlSheen(frame: GatherFrame, opts: {highlight: ArgSpec; softness: ArgSpec}): PeelShade",
@@ -21231,7 +21241,7 @@
21231
21241
  "documented": true,
21232
21242
  "source": {
21233
21243
  "file": "std/effects/blurs.ts",
21234
- "line": 1290
21244
+ "line": 1392
21235
21245
  },
21236
21246
  "kind": "function",
21237
21247
  "signature": "overhangShadow(frame: GatherFrame, opts: {amount: ArgSpec; shadow: ArgSpec}): PeelShade",
@@ -21275,7 +21285,7 @@
21275
21285
  "documented": true,
21276
21286
  "source": {
21277
21287
  "file": "std/effects/blurs.ts",
21278
- "line": 1311
21288
+ "line": 1413
21279
21289
  },
21280
21290
  "kind": "function",
21281
21291
  "signature": "revealShadow(frame: GatherFrame, opts: {amount: ArgSpec; shadow: ArgSpec}): PeelShade",
@@ -21321,7 +21331,7 @@
21321
21331
  "documented": true,
21322
21332
  "source": {
21323
21333
  "file": "std/effects/blurs.ts",
21324
- "line": 1335
21334
+ "line": 1437
21325
21335
  },
21326
21336
  "kind": "function",
21327
21337
  "signature": "peelCompose(frame: GatherFrame, parts: {\n shade: PeelShade\n sheen: PeelShade\n overhang: PeelShade\n reveal: PeelShade\n}): SampleStage",
@@ -21364,7 +21374,7 @@
21364
21374
  "documented": true,
21365
21375
  "source": {
21366
21376
  "file": "std/effects/blurs.ts",
21367
- "line": 1443
21377
+ "line": 1545
21368
21378
  },
21369
21379
  "kind": "function",
21370
21380
  "signature": "mirrorAcrossRow(line: PropRef): (params: GpuFragmentParams) => Expr",
@@ -21403,7 +21413,7 @@
21403
21413
  "documented": true,
21404
21414
  "source": {
21405
21415
  "file": "std/effects/blurs.ts",
21406
- "line": 1465
21416
+ "line": 1567
21407
21417
  },
21408
21418
  "kind": "function",
21409
21419
  "signature": "depthRampBlur(opts: {line: PropRef; blur: PropRef; blurDistance: PropRef; halfKernel: number}): {compute: GpuComputeNode}",
@@ -21441,7 +21451,7 @@
21441
21451
  "documented": true,
21442
21452
  "source": {
21443
21453
  "file": "std/effects/blurs.ts",
21444
- "line": 1496
21454
+ "line": 1598
21445
21455
  },
21446
21456
  "kind": "function",
21447
21457
  "signature": "planarReflection(opts: {line: PropRef; distance: PropRef; falloff: PropRef; edges: PropRef}, original: Expr, reflection: (uv: Expr) => Expr, reflectedUV: (params: GpuFragmentParams) => Expr): (params: GpuFragmentParams) => Expr",
@@ -21496,7 +21506,7 @@
21496
21506
  "documented": true,
21497
21507
  "source": {
21498
21508
  "file": "std/effects/blurs.ts",
21499
- "line": 1555
21509
+ "line": 1657
21500
21510
  },
21501
21511
  "kind": "function",
21502
21512
  "signature": "screenedBloom(slots: {\n strength: PropRef\n radius: PropRef\n tint: [number, number, number]\n threshold: number\n output: string\n extractName: string\n}): {\n compute: GpuComputeNode\n screen: (base: Expr, at: Expr, params: GpuFragmentParams) => Expr\n}",
@@ -21535,7 +21545,7 @@
21535
21545
  "documented": true,
21536
21546
  "source": {
21537
21547
  "file": "std/effects/blurs.ts",
21538
- "line": 1626
21548
+ "line": 1728
21539
21549
  },
21540
21550
  "kind": "function",
21541
21551
  "signature": "frameSway(slots: {amount: PropRef; field: string}): (params: GpuFragmentParams) => Expr",
@@ -21554,7 +21564,7 @@
21554
21564
  "category": "effects.blurs",
21555
21565
  "module": "std/effects/blurs.ts",
21556
21566
  "summary": "A photographic lens blur where bright highlights bloom into aperture-shaped discs.",
21557
- "description": "`radius` (0–100) is the defocus; 100 is a disc about 80 pixels across. `gain` (0–10) is how strongly highlights bloom and `threshold` (0–1) the brightness they must pass. `shape` is a string prop: 'blades' | 'circle' | 'star' | 'heart' | 'flower' | 'cross' | 'ring'. `blades` (0–9) counts blades or points for the blades, star and flower shapes; 0–2 is a round iris. `rotation` is in degrees and `fringe` (0–1) adds color fringing at the disc edges. Both color and coverage blur, so silhouettes soften like a real lens. Changing the aperture never recompiles. Spread it into a definition with `species: 'custom'`, `requiresRTT: true` and `requiresChild: true`.",
21567
+ "description": "`radius` (0–100) is the defocus; 100 is a disc about 80 pixels across. `gain` (0–10) is how strongly highlights bloom and `threshold` (0–1) the brightness they must pass. `shape` is a string prop: 'blades' | 'circle' | 'star' | 'heart' | 'flower' | 'cross' | 'ring'. `blades` (0–9) counts blades or points for the blades, star and flower shapes; 0–2 is a round iris. `rotation` is in degrees and `fringe` (0–1) adds color fringing at the disc edges. `catEye` (0–1, optional) clips the discs into cat-eye shapes toward the frame corners, the way a lens barrel vignettes its aperture; 0 is off. Both color and coverage blur, so silhouettes soften like a real lens. Changing the aperture never recompiles. Spread it into a definition with `species: 'custom'`, `requiresRTT: true` and `requiresChild: true`.",
21558
21568
  "examples": [
21559
21569
  "...bokehDefocus({radius: p('radius'), gain: p('highlightGain'), threshold: p('highlightThreshold'), shape: p('bladeShape'), blades: p('bladeCount'), rotation: p('bladeRotation'), fringe: p('chromaticFringe')})"
21560
21570
  ],
@@ -21574,14 +21584,14 @@
21574
21584
  "documented": true,
21575
21585
  "source": {
21576
21586
  "file": "std/effects/blurs.ts",
21577
- "line": 1690
21587
+ "line": 1793
21578
21588
  },
21579
21589
  "kind": "function",
21580
- "signature": "bokehDefocus(opts: {\n radius: PropRef\n gain: PropRef\n threshold: PropRef\n shape: PropRef\n blades: PropRef\n rotation: PropRef\n fringe: PropRef\n}): {compute: GpuComputeNode; gpu: {fragment: (params: GpuFragmentParams) => Expr}}",
21590
+ "signature": "bokehDefocus(opts: {\n radius: PropRef\n gain: PropRef\n threshold: PropRef\n shape: PropRef\n blades: PropRef\n rotation: PropRef\n fringe: PropRef\n catEye?: PropRef\n}): {compute: GpuComputeNode; gpu: {fragment: (params: GpuFragmentParams) => Expr}}",
21581
21591
  "params": [
21582
21592
  {
21583
21593
  "name": "opts",
21584
- "type": "{\n radius: PropRef\n gain: PropRef\n threshold: PropRef\n shape: PropRef\n blades: PropRef\n rotation: PropRef\n fringe: PropRef\n}",
21594
+ "type": "{\n radius: PropRef\n gain: PropRef\n threshold: PropRef\n shape: PropRef\n blades: PropRef\n rotation: PropRef\n fringe: PropRef\n catEye?: PropRef\n}",
21585
21595
  "optional": false
21586
21596
  }
21587
21597
  ]
@@ -28314,6 +28324,20 @@
28314
28324
  "line": 337
28315
28325
  }
28316
28326
  },
28327
+ "effects.blurs.MotionBlurDetailSlots": {
28328
+ "id": "effects.blurs.MotionBlurDetailSlots",
28329
+ "name": "MotionBlurDetailSlots",
28330
+ "category": "effects.blurs",
28331
+ "module": "std/effects/blurs.ts",
28332
+ "kind": "interface",
28333
+ "text": "interface MotionBlurDetailSlots {\n /** −1 to 1: tint the taps along the streak with a spectrum, red at one end and violet at the other; the sign swaps the ends. */\n dispersion?: PropRef\n /** 0–1: concentrate the dispersion away from the centre; 0 spreads it evenly. */\n falloff?: PropRef\n /** 0–1: a clean zone around the centre that the blur leaves untouched. */\n focus?: PropRef\n /** −1 to 1: trail the streak off one side of each pixel instead of both. */\n bias?: PropRef\n /** 0–1: let bright pixels streak further than dark ones. */\n highlights?: PropRef\n /** 0–1: dither the tap comb with per-pixel noise so long streaks do not band. */\n jitter?: PropRef\n /** −1 to 1, zoom paths only: corkscrew the streak around the centre. */\n spiral?: PropRef\n}",
28334
+ "summary": "The optional lens and streak dials of `motionBlur`.",
28335
+ "description": "Each is a prop ref whose value 0 is off; give every one `recompile: crosses(0)` so the shader switches between the plain gather and the detail gather exactly when a dial leaves or returns to 0.",
28336
+ "source": {
28337
+ "file": "std/effects/blurs.ts",
28338
+ "line": 386
28339
+ }
28340
+ },
28317
28341
  "effects.blurs.ComputeBackedEffect": {
28318
28342
  "id": "effects.blurs.ComputeBackedEffect",
28319
28343
  "name": "ComputeBackedEffect",
@@ -28325,7 +28349,21 @@
28325
28349
  "description": "Spread the whole object into a definition that declares `species: 'custom'`, `requiresRTT: true` and `requiresChild: true`.",
28326
28350
  "source": {
28327
28351
  "file": "std/effects/blurs.ts",
28328
- "line": 698
28352
+ "line": 762
28353
+ }
28354
+ },
28355
+ "effects.blurs.VariableBlurDetailSlots": {
28356
+ "id": "effects.blurs.VariableBlurDetailSlots",
28357
+ "name": "VariableBlurDetailSlots",
28358
+ "category": "effects.blurs",
28359
+ "module": "std/effects/blurs.ts",
28360
+ "kind": "interface",
28361
+ "text": "interface VariableBlurDetailSlots {\n dispersion?: PropRef\n jitter?: PropRef\n}",
28362
+ "summary": "The optional lens dials of `progressiveBlur` and `tiltShift`.",
28363
+ "description": "`dispersion` (−1 to 1) blurs red and blue by different radii for a defocus colour fringe that grows with the blur; `jitter` (0–1) dithers the tap comb so long radii do not band. Both are off at 0 and read per frame; give `dispersion` `recompile: crosses(0)`, since its kernel is only built while it is non-zero.",
28364
+ "source": {
28365
+ "file": "std/effects/blurs.ts",
28366
+ "line": 864
28329
28367
  }
28330
28368
  },
28331
28369
  "effects.blurs.PeelShade": {
@@ -28339,7 +28377,7 @@
28339
28377
  "description": "`curlShading`, `curlSheen`, `overhangShadow` and `revealShadow` each make one; `peelCompose` takes all four.",
28340
28378
  "source": {
28341
28379
  "file": "std/effects/blurs.ts",
28342
- "line": 1212
28380
+ "line": 1314
28343
28381
  }
28344
28382
  },
28345
28383
  "effects.stylize.GatherStage": {
@@ -71,6 +71,12 @@ export interface VariableBlurComputeResult {
71
71
  setInputDimensions: (width: number, height: number) => void;
72
72
  /** blur-run: (re)bind the source texture the H pass reads (see GaussianBlurComputeResult). */
73
73
  setInputTexture: (input: BlurInputTexture) => void;
74
+ /**
75
+ * Per-frame detail dials: `jitter` (0–1) dithers the tap comb; `dispersion` (signed) is the
76
+ * per-channel radius spread, read only by a graph built with `chromatic: true`. Patches the
77
+ * uniforms only when a value changes.
78
+ */
79
+ setDetail: (jitter: number, dispersion: number) => void;
74
80
  }
75
81
  /**
76
82
  * GPU-free construction of the fixed-blur node graph: bind-group layouts + kernel fns. No
@@ -138,11 +144,21 @@ export declare function buildFixedBlurGraph(halfKernel: number, computeWidth: nu
138
144
  * @param computeWidth/computeHeight - fixed internal compute resolution (never reallocated).
139
145
  */
140
146
  export declare function createGaussianBlurCompute(root: TgpuRoot, inputTexture: BlurInputTexture | null, inputWidth: number, inputHeight: number, onCleanup: (cb: () => void) => void, halfKernel?: number, computeWidth?: number, computeHeight?: number): GaussianBlurComputeResult;
147
+ export interface VariableBlurGraphOptions {
148
+ /**
149
+ * Blur red, green and blue by different radii (`radius × (1 ± dispersion)`) for a defocus
150
+ * colour fringe. A build-time variant — three loads per tap instead of one — so callers only
151
+ * enable it while the dispersion is non-zero.
152
+ */
153
+ chromatic?: boolean;
154
+ }
141
155
  /**
142
- * GPU-free construction of the variable-blur node graph. `jitterTaps` is a build-time constant
143
- * baked into the kernel bodies (comptime), so enabling it changes the emitted WGSL.
156
+ * GPU-free construction of the variable-blur node graph. The tap comb is dithered by
157
+ * interleaved gradient noise (Jimenez 2014) scaled by the runtime `jitter` uniform — at 0 the
158
+ * offsets are exactly the undithered comb. `options.chromatic` selects the three-radius kernel
159
+ * bodies (comptime), so enabling it changes the emitted WGSL.
144
160
  */
145
- export declare function buildVariableBlurGraph(halfKernel: number, computeWidth: number, computeHeight: number, jitterTaps: boolean): {
161
+ export declare function buildVariableBlurGraph(halfKernel: number, computeWidth: number, computeHeight: number, options?: VariableBlurGraphOptions): {
146
162
  hLayout: TgpuBindGroupLayout<{
147
163
  blurMap: {
148
164
  storageTexture: d.WgslStorageTexture2d<"rgba32float", string>;
@@ -161,6 +177,8 @@ export declare function buildVariableBlurGraph(halfKernel: number, computeWidth:
161
177
  uniform: d.WgslStruct<{
162
178
  inputWidth: d.F32;
163
179
  inputHeight: d.F32;
180
+ jitter: d.F32;
181
+ dispersion: d.F32;
164
182
  }>;
165
183
  };
166
184
  }>;
@@ -181,6 +199,8 @@ export declare function buildVariableBlurGraph(halfKernel: number, computeWidth:
181
199
  params: {
182
200
  uniform: d.WgslStruct<{
183
201
  scaleY: d.F32;
202
+ jitter: d.F32;
203
+ dispersion: d.F32;
184
204
  }>;
185
205
  };
186
206
  }>;
@@ -189,9 +209,13 @@ export declare function buildVariableBlurGraph(halfKernel: number, computeWidth:
189
209
  HParams: d.WgslStruct<{
190
210
  inputWidth: d.F32;
191
211
  inputHeight: d.F32;
212
+ jitter: d.F32;
213
+ dispersion: d.F32;
192
214
  }>;
193
215
  VParams: d.WgslStruct<{
194
216
  scaleY: d.F32;
217
+ jitter: d.F32;
218
+ dispersion: d.F32;
195
219
  }>;
196
220
  KERNEL_SIZE: number;
197
221
  };
@@ -201,11 +225,12 @@ export declare function buildVariableBlurGraph(halfKernel: number, computeWidth:
201
225
  * pixel. The CALLER fills the map in their own compute pass by binding `blurMapTexture` to a
202
226
  * write-only storage-texture entry (the `blurMapWriteNode` replacement).
203
227
  *
204
- * @param options.jitterTaps - opt-in interleaved-gradient-noise tap jitter (decorrelates the
205
- * fixed tap comb's moiré against periodic content). Baked into the WGSL at build time.
228
+ * @param options.chromatic - the three-radius (per-channel) kernel variant; baked into the WGSL.
229
+ * @param options.jitter - initial tap-comb jitter (0–1, runtime; `setDetail` changes it per frame).
206
230
  */
207
231
  export declare function createVariableGaussianBlurCompute(root: TgpuRoot, inputTexture: BlurInputTexture | null, inputWidth: number, inputHeight: number, onCleanup: (cb: () => void) => void, halfKernel?: number, computeWidth?: number, computeHeight?: number, options?: {
208
- jitterTaps?: boolean;
232
+ chromatic?: boolean;
233
+ jitter?: number;
209
234
  }): VariableBlurComputeResult;
210
235
  /**
211
236
  * Normalized Gaussian weights for `count` taps spread over ±1 of a Gaussian with std-dev `sigma`,
@@ -433,6 +458,13 @@ export interface VariableBlurComputeConfig {
433
458
  /** Map-driven radius: pass `getMapInfo(prop)`. Its source RTT is bound late, like the child. */
434
459
  source?: GpuMapInfo;
435
460
  halfKernel?: number;
461
+ /** Build the three-radius (per-channel) kernel variant. Enable only while the dispersion is non-zero. */
462
+ chromatic?: boolean;
463
+ /** Per-frame detail dials (see `VariableBlurComputeResult.setDetail`). */
464
+ detail?: () => {
465
+ jitter: number;
466
+ dispersion: number;
467
+ };
436
468
  outputKey?: string;
437
469
  }
438
470
  /**
@@ -492,6 +524,11 @@ export declare function composeBlurredOverSharp(params: GpuFragmentParams, compo
492
524
  */
493
525
  export declare const INTENSITY_TO_RADIUS = 0.36;
494
526
  export declare const intensityToRadius: (intensity: number) => number;
527
+ /**
528
+ * How far a full `dispersion` of ±1 spreads the per-channel radii of the chromatic variable blur:
529
+ * red at `radius × (1 + 0.5)`, blue at `radius × (1 − 0.5)`.
530
+ */
531
+ export declare const VARIABLE_BLUR_DISPERSION_SPREAD = 0.5;
495
532
  /**
496
533
  * ChannelBlur's per-channel UI intensity (0–100) → Gaussian pixel radius via the `× 0.1` factor. A
497
534
  * single fixed Gaussian runs at the MAX per-channel radius; the fragment then mixes each channel
@@ -864,6 +901,7 @@ export declare function buildBokehGraph(computeWidth: number, computeHeight: num
864
901
  rotCos: d.F32;
865
902
  rotSin: d.F32;
866
903
  chromaticFringe: d.F32;
904
+ catEye: d.F32;
867
905
  inputWidth: d.F32;
868
906
  inputHeight: d.F32;
869
907
  }>;
@@ -880,6 +918,7 @@ export declare function buildBokehGraph(computeWidth: number, computeHeight: num
880
918
  rotCos: d.F32;
881
919
  rotSin: d.F32;
882
920
  chromaticFringe: d.F32;
921
+ catEye: d.F32;
883
922
  inputWidth: d.F32;
884
923
  inputHeight: d.F32;
885
924
  }>;
@@ -916,6 +955,7 @@ export declare function buildBokehMapGraph(computeWidth: number, computeHeight:
916
955
  rotCos: d.F32;
917
956
  rotSin: d.F32;
918
957
  chromaticFringe: d.F32;
958
+ catEye: d.F32;
919
959
  }>;
920
960
  };
921
961
  taps: {
@@ -936,6 +976,7 @@ export declare function buildBokehMapGraph(computeWidth: number, computeHeight:
936
976
  rotCos: d.F32;
937
977
  rotSin: d.F32;
938
978
  chromaticFringe: d.F32;
979
+ catEye: d.F32;
939
980
  }>;
940
981
  TapArray: d.WgslArray<d.Vec4f>;
941
982
  };