shaders 4.0.2 → 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 (530) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/AngularBlur-CI9YxDuh.js +129 -0
  3. package/dist/core/{Arc-D-WnjM7T.js → Arc-DGqWR3Bd.js} +1 -1
  4. package/dist/core/{Ascii-BGPIwMc3.js → Ascii-CPdyy-Ce.js} +1 -1
  5. package/dist/core/{Aurora-DqJBPdMQ.js → Aurora-DY2TB0JW.js} +1 -1
  6. package/dist/core/{BarShift-BcCOweUh.js → BarShift-CgnJnCB2.js} +1 -1
  7. package/dist/core/{BarnDoors-B9B-AmCV.js → BarnDoors-BrftoIvA.js} +1 -1
  8. package/dist/core/{Beam-QG_9OS8I.js → Beam-CChBswEo.js} +1 -1
  9. package/dist/core/{Bend-Cy9VAowL.js → Bend-BHYjcxYe.js} +1 -1
  10. package/dist/core/{Blob-C3txJeW0.js → Blob-BB6VUuE3.js} +1 -1
  11. package/dist/core/{BlockDissolve-C1SFUys7.js → BlockDissolve-BxVJeBmh.js} +1 -1
  12. package/dist/core/{BlockNoise-Cm3y8hce.js → BlockNoise-BRGG5VGx.js} +2 -2
  13. package/dist/core/{BlueNoise-BCLObOMm.js → BlueNoise-DS6NWeuL.js} +2 -2
  14. package/dist/core/{Blur-Dg29SnXd.js → Blur-B6uikNMR.js} +1 -1
  15. package/dist/core/{Boids-rsGsPN5h.js → Boids-Bt3Vqqmj.js} +1 -1
  16. package/dist/core/{BokehBlur-rFSFEnb0.js → BokehBlur-CPRNbaGM.js} +15 -2
  17. package/dist/core/{BrickPattern-DqN6JKEN.js → BrickPattern-D8lK5t7i.js} +1 -1
  18. package/dist/core/{BrightnessContrast-J9fCSBiC.js → BrightnessContrast-A-MXcsJ3.js} +1 -1
  19. package/dist/core/{BrushedMetal-74wSZKjG.js → BrushedMetal-CwBg_OrC.js} +1 -1
  20. package/dist/core/{Bulge-BIk0oq8j.js → Bulge-D2DRILIE.js} +1 -1
  21. package/dist/core/{CRTScreen-hEH-JNRd.js → CRTScreen-DPS9lxJ2.js} +1 -1
  22. package/dist/core/{CarbonFiber-CZdUDvRU.js → CarbonFiber-qcPJhSIR.js} +1 -1
  23. package/dist/core/{Chalkboard-CClJHqvs.js → Chalkboard-Bq0qg-b5.js} +1 -1
  24. package/dist/core/{ChannelBlur-BEuEwQOC.js → ChannelBlur-Bm_ox1-N.js} +1 -1
  25. package/dist/core/{CheckerWipe-KuAWj2qg.js → CheckerWipe-B0rXlaTa.js} +1 -1
  26. package/dist/core/{Checkerboard-Rq9ze1W3.js → Checkerboard-DTBwkFnn.js} +1 -1
  27. package/dist/core/{Chevron-C1j6X2Ye.js → Chevron-D0Ocr6Wt.js} +1 -1
  28. package/dist/core/{ChromaFlow-BgsCUYIl.js → ChromaFlow-CD0wG8VV.js} +1 -1
  29. package/dist/core/{ChromaticAberration-2_4tjQ0u.js → ChromaticAberration-DZsNUXIc.js} +1 -1
  30. package/dist/core/{Chrome-Be3z6C5i.js → Chrome-DdeXQM4v.js} +1 -1
  31. package/dist/core/{Circle-e_qQI3tU.js → Circle-CpaQmHOS.js} +1 -1
  32. package/dist/core/{ColorWheel-s5ep1H7d.js → ColorWheel-Ciz39YtU.js} +1 -1
  33. package/dist/core/{CompressionArtifacts-OE9U9Qrq.js → CompressionArtifacts-BrRmzBmd.js} +1 -1
  34. package/dist/core/{ConcentricSpin-CLE_5yCJ.js → ConcentricSpin-kSb7VlpT.js} +1 -1
  35. package/dist/core/{ConicGradient-Cji2SgVO.js → ConicGradient-BUGGpeBn.js} +1 -1
  36. package/dist/core/{ContourLines-wpPK00cF.js → ContourLines-CAkGuO_l.js} +1 -1
  37. package/dist/core/{CornerPin-gYU0Uf2m.js → CornerPin-sTeTdO54.js} +1 -1
  38. package/dist/core/{Crescent-viNc7Unp.js → Crescent-JPQZbAgM.js} +1 -1
  39. package/dist/core/{Cross-DyQSsw_k.js → Cross-DPxLnAXd.js} +1 -1
  40. package/dist/core/{Crystal-Vjj8azWg.js → Crystal-BbLoU4xM.js} +1 -1
  41. package/dist/core/{CurlNoise-C7PHjDht.js → CurlNoise-BrgjFOTL.js} +2 -2
  42. package/dist/core/{CursorRipples-BzPPNkA3.js → CursorRipples-DIUoRojU.js} +1 -1
  43. package/dist/core/{CursorTrail-cBj0AuQA.js → CursorTrail-DKHkxUqL.js} +1 -1
  44. package/dist/core/{DataMosh-5Yr9TyVx.js → DataMosh-BZlgABHW.js} +1 -1
  45. package/dist/core/{DiamondGradient-DZM7HwF5.js → DiamondGradient-DGGQpuc0.js} +1 -1
  46. package/dist/core/{DiamondWipe-CqeT7lCt.js → DiamondWipe-D2rUDoG_.js} +1 -1
  47. package/dist/core/{DiffuseBlur-Y5hSDTZF.js → DiffuseBlur-BXChd2KQ.js} +16 -2
  48. package/dist/core/{DisplacementMap-FobRx5Ie.js → DisplacementMap-D89sVcBJ.js} +1 -1
  49. package/dist/core/{Dither-50rqHpt9.js → Dither-VDLOXe9H.js} +1 -1
  50. package/dist/core/{DotGrid-B6AGLUbR.js → DotGrid-it63myH-.js} +1 -1
  51. package/dist/core/{DropShadow-CEPpgatB.js → DropShadow-VzD0-Byt.js} +1 -1
  52. package/dist/core/{Duotone-D76Kp7Pb.js → Duotone-BroCb_su.js} +1 -1
  53. package/dist/core/{Ellipse-BGod1LeG.js → Ellipse-W8NyZcKM.js} +1 -1
  54. package/dist/core/{Emboss-DMNFb_ww.js → Emboss-DOgQmAti.js} +1 -1
  55. package/dist/core/{Engraving-Dj7bCATQ.js → Engraving-BE1m1Bod.js} +1 -1
  56. package/dist/core/{ErosionNoise-4O68wJQZ.js → ErosionNoise-zHZiriUE.js} +2 -2
  57. package/dist/core/{Exposure-h-vapOpj.js → Exposure-D4bDba84.js} +1 -1
  58. package/dist/core/{FallingLines-Dzop_89k.js → FallingLines-DPEUnSeK.js} +1 -1
  59. package/dist/core/{FilmGrain-Bs8PCfdf.js → FilmGrain-CdyASl8G.js} +1 -1
  60. package/dist/core/{FilmStock-DBjVo6rL.js → FilmStock-Bg3La848.js} +1 -1
  61. package/dist/core/{Flip-CfrS4KfZ.js → Flip-BtN-1Tm7.js} +1 -1
  62. package/dist/core/{FloatingParticles-D1R2tD2J.js → FloatingParticles-BKf0oRZt.js} +1 -1
  63. package/dist/core/{FlowField-Slirm5AI.js → FlowField-CjsNplw1.js} +1 -1
  64. package/dist/core/{Flower-Ddlut7QZ.js → Flower-DFRo3Foo.js} +1 -1
  65. package/dist/core/{FlowingGradient-CwIgTtbj.js → FlowingGradient-Cma6CyNn.js} +1 -1
  66. package/dist/core/{FlutedGlass-CMMy2GJ5.js → FlutedGlass-D4e-TR_b.js} +1 -1
  67. package/dist/core/{Fog-DjjUkcTZ.js → Fog-CKLqyJFd.js} +1 -1
  68. package/dist/core/{Form3D-DQDOHWpC.js → Form3D-DdUVksGn.js} +1 -1
  69. package/dist/core/{FractalNoise-BjI3IOIj.js → FractalNoise-xT6nfDL8.js} +1 -1
  70. package/dist/core/{Frost-CK12HnL1.js → Frost-fqtsE0VN.js} +1 -1
  71. package/dist/core/{GaborNoise-DKEIvvRJ.js → GaborNoise-DQx5Dmdl.js} +2 -2
  72. package/dist/core/{Glass-CzcOVD5Y.js → Glass-B8B3LKIr.js} +1 -1
  73. package/dist/core/{GlassTiles-gjhc563g.js → GlassTiles-DOoBsjL2.js} +1 -1
  74. package/dist/core/{Glitch-C_XAWltC.js → Glitch-CZgWlgKN.js} +1 -1
  75. package/dist/core/{Glow-CrYCanBI.js → Glow-CcVl6l0_.js} +1 -1
  76. package/dist/core/{Godrays-BBTMOVLP.js → Godrays-bPYI6IYx.js} +1 -1
  77. package/dist/core/{Goo-Brhjk8aS.js → Goo-LWpHTOQ9.js} +1 -1
  78. package/dist/core/{GradientMap-C5325QWw.js → GradientMap-DCGtaGpD.js} +1 -1
  79. package/dist/core/{Grayscale-dPjs-wvf.js → Grayscale-DKh1spZ5.js} +1 -1
  80. package/dist/core/{Grid-UjEd3O76.js → Grid-D6WroKOX.js} +1 -1
  81. package/dist/core/{GridDistortion-vVgYya1U.js → GridDistortion-Biq_fOA1.js} +1 -1
  82. package/dist/core/{Group-KVdmAi5g.js → Group-BYKXw6yw.js} +1 -1
  83. package/dist/core/{HTMLInCanvas-CKr2u76R.js → HTMLInCanvas-Cl7fosAr.js} +1 -1
  84. package/dist/core/{Halftone-pRV3TRUW.js → Halftone-B5ypTuq9.js} +1 -1
  85. package/dist/core/{Heart-CX7MvvHZ.js → Heart-CSpPJ77t.js} +1 -1
  86. package/dist/core/{Heatmap-Dn6qyd2e.js → Heatmap-DlFZVct7.js} +1 -1
  87. package/dist/core/{HexGrid-BIfYhkfV.js → HexGrid-ji4m18iC.js} +1 -1
  88. package/dist/core/{Hologram-ou27baPQ.js → Hologram-CfYQV4AY.js} +1 -1
  89. package/dist/core/{Holographic-CiHdBSMg.js → Holographic-eZAfsWGx.js} +1 -1
  90. package/dist/core/{HueShift-CG7pcXfg.js → HueShift-DRWqpyEk.js} +1 -1
  91. package/dist/core/{ImageTexture-BiZuU58C.js → ImageTexture-CTL2VXJa.js} +1 -1
  92. package/dist/core/{InkFlow-D9_L7opB.js → InkFlow-C2eoJ8E_.js} +1 -1
  93. package/dist/core/{Invert-CHEaiQZO.js → Invert-Cdz7BiuY.js} +1 -1
  94. package/dist/core/{IrisWipe-x22vOQHm.js → IrisWipe-CMftEbHA.js} +1 -1
  95. package/dist/core/{Irradiance-7yq2K87_.js → Irradiance-DYOzfcYd.js} +1 -1
  96. package/dist/core/{IsometricCubes-CkPGWr7M.js → IsometricCubes-Cf17PZKl.js} +1 -1
  97. package/dist/core/{Kaleidoscope-CEC5m1Ww.js → Kaleidoscope-eV3KxWC_.js} +1 -1
  98. package/dist/core/{KeyFrames-BMGEZsAZ.js → KeyFrames-BYXhTMvZ.js} +1 -1
  99. package/dist/core/{LensDistortion-DKo8PiO5.js → LensDistortion-BvHcaPAj.js} +1 -1
  100. package/dist/core/{LensFlare-DMS-NUtK.js → LensFlare-WftiuGke.js} +1 -1
  101. package/dist/core/{LightEdge-DxmnCRls.js → LightEdge-pY69-oXa.js} +1 -1
  102. package/dist/core/{LightLeak-yoEsZtYg.js → LightLeak-BHcmHoPq.js} +1 -1
  103. package/dist/core/{Line-D17XDUjO.js → Line-Dy4n9kG0.js} +1 -1
  104. package/dist/core/LinearBlur-BMGYoL9G.js +129 -0
  105. package/dist/core/{LinearGradient-DfjKG70q.js → LinearGradient-BLD0pXpY.js} +1 -1
  106. package/dist/core/{LinearWipe-D9CtBg6S.js → LinearWipe-NgkvKYWw.js} +1 -1
  107. package/dist/core/{LiquidMetal-8EG6DwV6.js → LiquidMetal-jhFloJ2w.js} +1 -1
  108. package/dist/core/{Liquify-BySXF1OB.js → Liquify-BHy1V26i.js} +1 -1
  109. package/dist/core/{MagneticFilings-DNESH3Zs.js → MagneticFilings-D4biKXSd.js} +1 -1
  110. package/dist/core/{Marble-C9WvdxrP.js → Marble-CxZXeCW1.js} +1 -1
  111. package/dist/core/{MeshGradient-d9--RXOU.js → MeshGradient-BBdSnGNG.js} +1 -1
  112. package/dist/core/{Mirror-1V2FF2kD.js → Mirror-Dz-2FX2p.js} +1 -1
  113. package/dist/core/{MultiPointGradient-cRA9ytgL.js → MultiPointGradient-CyBo3Mt7.js} +1 -1
  114. package/dist/core/{Nebula-BRV-q74y.js → Nebula-3XuPYIo-.js} +1 -1
  115. package/dist/core/{Neon-4PemK9Rj.js → Neon-CIiz8Go1.js} +1 -1
  116. package/dist/core/{NoiseDissolve-B7LgD46G.js → NoiseDissolve-BcKmhJWB.js} +1 -1
  117. package/dist/core/{ObjectTracker-CdzDxhpy.js → ObjectTracker-RiBh2YFe.js} +1 -1
  118. package/dist/core/{Obsidian-2J1eX9kT.js → Obsidian-CSWNH0g3.js} +1 -1
  119. package/dist/core/{PagePeel-D-ziraOm.js → PagePeel-DKXXJnW2.js} +1 -1
  120. package/dist/core/{Paper-BxzCLyzB.js → Paper-BWiPnSdk.js} +1 -1
  121. package/dist/core/{Parallelogram-D4OflTwn.js → Parallelogram-Bdibf18e.js} +1 -1
  122. package/dist/core/{ParticleField-tWNicEDO.js → ParticleField-DP2tJXxN.js} +1 -1
  123. package/dist/core/{ParticleFlow-BiEYFyWR.js → ParticleFlow-BxyJp6kF.js} +1 -1
  124. package/dist/core/{Particles-B7W4yWgo.js → Particles-CgvGZNOx.js} +1 -1
  125. package/dist/core/{PerlinNoise-C-irUxp9.js → PerlinNoise-BMkkfzp-.js} +2 -2
  126. package/dist/core/{Perspective-DlnAW-pe.js → Perspective-DS7zqsdY.js} +1 -1
  127. package/dist/core/{PixelSort-BBOTYuOE.js → PixelSort-DdGs1Lpj.js} +1 -1
  128. package/dist/core/{PixelThrow-DCJb9Lxd.js → PixelThrow-FtEE5D8Y.js} +1 -1
  129. package/dist/core/{Pixelate-CZdwB--K.js → Pixelate-YSpsPOUv.js} +1 -1
  130. package/dist/core/{Plasma-CTOQJeqy.js → Plasma-BXs3UGgs.js} +1 -1
  131. package/dist/core/{Plastic-DvyH9x-4.js → Plastic-B8OV6H19.js} +1 -1
  132. package/dist/core/{PolarCoordinates-XhdDAOD0.js → PolarCoordinates-vfm49iUU.js} +1 -1
  133. package/dist/core/{Polygon-CLohB-Ly.js → Polygon-fXyaW28S.js} +1 -1
  134. package/dist/core/{Posterize-BAQfnvmK.js → Posterize-B_zadptA.js} +1 -1
  135. package/dist/core/{Prism-DJVCVAXX.js → Prism-D3bKRs_2.js} +1 -1
  136. package/dist/core/{ProgressiveBlur-Dirva1on.js → ProgressiveBlur-CMV_hP7G.js} +31 -2
  137. package/dist/core/{RadialGradient-DuSKR8Ds.js → RadialGradient-CGGOtyw2.js} +1 -1
  138. package/dist/core/{RadialWipe-n8tON7x2.js → RadialWipe-Qak8GgIA.js} +1 -1
  139. package/dist/core/{RandomBars-BYouiIgQ.js → RandomBars-Cug34S8m.js} +1 -1
  140. package/dist/core/{ReactionDiffusion-CHDd3y2q.js → ReactionDiffusion-B2KSbRPy.js} +1 -1
  141. package/dist/core/{RectangularCoordinates-CYFfCawa.js → RectangularCoordinates-C4rRfUyf.js} +1 -1
  142. package/dist/core/{ReflectivePlane-DFTl5U9q.js → ReflectivePlane-CbY9iTWt.js} +1 -1
  143. package/dist/core/{Repeater-CnbzXuAe.js → Repeater-3YxvbkxY.js} +1 -1
  144. package/dist/core/{Ring-CGkHVSVd.js → Ring-Zofg3GkM.js} +1 -1
  145. package/dist/core/{RippleWipe-DLjPzY6u.js → RippleWipe-CpihXaME.js} +1 -1
  146. package/dist/core/{Ripples-C2tITU62.js → Ripples-BdyGWeeL.js} +1 -1
  147. package/dist/core/{RoundedRect-sfNTUaCY.js → RoundedRect-BjAUDa5D.js} +1 -1
  148. package/dist/core/Satin-yYWeplbY.js +372 -0
  149. package/dist/core/{Saturation-BRkifYWj.js → Saturation-qIjYNU3K.js} +1 -1
  150. package/dist/core/{Scratches-D87O5C2K.js → Scratches-C6Xr7JRO.js} +2 -2
  151. package/dist/core/{Sharpness-BGv613Zw.js → Sharpness-0-Tm5xJh.js} +1 -1
  152. package/dist/core/{Shatter-DuyCFU1f.js → Shatter-BWms5ZCO.js} +1 -1
  153. package/dist/core/{SimplexNoise-CQJvmqd-.js → SimplexNoise-BASO2QMY.js} +2 -2
  154. package/dist/core/{SineWave-BfOgSGMP.js → SineWave-DNry_0Lh.js} +1 -1
  155. package/dist/core/{SliceWipe-CD_D99sl.js → SliceWipe-BM170JUl.js} +1 -1
  156. package/dist/core/{Smoke-BDQYKRP1.js → Smoke-BHLwUBhz.js} +1 -1
  157. package/dist/core/{SmokeFill-CPnzQtQv.js → SmokeFill-CPPIQi-V.js} +1 -1
  158. package/dist/core/{SmokeFlow-BkPMjZq8.js → SmokeFlow-BvNcVjm6.js} +1 -1
  159. package/dist/core/{Solarize-DSiS32QS.js → Solarize-gkgg0wtw.js} +1 -1
  160. package/dist/core/{SolidColor-DEKpgy1c.js → SolidColor-Dd1vZDVk.js} +1 -1
  161. package/dist/core/{Sparkle-BZur6gPW.js → Sparkle-DrXTAu56.js} +1 -1
  162. package/dist/core/{Spherize-D9Yg4n6O.js → Spherize-CuSUrEgb.js} +1 -1
  163. package/dist/core/{Spiral-BCacfEpT.js → Spiral-CD2QDECd.js} +1 -1
  164. package/dist/core/{Star-Dnw1ihk7.js → Star-BumDeOUg.js} +1 -1
  165. package/dist/core/{Stone-Cje-_vAg.js → Stone-DEC9Bd4P.js} +1 -1
  166. package/dist/core/{Strands-CFRxS1G_.js → Strands-U8_IPQDU.js} +1 -1
  167. package/dist/core/{Stretch-DXVhfIqO.js → Stretch-RbG9gHTh.js} +1 -1
  168. package/dist/core/{Stripes-CCADWwyq.js → Stripes-80ILPa8Q.js} +1 -1
  169. package/dist/core/{StudioBackground-BlzYNAsu.js → StudioBackground-SFRLc09j.js} +1 -1
  170. package/dist/core/{SunBurst-CmWbI18r.js → SunBurst-DjNvFBRl.js} +1 -1
  171. package/dist/core/{Surface3D-Dmh98-0V.js → Surface3D-Bqk4Yeop.js} +1 -1
  172. package/dist/core/{Swirl-CzI1qSVc.js → Swirl-CnMHiJHz.js} +1 -1
  173. package/dist/core/{Teardrop-D24uulL0.js → Teardrop-EmqO3Sx3.js} +1 -1
  174. package/dist/core/{Text-CrZKvBw6.js → Text-BJsHmsCm.js} +1 -1
  175. package/dist/core/{ThinFilm-D7R2dt1O.js → ThinFilm-D3vXChVM.js} +1 -1
  176. package/dist/core/{TiltShift-AMMDZBvf.js → TiltShift-Domqy4zc.js} +31 -2
  177. package/dist/core/{TimeTrail-BCYDP2ep.js → TimeTrail-Do0hbdMs.js} +1 -1
  178. package/dist/core/{Tint-DHb5wBN5.js → Tint-CqpbM-1T.js} +1 -1
  179. package/dist/core/{Trapezoid-CL5Fxvq7.js → Trapezoid-BywMSCKO.js} +1 -1
  180. package/dist/core/{TriangularGrid-Bp-SJS-H.js → TriangularGrid-BB-qGVAE.js} +1 -1
  181. package/dist/core/{Tritone-C0nx7OdC.js → Tritone-DLT7D5QR.js} +1 -1
  182. package/dist/core/{Truchet-DCetyDaq.js → Truchet-CJRz81E8.js} +1 -1
  183. package/dist/core/{Twirl-D_mv9KEi.js → Twirl-DtcfYyaH.js} +1 -1
  184. package/dist/core/{VHS-Cp9aDjti.js → VHS-CpYqcXq6.js} +1 -1
  185. package/dist/core/{VenetianBlinds-DUyvaT5w.js → VenetianBlinds-BHtiUoTI.js} +1 -1
  186. package/dist/core/{Vesica-BpzrTPTA.js → Vesica-CG8204gz.js} +1 -1
  187. package/dist/core/{Vibrance-DW3J-pvW.js → Vibrance-DtpQpHSp.js} +1 -1
  188. package/dist/core/{VideoTexture-zoKsSrex.js → VideoTexture-DYm45n8L.js} +1 -1
  189. package/dist/core/{Vignette-KKbP3qdZ.js → Vignette-DEIm5mc4.js} +1 -1
  190. package/dist/core/{Voronoi-Bp2-U6lm.js → Voronoi-7nJncKbX.js} +1 -1
  191. package/dist/core/{Voxels-B3e3LHH5.js → Voxels-k2uzj3MD.js} +1 -1
  192. package/dist/core/{Water-CoYwvqKx.js → Water-CEVn9O9R.js} +1 -1
  193. package/dist/core/{Watercolor-DUNjSIN1.js → Watercolor-Cm-kAcSI.js} +1 -1
  194. package/dist/core/{WaveDistortion-Dp8ws0z1.js → WaveDistortion-DRzsmI4m.js} +1 -1
  195. package/dist/core/{Waveform-DDBLB6zu.js → Waveform-C8-Mb-ck.js} +1 -1
  196. package/dist/core/{WaveletNoise-CpBkzfRT.js → WaveletNoise-D-3fuI6R.js} +2 -2
  197. package/dist/core/{Weave-cWkvSEAy.js → Weave-DqVqtYkP.js} +1 -1
  198. package/dist/core/{WebcamTexture-D484SXSE.js → WebcamTexture-DPjuo0ZC.js} +1 -1
  199. package/dist/core/{Wool-C9L7O9fD.js → Wool-DgctZosq.js} +1 -1
  200. package/dist/core/{WorleyNoise-B5j5lDQZ.js → WorleyNoise-DH4396Rb.js} +1 -1
  201. package/dist/core/ZoomBlur-yWwweO4r.js +143 -0
  202. package/dist/core/docs-manifest.json +467 -131
  203. package/dist/core/gpu/frame.d.ts +14 -7
  204. package/dist/core/gpu/frame.d.ts.map +1 -1
  205. package/dist/core/gpu/index.d.ts.map +1 -1
  206. package/dist/core/gpu/kit/blur.d.ts +47 -6
  207. package/dist/core/gpu/kit/blur.d.ts.map +1 -1
  208. package/dist/core/gpu/kit/motionBlur.d.ts +88 -1
  209. package/dist/core/gpu/kit/motionBlur.d.ts.map +1 -1
  210. package/dist/core/index.js +211 -209
  211. package/dist/core/llms.txt +26 -5
  212. package/dist/core/{noiseColor-D_bPhJ4m.js → noiseColor-B6kUgUln.js} +1 -1
  213. package/dist/core/presetRenderer.d.ts.map +1 -1
  214. package/dist/core/registry.js +203 -202
  215. package/dist/core/shaderRegistry-C-P5WvzF.js +447 -0
  216. package/dist/core/shaderRegistry.d.ts.map +1 -1
  217. package/dist/core/shaders/AngularBlur/index.d.ts +36 -0
  218. package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
  219. package/dist/core/shaders/AngularBlur/index.js +2 -2
  220. package/dist/core/shaders/Arc/index.js +2 -2
  221. package/dist/core/shaders/Ascii/index.js +2 -2
  222. package/dist/core/shaders/Aurora/index.js +2 -2
  223. package/dist/core/shaders/BarShift/index.js +2 -2
  224. package/dist/core/shaders/BarnDoors/index.js +2 -2
  225. package/dist/core/shaders/Beam/index.js +2 -2
  226. package/dist/core/shaders/Bend/index.js +2 -2
  227. package/dist/core/shaders/Blob/index.js +2 -2
  228. package/dist/core/shaders/BlockDissolve/index.js +2 -2
  229. package/dist/core/shaders/BlockNoise/index.js +3 -3
  230. package/dist/core/shaders/BlueNoise/index.js +3 -3
  231. package/dist/core/shaders/Blur/index.js +2 -2
  232. package/dist/core/shaders/Boids/index.js +2 -2
  233. package/dist/core/shaders/BokehBlur/index.d.ts +7 -0
  234. package/dist/core/shaders/BokehBlur/index.d.ts.map +1 -1
  235. package/dist/core/shaders/BokehBlur/index.js +2 -2
  236. package/dist/core/shaders/BrickPattern/index.js +2 -2
  237. package/dist/core/shaders/BrightnessContrast/index.js +2 -2
  238. package/dist/core/shaders/BrushedMetal/index.js +2 -2
  239. package/dist/core/shaders/Bulge/index.js +2 -2
  240. package/dist/core/shaders/CRTScreen/index.js +2 -2
  241. package/dist/core/shaders/CarbonFiber/index.js +2 -2
  242. package/dist/core/shaders/Chalkboard/index.js +2 -2
  243. package/dist/core/shaders/ChannelBlur/index.js +2 -2
  244. package/dist/core/shaders/CheckerWipe/index.js +2 -2
  245. package/dist/core/shaders/Checkerboard/index.js +2 -2
  246. package/dist/core/shaders/Chevron/index.js +2 -2
  247. package/dist/core/shaders/ChromaFlow/index.js +2 -2
  248. package/dist/core/shaders/ChromaticAberration/index.js +2 -2
  249. package/dist/core/shaders/Chrome/index.js +2 -2
  250. package/dist/core/shaders/Circle/index.js +2 -2
  251. package/dist/core/shaders/ColorWheel/index.js +2 -2
  252. package/dist/core/shaders/CompressionArtifacts/index.js +2 -2
  253. package/dist/core/shaders/ConcentricSpin/index.js +2 -2
  254. package/dist/core/shaders/ConicGradient/index.js +2 -2
  255. package/dist/core/shaders/ContourLines/index.js +2 -2
  256. package/dist/core/shaders/CornerPin/index.js +2 -2
  257. package/dist/core/shaders/Crescent/index.js +2 -2
  258. package/dist/core/shaders/Cross/index.js +2 -2
  259. package/dist/core/shaders/Crystal/index.js +2 -2
  260. package/dist/core/shaders/CurlNoise/index.js +3 -3
  261. package/dist/core/shaders/CursorRipples/index.js +2 -2
  262. package/dist/core/shaders/CursorTrail/index.js +2 -2
  263. package/dist/core/shaders/DataMosh/index.js +2 -2
  264. package/dist/core/shaders/DiamondGradient/index.js +2 -2
  265. package/dist/core/shaders/DiamondWipe/index.js +2 -2
  266. package/dist/core/shaders/DiffuseBlur/index.d.ts +6 -0
  267. package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
  268. package/dist/core/shaders/DiffuseBlur/index.js +2 -2
  269. package/dist/core/shaders/DisplacementMap/index.js +2 -2
  270. package/dist/core/shaders/Dither/index.js +2 -2
  271. package/dist/core/shaders/DotGrid/index.js +2 -2
  272. package/dist/core/shaders/DropShadow/index.js +2 -2
  273. package/dist/core/shaders/Duotone/index.js +2 -2
  274. package/dist/core/shaders/Ellipse/index.js +2 -2
  275. package/dist/core/shaders/Emboss/index.js +2 -2
  276. package/dist/core/shaders/Engraving/index.js +2 -2
  277. package/dist/core/shaders/ErosionNoise/index.js +3 -3
  278. package/dist/core/shaders/Exposure/index.js +2 -2
  279. package/dist/core/shaders/FallingLines/index.js +2 -2
  280. package/dist/core/shaders/FilmGrain/index.js +2 -2
  281. package/dist/core/shaders/FilmStock/index.js +2 -2
  282. package/dist/core/shaders/Flip/index.js +2 -2
  283. package/dist/core/shaders/FloatingParticles/index.js +2 -2
  284. package/dist/core/shaders/FlowField/index.js +2 -2
  285. package/dist/core/shaders/Flower/index.js +2 -2
  286. package/dist/core/shaders/FlowingGradient/index.js +2 -2
  287. package/dist/core/shaders/FlutedGlass/index.js +2 -2
  288. package/dist/core/shaders/Fog/index.js +2 -2
  289. package/dist/core/shaders/Form3D/index.js +2 -2
  290. package/dist/core/shaders/FractalNoise/index.js +2 -2
  291. package/dist/core/shaders/Frost/index.js +2 -2
  292. package/dist/core/shaders/GaborNoise/index.js +3 -3
  293. package/dist/core/shaders/Glass/index.js +2 -2
  294. package/dist/core/shaders/GlassTiles/index.js +2 -2
  295. package/dist/core/shaders/Glitch/index.js +2 -2
  296. package/dist/core/shaders/Glow/index.js +2 -2
  297. package/dist/core/shaders/Godrays/index.js +2 -2
  298. package/dist/core/shaders/Goo/index.js +2 -2
  299. package/dist/core/shaders/GradientMap/index.js +2 -2
  300. package/dist/core/shaders/Grayscale/index.js +2 -2
  301. package/dist/core/shaders/Grid/index.js +2 -2
  302. package/dist/core/shaders/GridDistortion/index.js +2 -2
  303. package/dist/core/shaders/Group/index.js +2 -2
  304. package/dist/core/shaders/HTMLInCanvas/index.js +2 -2
  305. package/dist/core/shaders/Halftone/index.js +2 -2
  306. package/dist/core/shaders/Heart/index.js +2 -2
  307. package/dist/core/shaders/Heatmap/index.js +2 -2
  308. package/dist/core/shaders/HexGrid/index.js +2 -2
  309. package/dist/core/shaders/Hologram/index.js +2 -2
  310. package/dist/core/shaders/Holographic/index.js +2 -2
  311. package/dist/core/shaders/HueShift/index.js +2 -2
  312. package/dist/core/shaders/ImageTexture/index.js +2 -2
  313. package/dist/core/shaders/InkFlow/index.js +2 -2
  314. package/dist/core/shaders/Invert/index.js +2 -2
  315. package/dist/core/shaders/IrisWipe/index.js +2 -2
  316. package/dist/core/shaders/Irradiance/index.js +2 -2
  317. package/dist/core/shaders/IsometricCubes/index.js +2 -2
  318. package/dist/core/shaders/Kaleidoscope/index.js +2 -2
  319. package/dist/core/shaders/KeyFrames/index.js +2 -2
  320. package/dist/core/shaders/LensDistortion/index.js +2 -2
  321. package/dist/core/shaders/LensFlare/index.js +2 -2
  322. package/dist/core/shaders/LightEdge/index.js +2 -2
  323. package/dist/core/shaders/LightLeak/index.js +2 -2
  324. package/dist/core/shaders/Line/index.js +2 -2
  325. package/dist/core/shaders/LinearBlur/index.d.ts +36 -0
  326. package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
  327. package/dist/core/shaders/LinearBlur/index.js +2 -2
  328. package/dist/core/shaders/LinearGradient/index.js +2 -2
  329. package/dist/core/shaders/LinearWipe/index.js +2 -2
  330. package/dist/core/shaders/LiquidMetal/index.js +2 -2
  331. package/dist/core/shaders/Liquify/index.js +2 -2
  332. package/dist/core/shaders/MagneticFilings/index.js +2 -2
  333. package/dist/core/shaders/Marble/index.js +2 -2
  334. package/dist/core/shaders/MeshGradient/index.js +2 -2
  335. package/dist/core/shaders/Mirror/index.js +2 -2
  336. package/dist/core/shaders/MultiPointGradient/index.js +2 -2
  337. package/dist/core/shaders/Nebula/index.js +2 -2
  338. package/dist/core/shaders/Neon/index.js +2 -2
  339. package/dist/core/shaders/NoiseDissolve/index.js +2 -2
  340. package/dist/core/shaders/ObjectTracker/index.js +2 -2
  341. package/dist/core/shaders/Obsidian/index.js +2 -2
  342. package/dist/core/shaders/PagePeel/index.js +2 -2
  343. package/dist/core/shaders/Paper/index.js +2 -2
  344. package/dist/core/shaders/Parallelogram/index.js +2 -2
  345. package/dist/core/shaders/ParticleField/index.js +2 -2
  346. package/dist/core/shaders/ParticleFlow/index.js +2 -2
  347. package/dist/core/shaders/Particles/index.js +2 -2
  348. package/dist/core/shaders/PerlinNoise/index.js +3 -3
  349. package/dist/core/shaders/Perspective/index.js +2 -2
  350. package/dist/core/shaders/PixelSort/index.js +2 -2
  351. package/dist/core/shaders/PixelThrow/index.js +2 -2
  352. package/dist/core/shaders/Pixelate/index.js +2 -2
  353. package/dist/core/shaders/Plasma/index.js +2 -2
  354. package/dist/core/shaders/Plastic/index.js +2 -2
  355. package/dist/core/shaders/PolarCoordinates/index.js +2 -2
  356. package/dist/core/shaders/Polygon/index.js +2 -2
  357. package/dist/core/shaders/Posterize/index.js +2 -2
  358. package/dist/core/shaders/Prism/index.js +2 -2
  359. package/dist/core/shaders/ProgressiveBlur/index.d.ts +14 -0
  360. package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
  361. package/dist/core/shaders/ProgressiveBlur/index.js +2 -2
  362. package/dist/core/shaders/RadialGradient/index.js +2 -2
  363. package/dist/core/shaders/RadialWipe/index.js +2 -2
  364. package/dist/core/shaders/RandomBars/index.js +2 -2
  365. package/dist/core/shaders/ReactionDiffusion/index.js +2 -2
  366. package/dist/core/shaders/RectangularCoordinates/index.js +2 -2
  367. package/dist/core/shaders/ReflectivePlane/index.js +2 -2
  368. package/dist/core/shaders/Repeater/index.js +2 -2
  369. package/dist/core/shaders/Ring/index.js +2 -2
  370. package/dist/core/shaders/RippleWipe/index.js +2 -2
  371. package/dist/core/shaders/Ripples/index.js +2 -2
  372. package/dist/core/shaders/RoundedRect/index.js +2 -2
  373. package/dist/core/shaders/Satin/index.d.ts +120 -0
  374. package/dist/core/shaders/Satin/index.d.ts.map +1 -0
  375. package/dist/core/shaders/Satin/index.js +5 -0
  376. package/dist/core/shaders/Saturation/index.js +2 -2
  377. package/dist/core/shaders/Scratches/index.js +3 -3
  378. package/dist/core/shaders/Sharpness/index.js +2 -2
  379. package/dist/core/shaders/Shatter/index.js +2 -2
  380. package/dist/core/shaders/SimplexNoise/index.js +3 -3
  381. package/dist/core/shaders/SineWave/index.js +2 -2
  382. package/dist/core/shaders/SliceWipe/index.js +2 -2
  383. package/dist/core/shaders/Smoke/index.js +2 -2
  384. package/dist/core/shaders/SmokeFill/index.js +2 -2
  385. package/dist/core/shaders/SmokeFlow/index.js +2 -2
  386. package/dist/core/shaders/Solarize/index.js +2 -2
  387. package/dist/core/shaders/SolidColor/index.js +2 -2
  388. package/dist/core/shaders/Sparkle/index.js +2 -2
  389. package/dist/core/shaders/Spherize/index.js +2 -2
  390. package/dist/core/shaders/Spiral/index.js +2 -2
  391. package/dist/core/shaders/Star/index.js +2 -2
  392. package/dist/core/shaders/Stone/index.js +2 -2
  393. package/dist/core/shaders/Strands/index.js +2 -2
  394. package/dist/core/shaders/Stretch/index.js +2 -2
  395. package/dist/core/shaders/Stripes/index.js +2 -2
  396. package/dist/core/shaders/StudioBackground/index.js +2 -2
  397. package/dist/core/shaders/SunBurst/index.js +2 -2
  398. package/dist/core/shaders/Surface3D/index.js +2 -2
  399. package/dist/core/shaders/Swirl/index.js +2 -2
  400. package/dist/core/shaders/Teardrop/index.js +2 -2
  401. package/dist/core/shaders/Text/index.js +2 -2
  402. package/dist/core/shaders/ThinFilm/index.js +2 -2
  403. package/dist/core/shaders/TiltShift/index.d.ts +14 -0
  404. package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
  405. package/dist/core/shaders/TiltShift/index.js +2 -2
  406. package/dist/core/shaders/TimeTrail/index.js +2 -2
  407. package/dist/core/shaders/Tint/index.js +2 -2
  408. package/dist/core/shaders/Trapezoid/index.js +2 -2
  409. package/dist/core/shaders/TriangularGrid/index.js +2 -2
  410. package/dist/core/shaders/Tritone/index.js +2 -2
  411. package/dist/core/shaders/Truchet/index.js +2 -2
  412. package/dist/core/shaders/Twirl/index.js +2 -2
  413. package/dist/core/shaders/VHS/index.js +2 -2
  414. package/dist/core/shaders/VenetianBlinds/index.js +2 -2
  415. package/dist/core/shaders/Vesica/index.js +2 -2
  416. package/dist/core/shaders/Vibrance/index.js +2 -2
  417. package/dist/core/shaders/VideoTexture/index.js +2 -2
  418. package/dist/core/shaders/Vignette/index.js +2 -2
  419. package/dist/core/shaders/Voronoi/index.js +2 -2
  420. package/dist/core/shaders/Voxels/index.js +2 -2
  421. package/dist/core/shaders/Water/index.js +2 -2
  422. package/dist/core/shaders/Watercolor/index.js +2 -2
  423. package/dist/core/shaders/WaveDistortion/index.js +2 -2
  424. package/dist/core/shaders/Waveform/index.js +2 -2
  425. package/dist/core/shaders/WaveletNoise/index.js +3 -3
  426. package/dist/core/shaders/Weave/index.js +2 -2
  427. package/dist/core/shaders/WebcamTexture/index.js +2 -2
  428. package/dist/core/shaders/Wool/index.js +2 -2
  429. package/dist/core/shaders/WorleyNoise/index.js +2 -2
  430. package/dist/core/shaders/ZoomBlur/index.d.ts +42 -0
  431. package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
  432. package/dist/core/shaders/ZoomBlur/index.js +2 -2
  433. package/dist/core/std/effects/blurs.d.ts +54 -6
  434. package/dist/core/std/effects/blurs.d.ts.map +1 -1
  435. package/dist/core/std/index.js +1 -1
  436. package/dist/core/std/paint/materials.d.ts +48 -2
  437. package/dist/core/std/paint/materials.d.ts.map +1 -1
  438. package/dist/core/std/paint/noise.d.ts +120 -0
  439. package/dist/core/std/paint/noise.d.ts.map +1 -1
  440. package/dist/core/{std-ClftfWpF.js → std-DcYKWFSQ.js} +4153 -916
  441. package/dist/js/bundle.js +89 -89
  442. package/dist/js/createShader.js +1 -1
  443. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  444. package/dist/js/utils/generatePresetCode.js +55 -7
  445. package/dist/react/Preview.js +1 -0
  446. package/dist/react/Satin.js +226 -0
  447. package/dist/react/Shader.js +1 -1
  448. package/dist/react/bundle.js +89 -89
  449. package/dist/react/components/AngularBlur.d.ts +7 -1
  450. package/dist/react/components/AngularBlur.d.ts.map +1 -1
  451. package/dist/react/components/DiffuseBlur.d.ts +2 -1
  452. package/dist/react/components/DiffuseBlur.d.ts.map +1 -1
  453. package/dist/react/components/LinearBlur.d.ts +7 -1
  454. package/dist/react/components/LinearBlur.d.ts.map +1 -1
  455. package/dist/react/components/Satin.d.ts +49 -0
  456. package/dist/react/components/Satin.d.ts.map +1 -0
  457. package/dist/react/components/ZoomBlur.d.ts +8 -1
  458. package/dist/react/components/ZoomBlur.d.ts.map +1 -1
  459. package/dist/react/engine/Preview.d.ts.map +1 -1
  460. package/dist/react/index.d.ts +1 -0
  461. package/dist/react/index.d.ts.map +1 -1
  462. package/dist/react/index.js +2 -1
  463. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  464. package/dist/react/utils/generatePresetCode.js +55 -7
  465. package/dist/registry.js +1248 -0
  466. package/dist/solid/components/AngularBlur.d.ts +7 -1
  467. package/dist/solid/components/AngularBlur.d.ts.map +1 -1
  468. package/dist/solid/components/DiffuseBlur.d.ts +2 -1
  469. package/dist/solid/components/DiffuseBlur.d.ts.map +1 -1
  470. package/dist/solid/components/LinearBlur.d.ts +7 -1
  471. package/dist/solid/components/LinearBlur.d.ts.map +1 -1
  472. package/dist/solid/components/Satin.d.ts +46 -0
  473. package/dist/solid/components/Satin.d.ts.map +1 -0
  474. package/dist/solid/components/Satin.js +232 -0
  475. package/dist/solid/components/ZoomBlur.d.ts +8 -1
  476. package/dist/solid/components/ZoomBlur.d.ts.map +1 -1
  477. package/dist/solid/engine/Preview.d.ts.map +1 -1
  478. package/dist/solid/engine/Preview.js +295 -293
  479. package/dist/solid/engine/Shader.js +1 -1
  480. package/dist/solid/index.d.ts +1 -0
  481. package/dist/solid/index.d.ts.map +1 -1
  482. package/dist/solid/index.js +114 -112
  483. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  484. package/dist/solid/utils/generatePresetCode.js +55 -7
  485. package/dist/svelte/components/AngularBlur.svelte.d.ts +6 -0
  486. package/dist/svelte/components/DiffuseBlur.svelte.d.ts +1 -0
  487. package/dist/svelte/components/LinearBlur.svelte.d.ts +6 -0
  488. package/dist/svelte/components/Satin.svelte.d.ts +36 -0
  489. package/dist/svelte/components/ZoomBlur.svelte.d.ts +7 -0
  490. package/dist/svelte/index.d.ts +1 -0
  491. package/dist/svelte/index.js +2500 -2293
  492. package/dist/svelte/source/components/AngularBlur.svelte +6 -0
  493. package/dist/svelte/source/components/DiffuseBlur.svelte +1 -0
  494. package/dist/svelte/source/components/LinearBlur.svelte +6 -0
  495. package/dist/svelte/source/components/Satin.svelte +360 -0
  496. package/dist/svelte/source/components/ZoomBlur.svelte +7 -0
  497. package/dist/svelte/source/engine/Preview.svelte +2 -0
  498. package/dist/svelte/source/index.js +1 -0
  499. package/dist/svelte/utils/generatePresetCode.js +55 -7
  500. package/dist/vue/AngularBlur.vue_vue_type_script_setup_true_lang.js +6 -0
  501. package/dist/vue/BokehBlur.vue_vue_type_script_setup_true_lang.js +2 -1
  502. package/dist/vue/DiffuseBlur.vue_vue_type_script_setup_true_lang.js +1 -0
  503. package/dist/vue/LinearBlur.vue_vue_type_script_setup_true_lang.js +6 -0
  504. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  505. package/dist/vue/ProgressiveBlur.vue_vue_type_script_setup_true_lang.js +3 -1
  506. package/dist/vue/Satin.js +3 -0
  507. package/dist/vue/Satin.vue_vue_type_script_setup_true_lang.js +243 -0
  508. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  509. package/dist/vue/TiltShift.vue_vue_type_script_setup_true_lang.js +3 -1
  510. package/dist/vue/ZoomBlur.vue_vue_type_script_setup_true_lang.js +7 -0
  511. package/dist/vue/components/AngularBlur.vue.d.ts +6 -0
  512. package/dist/vue/components/AngularBlur.vue.d.ts.map +1 -1
  513. package/dist/vue/components/DiffuseBlur.vue.d.ts +1 -0
  514. package/dist/vue/components/DiffuseBlur.vue.d.ts.map +1 -1
  515. package/dist/vue/components/LinearBlur.vue.d.ts +6 -0
  516. package/dist/vue/components/LinearBlur.vue.d.ts.map +1 -1
  517. package/dist/vue/components/Satin.vue.d.ts +71 -0
  518. package/dist/vue/components/Satin.vue.d.ts.map +1 -0
  519. package/dist/vue/components/ZoomBlur.vue.d.ts +7 -0
  520. package/dist/vue/components/ZoomBlur.vue.d.ts.map +1 -1
  521. package/dist/vue/index.d.ts +1 -0
  522. package/dist/vue/index.d.ts.map +1 -1
  523. package/dist/vue/index.js +2 -1
  524. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  525. package/dist/vue/utils/generatePresetCode.js +55 -7
  526. package/package.json +9 -1
  527. package/dist/core/AngularBlur-BEBs-lRR.js +0 -43
  528. package/dist/core/LinearBlur-CiyjPTUH.js +0 -43
  529. package/dist/core/ZoomBlur-bPC1dBu2.js +0 -43
  530. package/dist/core/shaderRegistry-BaozBFyh.js +0 -445
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "engineVersion": "4.0.2",
4
- "generatedAt": "2026-10-07T22:44:35.749Z",
3
+ "engineVersion": "4.0.4",
4
+ "generatedAt": "2026-10-09T13:23:52.458Z",
5
5
  "groups": [
6
6
  {
7
7
  "id": "define",
@@ -768,10 +768,15 @@
768
768
  "noise.tonePow",
769
769
  "noise.noiseRelief",
770
770
  "noise.reliefBases",
771
+ "noise.clothCoords",
772
+ "noise.drapedFolds",
773
+ "noise.foldSet",
771
774
  "noise.reliefBases.stone",
772
775
  "noise.reliefBases.wool"
773
776
  ],
774
777
  "types": [
778
+ "noise.DrapeOptions",
779
+ "noise.Fold",
775
780
  "noise.ReliefBasis",
776
781
  "noise.RgbStage",
777
782
  "noise.Wave",
@@ -1032,7 +1037,9 @@
1032
1037
  "materials.shellRefract",
1033
1038
  "materials.rotationSensor",
1034
1039
  "materials.nearestEdge",
1035
- "materials.continuedField"
1040
+ "materials.continuedField",
1041
+ "materials.fdCurvature",
1042
+ "materials.sheenLobe"
1036
1043
  ],
1037
1044
  "types": [
1038
1045
  "materials.ShapedSurfaceEffect",
@@ -1933,9 +1940,11 @@
1933
1940
  "effects.blurs.BlurPathSpec",
1934
1941
  "effects.blurs.ComputeBackedEffect",
1935
1942
  "effects.blurs.GatherFrame",
1943
+ "effects.blurs.MotionBlurDetailSlots",
1936
1944
  "effects.blurs.OverlayStage",
1937
1945
  "effects.blurs.PeelShade",
1938
- "effects.blurs.SampleStage"
1946
+ "effects.blurs.SampleStage",
1947
+ "effects.blurs.VariableBlurDetailSlots"
1939
1948
  ],
1940
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:`.",
1941
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})",
@@ -3357,6 +3366,7 @@
3357
3366
  "Repeater",
3358
3367
  "RippleWipe",
3359
3368
  "Ripples",
3369
+ "Satin",
3360
3370
  "Saturation",
3361
3371
  "Scratches",
3362
3372
  "Sharpness",
@@ -3464,22 +3474,28 @@
3464
3474
  "usage": "crosses"
3465
3475
  },
3466
3476
  "usedBy": [
3477
+ "AngularBlur",
3467
3478
  "BrightnessContrast",
3479
+ "DiffuseBlur",
3468
3480
  "Exposure",
3469
3481
  "FilmGrain",
3470
3482
  "FilmStock",
3471
3483
  "Glow",
3472
3484
  "GradientMap",
3473
3485
  "HueShift",
3486
+ "LinearBlur",
3474
3487
  "MeshGradient",
3488
+ "ProgressiveBlur",
3475
3489
  "Repeater",
3476
3490
  "Saturation",
3477
3491
  "Sharpness",
3478
3492
  "Solarize",
3479
3493
  "Sparkle",
3494
+ "TiltShift",
3480
3495
  "Vibrance",
3481
3496
  "Vignette",
3482
- "Watercolor"
3497
+ "Watercolor",
3498
+ "ZoomBlur"
3483
3499
  ],
3484
3500
  "documented": true,
3485
3501
  "source": {
@@ -3968,6 +3984,7 @@
3968
3984
  "Marble",
3969
3985
  "MeshGradient",
3970
3986
  "Prism",
3987
+ "Satin",
3971
3988
  "StudioBackground",
3972
3989
  "Waveform"
3973
3990
  ],
@@ -7523,7 +7540,7 @@
7523
7540
  "documented": true,
7524
7541
  "source": {
7525
7542
  "file": "std/paint/noise.ts",
7526
- "line": 80
7543
+ "line": 82
7527
7544
  },
7528
7545
  "kind": "function",
7529
7546
  "signature": "waves(axes: {x: Expr | number; y?: Expr | number; t?: Expr | number}, schedule: WaveTerm[]): Expr",
@@ -7566,7 +7583,7 @@
7566
7583
  "documented": true,
7567
7584
  "source": {
7568
7585
  "file": "std/paint/noise.ts",
7569
- "line": 125
7586
+ "line": 127
7570
7587
  },
7571
7588
  "kind": "function",
7572
7589
  "signature": "wavyLine(opts: {\n along: Expr | number\n time: Expr | number\n waves: {freq: number; speed: number; amount: number; phase?: Expr | number}[]\n}): Expr",
@@ -7603,7 +7620,7 @@
7603
7620
  "documented": true,
7604
7621
  "source": {
7605
7622
  "file": "std/paint/noise.ts",
7606
- "line": 152
7623
+ "line": 154
7607
7624
  },
7608
7625
  "kind": "function",
7609
7626
  "signature": "organicWaves(opts: {frequency: number; detail?: number; drift?: number; seed?: number}): WaveTerm[]",
@@ -7615,6 +7632,147 @@
7615
7632
  }
7616
7633
  ]
7617
7634
  },
7635
+ "noise.foldSet": {
7636
+ "id": "noise.foldSet",
7637
+ "name": "foldSet",
7638
+ "qualifiedName": "foldSet",
7639
+ "category": "noise",
7640
+ "module": "std/paint/noise.ts",
7641
+ "summary": "Lays out the ridges of a draped cloth: `count` folds spread evenly across `spread`, each nudged sideways, widened and raised by a seeded amount so no two are alike.",
7642
+ "description": "`spread` is the distance the folds cover across the drape, in the units you will pass as `across` to `drapedFolds` (the canvas aspect for a full-width curtain). `width` and `height` are the typical ridge size. `jitter` (0–1, default 0.6) is how far a fold may wander from its even slot. The same `seed` always gives the same layout. `count` is a plain number, so drive it from a compile-time prop.",
7643
+ "examples": [
7644
+ "const folds = foldSet({count: 7, seed: u.seed, spread: aspect, width: u.foldWidth, height: u.foldDepth})"
7645
+ ],
7646
+ "tips": [
7647
+ "Call it once, outside any height function: the layout is the same at every tap."
7648
+ ],
7649
+ "see": [
7650
+ "noise.drapedFolds"
7651
+ ],
7652
+ "import": {
7653
+ "statement": "import {noise} from 'shaders/std'",
7654
+ "usage": "noise.foldSet"
7655
+ },
7656
+ "usedBy": [
7657
+ "Satin"
7658
+ ],
7659
+ "documented": true,
7660
+ "source": {
7661
+ "file": "std/paint/noise.ts",
7662
+ "line": 223
7663
+ },
7664
+ "kind": "function",
7665
+ "signature": "foldSet(opts: {\n count: number\n seed: Expr | number\n spread: Expr | number\n width: Expr | number\n height: Expr | number\n jitter?: number\n}): Fold[]",
7666
+ "params": [
7667
+ {
7668
+ "name": "opts",
7669
+ "type": "{\n count: number\n seed: Expr | number\n spread: Expr | number\n width: Expr | number\n height: Expr | number\n jitter?: number\n}",
7670
+ "optional": false
7671
+ }
7672
+ ]
7673
+ },
7674
+ "noise.drapedFolds": {
7675
+ "id": "noise.drapedFolds",
7676
+ "name": "drapedFolds",
7677
+ "qualifiedName": "drapedFolds",
7678
+ "category": "noise",
7679
+ "module": "std/paint/noise.ts",
7680
+ "summary": "The height of a draped cloth at a point: rounded ridges running along one direction, each rippling and swaying along its length, gathered where the cloth is pinned.",
7681
+ "description": "`coords` come from a `directionFrame`: `along` runs 0 at the pinned edge to 1 at the free edge, `across` is the distance across the drape in the units `foldSet` laid the folds out in. `ripple.waves` is a `wavyLine` wave list each spine wanders by (every fold starts at its own phase) and `ripple.gain` scales it. `sway` moves all the folds together on the clock, like a breeze. `swell` makes each ridge rise and fall along its length so neighbours merge and part. `pinning` (0–1) gathers the folds at the pinned edge: narrow and still there, wide and free at the far edge. `sharpness` (default 2) is how tightly the ridge falls away and `crease` (0–1, default 0) flattens its crest into a plateau that meets the next fold in a tight valley: 0 is a round bell, 1 a flat face with a sharp crease. The result is a height in the units of each fold's `height`. Take its slope with `fdSlope` or `fdCurvature` for relief.",
7682
+ "examples": [
7683
+ "const cloth = (at: Expr) => drapedFolds(drape.coordsOf(at), folds, {time: t, ripple: {waves: RIPPLE}, sway: {amount: breeze}, pinning: u.pinning})\nconst relief = fdCurvature(cloth, q, 0.004)"
7684
+ ],
7685
+ "tips": [
7686
+ "Keep the wave list and swell as constants next to the definition. They are the look."
7687
+ ],
7688
+ "see": [
7689
+ "noise.foldSet",
7690
+ "noise.wavyLine",
7691
+ "materials.fdSlope"
7692
+ ],
7693
+ "import": {
7694
+ "statement": "import {noise} from 'shaders/std'",
7695
+ "usage": "noise.drapedFolds"
7696
+ },
7697
+ "usedBy": [
7698
+ "Satin"
7699
+ ],
7700
+ "documented": true,
7701
+ "source": {
7702
+ "file": "std/paint/noise.ts",
7703
+ "line": 271
7704
+ },
7705
+ "kind": "function",
7706
+ "signature": "drapedFolds(coords: {along: Expr | number; across: Expr | number}, folds: Fold[], opts: DrapeOptions): Expr",
7707
+ "params": [
7708
+ {
7709
+ "name": "coords",
7710
+ "type": "{along: Expr | number; across: Expr | number}",
7711
+ "optional": false
7712
+ },
7713
+ {
7714
+ "name": "folds",
7715
+ "type": "Fold[]",
7716
+ "optional": false
7717
+ },
7718
+ {
7719
+ "name": "opts",
7720
+ "type": "DrapeOptions",
7721
+ "optional": false
7722
+ }
7723
+ ]
7724
+ },
7725
+ "noise.clothCoords": {
7726
+ "id": "noise.clothCoords",
7727
+ "name": "clothCoords",
7728
+ "qualifiedName": "clothCoords",
7729
+ "category": "noise",
7730
+ "module": "std/paint/noise.ts",
7731
+ "summary": "Where on the unfolded cloth a point lands: the material coordinates to draw a pattern in, so it follows the folds instead of floating over them.",
7732
+ "description": "Takes the same `coords`, `folds` and options as `drapedFolds`. The cloth riding each ridge moves sideways with its spine, and each flank uses up cloth, so a pattern drawn in these coordinates bends with the ripples and bunches on the steep sides of every ridge. `foreshorten` (default 0.25) is how much cloth a flank consumes. Rebuild a point from the result with the drape's frame and hand it to a grain word in place of the screen point.",
7733
+ "examples": [
7734
+ "const m = clothCoords(drape.coordsOf(q), folds, {...drapeOpts, foreshorten: 0.25})\nconst onCloth = add(mul(drape.tangent, m.along), mul(drape.perp, m.across))\nconst threads = grainNoise(fibre.coordsOf(onCloth), {freq: [12, 420]})"
7735
+ ],
7736
+ "tips": [
7737
+ "One more pass over the folds per pixel. Call it once and reuse the point."
7738
+ ],
7739
+ "see": [
7740
+ "noise.drapedFolds",
7741
+ "noise.foldSet",
7742
+ "materials.grainNoise"
7743
+ ],
7744
+ "import": {
7745
+ "statement": "import {noise} from 'shaders/std'",
7746
+ "usage": "noise.clothCoords"
7747
+ },
7748
+ "usedBy": [
7749
+ "Satin"
7750
+ ],
7751
+ "documented": true,
7752
+ "source": {
7753
+ "file": "std/paint/noise.ts",
7754
+ "line": 299
7755
+ },
7756
+ "kind": "function",
7757
+ "signature": "clothCoords(coords: {along: Expr | number; across: Expr | number}, folds: Fold[], opts: DrapeOptions & {foreshorten?: number}): {along: Expr; across: Expr}",
7758
+ "params": [
7759
+ {
7760
+ "name": "coords",
7761
+ "type": "{along: Expr | number; across: Expr | number}",
7762
+ "optional": false
7763
+ },
7764
+ {
7765
+ "name": "folds",
7766
+ "type": "Fold[]",
7767
+ "optional": false
7768
+ },
7769
+ {
7770
+ "name": "opts",
7771
+ "type": "DrapeOptions & {foreshorten?: number}",
7772
+ "optional": false
7773
+ }
7774
+ ]
7775
+ },
7618
7776
  "noise.seededPlane": {
7619
7777
  "id": "noise.seededPlane",
7620
7778
  "name": "seededPlane",
@@ -7650,7 +7808,7 @@
7650
7808
  "documented": true,
7651
7809
  "source": {
7652
7810
  "file": "std/paint/noise.ts",
7653
- "line": 209
7811
+ "line": 414
7654
7812
  },
7655
7813
  "kind": "function",
7656
7814
  "signature": "seededPlane(field: Field, slots: {scale: PropRef; seed: PropRef}): Field",
@@ -7693,7 +7851,7 @@
7693
7851
  "documented": true,
7694
7852
  "source": {
7695
7853
  "file": "std/paint/noise.ts",
7696
- "line": 248
7854
+ "line": 453
7697
7855
  },
7698
7856
  "kind": "function",
7699
7857
  "signature": "pixelGrid(field: Field, slots: {grain: PropRef; seed: PropRef}): Field",
@@ -7734,7 +7892,7 @@
7734
7892
  "documented": true,
7735
7893
  "source": {
7736
7894
  "file": "std/paint/noise.ts",
7737
- "line": 272
7895
+ "line": 477
7738
7896
  },
7739
7897
  "kind": "function",
7740
7898
  "signature": "scaledPlane(field: Field, slots: {scale: PropRef}): Field",
@@ -7781,7 +7939,7 @@
7781
7939
  "documented": true,
7782
7940
  "source": {
7783
7941
  "file": "std/paint/noise.ts",
7784
- "line": 300
7942
+ "line": 505
7785
7943
  },
7786
7944
  "kind": "function",
7787
7945
  "signature": "evolving(field: Field, opts: {rate: number}): Field",
@@ -7824,7 +7982,7 @@
7824
7982
  "documented": true,
7825
7983
  "source": {
7826
7984
  "file": "std/paint/noise.ts",
7827
- "line": 327
7985
+ "line": 532
7828
7986
  },
7829
7987
  "kind": "function",
7830
7988
  "signature": "gaborGrains(slots: {frequency: PropRef}): Field",
@@ -7862,7 +8020,7 @@
7862
8020
  "documented": true,
7863
8021
  "source": {
7864
8022
  "file": "std/paint/noise.ts",
7865
- "line": 347
8023
+ "line": 552
7866
8024
  },
7867
8025
  "kind": "function",
7868
8026
  "signature": "waveletBands(slots: {detail: PropRef}): Field",
@@ -7901,7 +8059,7 @@
7901
8059
  "documented": true,
7902
8060
  "source": {
7903
8061
  "file": "std/paint/noise.ts",
7904
- "line": 366
8062
+ "line": 571
7905
8063
  },
7906
8064
  "kind": "function",
7907
8065
  "signature": "blueSpeckle(): Field",
@@ -7933,7 +8091,7 @@
7933
8091
  "documented": true,
7934
8092
  "source": {
7935
8093
  "file": "std/paint/noise.ts",
7936
- "line": 383
8094
+ "line": 588
7937
8095
  },
7938
8096
  "kind": "function",
7939
8097
  "signature": "erosionRidges(): Field",
@@ -7965,7 +8123,7 @@
7965
8123
  "documented": true,
7966
8124
  "source": {
7967
8125
  "file": "std/paint/noise.ts",
7968
- "line": 400
8126
+ "line": 605
7969
8127
  },
7970
8128
  "kind": "function",
7971
8129
  "signature": "curlSpeed(opts: {rate: number}): Field",
@@ -8003,7 +8161,7 @@
8003
8161
  "documented": true,
8004
8162
  "source": {
8005
8163
  "file": "std/paint/noise.ts",
8006
- "line": 420
8164
+ "line": 625
8007
8165
  },
8008
8166
  "kind": "function",
8009
8167
  "signature": "scratchStreaks(slots: {thickness: PropRef}): Field",
@@ -8043,7 +8201,7 @@
8043
8201
  "documented": true,
8044
8202
  "source": {
8045
8203
  "file": "std/paint/noise.ts",
8046
- "line": 442
8204
+ "line": 647
8047
8205
  },
8048
8206
  "kind": "function",
8049
8207
  "signature": "unitized(field: Field): Field",
@@ -8091,7 +8249,7 @@
8091
8249
  "documented": true,
8092
8250
  "source": {
8093
8251
  "file": "std/paint/noise.ts",
8094
- "line": 464
8252
+ "line": 669
8095
8253
  },
8096
8254
  "kind": "function",
8097
8255
  "signature": "noiseTone(field: Field, slots?: {contrast?: PropRef; balance?: PropRef}): Field",
@@ -8134,7 +8292,7 @@
8134
8292
  "documented": true,
8135
8293
  "source": {
8136
8294
  "file": "std/paint/noise.ts",
8137
- "line": 489
8295
+ "line": 694
8138
8296
  },
8139
8297
  "kind": "function",
8140
8298
  "signature": "signedTone(field: Field, slots: {contrast: PropRef; balance: PropRef}): Field",
@@ -8175,7 +8333,7 @@
8175
8333
  "documented": true,
8176
8334
  "source": {
8177
8335
  "file": "std/paint/noise.ts",
8178
- "line": 510
8336
+ "line": 715
8179
8337
  },
8180
8338
  "kind": "function",
8181
8339
  "signature": "gainTone(field: Field, slots: {contrast: PropRef; balance: PropRef}): Field",
@@ -8218,7 +8376,7 @@
8218
8376
  "documented": true,
8219
8377
  "source": {
8220
8378
  "file": "std/paint/noise.ts",
8221
- "line": 531
8379
+ "line": 736
8222
8380
  },
8223
8381
  "kind": "function",
8224
8382
  "signature": "linearPair(a: PropRef, b: PropRef): Palette",
@@ -8263,7 +8421,7 @@
8263
8421
  "documented": true,
8264
8422
  "source": {
8265
8423
  "file": "std/paint/noise.ts",
8266
- "line": 555
8424
+ "line": 760
8267
8425
  },
8268
8426
  "kind": "function",
8269
8427
  "signature": "fractalNoise(slots: {\n angle: PropRef\n detail: PropRef\n contrast: PropRef\n octaves: PropRef\n seed: PropRef\n space: PropRef\n}): Paint",
@@ -8305,7 +8463,7 @@
8305
8463
  "documented": true,
8306
8464
  "source": {
8307
8465
  "file": "std/paint/noise.ts",
8308
- "line": 600
8466
+ "line": 805
8309
8467
  },
8310
8468
  "kind": "function",
8311
8469
  "signature": "worleyNoise(slots: {\n scale: PropRef\n jitter: PropRef\n lacunarity: PropRef\n persistence: PropRef\n contrast: PropRef\n balance: PropRef\n seed: PropRef\n /** Compile-time prop: `'f1' | 'f2' | 'f2MinusF1' | 'f1PlusF2' | 'f1TimesF2'`. */\n mode: PropRef\n /** Compile-time prop: `'euclidean' | 'manhattan' | 'chebyshev'`. */\n distance: PropRef\n /** Compile-time prop: 1 to 4. */\n octaves: PropRef\n space: PropRef\n}): Paint",
@@ -8344,7 +8502,7 @@
8344
8502
  "documented": true,
8345
8503
  "source": {
8346
8504
  "file": "std/paint/noise.ts",
8347
- "line": 657
8505
+ "line": 862
8348
8506
  },
8349
8507
  "kind": "function",
8350
8508
  "signature": "cellDistances(slots: {scale: PropRef; seed: PropRef}): Field",
@@ -8382,7 +8540,7 @@
8382
8540
  "documented": true,
8383
8541
  "source": {
8384
8542
  "file": "std/paint/noise.ts",
8385
- "line": 680
8543
+ "line": 885
8386
8544
  },
8387
8545
  "kind": "function",
8388
8546
  "signature": "cellFill(cells: Field, slots: {edgeIntensity: PropRef}): Field",
@@ -8425,7 +8583,7 @@
8425
8583
  "documented": true,
8426
8584
  "source": {
8427
8585
  "file": "std/paint/noise.ts",
8428
- "line": 700
8586
+ "line": 905
8429
8587
  },
8430
8588
  "kind": "function",
8431
8589
  "signature": "cellBorders(cells: Field, slots: {softness: PropRef; scale: PropRef}): Field",
@@ -8468,7 +8626,7 @@
8468
8626
  "documented": true,
8469
8627
  "source": {
8470
8628
  "file": "std/paint/noise.ts",
8471
- "line": 719
8629
+ "line": 924
8472
8630
  },
8473
8631
  "kind": "function",
8474
8632
  "signature": "borderOverlay(paint: Paint, mask: Field, slots: {color: PropRef}): Paint",
@@ -8517,7 +8675,7 @@
8517
8675
  "documented": true,
8518
8676
  "source": {
8519
8677
  "file": "std/paint/noise.ts",
8520
- "line": 747
8678
+ "line": 952
8521
8679
  },
8522
8680
  "kind": "function",
8523
8681
  "signature": "overRgb(paint: Paint, ...stages: RgbStage[]): Paint",
@@ -8560,7 +8718,7 @@
8560
8718
  "documented": true,
8561
8719
  "source": {
8562
8720
  "file": "std/paint/noise.ts",
8563
- "line": 768
8721
+ "line": 973
8564
8722
  },
8565
8723
  "kind": "function",
8566
8724
  "signature": "backToP3(slots: {space?: PropRef}): RgbStage",
@@ -8597,7 +8755,7 @@
8597
8755
  "documented": true,
8598
8756
  "source": {
8599
8757
  "file": "std/paint/noise.ts",
8600
- "line": 785
8758
+ "line": 990
8601
8759
  },
8602
8760
  "kind": "function",
8603
8761
  "signature": "tonePow(): RgbStage",
@@ -8632,7 +8790,7 @@
8632
8790
  "documented": true,
8633
8791
  "source": {
8634
8792
  "file": "std/paint/noise.ts",
8635
- "line": 813
8793
+ "line": 1018
8636
8794
  },
8637
8795
  "kind": "function",
8638
8796
  "signature": "ribbons(slots: {\n from: PropRef\n to: PropRef\n count: PropRef\n width: PropRef\n amplitude: PropRef\n frequency: PropRef\n softness: PropRef\n spread: PropRef\n pinEdges: PropRef\n colorScale: PropRef\n colorVariance: PropRef\n}): Paint",
@@ -8665,7 +8823,7 @@
8665
8823
  "documented": true,
8666
8824
  "source": {
8667
8825
  "file": "std/paint/noise.ts",
8668
- "line": 878
8826
+ "line": 1083
8669
8827
  },
8670
8828
  "kind": "constant",
8671
8829
  "signature": "reliefBases.stone: { readonly fn: TgpuFn<(p: Vec2f) => F32>; readonly hint: \"stone12\"; }",
@@ -8692,7 +8850,7 @@
8692
8850
  "documented": true,
8693
8851
  "source": {
8694
8852
  "file": "std/paint/noise.ts",
8695
- "line": 880
8853
+ "line": 1085
8696
8854
  },
8697
8855
  "kind": "constant",
8698
8856
  "signature": "reliefBases.wool: { readonly fn: TgpuFn<(p: Vec2f) => F32>; readonly hint: \"wool12\"; }",
@@ -8724,7 +8882,7 @@
8724
8882
  "documented": true,
8725
8883
  "source": {
8726
8884
  "file": "std/paint/noise.ts",
8727
- "line": 876
8885
+ "line": 1081
8728
8886
  },
8729
8887
  "kind": "object",
8730
8888
  "signature": "reliefBases: { stone, wool }",
@@ -8762,7 +8920,7 @@
8762
8920
  "documented": true,
8763
8921
  "source": {
8764
8922
  "file": "std/paint/noise.ts",
8765
- "line": 904
8923
+ "line": 1109
8766
8924
  },
8767
8925
  "kind": "function",
8768
8926
  "signature": "noiseRelief(basis: ReliefBasis): (params: GpuFragmentParams) => Expr",
@@ -8800,7 +8958,7 @@
8800
8958
  "documented": true,
8801
8959
  "source": {
8802
8960
  "file": "std/paint/noise.ts",
8803
- "line": 922
8961
+ "line": 1127
8804
8962
  },
8805
8963
  "kind": "function",
8806
8964
  "signature": "transformWorleyMode(value: string): number",
@@ -8838,7 +8996,7 @@
8838
8996
  "documented": true,
8839
8997
  "source": {
8840
8998
  "file": "std/paint/noise.ts",
8841
- "line": 933
8999
+ "line": 1138
8842
9000
  },
8843
9001
  "kind": "function",
8844
9002
  "signature": "transformWorleyDistance(value: string): number",
@@ -10915,7 +11073,8 @@
10915
11073
  "Chrome",
10916
11074
  "LiquidMetal",
10917
11075
  "Nebula",
10918
- "Obsidian"
11076
+ "Obsidian",
11077
+ "Satin"
10919
11078
  ],
10920
11079
  "documented": true,
10921
11080
  "source": {
@@ -10923,7 +11082,7 @@
10923
11082
  "line": 435
10924
11083
  },
10925
11084
  "kind": "function",
10926
- "signature": "viewRay(params: GpuFragmentParams, field: SurfaceField, fov: number = 0.6): Expr",
11085
+ "signature": "viewRay(params: GpuFragmentParams, field: Pick<SurfaceField, 'aspect'>, fov: number = 0.6): Expr",
10927
11086
  "params": [
10928
11087
  {
10929
11088
  "name": "params",
@@ -10932,7 +11091,7 @@
10932
11091
  },
10933
11092
  {
10934
11093
  "name": "field",
10935
- "type": "SurfaceField",
11094
+ "type": "Pick<SurfaceField, 'aspect'>",
10936
11095
  "optional": false
10937
11096
  },
10938
11097
  {
@@ -11013,7 +11172,8 @@
11013
11172
  "usage": "materials.tiltNormal"
11014
11173
  },
11015
11174
  "usedBy": [
11016
- "BrushedMetal"
11175
+ "BrushedMetal",
11176
+ "Satin"
11017
11177
  ],
11018
11178
  "documented": true,
11019
11179
  "source": {
@@ -11122,7 +11282,8 @@
11122
11282
  "usage": "materials.grainNoise"
11123
11283
  },
11124
11284
  "usedBy": [
11125
- "BrushedMetal"
11285
+ "BrushedMetal",
11286
+ "Satin"
11126
11287
  ],
11127
11288
  "documented": true,
11128
11289
  "source": {
@@ -11210,7 +11371,8 @@
11210
11371
  },
11211
11372
  "usedBy": [
11212
11373
  "BrushedMetal",
11213
- "CarbonFiber"
11374
+ "CarbonFiber",
11375
+ "Satin"
11214
11376
  ],
11215
11377
  "documented": true,
11216
11378
  "source": {
@@ -11258,7 +11420,8 @@
11258
11420
  "usage": "materials.wardAlphas"
11259
11421
  },
11260
11422
  "usedBy": [
11261
- "BrushedMetal"
11423
+ "BrushedMetal",
11424
+ "Satin"
11262
11425
  ],
11263
11426
  "documented": true,
11264
11427
  "source": {
@@ -11266,16 +11429,16 @@
11266
11429
  "line": 604
11267
11430
  },
11268
11431
  "kind": "function",
11269
- "signature": "wardAlphas(roughness: Expr, anisotropy: Expr): {along: Expr; across: Expr}",
11432
+ "signature": "wardAlphas(roughness: Expr | number, anisotropy: Expr | number): {along: Expr; across: Expr}",
11270
11433
  "params": [
11271
11434
  {
11272
11435
  "name": "roughness",
11273
- "type": "Expr",
11436
+ "type": "Expr | number",
11274
11437
  "optional": false
11275
11438
  },
11276
11439
  {
11277
11440
  "name": "anisotropy",
11278
- "type": "Expr",
11441
+ "type": "Expr | number",
11279
11442
  "optional": false
11280
11443
  }
11281
11444
  ]
@@ -11304,7 +11467,8 @@
11304
11467
  },
11305
11468
  "usedBy": [
11306
11469
  "BrushedMetal",
11307
- "CarbonFiber"
11470
+ "CarbonFiber",
11471
+ "Satin"
11308
11472
  ],
11309
11473
  "documented": true,
11310
11474
  "source": {
@@ -11541,7 +11705,8 @@
11541
11705
  },
11542
11706
  "usedBy": [
11543
11707
  "Chrome",
11544
- "Nebula"
11708
+ "Nebula",
11709
+ "Satin"
11545
11710
  ],
11546
11711
  "documented": true,
11547
11712
  "source": {
@@ -11584,7 +11749,8 @@
11584
11749
  "Chrome",
11585
11750
  "Frost",
11586
11751
  "LiquidMetal",
11587
- "Plastic"
11752
+ "Plastic",
11753
+ "Satin"
11588
11754
  ],
11589
11755
  "documented": true,
11590
11756
  "source": {
@@ -12284,7 +12450,8 @@
12284
12450
  "usage": "materials.fdSlope"
12285
12451
  },
12286
12452
  "usedBy": [
12287
- "Crystal"
12453
+ "Crystal",
12454
+ "Satin"
12288
12455
  ],
12289
12456
  "documented": true,
12290
12457
  "source": {
@@ -12317,6 +12484,62 @@
12317
12484
  }
12318
12485
  ]
12319
12486
  },
12487
+ "materials.fdCurvature": {
12488
+ "id": "materials.fdCurvature",
12489
+ "name": "fdCurvature",
12490
+ "qualifiedName": "fdCurvature",
12491
+ "category": "materials",
12492
+ "module": "std/paint/materials.ts",
12493
+ "summary": "The value, slope and curvature of any field at a point: `value`, `dx`, `dy` and `curvature`.",
12494
+ "description": "`fdSlope` with two more taps. The slopes are centred, so they sit on the point rather than half a step past it, and `curvature` is the field's Laplacian: negative on a crest, positive in a crease, zero on a flat or a plane. Scale it by a gain for a cavity shade that darkens creases and lifts crests. `eps` is the tap distance in the point's units.",
12495
+ "examples": [
12496
+ "const relief = fdCurvature(cloth, q, 0.004)\nconst cavity = clamp(sub(1, mul(relief.curvature, 0.005)), 0.6, 1.1)"
12497
+ ],
12498
+ "tips": [
12499
+ "Five taps of the field per pixel. Keep the field cheap."
12500
+ ],
12501
+ "see": [
12502
+ "materials.fdSlope",
12503
+ "materials.nudgeNormal"
12504
+ ],
12505
+ "import": {
12506
+ "statement": "import {materials} from 'shaders/std'",
12507
+ "usage": "materials.fdCurvature"
12508
+ },
12509
+ "usedBy": [
12510
+ "Satin"
12511
+ ],
12512
+ "documented": true,
12513
+ "source": {
12514
+ "file": "std/paint/materials.ts",
12515
+ "line": 1027
12516
+ },
12517
+ "kind": "function",
12518
+ "signature": "fdCurvature(sampleAt: (p: Expr) => Expr, p: Expr, eps: number, hint: string = 'fd'): {value: Expr; dx: Expr; dy: Expr; curvature: Expr}",
12519
+ "params": [
12520
+ {
12521
+ "name": "sampleAt",
12522
+ "type": "(p: Expr) => Expr",
12523
+ "optional": false
12524
+ },
12525
+ {
12526
+ "name": "p",
12527
+ "type": "Expr",
12528
+ "optional": false
12529
+ },
12530
+ {
12531
+ "name": "eps",
12532
+ "type": "number",
12533
+ "optional": false
12534
+ },
12535
+ {
12536
+ "name": "hint",
12537
+ "type": "string",
12538
+ "optional": true,
12539
+ "defaultValue": "'fd'"
12540
+ }
12541
+ ]
12542
+ },
12320
12543
  "materials.hashNoise": {
12321
12544
  "id": "materials.hashNoise",
12322
12545
  "name": "hashNoise",
@@ -12346,7 +12569,7 @@
12346
12569
  "documented": true,
12347
12570
  "source": {
12348
12571
  "file": "std/paint/materials.ts",
12349
- "line": 1022
12572
+ "line": 1057
12350
12573
  },
12351
12574
  "kind": "function",
12352
12575
  "signature": "hashNoise(x: Expr | number, y: Expr | number): Expr",
@@ -12387,7 +12610,7 @@
12387
12610
  "documented": true,
12388
12611
  "source": {
12389
12612
  "file": "std/paint/materials.ts",
12390
- "line": 1039
12613
+ "line": 1074
12391
12614
  },
12392
12615
  "kind": "function",
12393
12616
  "signature": "interleavedNoise(pixel: Expr, clock: Expr | number = 0): Expr",
@@ -12431,7 +12654,7 @@
12431
12654
  "documented": true,
12432
12655
  "source": {
12433
12656
  "file": "std/paint/materials.ts",
12434
- "line": 1055
12657
+ "line": 1090
12435
12658
  },
12436
12659
  "kind": "function",
12437
12660
  "signature": "valueNoise(x: Expr | number, y: Expr | number): Expr",
@@ -12474,7 +12697,7 @@
12474
12697
  "documented": true,
12475
12698
  "source": {
12476
12699
  "file": "std/paint/materials.ts",
12477
- "line": 1071
12700
+ "line": 1106
12478
12701
  },
12479
12702
  "kind": "function",
12480
12703
  "signature": "rotationSensor(frame: SurfaceFrame): {x: Expr; y: Expr}",
@@ -12512,7 +12735,7 @@
12512
12735
  "documented": true,
12513
12736
  "source": {
12514
12737
  "file": "std/paint/materials.ts",
12515
- "line": 1094
12738
+ "line": 1129
12516
12739
  },
12517
12740
  "kind": "function",
12518
12741
  "signature": "shellRefract(frame: SurfaceFrame, n: Expr, amount: Expr): {\n x: Expr\n y: Expr\n centered: {x: Expr; y: Expr}\n}",
@@ -12563,7 +12786,7 @@
12563
12786
  "documented": true,
12564
12787
  "source": {
12565
12788
  "file": "std/paint/materials.ts",
12566
- "line": 1122
12789
+ "line": 1157
12567
12790
  },
12568
12791
  "kind": "function",
12569
12792
  "signature": "schlickFresnel(grazing: Expr, opts: {r0?: number; gain: Expr | number; power?: number}): Expr",
@@ -12605,7 +12828,7 @@
12605
12828
  "documented": true,
12606
12829
  "source": {
12607
12830
  "file": "std/paint/materials.ts",
12608
- "line": 1139
12831
+ "line": 1174
12609
12832
  },
12610
12833
  "kind": "function",
12611
12834
  "signature": "twinkle(t: Expr, phase: Expr, opts: {amount: Expr; rate: number; spread: number}): Expr",
@@ -12653,7 +12876,7 @@
12653
12876
  "documented": true,
12654
12877
  "source": {
12655
12878
  "file": "std/paint/materials.ts",
12656
- "line": 1157
12879
+ "line": 1192
12657
12880
  },
12658
12881
  "kind": "function",
12659
12882
  "signature": "pointStars(p: Expr, opts: {\n /** Frequency of the per-point variation field relative to `p` (slow, about 0.1). */\n variationFreq: number\n /** Point radius as `[base, jitter]`: base plus variation times jitter. */\n radius: [number, number]\n /** The band of the variation field that keeps a point at all. Narrower is sparser. */\n keep: [number, number]\n /** Brightness as `[base, gain]`: base plus variation squared times gain. */\n brightness: [number, number]\n /** A per-point shimmer factor built from the variation field (see `twinkle`). */\n shimmer?: (variation: Expr) => Expr\n /** Overall gain. */\n gain: Expr\n /** Color the glints: variation mixes `from` to `to`, scaled by the glint times `gain`. */\n tint?: {from: [number, number, number]; to: [number, number, number]; gain: number}\n hint?: string\n}): {glint: Expr; variation: Expr; rgb?: Expr}",
@@ -12696,7 +12919,7 @@
12696
12919
  "documented": true,
12697
12920
  "source": {
12698
12921
  "file": "std/paint/materials.ts",
12699
- "line": 1212
12922
+ "line": 1247
12700
12923
  },
12701
12924
  "kind": "function",
12702
12925
  "signature": "placementPoint(params: GpuFragmentParams, position: Expr, hint: string = 'placed'): Expr",
@@ -12745,7 +12968,7 @@
12745
12968
  "documented": true,
12746
12969
  "source": {
12747
12970
  "file": "std/paint/materials.ts",
12748
- "line": 1233
12971
+ "line": 1268
12749
12972
  },
12750
12973
  "kind": "function",
12751
12974
  "signature": "continuedField(frame: SurfaceFrame, field: SurfaceField, params: GpuFragmentParams): {sdf: Expr; outward: Expr; at: (uv: Expr) => Expr}",
@@ -12794,7 +13017,7 @@
12794
13017
  "documented": true,
12795
13018
  "source": {
12796
13019
  "file": "std/paint/materials.ts",
12797
- "line": 1270
13020
+ "line": 1305
12798
13021
  },
12799
13022
  "kind": "function",
12800
13023
  "signature": "nearestEdge(sdfUV: Expr, sdf: Expr, slope: Expr, hint: string = 'edge'): {point: Expr; normal: Expr}",
@@ -12850,7 +13073,7 @@
12850
13073
  "documented": true,
12851
13074
  "source": {
12852
13075
  "file": "std/paint/materials.ts",
12853
- "line": 1288
13076
+ "line": 1323
12854
13077
  },
12855
13078
  "kind": "function",
12856
13079
  "signature": "pointLightFrom(light: {position: Expr; height: Expr | number}, at: Expr, hint: string = 'pl'): {L: Expr; toLight: Expr; distance: Expr}",
@@ -12896,12 +13119,13 @@
12896
13119
  },
12897
13120
  "usedBy": [
12898
13121
  "Irradiance",
13122
+ "Satin",
12899
13123
  "Voxels"
12900
13124
  ],
12901
13125
  "documented": true,
12902
13126
  "source": {
12903
13127
  "file": "std/paint/materials.ts",
12904
- "line": 1313
13128
+ "line": 1348
12905
13129
  },
12906
13130
  "kind": "function",
12907
13131
  "signature": "lambert(normal: Expr, light: Expr, opts: {wrap?: Expr | number} = {}): Expr",
@@ -12950,7 +13174,7 @@
12950
13174
  "documented": true,
12951
13175
  "source": {
12952
13176
  "file": "std/paint/materials.ts",
12953
- "line": 1328
13177
+ "line": 1363
12954
13178
  },
12955
13179
  "kind": "function",
12956
13180
  "signature": "inverseSquare(distance: Expr, range: Expr | number): Expr",
@@ -12993,7 +13217,7 @@
12993
13217
  "documented": true,
12994
13218
  "source": {
12995
13219
  "file": "std/paint/materials.ts",
12996
- "line": 1345
13220
+ "line": 1380
12997
13221
  },
12998
13222
  "kind": "function",
12999
13223
  "signature": "exposureTone(rgb: Expr): Expr",
@@ -13030,7 +13254,7 @@
13030
13254
  "documented": true,
13031
13255
  "source": {
13032
13256
  "file": "std/paint/materials.ts",
13033
- "line": 1362
13257
+ "line": 1397
13034
13258
  },
13035
13259
  "kind": "function",
13036
13260
  "signature": "sensorGrain(rgb: Expr, opts: {amount: Expr | number; pixel: Expr; clock: Expr | number}): Expr",
@@ -13074,7 +13298,7 @@
13074
13298
  "documented": true,
13075
13299
  "source": {
13076
13300
  "file": "std/paint/materials.ts",
13077
- "line": 1380
13301
+ "line": 1415
13078
13302
  },
13079
13303
  "kind": "function",
13080
13304
  "signature": "dualLobeGlint(ndh: Expr, opts: {\n /** `[exponent, gain]` of the hot core lobe. */\n core: [number, number]\n /** `[exponent, gain]` of the wide halo lobe. */\n halo: [number, number]\n softness?: Expr\n gain: Expr\n}): Expr",
@@ -13091,6 +13315,45 @@
13091
13315
  }
13092
13316
  ]
13093
13317
  },
13318
+ "materials.sheenLobe": {
13319
+ "id": "materials.sheenLobe",
13320
+ "name": "sheenLobe",
13321
+ "qualifiedName": "sheenLobe",
13322
+ "category": "materials",
13323
+ "module": "std/paint/materials.ts",
13324
+ "summary": "The soft glow of light scattered off fibres where a surface turns edge-on to the viewer: the velvet sheen on the flanks of satin, velour and wool.",
13325
+ "description": "`normal` and `light` are unit 3D vectors and `view` the view ray (`viewRay`, or a constant `vec3(0, 0, 1)`). It is zero on a face-on surface and rises along each fold's flank, so it never washes a flat sheet. `roughness` (0–1) widens it: low is a thin bright rim, high a broad soft bloom. The lobe peaks at 1 and is held back by a wrapped lambert so unlit flanks stay dark; pass `gain` or scale the result yourself. Pair it with `anisoSpecular` for a satin finish: the streak is the shine, the sheen is the body.",
13326
+ "examples": [
13327
+ "const velvet = sheenLobe({normal: n, light: L, view, roughness: 0.5, gain: u.sheen})"
13328
+ ],
13329
+ "tips": [],
13330
+ "see": [
13331
+ "materials.anisoSpecular",
13332
+ "materials.lambert",
13333
+ "materials.grazingOf"
13334
+ ],
13335
+ "import": {
13336
+ "statement": "import {materials} from 'shaders/std'",
13337
+ "usage": "materials.sheenLobe"
13338
+ },
13339
+ "usedBy": [
13340
+ "Satin"
13341
+ ],
13342
+ "documented": true,
13343
+ "source": {
13344
+ "file": "std/paint/materials.ts",
13345
+ "line": 1449
13346
+ },
13347
+ "kind": "function",
13348
+ "signature": "sheenLobe(opts: {\n normal: Expr\n light: Expr\n view: Expr\n roughness: Expr | number\n gain?: Expr | number\n}): Expr",
13349
+ "params": [
13350
+ {
13351
+ "name": "opts",
13352
+ "type": "{\n normal: Expr\n light: Expr\n view: Expr\n roughness: Expr | number\n gain?: Expr | number\n}",
13353
+ "optional": false
13354
+ }
13355
+ ]
13356
+ },
13094
13357
  "volume.interiorRay": {
13095
13358
  "id": "volume.interiorRay",
13096
13359
  "name": "interiorRay",
@@ -14329,6 +14592,7 @@
14329
14592
  "Marble",
14330
14593
  "MeshGradient",
14331
14594
  "Prism",
14595
+ "Satin",
14332
14596
  "StudioBackground",
14333
14597
  "Waveform"
14334
14598
  ],
@@ -14495,6 +14759,7 @@
14495
14759
  "Nebula",
14496
14760
  "Obsidian",
14497
14761
  "Plastic",
14762
+ "Satin",
14498
14763
  "Water"
14499
14764
  ],
14500
14765
  "documented": true,
@@ -14542,7 +14807,8 @@
14542
14807
  "BrushedMetal",
14543
14808
  "CarbonFiber",
14544
14809
  "Heatmap",
14545
- "Obsidian"
14810
+ "Obsidian",
14811
+ "Satin"
14546
14812
  ],
14547
14813
  "documented": true,
14548
14814
  "source": {
@@ -15580,6 +15846,7 @@
15580
15846
  "Plastic",
15581
15847
  "Prism",
15582
15848
  "ReactionDiffusion",
15849
+ "Satin",
15583
15850
  "Sparkle",
15584
15851
  "StudioBackground",
15585
15852
  "Voxels",
@@ -15647,6 +15914,7 @@
15647
15914
  "Plastic",
15648
15915
  "Prism",
15649
15916
  "ReactionDiffusion",
15917
+ "Satin",
15650
15918
  "StudioBackground",
15651
15919
  "Voxels",
15652
15920
  "Water",
@@ -15719,6 +15987,7 @@
15719
15987
  "Plastic",
15720
15988
  "Prism",
15721
15989
  "ReactionDiffusion",
15990
+ "Satin",
15722
15991
  "SmokeFill",
15723
15992
  "Sparkle",
15724
15993
  "StudioBackground",
@@ -15786,6 +16055,7 @@
15786
16055
  "Plastic",
15787
16056
  "Prism",
15788
16057
  "ReactionDiffusion",
16058
+ "Satin",
15789
16059
  "Sparkle",
15790
16060
  "StudioBackground",
15791
16061
  "TimeTrail",
@@ -15835,6 +16105,7 @@
15835
16105
  "usedBy": [
15836
16106
  "Prism",
15837
16107
  "ReactionDiffusion",
16108
+ "Satin",
15838
16109
  "StudioBackground",
15839
16110
  "Voxels",
15840
16111
  "Waveform"
@@ -15883,6 +16154,7 @@
15883
16154
  "Hologram",
15884
16155
  "Nebula",
15885
16156
  "Plastic",
16157
+ "Satin",
15886
16158
  "Water",
15887
16159
  "Waveform"
15888
16160
  ],
@@ -16530,6 +16802,7 @@
16530
16802
  "Plastic",
16531
16803
  "Prism",
16532
16804
  "ReactionDiffusion",
16805
+ "Satin",
16533
16806
  "SmokeFill",
16534
16807
  "StudioBackground",
16535
16808
  "Surface3D",
@@ -16603,6 +16876,7 @@
16603
16876
  "Polygon",
16604
16877
  "Prism",
16605
16878
  "ReactionDiffusion",
16879
+ "Satin",
16606
16880
  "Sparkle",
16607
16881
  "StudioBackground",
16608
16882
  "Voxels",
@@ -17543,6 +17817,7 @@
17543
17817
  "PixelSort",
17544
17818
  "Plastic",
17545
17819
  "ReactionDiffusion",
17820
+ "Satin",
17546
17821
  "Sparkle",
17547
17822
  "Water"
17548
17823
  ],
@@ -17604,6 +17879,7 @@
17604
17879
  "PixelThrow",
17605
17880
  "Plastic",
17606
17881
  "ReactionDiffusion",
17882
+ "Satin",
17607
17883
  "Sparkle",
17608
17884
  "StudioBackground",
17609
17885
  "Surface3D",
@@ -17676,6 +17952,7 @@
17676
17952
  "Plastic",
17677
17953
  "Prism",
17678
17954
  "ReactionDiffusion",
17955
+ "Satin",
17679
17956
  "Sparkle",
17680
17957
  "StudioBackground",
17681
17958
  "Surface3D",
@@ -17797,6 +18074,7 @@
17797
18074
  "Plastic",
17798
18075
  "Prism",
17799
18076
  "ReactionDiffusion",
18077
+ "Satin",
17800
18078
  "Sparkle",
17801
18079
  "StudioBackground",
17802
18080
  "Surface3D",
@@ -19887,12 +20165,14 @@
19887
20165
  "category": "effects.blurs",
19888
20166
  "module": "std/effects/blurs.ts",
19889
20167
  "summary": "Smears the child along a path: a straight streak, an arc around a point, or a zoom out of a point.",
19890
- "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.",
19891
20169
  "examples": [
19892
- "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')}})"
19893
20172
  ],
19894
20173
  "tips": [
19895
- "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."
19896
20176
  ],
19897
20177
  "see": [
19898
20178
  "effects.blurs.blurPath",
@@ -19911,14 +20191,14 @@
19911
20191
  "documented": true,
19912
20192
  "source": {
19913
20193
  "file": "std/effects/blurs.ts",
19914
- "line": 396
20194
+ "line": 429
19915
20195
  },
19916
20196
  "kind": "function",
19917
- "signature": "motionBlur(opts: {path: BlurPathSpec; amount: ArgSpec}): GatherEffect",
20197
+ "signature": "motionBlur(opts: {path: BlurPathSpec; amount: ArgSpec; detail?: MotionBlurDetailSlots}): GatherEffect",
19918
20198
  "params": [
19919
20199
  {
19920
20200
  "name": "opts",
19921
- "type": "{path: BlurPathSpec; amount: ArgSpec}",
20201
+ "type": "{path: BlurPathSpec; amount: ArgSpec; detail?: MotionBlurDetailSlots}",
19922
20202
  "optional": false
19923
20203
  }
19924
20204
  ]
@@ -19930,7 +20210,7 @@
19930
20210
  "category": "effects.blurs",
19931
20211
  "module": "std/effects/blurs.ts",
19932
20212
  "summary": "Scatters every pixel of the child by a random offset: a grainy diffusion, not a smooth blur.",
19933
- "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)`.",
19934
20214
  "examples": [
19935
20215
  "effect: scatter({amount: p('intensity'), edges: p('edges')})"
19936
20216
  ],
@@ -19949,14 +20229,14 @@
19949
20229
  "documented": true,
19950
20230
  "source": {
19951
20231
  "file": "std/effects/blurs.ts",
19952
- "line": 428
20232
+ "line": 491
19953
20233
  },
19954
20234
  "kind": "function",
19955
- "signature": "scatter(opts: {amount: ArgSpec; edges: PropRef}): GatherEffect",
20235
+ "signature": "scatter(opts: {amount: ArgSpec; edges: PropRef; chromatic?: PropRef}): GatherEffect",
19956
20236
  "params": [
19957
20237
  {
19958
20238
  "name": "opts",
19959
- "type": "{amount: ArgSpec; edges: PropRef}",
20239
+ "type": "{amount: ArgSpec; edges: PropRef; chromatic?: PropRef}",
19960
20240
  "optional": false
19961
20241
  }
19962
20242
  ]
@@ -19989,7 +20269,7 @@
19989
20269
  "documented": true,
19990
20270
  "source": {
19991
20271
  "file": "std/effects/blurs.ts",
19992
- "line": 457
20272
+ "line": 521
19993
20273
  },
19994
20274
  "kind": "function",
19995
20275
  "signature": "sharpen(amount: ArgSpec): GatherEffect",
@@ -20027,7 +20307,7 @@
20027
20307
  "documented": true,
20028
20308
  "source": {
20029
20309
  "file": "std/effects/blurs.ts",
20030
- "line": 485
20310
+ "line": 549
20031
20311
  },
20032
20312
  "kind": "function",
20033
20313
  "signature": "pixelate(opts: {scale: ArgSpec; gap: ArgSpec; roundness: ArgSpec}): GatherEffect",
@@ -20066,7 +20346,7 @@
20066
20346
  "documented": true,
20067
20347
  "source": {
20068
20348
  "file": "std/effects/blurs.ts",
20069
- "line": 516
20349
+ "line": 580
20070
20350
  },
20071
20351
  "kind": "function",
20072
20352
  "signature": "sphereFrame(opts: {center: ArgSpec; radius: ArgSpec; depth: ArgSpec}): GatherFrame",
@@ -20105,7 +20385,7 @@
20105
20385
  "documented": true,
20106
20386
  "source": {
20107
20387
  "file": "std/effects/blurs.ts",
20108
- "line": 539
20388
+ "line": 603
20109
20389
  },
20110
20390
  "kind": "function",
20111
20391
  "signature": "crispTap(frame: GatherFrame): SampleStage",
@@ -20144,7 +20424,7 @@
20144
20424
  "documented": true,
20145
20425
  "source": {
20146
20426
  "file": "std/effects/blurs.ts",
20147
- "line": 562
20427
+ "line": 626
20148
20428
  },
20149
20429
  "kind": "function",
20150
20430
  "signature": "rimLit(frame: GatherFrame, opts: {\n position: ArgSpec\n intensity: ArgSpec\n softness: ArgSpec\n color: PropRef\n}): OverlayStage",
@@ -20189,7 +20469,7 @@
20189
20469
  "documented": true,
20190
20470
  "source": {
20191
20471
  "file": "std/effects/blurs.ts",
20192
- "line": 596
20472
+ "line": 660
20193
20473
  },
20194
20474
  "kind": "function",
20195
20475
  "signature": "glitchFrame(opts: {\n intensity: ArgSpec\n speed: ArgSpec\n blockDensity: ArgSpec\n mirrorAmount: ArgSpec\n}): GatherFrame",
@@ -20228,7 +20508,7 @@
20228
20508
  "documented": true,
20229
20509
  "source": {
20230
20510
  "file": "std/effects/blurs.ts",
20231
- "line": 622
20511
+ "line": 686
20232
20512
  },
20233
20513
  "kind": "function",
20234
20514
  "signature": "glitchRgbSplit(frame: GatherFrame, opts: {shift: ArgSpec}): SampleStage",
@@ -20272,7 +20552,7 @@
20272
20552
  "documented": true,
20273
20553
  "source": {
20274
20554
  "file": "std/effects/blurs.ts",
20275
- "line": 649
20555
+ "line": 713
20276
20556
  },
20277
20557
  "kind": "function",
20278
20558
  "signature": "colorBarFills(frame: GatherFrame, opts: {intensity: ArgSpec}): OverlayStage",
@@ -20315,7 +20595,7 @@
20315
20595
  "documented": true,
20316
20596
  "source": {
20317
20597
  "file": "std/effects/blurs.ts",
20318
- "line": 671
20598
+ "line": 735
20319
20599
  },
20320
20600
  "kind": "function",
20321
20601
  "signature": "distortedScanlines(frame: GatherFrame, opts: {intensity: ArgSpec}): OverlayStage",
@@ -20363,7 +20643,7 @@
20363
20643
  "documented": true,
20364
20644
  "source": {
20365
20645
  "file": "std/effects/blurs.ts",
20366
- "line": 721
20646
+ "line": 785
20367
20647
  },
20368
20648
  "kind": "function",
20369
20649
  "signature": "gaussianBlur(opts: {intensity: PropRef}): ComputeBackedEffect",
@@ -20401,7 +20681,7 @@
20401
20681
  "documented": true,
20402
20682
  "source": {
20403
20683
  "file": "std/effects/blurs.ts",
20404
- "line": 771
20684
+ "line": 835
20405
20685
  },
20406
20686
  "kind": "function",
20407
20687
  "signature": "channelBlur(opts: {red: PropRef; green: PropRef; blue: PropRef}): ComputeBackedEffect",
@@ -20420,7 +20700,7 @@
20420
20700
  "category": "effects.blurs",
20421
20701
  "module": "std/effects/blurs.ts",
20422
20702
  "summary": "A blur that ramps from sharp to full strength in one direction across the child.",
20423
- "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.",
20424
20704
  "examples": [
20425
20705
  "...progressiveBlur({intensity: p('intensity'), angle: p('angle'), center: p('center'), falloff: p('falloff')})"
20426
20706
  ],
@@ -20439,14 +20719,14 @@
20439
20719
  "documented": true,
20440
20720
  "source": {
20441
20721
  "file": "std/effects/blurs.ts",
20442
- "line": 811
20722
+ "line": 904
20443
20723
  },
20444
20724
  "kind": "function",
20445
- "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",
20446
20726
  "params": [
20447
20727
  {
20448
20728
  "name": "opts",
20449
- "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}",
20450
20730
  "optional": false
20451
20731
  }
20452
20732
  ]
@@ -20458,7 +20738,7 @@
20458
20738
  "category": "effects.blurs",
20459
20739
  "module": "std/effects/blurs.ts",
20460
20740
  "summary": "Keeps a band of the child in focus and blurs everything beyond it, like a tilt-shift lens.",
20461
- "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.",
20462
20742
  "examples": [
20463
20743
  "...tiltShift({intensity: p('intensity'), width: p('width'), falloff: p('falloff'), angle: p('angle'), center: p('center')})"
20464
20744
  ],
@@ -20478,14 +20758,14 @@
20478
20758
  "documented": true,
20479
20759
  "source": {
20480
20760
  "file": "std/effects/blurs.ts",
20481
- "line": 885
20761
+ "line": 983
20482
20762
  },
20483
20763
  "kind": "function",
20484
- "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",
20485
20765
  "params": [
20486
20766
  {
20487
20767
  "name": "opts",
20488
- "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}",
20489
20769
  "optional": false
20490
20770
  }
20491
20771
  ]
@@ -20517,7 +20797,7 @@
20517
20797
  "documented": true,
20518
20798
  "source": {
20519
20799
  "file": "std/effects/blurs.ts",
20520
- "line": 967
20800
+ "line": 1069
20521
20801
  },
20522
20802
  "kind": "function",
20523
20803
  "signature": "bloom(opts: {intensity: PropRef; threshold: PropRef; size: PropRef}): ComputeBackedEffect",
@@ -20555,7 +20835,7 @@
20555
20835
  "documented": true,
20556
20836
  "source": {
20557
20837
  "file": "std/effects/blurs.ts",
20558
- "line": 1005
20838
+ "line": 1107
20559
20839
  },
20560
20840
  "kind": "function",
20561
20841
  "signature": "childTap(): SampleStage",
@@ -20587,7 +20867,7 @@
20587
20867
  "documented": true,
20588
20868
  "source": {
20589
20869
  "file": "std/effects/blurs.ts",
20590
- "line": 1023
20870
+ "line": 1125
20591
20871
  },
20592
20872
  "kind": "function",
20593
20873
  "signature": "shadowOffset(opts: {angle: ArgSpec; distance: ArgSpec}): (params: RttFilterParams) => Expr",
@@ -20625,7 +20905,7 @@
20625
20905
  "documented": true,
20626
20906
  "source": {
20627
20907
  "file": "std/effects/blurs.ts",
20628
- "line": 1044
20908
+ "line": 1146
20629
20909
  },
20630
20910
  "kind": "function",
20631
20911
  "signature": "silhouetteCoverage(opts: {at: (params: RttFilterParams) => Expr; blur: ArgSpec}): (params: RttFilterParams) => Expr",
@@ -20664,7 +20944,7 @@
20664
20944
  "documented": true,
20665
20945
  "source": {
20666
20946
  "file": "std/effects/blurs.ts",
20667
- "line": 1069
20947
+ "line": 1171
20668
20948
  },
20669
20949
  "kind": "function",
20670
20950
  "signature": "shadowComposite(opts: {\n coverage: (params: RttFilterParams) => Expr\n color: PropRef\n intensity: ArgSpec\n cutout: PropRef\n}): OverlayStage",
@@ -20703,7 +20983,7 @@
20703
20983
  "documented": true,
20704
20984
  "source": {
20705
20985
  "file": "std/effects/blurs.ts",
20706
- "line": 1115
20986
+ "line": 1217
20707
20987
  },
20708
20988
  "kind": "function",
20709
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",
@@ -20742,7 +21022,7 @@
20742
21022
  "documented": true,
20743
21023
  "source": {
20744
21024
  "file": "std/effects/blurs.ts",
20745
- "line": 1158
21025
+ "line": 1260
20746
21026
  },
20747
21027
  "kind": "function",
20748
21028
  "signature": "refractedTaps(frame: GatherFrame, opts: {aberration: PropRef; edges: PropRef}): SampleStage",
@@ -20786,7 +21066,7 @@
20786
21066
  "documented": true,
20787
21067
  "source": {
20788
21068
  "file": "std/effects/blurs.ts",
20789
- "line": 1188
21069
+ "line": 1290
20790
21070
  },
20791
21071
  "kind": "function",
20792
21072
  "signature": "fluteHighlight(frame: GatherFrame, opts: {\n lightAngle: ArgSpec\n highlight: ArgSpec\n softness: ArgSpec\n color: PropRef\n}): OverlayStage",
@@ -20834,7 +21114,7 @@
20834
21114
  "documented": true,
20835
21115
  "source": {
20836
21116
  "file": "std/effects/blurs.ts",
20837
- "line": 1233
21117
+ "line": 1335
20838
21118
  },
20839
21119
  "kind": "function",
20840
21120
  "signature": "peelFrame(opts: {corner: PropRef; amount: ArgSpec; radius: ArgSpec}): GatherFrame",
@@ -20873,7 +21153,7 @@
20873
21153
  "documented": true,
20874
21154
  "source": {
20875
21155
  "file": "std/effects/blurs.ts",
20876
- "line": 1256
21156
+ "line": 1358
20877
21157
  },
20878
21158
  "kind": "function",
20879
21159
  "signature": "curlShading(frame: GatherFrame, opts: {shading: ArgSpec}): PeelShade",
@@ -20917,7 +21197,7 @@
20917
21197
  "documented": true,
20918
21198
  "source": {
20919
21199
  "file": "std/effects/blurs.ts",
20920
- "line": 1272
21200
+ "line": 1374
20921
21201
  },
20922
21202
  "kind": "function",
20923
21203
  "signature": "curlSheen(frame: GatherFrame, opts: {highlight: ArgSpec; softness: ArgSpec}): PeelShade",
@@ -20961,7 +21241,7 @@
20961
21241
  "documented": true,
20962
21242
  "source": {
20963
21243
  "file": "std/effects/blurs.ts",
20964
- "line": 1290
21244
+ "line": 1392
20965
21245
  },
20966
21246
  "kind": "function",
20967
21247
  "signature": "overhangShadow(frame: GatherFrame, opts: {amount: ArgSpec; shadow: ArgSpec}): PeelShade",
@@ -21005,7 +21285,7 @@
21005
21285
  "documented": true,
21006
21286
  "source": {
21007
21287
  "file": "std/effects/blurs.ts",
21008
- "line": 1311
21288
+ "line": 1413
21009
21289
  },
21010
21290
  "kind": "function",
21011
21291
  "signature": "revealShadow(frame: GatherFrame, opts: {amount: ArgSpec; shadow: ArgSpec}): PeelShade",
@@ -21051,7 +21331,7 @@
21051
21331
  "documented": true,
21052
21332
  "source": {
21053
21333
  "file": "std/effects/blurs.ts",
21054
- "line": 1335
21334
+ "line": 1437
21055
21335
  },
21056
21336
  "kind": "function",
21057
21337
  "signature": "peelCompose(frame: GatherFrame, parts: {\n shade: PeelShade\n sheen: PeelShade\n overhang: PeelShade\n reveal: PeelShade\n}): SampleStage",
@@ -21094,7 +21374,7 @@
21094
21374
  "documented": true,
21095
21375
  "source": {
21096
21376
  "file": "std/effects/blurs.ts",
21097
- "line": 1443
21377
+ "line": 1545
21098
21378
  },
21099
21379
  "kind": "function",
21100
21380
  "signature": "mirrorAcrossRow(line: PropRef): (params: GpuFragmentParams) => Expr",
@@ -21133,7 +21413,7 @@
21133
21413
  "documented": true,
21134
21414
  "source": {
21135
21415
  "file": "std/effects/blurs.ts",
21136
- "line": 1465
21416
+ "line": 1567
21137
21417
  },
21138
21418
  "kind": "function",
21139
21419
  "signature": "depthRampBlur(opts: {line: PropRef; blur: PropRef; blurDistance: PropRef; halfKernel: number}): {compute: GpuComputeNode}",
@@ -21171,7 +21451,7 @@
21171
21451
  "documented": true,
21172
21452
  "source": {
21173
21453
  "file": "std/effects/blurs.ts",
21174
- "line": 1496
21454
+ "line": 1598
21175
21455
  },
21176
21456
  "kind": "function",
21177
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",
@@ -21226,7 +21506,7 @@
21226
21506
  "documented": true,
21227
21507
  "source": {
21228
21508
  "file": "std/effects/blurs.ts",
21229
- "line": 1555
21509
+ "line": 1657
21230
21510
  },
21231
21511
  "kind": "function",
21232
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}",
@@ -21265,7 +21545,7 @@
21265
21545
  "documented": true,
21266
21546
  "source": {
21267
21547
  "file": "std/effects/blurs.ts",
21268
- "line": 1626
21548
+ "line": 1728
21269
21549
  },
21270
21550
  "kind": "function",
21271
21551
  "signature": "frameSway(slots: {amount: PropRef; field: string}): (params: GpuFragmentParams) => Expr",
@@ -21284,7 +21564,7 @@
21284
21564
  "category": "effects.blurs",
21285
21565
  "module": "std/effects/blurs.ts",
21286
21566
  "summary": "A photographic lens blur where bright highlights bloom into aperture-shaped discs.",
21287
- "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`.",
21288
21568
  "examples": [
21289
21569
  "...bokehDefocus({radius: p('radius'), gain: p('highlightGain'), threshold: p('highlightThreshold'), shape: p('bladeShape'), blades: p('bladeCount'), rotation: p('bladeRotation'), fringe: p('chromaticFringe')})"
21290
21570
  ],
@@ -21304,14 +21584,14 @@
21304
21584
  "documented": true,
21305
21585
  "source": {
21306
21586
  "file": "std/effects/blurs.ts",
21307
- "line": 1690
21587
+ "line": 1793
21308
21588
  },
21309
21589
  "kind": "function",
21310
- "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}}",
21311
21591
  "params": [
21312
21592
  {
21313
21593
  "name": "opts",
21314
- "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}",
21315
21595
  "optional": false
21316
21596
  }
21317
21597
  ]
@@ -27593,7 +27873,7 @@
27593
27873
  "description": "`x`, `y` and `t` are the wave's frequency along that axis: larger is tighter, and `t` is its drift speed along the layer's clock. Leave an axis out to ignore it. A negative value runs the wave the other way. `phase` shifts the wave, in radians.",
27594
27874
  "source": {
27595
27875
  "file": "std/paint/noise.ts",
27596
- "line": 39
27876
+ "line": 41
27597
27877
  }
27598
27878
  },
27599
27879
  "noise.WaveTerm": {
@@ -27607,7 +27887,35 @@
27607
27887
  "description": "Multiplying an x-wave by a y-wave gives an interference pattern instead of stripes. `weight` scales the term, default 1.",
27608
27888
  "source": {
27609
27889
  "file": "std/paint/noise.ts",
27610
- "line": 55
27890
+ "line": 57
27891
+ }
27892
+ },
27893
+ "noise.Fold": {
27894
+ "id": "noise.Fold",
27895
+ "name": "Fold",
27896
+ "category": "noise",
27897
+ "module": "std/paint/noise.ts",
27898
+ "kind": "interface",
27899
+ "text": "interface Fold {\n offset: Expr\n width: Expr\n height: Expr\n phase: Expr\n}",
27900
+ "summary": "One ridge of a draped cloth as `foldSet` lays it out: where it rests across the drape, how wide and how high it is, and the phase that keeps its ripple out of step with its neighbours.",
27901
+ "description": "",
27902
+ "source": {
27903
+ "file": "std/paint/noise.ts",
27904
+ "line": 199
27905
+ }
27906
+ },
27907
+ "noise.DrapeOptions": {
27908
+ "id": "noise.DrapeOptions",
27909
+ "name": "DrapeOptions",
27910
+ "category": "noise",
27911
+ "module": "std/paint/noise.ts",
27912
+ "kind": "interface",
27913
+ "text": "interface DrapeOptions {\n time: Expr | number\n /** A `wavyLine` wave list each spine wanders by (every fold starts at its own phase), and a gain on it. */\n ripple: {waves: {freq: number; speed: number; amount: number}[]; gain?: Expr | number}\n /** Moves all the folds together on the clock, like a breeze. */\n sway?: {amount: Expr | number; rate?: number}\n /** Each ridge rises and falls along its length so neighbours merge and part. */\n swell?: {amount: number; freq: number; speed?: number}\n /** 0–1: gathers the folds at the pinned edge. */\n pinning?: Expr | number\n /** How tightly a ridge falls away (default 2). */\n sharpness?: number\n /** 0–1 (default 0): flattens the crest into a plateau meeting the next fold in a tight valley. */\n crease?: number\n}",
27914
+ "summary": "The knobs that shape and animate a draped cloth, shared by `drapedFolds` and `clothCoords`.",
27915
+ "description": "",
27916
+ "source": {
27917
+ "file": "std/paint/noise.ts",
27918
+ "line": 321
27611
27919
  }
27612
27920
  },
27613
27921
  "noise.RgbStage": {
@@ -27621,7 +27929,7 @@
27621
27929
  "description": "Alpha is not touched.",
27622
27930
  "source": {
27623
27931
  "file": "std/paint/noise.ts",
27624
- "line": 732
27932
+ "line": 937
27625
27933
  }
27626
27934
  },
27627
27935
  "noise.ReliefBasis": {
@@ -27635,7 +27943,7 @@
27635
27943
  "description": "Pick one from `reliefBases`.",
27636
27944
  "source": {
27637
27945
  "file": "std/paint/noise.ts",
27638
- "line": 859
27946
+ "line": 1064
27639
27947
  }
27640
27948
  },
27641
27949
  "light.LightValue": {
@@ -28016,6 +28324,20 @@
28016
28324
  "line": 337
28017
28325
  }
28018
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
+ },
28019
28341
  "effects.blurs.ComputeBackedEffect": {
28020
28342
  "id": "effects.blurs.ComputeBackedEffect",
28021
28343
  "name": "ComputeBackedEffect",
@@ -28027,7 +28349,21 @@
28027
28349
  "description": "Spread the whole object into a definition that declares `species: 'custom'`, `requiresRTT: true` and `requiresChild: true`.",
28028
28350
  "source": {
28029
28351
  "file": "std/effects/blurs.ts",
28030
- "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
28031
28367
  }
28032
28368
  },
28033
28369
  "effects.blurs.PeelShade": {
@@ -28041,7 +28377,7 @@
28041
28377
  "description": "`curlShading`, `curlSheen`, `overhangShadow` and `revealShadow` each make one; `peelCompose` takes all four.",
28042
28378
  "source": {
28043
28379
  "file": "std/effects/blurs.ts",
28044
- "line": 1212
28380
+ "line": 1314
28045
28381
  }
28046
28382
  },
28047
28383
  "effects.stylize.GatherStage": {
@@ -29124,8 +29460,8 @@
29124
29460
  }
29125
29461
  },
29126
29462
  "coverage": {
29127
- "words": 570,
29128
- "documented": 570,
29463
+ "words": 575,
29464
+ "documented": 575,
29129
29465
  "undocumented": [],
29130
29466
  "curatedCategories": [
29131
29467
  "compose",