shaders 4.0.2 → 4.0.3

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 (468) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/{AngularBlur-BEBs-lRR.js → AngularBlur-CadOY7zB.js} +1 -1
  3. package/dist/core/{Arc-D-WnjM7T.js → Arc-B5grj-p3.js} +1 -1
  4. package/dist/core/{Ascii-BGPIwMc3.js → Ascii-Chul_q9B.js} +1 -1
  5. package/dist/core/{Aurora-DqJBPdMQ.js → Aurora-COjCTZzM.js} +1 -1
  6. package/dist/core/{BarShift-BcCOweUh.js → BarShift-CmMkOiz1.js} +1 -1
  7. package/dist/core/{BarnDoors-B9B-AmCV.js → BarnDoors-B_Tfvd5_.js} +1 -1
  8. package/dist/core/{Beam-QG_9OS8I.js → Beam-DqUZIoO-.js} +1 -1
  9. package/dist/core/{Bend-Cy9VAowL.js → Bend-CzoMkg0C.js} +1 -1
  10. package/dist/core/{Blob-C3txJeW0.js → Blob-D-FcfCk_.js} +1 -1
  11. package/dist/core/{BlockDissolve-C1SFUys7.js → BlockDissolve-Cfg38mph.js} +1 -1
  12. package/dist/core/{BlockNoise-Cm3y8hce.js → BlockNoise-AOm3USwt.js} +2 -2
  13. package/dist/core/{BlueNoise-BCLObOMm.js → BlueNoise-B1goUO9x.js} +2 -2
  14. package/dist/core/{Blur-Dg29SnXd.js → Blur-orV6Zo0Q.js} +1 -1
  15. package/dist/core/{Boids-rsGsPN5h.js → Boids-CaGoO9l6.js} +1 -1
  16. package/dist/core/{BokehBlur-rFSFEnb0.js → BokehBlur-Bak9qlJC.js} +1 -1
  17. package/dist/core/{BrickPattern-DqN6JKEN.js → BrickPattern-57nSncIU.js} +1 -1
  18. package/dist/core/{BrightnessContrast-J9fCSBiC.js → BrightnessContrast-CT-FMH50.js} +1 -1
  19. package/dist/core/{BrushedMetal-74wSZKjG.js → BrushedMetal-CsOf111o.js} +1 -1
  20. package/dist/core/{Bulge-BIk0oq8j.js → Bulge-BENQmcJz.js} +1 -1
  21. package/dist/core/{CRTScreen-hEH-JNRd.js → CRTScreen-DRg0NNys.js} +1 -1
  22. package/dist/core/{CarbonFiber-CZdUDvRU.js → CarbonFiber-CP8sfZpO.js} +1 -1
  23. package/dist/core/{Chalkboard-CClJHqvs.js → Chalkboard-DIKb88fc.js} +1 -1
  24. package/dist/core/{ChannelBlur-BEuEwQOC.js → ChannelBlur-hR8wijV7.js} +1 -1
  25. package/dist/core/{CheckerWipe-KuAWj2qg.js → CheckerWipe-BiWuSCaB.js} +1 -1
  26. package/dist/core/{Checkerboard-Rq9ze1W3.js → Checkerboard-CI7mErmL.js} +1 -1
  27. package/dist/core/{Chevron-C1j6X2Ye.js → Chevron-B8Vhf4mu.js} +1 -1
  28. package/dist/core/{ChromaFlow-BgsCUYIl.js → ChromaFlow-BA40CkCT.js} +1 -1
  29. package/dist/core/{ChromaticAberration-2_4tjQ0u.js → ChromaticAberration-Co8JMSWY.js} +1 -1
  30. package/dist/core/{Chrome-Be3z6C5i.js → Chrome-1t9oTBIF.js} +1 -1
  31. package/dist/core/{Circle-e_qQI3tU.js → Circle-BQq87Fzk.js} +1 -1
  32. package/dist/core/{ColorWheel-s5ep1H7d.js → ColorWheel-X5JCwd6p.js} +1 -1
  33. package/dist/core/{CompressionArtifacts-OE9U9Qrq.js → CompressionArtifacts-CfZMsMVi.js} +1 -1
  34. package/dist/core/{ConcentricSpin-CLE_5yCJ.js → ConcentricSpin-D8srFQgv.js} +1 -1
  35. package/dist/core/{ConicGradient-Cji2SgVO.js → ConicGradient-zgpOve2I.js} +1 -1
  36. package/dist/core/{ContourLines-wpPK00cF.js → ContourLines-CIPNR5U6.js} +1 -1
  37. package/dist/core/{CornerPin-gYU0Uf2m.js → CornerPin-DDatnonj.js} +1 -1
  38. package/dist/core/{Crescent-viNc7Unp.js → Crescent-2VNndYEF.js} +1 -1
  39. package/dist/core/{Cross-DyQSsw_k.js → Cross--RtTa2r5.js} +1 -1
  40. package/dist/core/{Crystal-Vjj8azWg.js → Crystal-RuFWVxDw.js} +1 -1
  41. package/dist/core/{CurlNoise-C7PHjDht.js → CurlNoise-Dz7E3WIq.js} +2 -2
  42. package/dist/core/{CursorRipples-BzPPNkA3.js → CursorRipples-DWwT4wnN.js} +1 -1
  43. package/dist/core/{CursorTrail-cBj0AuQA.js → CursorTrail-DtEejGeY.js} +1 -1
  44. package/dist/core/{DataMosh-5Yr9TyVx.js → DataMosh-DHklBXQy.js} +1 -1
  45. package/dist/core/{DiamondGradient-DZM7HwF5.js → DiamondGradient-j3Af00XM.js} +1 -1
  46. package/dist/core/{DiamondWipe-CqeT7lCt.js → DiamondWipe-BwzZIEYX.js} +1 -1
  47. package/dist/core/{DiffuseBlur-Y5hSDTZF.js → DiffuseBlur-CztumKI8.js} +1 -1
  48. package/dist/core/{DisplacementMap-FobRx5Ie.js → DisplacementMap-_R0XWmDv.js} +1 -1
  49. package/dist/core/{Dither-50rqHpt9.js → Dither-BMtSn0ET.js} +1 -1
  50. package/dist/core/{DotGrid-B6AGLUbR.js → DotGrid-5pz59elN.js} +1 -1
  51. package/dist/core/{DropShadow-CEPpgatB.js → DropShadow-Afbu-AM5.js} +1 -1
  52. package/dist/core/{Duotone-D76Kp7Pb.js → Duotone-CPNAyquB.js} +1 -1
  53. package/dist/core/{Ellipse-BGod1LeG.js → Ellipse-CIdAfmRX.js} +1 -1
  54. package/dist/core/{Emboss-DMNFb_ww.js → Emboss-B0ZaXWSG.js} +1 -1
  55. package/dist/core/{Engraving-Dj7bCATQ.js → Engraving-C6DmtOdA.js} +1 -1
  56. package/dist/core/{ErosionNoise-4O68wJQZ.js → ErosionNoise-3QrqYZy6.js} +2 -2
  57. package/dist/core/{Exposure-h-vapOpj.js → Exposure-CQ6luJ-4.js} +1 -1
  58. package/dist/core/{FallingLines-Dzop_89k.js → FallingLines-y-XE0joI.js} +1 -1
  59. package/dist/core/{FilmGrain-Bs8PCfdf.js → FilmGrain-Bxz_2Za0.js} +1 -1
  60. package/dist/core/{FilmStock-DBjVo6rL.js → FilmStock-BsPw-b6W.js} +1 -1
  61. package/dist/core/{Flip-CfrS4KfZ.js → Flip-CML4rm2V.js} +1 -1
  62. package/dist/core/{FloatingParticles-D1R2tD2J.js → FloatingParticles-CDQaOt3i.js} +1 -1
  63. package/dist/core/{FlowField-Slirm5AI.js → FlowField-CEhUrnv4.js} +1 -1
  64. package/dist/core/{Flower-Ddlut7QZ.js → Flower-Bp75dXJa.js} +1 -1
  65. package/dist/core/{FlowingGradient-CwIgTtbj.js → FlowingGradient-CGBB_tvE.js} +1 -1
  66. package/dist/core/{FlutedGlass-CMMy2GJ5.js → FlutedGlass-CkwFDUxi.js} +1 -1
  67. package/dist/core/{Fog-DjjUkcTZ.js → Fog-Dhy6FKme.js} +1 -1
  68. package/dist/core/{Form3D-DQDOHWpC.js → Form3D-CFaxdFCN.js} +1 -1
  69. package/dist/core/{FractalNoise-BjI3IOIj.js → FractalNoise-DMLBHVU1.js} +1 -1
  70. package/dist/core/{Frost-CK12HnL1.js → Frost-CvCAXumf.js} +1 -1
  71. package/dist/core/{GaborNoise-DKEIvvRJ.js → GaborNoise-pBwEWsvq.js} +2 -2
  72. package/dist/core/{Glass-CzcOVD5Y.js → Glass--gVUc74k.js} +1 -1
  73. package/dist/core/{GlassTiles-gjhc563g.js → GlassTiles-C7iGBDOu.js} +1 -1
  74. package/dist/core/{Glitch-C_XAWltC.js → Glitch-DdIqzf1U.js} +1 -1
  75. package/dist/core/{Glow-CrYCanBI.js → Glow-Be0YEdsy.js} +1 -1
  76. package/dist/core/{Godrays-BBTMOVLP.js → Godrays-BkR81S_6.js} +1 -1
  77. package/dist/core/{Goo-Brhjk8aS.js → Goo-BuQBpLC1.js} +1 -1
  78. package/dist/core/{GradientMap-C5325QWw.js → GradientMap-BhzXbIUo.js} +1 -1
  79. package/dist/core/{Grayscale-dPjs-wvf.js → Grayscale-CgPfjxpC.js} +1 -1
  80. package/dist/core/{Grid-UjEd3O76.js → Grid-Bf4drnEK.js} +1 -1
  81. package/dist/core/{GridDistortion-vVgYya1U.js → GridDistortion-OKWF9BkP.js} +1 -1
  82. package/dist/core/{Group-KVdmAi5g.js → Group-CmvLWhtc.js} +1 -1
  83. package/dist/core/{HTMLInCanvas-CKr2u76R.js → HTMLInCanvas-t9ohcHFo.js} +1 -1
  84. package/dist/core/{Halftone-pRV3TRUW.js → Halftone-CL2X2QB3.js} +1 -1
  85. package/dist/core/{Heart-CX7MvvHZ.js → Heart-B0VJdilk.js} +1 -1
  86. package/dist/core/{Heatmap-Dn6qyd2e.js → Heatmap-CmoQKw_9.js} +1 -1
  87. package/dist/core/{HexGrid-BIfYhkfV.js → HexGrid-qzOUXxGp.js} +1 -1
  88. package/dist/core/{Hologram-ou27baPQ.js → Hologram-DoxZwBsb.js} +1 -1
  89. package/dist/core/{Holographic-CiHdBSMg.js → Holographic-DOx95C7o.js} +1 -1
  90. package/dist/core/{HueShift-CG7pcXfg.js → HueShift-DJsP1low.js} +1 -1
  91. package/dist/core/{ImageTexture-BiZuU58C.js → ImageTexture-GyknRQS4.js} +1 -1
  92. package/dist/core/{InkFlow-D9_L7opB.js → InkFlow-zlXRbwHy.js} +1 -1
  93. package/dist/core/{Invert-CHEaiQZO.js → Invert-3ZoLoQJH.js} +1 -1
  94. package/dist/core/{IrisWipe-x22vOQHm.js → IrisWipe-BuX7mBHl.js} +1 -1
  95. package/dist/core/{Irradiance-7yq2K87_.js → Irradiance-DAx-vIdy.js} +1 -1
  96. package/dist/core/{IsometricCubes-CkPGWr7M.js → IsometricCubes-7sbQ2VJA.js} +1 -1
  97. package/dist/core/{Kaleidoscope-CEC5m1Ww.js → Kaleidoscope-CsLdv8Az.js} +1 -1
  98. package/dist/core/{KeyFrames-BMGEZsAZ.js → KeyFrames-BzO618Dz.js} +1 -1
  99. package/dist/core/{LensDistortion-DKo8PiO5.js → LensDistortion-BLR3_sbS.js} +1 -1
  100. package/dist/core/{LensFlare-DMS-NUtK.js → LensFlare-DTM_QH_n.js} +1 -1
  101. package/dist/core/{LightEdge-DxmnCRls.js → LightEdge-D9XK4MVu.js} +1 -1
  102. package/dist/core/{LightLeak-yoEsZtYg.js → LightLeak-Cle2_fM9.js} +1 -1
  103. package/dist/core/{Line-D17XDUjO.js → Line-DHya7Oc3.js} +1 -1
  104. package/dist/core/{LinearBlur-CiyjPTUH.js → LinearBlur-DgJP8TuW.js} +1 -1
  105. package/dist/core/{LinearGradient-DfjKG70q.js → LinearGradient-DQmjBptA.js} +1 -1
  106. package/dist/core/{LinearWipe-D9CtBg6S.js → LinearWipe-CQlYqf9e.js} +1 -1
  107. package/dist/core/{LiquidMetal-8EG6DwV6.js → LiquidMetal-BYDcC5TU.js} +1 -1
  108. package/dist/core/{Liquify-BySXF1OB.js → Liquify-zEXo6xUV.js} +1 -1
  109. package/dist/core/{MagneticFilings-DNESH3Zs.js → MagneticFilings-D7kyi6PI.js} +1 -1
  110. package/dist/core/{Marble-C9WvdxrP.js → Marble-DMBDSQC1.js} +1 -1
  111. package/dist/core/{MeshGradient-d9--RXOU.js → MeshGradient-ByUJxHX0.js} +1 -1
  112. package/dist/core/{Mirror-1V2FF2kD.js → Mirror-Bjfbugbi.js} +1 -1
  113. package/dist/core/{MultiPointGradient-cRA9ytgL.js → MultiPointGradient-BJMQ5JbT.js} +1 -1
  114. package/dist/core/{Nebula-BRV-q74y.js → Nebula-c7wMpb9v.js} +1 -1
  115. package/dist/core/{Neon-4PemK9Rj.js → Neon-xm7nkRIp.js} +1 -1
  116. package/dist/core/{NoiseDissolve-B7LgD46G.js → NoiseDissolve-DTSS-5J7.js} +1 -1
  117. package/dist/core/{ObjectTracker-CdzDxhpy.js → ObjectTracker-CeiMs5_g.js} +1 -1
  118. package/dist/core/{Obsidian-2J1eX9kT.js → Obsidian-CEzCs0lZ.js} +1 -1
  119. package/dist/core/{PagePeel-D-ziraOm.js → PagePeel-D8-jVFVt.js} +1 -1
  120. package/dist/core/{Paper-BxzCLyzB.js → Paper-o3JcSJga.js} +1 -1
  121. package/dist/core/{Parallelogram-D4OflTwn.js → Parallelogram-DZdZTiv_.js} +1 -1
  122. package/dist/core/{ParticleField-tWNicEDO.js → ParticleField-mb50mtLl.js} +1 -1
  123. package/dist/core/{ParticleFlow-BiEYFyWR.js → ParticleFlow-NxmRBFxq.js} +1 -1
  124. package/dist/core/{Particles-B7W4yWgo.js → Particles-ynCeKlnk.js} +1 -1
  125. package/dist/core/{PerlinNoise-C-irUxp9.js → PerlinNoise-B43AbgNy.js} +2 -2
  126. package/dist/core/{Perspective-DlnAW-pe.js → Perspective-Bdr4mrFK.js} +1 -1
  127. package/dist/core/{PixelSort-BBOTYuOE.js → PixelSort-y1sMZn8T.js} +1 -1
  128. package/dist/core/{PixelThrow-DCJb9Lxd.js → PixelThrow-MoKF4eJQ.js} +1 -1
  129. package/dist/core/{Pixelate-CZdwB--K.js → Pixelate-Dt3Dvyye.js} +1 -1
  130. package/dist/core/{Plasma-CTOQJeqy.js → Plasma-BHPsAkrx.js} +1 -1
  131. package/dist/core/{Plastic-DvyH9x-4.js → Plastic-8Al38_Uo.js} +1 -1
  132. package/dist/core/{PolarCoordinates-XhdDAOD0.js → PolarCoordinates-BuiRt8Ae.js} +1 -1
  133. package/dist/core/{Polygon-CLohB-Ly.js → Polygon-CElChfL_.js} +1 -1
  134. package/dist/core/{Posterize-BAQfnvmK.js → Posterize-CkX1ySem.js} +1 -1
  135. package/dist/core/{Prism-DJVCVAXX.js → Prism-B_8r_ACa.js} +1 -1
  136. package/dist/core/{ProgressiveBlur-Dirva1on.js → ProgressiveBlur-BY9XCK4l.js} +1 -1
  137. package/dist/core/{RadialGradient-DuSKR8Ds.js → RadialGradient-D4ELylxQ.js} +1 -1
  138. package/dist/core/{RadialWipe-n8tON7x2.js → RadialWipe-DNvkJb42.js} +1 -1
  139. package/dist/core/{RandomBars-BYouiIgQ.js → RandomBars-5D9oIVCD.js} +1 -1
  140. package/dist/core/{ReactionDiffusion-CHDd3y2q.js → ReactionDiffusion-BGmksqeC.js} +1 -1
  141. package/dist/core/{RectangularCoordinates-CYFfCawa.js → RectangularCoordinates-0l5t-2No.js} +1 -1
  142. package/dist/core/{ReflectivePlane-DFTl5U9q.js → ReflectivePlane-BqefdbHK.js} +1 -1
  143. package/dist/core/{Repeater-CnbzXuAe.js → Repeater-CJj0PHTv.js} +1 -1
  144. package/dist/core/{Ring-CGkHVSVd.js → Ring-Czf6zylA.js} +1 -1
  145. package/dist/core/{RippleWipe-DLjPzY6u.js → RippleWipe-gk_KAy9N.js} +1 -1
  146. package/dist/core/{Ripples-C2tITU62.js → Ripples-DSmJplDh.js} +1 -1
  147. package/dist/core/{RoundedRect-sfNTUaCY.js → RoundedRect-DCFq3bhP.js} +1 -1
  148. package/dist/core/Satin-BEbTbcTD.js +372 -0
  149. package/dist/core/{Saturation-BRkifYWj.js → Saturation-D0hjM6vJ.js} +1 -1
  150. package/dist/core/{Scratches-D87O5C2K.js → Scratches-CBbSvaL9.js} +2 -2
  151. package/dist/core/{Sharpness-BGv613Zw.js → Sharpness-CxNkUCd4.js} +1 -1
  152. package/dist/core/{Shatter-DuyCFU1f.js → Shatter-OGsXkOO8.js} +1 -1
  153. package/dist/core/{SimplexNoise-CQJvmqd-.js → SimplexNoise-EZ9qyUZl.js} +2 -2
  154. package/dist/core/{SineWave-BfOgSGMP.js → SineWave-jv-D2nek.js} +1 -1
  155. package/dist/core/{SliceWipe-CD_D99sl.js → SliceWipe-CyQ8KwJe.js} +1 -1
  156. package/dist/core/{Smoke-BDQYKRP1.js → Smoke-D5t3guA6.js} +1 -1
  157. package/dist/core/{SmokeFill-CPnzQtQv.js → SmokeFill-DDqH7q9k.js} +1 -1
  158. package/dist/core/{SmokeFlow-BkPMjZq8.js → SmokeFlow-dqFWC3nR.js} +1 -1
  159. package/dist/core/{Solarize-DSiS32QS.js → Solarize-DQKm8tad.js} +1 -1
  160. package/dist/core/{SolidColor-DEKpgy1c.js → SolidColor-AuMQ8wsV.js} +1 -1
  161. package/dist/core/{Sparkle-BZur6gPW.js → Sparkle-DB3i_Vm0.js} +1 -1
  162. package/dist/core/{Spherize-D9Yg4n6O.js → Spherize-BvO_quYf.js} +1 -1
  163. package/dist/core/{Spiral-BCacfEpT.js → Spiral-A7K8dyqa.js} +1 -1
  164. package/dist/core/{Star-Dnw1ihk7.js → Star-Bhjof1Aq.js} +1 -1
  165. package/dist/core/{Stone-Cje-_vAg.js → Stone-BqVeG7vJ.js} +1 -1
  166. package/dist/core/{Strands-CFRxS1G_.js → Strands-B_yNFviv.js} +1 -1
  167. package/dist/core/{Stretch-DXVhfIqO.js → Stretch-CoJ0ZxXU.js} +1 -1
  168. package/dist/core/{Stripes-CCADWwyq.js → Stripes-DnVSZwzX.js} +1 -1
  169. package/dist/core/{StudioBackground-BlzYNAsu.js → StudioBackground-WLPZVlBE.js} +1 -1
  170. package/dist/core/{SunBurst-CmWbI18r.js → SunBurst-V0H9L8IC.js} +1 -1
  171. package/dist/core/{Surface3D-Dmh98-0V.js → Surface3D-CYrJo3xx.js} +1 -1
  172. package/dist/core/{Swirl-CzI1qSVc.js → Swirl-C5du-FPv.js} +1 -1
  173. package/dist/core/{Teardrop-D24uulL0.js → Teardrop-BmMSpSnv.js} +1 -1
  174. package/dist/core/{Text-CrZKvBw6.js → Text-BI5tmkPX.js} +1 -1
  175. package/dist/core/{ThinFilm-D7R2dt1O.js → ThinFilm-Ce-bUUyq.js} +1 -1
  176. package/dist/core/{TiltShift-AMMDZBvf.js → TiltShift-DnjqzNPb.js} +1 -1
  177. package/dist/core/{TimeTrail-BCYDP2ep.js → TimeTrail-CZBKfdhv.js} +1 -1
  178. package/dist/core/{Tint-DHb5wBN5.js → Tint-CiaVTPnf.js} +1 -1
  179. package/dist/core/{Trapezoid-CL5Fxvq7.js → Trapezoid-C5uh_TK4.js} +1 -1
  180. package/dist/core/{TriangularGrid-Bp-SJS-H.js → TriangularGrid-B1E1yy5Y.js} +1 -1
  181. package/dist/core/{Tritone-C0nx7OdC.js → Tritone-VDEMnDwQ.js} +1 -1
  182. package/dist/core/{Truchet-DCetyDaq.js → Truchet-Bl6ASWtj.js} +1 -1
  183. package/dist/core/{Twirl-D_mv9KEi.js → Twirl-BzLRq2-1.js} +1 -1
  184. package/dist/core/{VHS-Cp9aDjti.js → VHS-BjOXkojN.js} +1 -1
  185. package/dist/core/{VenetianBlinds-DUyvaT5w.js → VenetianBlinds-D6S_TOHF.js} +1 -1
  186. package/dist/core/{Vesica-BpzrTPTA.js → Vesica-Br6UVZt3.js} +1 -1
  187. package/dist/core/{Vibrance-DW3J-pvW.js → Vibrance-D5x8kNPO.js} +1 -1
  188. package/dist/core/{VideoTexture-zoKsSrex.js → VideoTexture-CJIi00YZ.js} +1 -1
  189. package/dist/core/{Vignette-KKbP3qdZ.js → Vignette-BgPDqyZY.js} +1 -1
  190. package/dist/core/{Voronoi-Bp2-U6lm.js → Voronoi-C_0qmF5M.js} +1 -1
  191. package/dist/core/{Voxels-B3e3LHH5.js → Voxels-Cr2nX-J2.js} +1 -1
  192. package/dist/core/{Water-CoYwvqKx.js → Water-C1hpWaDG.js} +1 -1
  193. package/dist/core/{Watercolor-DUNjSIN1.js → Watercolor-DcHvJiR0.js} +1 -1
  194. package/dist/core/{WaveDistortion-Dp8ws0z1.js → WaveDistortion-Dh79dGBr.js} +1 -1
  195. package/dist/core/{Waveform-DDBLB6zu.js → Waveform-WaNoseGL.js} +1 -1
  196. package/dist/core/{WaveletNoise-CpBkzfRT.js → WaveletNoise-B7BbHyRe.js} +2 -2
  197. package/dist/core/{Weave-cWkvSEAy.js → Weave-ltmDeQ91.js} +1 -1
  198. package/dist/core/{WebcamTexture-D484SXSE.js → WebcamTexture-CxehSVcP.js} +1 -1
  199. package/dist/core/{Wool-C9L7O9fD.js → Wool-BGpl5MnC.js} +1 -1
  200. package/dist/core/{WorleyNoise-B5j5lDQZ.js → WorleyNoise-COzM7yGf.js} +1 -1
  201. package/dist/core/{ZoomBlur-bPC1dBu2.js → ZoomBlur-jsmAeX03.js} +1 -1
  202. package/dist/core/docs-manifest.json +373 -75
  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/index.js +211 -209
  207. package/dist/core/llms.txt +21 -3
  208. package/dist/core/{noiseColor-D_bPhJ4m.js → noiseColor-oUufQir9.js} +1 -1
  209. package/dist/core/presetRenderer.d.ts.map +1 -1
  210. package/dist/core/registry.js +203 -202
  211. package/dist/core/shaderRegistry-jxUBiD5N.js +447 -0
  212. package/dist/core/shaderRegistry.d.ts.map +1 -1
  213. package/dist/core/shaders/AngularBlur/index.js +2 -2
  214. package/dist/core/shaders/Arc/index.js +2 -2
  215. package/dist/core/shaders/Ascii/index.js +2 -2
  216. package/dist/core/shaders/Aurora/index.js +2 -2
  217. package/dist/core/shaders/BarShift/index.js +2 -2
  218. package/dist/core/shaders/BarnDoors/index.js +2 -2
  219. package/dist/core/shaders/Beam/index.js +2 -2
  220. package/dist/core/shaders/Bend/index.js +2 -2
  221. package/dist/core/shaders/Blob/index.js +2 -2
  222. package/dist/core/shaders/BlockDissolve/index.js +2 -2
  223. package/dist/core/shaders/BlockNoise/index.js +3 -3
  224. package/dist/core/shaders/BlueNoise/index.js +3 -3
  225. package/dist/core/shaders/Blur/index.js +2 -2
  226. package/dist/core/shaders/Boids/index.js +2 -2
  227. package/dist/core/shaders/BokehBlur/index.js +2 -2
  228. package/dist/core/shaders/BrickPattern/index.js +2 -2
  229. package/dist/core/shaders/BrightnessContrast/index.js +2 -2
  230. package/dist/core/shaders/BrushedMetal/index.js +2 -2
  231. package/dist/core/shaders/Bulge/index.js +2 -2
  232. package/dist/core/shaders/CRTScreen/index.js +2 -2
  233. package/dist/core/shaders/CarbonFiber/index.js +2 -2
  234. package/dist/core/shaders/Chalkboard/index.js +2 -2
  235. package/dist/core/shaders/ChannelBlur/index.js +2 -2
  236. package/dist/core/shaders/CheckerWipe/index.js +2 -2
  237. package/dist/core/shaders/Checkerboard/index.js +2 -2
  238. package/dist/core/shaders/Chevron/index.js +2 -2
  239. package/dist/core/shaders/ChromaFlow/index.js +2 -2
  240. package/dist/core/shaders/ChromaticAberration/index.js +2 -2
  241. package/dist/core/shaders/Chrome/index.js +2 -2
  242. package/dist/core/shaders/Circle/index.js +2 -2
  243. package/dist/core/shaders/ColorWheel/index.js +2 -2
  244. package/dist/core/shaders/CompressionArtifacts/index.js +2 -2
  245. package/dist/core/shaders/ConcentricSpin/index.js +2 -2
  246. package/dist/core/shaders/ConicGradient/index.js +2 -2
  247. package/dist/core/shaders/ContourLines/index.js +2 -2
  248. package/dist/core/shaders/CornerPin/index.js +2 -2
  249. package/dist/core/shaders/Crescent/index.js +2 -2
  250. package/dist/core/shaders/Cross/index.js +2 -2
  251. package/dist/core/shaders/Crystal/index.js +2 -2
  252. package/dist/core/shaders/CurlNoise/index.js +3 -3
  253. package/dist/core/shaders/CursorRipples/index.js +2 -2
  254. package/dist/core/shaders/CursorTrail/index.js +2 -2
  255. package/dist/core/shaders/DataMosh/index.js +2 -2
  256. package/dist/core/shaders/DiamondGradient/index.js +2 -2
  257. package/dist/core/shaders/DiamondWipe/index.js +2 -2
  258. package/dist/core/shaders/DiffuseBlur/index.js +2 -2
  259. package/dist/core/shaders/DisplacementMap/index.js +2 -2
  260. package/dist/core/shaders/Dither/index.js +2 -2
  261. package/dist/core/shaders/DotGrid/index.js +2 -2
  262. package/dist/core/shaders/DropShadow/index.js +2 -2
  263. package/dist/core/shaders/Duotone/index.js +2 -2
  264. package/dist/core/shaders/Ellipse/index.js +2 -2
  265. package/dist/core/shaders/Emboss/index.js +2 -2
  266. package/dist/core/shaders/Engraving/index.js +2 -2
  267. package/dist/core/shaders/ErosionNoise/index.js +3 -3
  268. package/dist/core/shaders/Exposure/index.js +2 -2
  269. package/dist/core/shaders/FallingLines/index.js +2 -2
  270. package/dist/core/shaders/FilmGrain/index.js +2 -2
  271. package/dist/core/shaders/FilmStock/index.js +2 -2
  272. package/dist/core/shaders/Flip/index.js +2 -2
  273. package/dist/core/shaders/FloatingParticles/index.js +2 -2
  274. package/dist/core/shaders/FlowField/index.js +2 -2
  275. package/dist/core/shaders/Flower/index.js +2 -2
  276. package/dist/core/shaders/FlowingGradient/index.js +2 -2
  277. package/dist/core/shaders/FlutedGlass/index.js +2 -2
  278. package/dist/core/shaders/Fog/index.js +2 -2
  279. package/dist/core/shaders/Form3D/index.js +2 -2
  280. package/dist/core/shaders/FractalNoise/index.js +2 -2
  281. package/dist/core/shaders/Frost/index.js +2 -2
  282. package/dist/core/shaders/GaborNoise/index.js +3 -3
  283. package/dist/core/shaders/Glass/index.js +2 -2
  284. package/dist/core/shaders/GlassTiles/index.js +2 -2
  285. package/dist/core/shaders/Glitch/index.js +2 -2
  286. package/dist/core/shaders/Glow/index.js +2 -2
  287. package/dist/core/shaders/Godrays/index.js +2 -2
  288. package/dist/core/shaders/Goo/index.js +2 -2
  289. package/dist/core/shaders/GradientMap/index.js +2 -2
  290. package/dist/core/shaders/Grayscale/index.js +2 -2
  291. package/dist/core/shaders/Grid/index.js +2 -2
  292. package/dist/core/shaders/GridDistortion/index.js +2 -2
  293. package/dist/core/shaders/Group/index.js +2 -2
  294. package/dist/core/shaders/HTMLInCanvas/index.js +2 -2
  295. package/dist/core/shaders/Halftone/index.js +2 -2
  296. package/dist/core/shaders/Heart/index.js +2 -2
  297. package/dist/core/shaders/Heatmap/index.js +2 -2
  298. package/dist/core/shaders/HexGrid/index.js +2 -2
  299. package/dist/core/shaders/Hologram/index.js +2 -2
  300. package/dist/core/shaders/Holographic/index.js +2 -2
  301. package/dist/core/shaders/HueShift/index.js +2 -2
  302. package/dist/core/shaders/ImageTexture/index.js +2 -2
  303. package/dist/core/shaders/InkFlow/index.js +2 -2
  304. package/dist/core/shaders/Invert/index.js +2 -2
  305. package/dist/core/shaders/IrisWipe/index.js +2 -2
  306. package/dist/core/shaders/Irradiance/index.js +2 -2
  307. package/dist/core/shaders/IsometricCubes/index.js +2 -2
  308. package/dist/core/shaders/Kaleidoscope/index.js +2 -2
  309. package/dist/core/shaders/KeyFrames/index.js +2 -2
  310. package/dist/core/shaders/LensDistortion/index.js +2 -2
  311. package/dist/core/shaders/LensFlare/index.js +2 -2
  312. package/dist/core/shaders/LightEdge/index.js +2 -2
  313. package/dist/core/shaders/LightLeak/index.js +2 -2
  314. package/dist/core/shaders/Line/index.js +2 -2
  315. package/dist/core/shaders/LinearBlur/index.js +2 -2
  316. package/dist/core/shaders/LinearGradient/index.js +2 -2
  317. package/dist/core/shaders/LinearWipe/index.js +2 -2
  318. package/dist/core/shaders/LiquidMetal/index.js +2 -2
  319. package/dist/core/shaders/Liquify/index.js +2 -2
  320. package/dist/core/shaders/MagneticFilings/index.js +2 -2
  321. package/dist/core/shaders/Marble/index.js +2 -2
  322. package/dist/core/shaders/MeshGradient/index.js +2 -2
  323. package/dist/core/shaders/Mirror/index.js +2 -2
  324. package/dist/core/shaders/MultiPointGradient/index.js +2 -2
  325. package/dist/core/shaders/Nebula/index.js +2 -2
  326. package/dist/core/shaders/Neon/index.js +2 -2
  327. package/dist/core/shaders/NoiseDissolve/index.js +2 -2
  328. package/dist/core/shaders/ObjectTracker/index.js +2 -2
  329. package/dist/core/shaders/Obsidian/index.js +2 -2
  330. package/dist/core/shaders/PagePeel/index.js +2 -2
  331. package/dist/core/shaders/Paper/index.js +2 -2
  332. package/dist/core/shaders/Parallelogram/index.js +2 -2
  333. package/dist/core/shaders/ParticleField/index.js +2 -2
  334. package/dist/core/shaders/ParticleFlow/index.js +2 -2
  335. package/dist/core/shaders/Particles/index.js +2 -2
  336. package/dist/core/shaders/PerlinNoise/index.js +3 -3
  337. package/dist/core/shaders/Perspective/index.js +2 -2
  338. package/dist/core/shaders/PixelSort/index.js +2 -2
  339. package/dist/core/shaders/PixelThrow/index.js +2 -2
  340. package/dist/core/shaders/Pixelate/index.js +2 -2
  341. package/dist/core/shaders/Plasma/index.js +2 -2
  342. package/dist/core/shaders/Plastic/index.js +2 -2
  343. package/dist/core/shaders/PolarCoordinates/index.js +2 -2
  344. package/dist/core/shaders/Polygon/index.js +2 -2
  345. package/dist/core/shaders/Posterize/index.js +2 -2
  346. package/dist/core/shaders/Prism/index.js +2 -2
  347. package/dist/core/shaders/ProgressiveBlur/index.js +2 -2
  348. package/dist/core/shaders/RadialGradient/index.js +2 -2
  349. package/dist/core/shaders/RadialWipe/index.js +2 -2
  350. package/dist/core/shaders/RandomBars/index.js +2 -2
  351. package/dist/core/shaders/ReactionDiffusion/index.js +2 -2
  352. package/dist/core/shaders/RectangularCoordinates/index.js +2 -2
  353. package/dist/core/shaders/ReflectivePlane/index.js +2 -2
  354. package/dist/core/shaders/Repeater/index.js +2 -2
  355. package/dist/core/shaders/Ring/index.js +2 -2
  356. package/dist/core/shaders/RippleWipe/index.js +2 -2
  357. package/dist/core/shaders/Ripples/index.js +2 -2
  358. package/dist/core/shaders/RoundedRect/index.js +2 -2
  359. package/dist/core/shaders/Satin/index.d.ts +120 -0
  360. package/dist/core/shaders/Satin/index.d.ts.map +1 -0
  361. package/dist/core/shaders/Satin/index.js +5 -0
  362. package/dist/core/shaders/Saturation/index.js +2 -2
  363. package/dist/core/shaders/Scratches/index.js +3 -3
  364. package/dist/core/shaders/Sharpness/index.js +2 -2
  365. package/dist/core/shaders/Shatter/index.js +2 -2
  366. package/dist/core/shaders/SimplexNoise/index.js +3 -3
  367. package/dist/core/shaders/SineWave/index.js +2 -2
  368. package/dist/core/shaders/SliceWipe/index.js +2 -2
  369. package/dist/core/shaders/Smoke/index.js +2 -2
  370. package/dist/core/shaders/SmokeFill/index.js +2 -2
  371. package/dist/core/shaders/SmokeFlow/index.js +2 -2
  372. package/dist/core/shaders/Solarize/index.js +2 -2
  373. package/dist/core/shaders/SolidColor/index.js +2 -2
  374. package/dist/core/shaders/Sparkle/index.js +2 -2
  375. package/dist/core/shaders/Spherize/index.js +2 -2
  376. package/dist/core/shaders/Spiral/index.js +2 -2
  377. package/dist/core/shaders/Star/index.js +2 -2
  378. package/dist/core/shaders/Stone/index.js +2 -2
  379. package/dist/core/shaders/Strands/index.js +2 -2
  380. package/dist/core/shaders/Stretch/index.js +2 -2
  381. package/dist/core/shaders/Stripes/index.js +2 -2
  382. package/dist/core/shaders/StudioBackground/index.js +2 -2
  383. package/dist/core/shaders/SunBurst/index.js +2 -2
  384. package/dist/core/shaders/Surface3D/index.js +2 -2
  385. package/dist/core/shaders/Swirl/index.js +2 -2
  386. package/dist/core/shaders/Teardrop/index.js +2 -2
  387. package/dist/core/shaders/Text/index.js +2 -2
  388. package/dist/core/shaders/ThinFilm/index.js +2 -2
  389. package/dist/core/shaders/TiltShift/index.js +2 -2
  390. package/dist/core/shaders/TimeTrail/index.js +2 -2
  391. package/dist/core/shaders/Tint/index.js +2 -2
  392. package/dist/core/shaders/Trapezoid/index.js +2 -2
  393. package/dist/core/shaders/TriangularGrid/index.js +2 -2
  394. package/dist/core/shaders/Tritone/index.js +2 -2
  395. package/dist/core/shaders/Truchet/index.js +2 -2
  396. package/dist/core/shaders/Twirl/index.js +2 -2
  397. package/dist/core/shaders/VHS/index.js +2 -2
  398. package/dist/core/shaders/VenetianBlinds/index.js +2 -2
  399. package/dist/core/shaders/Vesica/index.js +2 -2
  400. package/dist/core/shaders/Vibrance/index.js +2 -2
  401. package/dist/core/shaders/VideoTexture/index.js +2 -2
  402. package/dist/core/shaders/Vignette/index.js +2 -2
  403. package/dist/core/shaders/Voronoi/index.js +2 -2
  404. package/dist/core/shaders/Voxels/index.js +2 -2
  405. package/dist/core/shaders/Water/index.js +2 -2
  406. package/dist/core/shaders/Watercolor/index.js +2 -2
  407. package/dist/core/shaders/WaveDistortion/index.js +2 -2
  408. package/dist/core/shaders/Waveform/index.js +2 -2
  409. package/dist/core/shaders/WaveletNoise/index.js +3 -3
  410. package/dist/core/shaders/Weave/index.js +2 -2
  411. package/dist/core/shaders/WebcamTexture/index.js +2 -2
  412. package/dist/core/shaders/Wool/index.js +2 -2
  413. package/dist/core/shaders/WorleyNoise/index.js +2 -2
  414. package/dist/core/shaders/ZoomBlur/index.js +2 -2
  415. package/dist/core/std/index.js +1 -1
  416. package/dist/core/std/paint/materials.d.ts +48 -2
  417. package/dist/core/std/paint/materials.d.ts.map +1 -1
  418. package/dist/core/std/paint/noise.d.ts +120 -0
  419. package/dist/core/std/paint/noise.d.ts.map +1 -1
  420. package/dist/core/{std-ClftfWpF.js → std-ebybEx3c.js} +114 -19
  421. package/dist/js/bundle.js +101 -101
  422. package/dist/js/createShader.js +1 -1
  423. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  424. package/dist/js/utils/generatePresetCode.js +23 -0
  425. package/dist/react/Preview.js +1 -0
  426. package/dist/react/Satin.js +226 -0
  427. package/dist/react/Shader.js +1 -1
  428. package/dist/react/bundle.js +90 -90
  429. package/dist/react/components/Satin.d.ts +49 -0
  430. package/dist/react/components/Satin.d.ts.map +1 -0
  431. package/dist/react/engine/Preview.d.ts.map +1 -1
  432. package/dist/react/index.d.ts +1 -0
  433. package/dist/react/index.d.ts.map +1 -1
  434. package/dist/react/index.js +2 -1
  435. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  436. package/dist/react/utils/generatePresetCode.js +23 -0
  437. package/dist/registry.js +528 -0
  438. package/dist/solid/components/Satin.d.ts +46 -0
  439. package/dist/solid/components/Satin.d.ts.map +1 -0
  440. package/dist/solid/components/Satin.js +232 -0
  441. package/dist/solid/engine/Preview.d.ts.map +1 -1
  442. package/dist/solid/engine/Preview.js +295 -293
  443. package/dist/solid/engine/Shader.js +1 -1
  444. package/dist/solid/index.d.ts +1 -0
  445. package/dist/solid/index.d.ts.map +1 -1
  446. package/dist/solid/index.js +114 -112
  447. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  448. package/dist/solid/utils/generatePresetCode.js +23 -0
  449. package/dist/svelte/components/Satin.svelte.d.ts +36 -0
  450. package/dist/svelte/index.d.ts +1 -0
  451. package/dist/svelte/index.js +2500 -2293
  452. package/dist/svelte/source/components/Satin.svelte +360 -0
  453. package/dist/svelte/source/engine/Preview.svelte +2 -0
  454. package/dist/svelte/source/index.js +1 -0
  455. package/dist/svelte/utils/generatePresetCode.js +23 -0
  456. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  457. package/dist/vue/Satin.js +3 -0
  458. package/dist/vue/Satin.vue_vue_type_script_setup_true_lang.js +243 -0
  459. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  460. package/dist/vue/components/Satin.vue.d.ts +71 -0
  461. package/dist/vue/components/Satin.vue.d.ts.map +1 -0
  462. package/dist/vue/index.d.ts +1 -0
  463. package/dist/vue/index.d.ts.map +1 -1
  464. package/dist/vue/index.js +2 -1
  465. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  466. package/dist/vue/utils/generatePresetCode.js +23 -0
  467. package/package.json +9 -1
  468. 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.3",
4
+ "generatedAt": "2026-10-08T23:34:23.198Z",
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",
@@ -3357,6 +3364,7 @@
3357
3364
  "Repeater",
3358
3365
  "RippleWipe",
3359
3366
  "Ripples",
3367
+ "Satin",
3360
3368
  "Saturation",
3361
3369
  "Scratches",
3362
3370
  "Sharpness",
@@ -3968,6 +3976,7 @@
3968
3976
  "Marble",
3969
3977
  "MeshGradient",
3970
3978
  "Prism",
3979
+ "Satin",
3971
3980
  "StudioBackground",
3972
3981
  "Waveform"
3973
3982
  ],
@@ -7523,7 +7532,7 @@
7523
7532
  "documented": true,
7524
7533
  "source": {
7525
7534
  "file": "std/paint/noise.ts",
7526
- "line": 80
7535
+ "line": 82
7527
7536
  },
7528
7537
  "kind": "function",
7529
7538
  "signature": "waves(axes: {x: Expr | number; y?: Expr | number; t?: Expr | number}, schedule: WaveTerm[]): Expr",
@@ -7566,7 +7575,7 @@
7566
7575
  "documented": true,
7567
7576
  "source": {
7568
7577
  "file": "std/paint/noise.ts",
7569
- "line": 125
7578
+ "line": 127
7570
7579
  },
7571
7580
  "kind": "function",
7572
7581
  "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 +7612,7 @@
7603
7612
  "documented": true,
7604
7613
  "source": {
7605
7614
  "file": "std/paint/noise.ts",
7606
- "line": 152
7615
+ "line": 154
7607
7616
  },
7608
7617
  "kind": "function",
7609
7618
  "signature": "organicWaves(opts: {frequency: number; detail?: number; drift?: number; seed?: number}): WaveTerm[]",
@@ -7615,6 +7624,147 @@
7615
7624
  }
7616
7625
  ]
7617
7626
  },
7627
+ "noise.foldSet": {
7628
+ "id": "noise.foldSet",
7629
+ "name": "foldSet",
7630
+ "qualifiedName": "foldSet",
7631
+ "category": "noise",
7632
+ "module": "std/paint/noise.ts",
7633
+ "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.",
7634
+ "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.",
7635
+ "examples": [
7636
+ "const folds = foldSet({count: 7, seed: u.seed, spread: aspect, width: u.foldWidth, height: u.foldDepth})"
7637
+ ],
7638
+ "tips": [
7639
+ "Call it once, outside any height function: the layout is the same at every tap."
7640
+ ],
7641
+ "see": [
7642
+ "noise.drapedFolds"
7643
+ ],
7644
+ "import": {
7645
+ "statement": "import {noise} from 'shaders/std'",
7646
+ "usage": "noise.foldSet"
7647
+ },
7648
+ "usedBy": [
7649
+ "Satin"
7650
+ ],
7651
+ "documented": true,
7652
+ "source": {
7653
+ "file": "std/paint/noise.ts",
7654
+ "line": 223
7655
+ },
7656
+ "kind": "function",
7657
+ "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[]",
7658
+ "params": [
7659
+ {
7660
+ "name": "opts",
7661
+ "type": "{\n count: number\n seed: Expr | number\n spread: Expr | number\n width: Expr | number\n height: Expr | number\n jitter?: number\n}",
7662
+ "optional": false
7663
+ }
7664
+ ]
7665
+ },
7666
+ "noise.drapedFolds": {
7667
+ "id": "noise.drapedFolds",
7668
+ "name": "drapedFolds",
7669
+ "qualifiedName": "drapedFolds",
7670
+ "category": "noise",
7671
+ "module": "std/paint/noise.ts",
7672
+ "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.",
7673
+ "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.",
7674
+ "examples": [
7675
+ "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)"
7676
+ ],
7677
+ "tips": [
7678
+ "Keep the wave list and swell as constants next to the definition. They are the look."
7679
+ ],
7680
+ "see": [
7681
+ "noise.foldSet",
7682
+ "noise.wavyLine",
7683
+ "materials.fdSlope"
7684
+ ],
7685
+ "import": {
7686
+ "statement": "import {noise} from 'shaders/std'",
7687
+ "usage": "noise.drapedFolds"
7688
+ },
7689
+ "usedBy": [
7690
+ "Satin"
7691
+ ],
7692
+ "documented": true,
7693
+ "source": {
7694
+ "file": "std/paint/noise.ts",
7695
+ "line": 271
7696
+ },
7697
+ "kind": "function",
7698
+ "signature": "drapedFolds(coords: {along: Expr | number; across: Expr | number}, folds: Fold[], opts: DrapeOptions): Expr",
7699
+ "params": [
7700
+ {
7701
+ "name": "coords",
7702
+ "type": "{along: Expr | number; across: Expr | number}",
7703
+ "optional": false
7704
+ },
7705
+ {
7706
+ "name": "folds",
7707
+ "type": "Fold[]",
7708
+ "optional": false
7709
+ },
7710
+ {
7711
+ "name": "opts",
7712
+ "type": "DrapeOptions",
7713
+ "optional": false
7714
+ }
7715
+ ]
7716
+ },
7717
+ "noise.clothCoords": {
7718
+ "id": "noise.clothCoords",
7719
+ "name": "clothCoords",
7720
+ "qualifiedName": "clothCoords",
7721
+ "category": "noise",
7722
+ "module": "std/paint/noise.ts",
7723
+ "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.",
7724
+ "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.",
7725
+ "examples": [
7726
+ "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]})"
7727
+ ],
7728
+ "tips": [
7729
+ "One more pass over the folds per pixel. Call it once and reuse the point."
7730
+ ],
7731
+ "see": [
7732
+ "noise.drapedFolds",
7733
+ "noise.foldSet",
7734
+ "materials.grainNoise"
7735
+ ],
7736
+ "import": {
7737
+ "statement": "import {noise} from 'shaders/std'",
7738
+ "usage": "noise.clothCoords"
7739
+ },
7740
+ "usedBy": [
7741
+ "Satin"
7742
+ ],
7743
+ "documented": true,
7744
+ "source": {
7745
+ "file": "std/paint/noise.ts",
7746
+ "line": 299
7747
+ },
7748
+ "kind": "function",
7749
+ "signature": "clothCoords(coords: {along: Expr | number; across: Expr | number}, folds: Fold[], opts: DrapeOptions & {foreshorten?: number}): {along: Expr; across: Expr}",
7750
+ "params": [
7751
+ {
7752
+ "name": "coords",
7753
+ "type": "{along: Expr | number; across: Expr | number}",
7754
+ "optional": false
7755
+ },
7756
+ {
7757
+ "name": "folds",
7758
+ "type": "Fold[]",
7759
+ "optional": false
7760
+ },
7761
+ {
7762
+ "name": "opts",
7763
+ "type": "DrapeOptions & {foreshorten?: number}",
7764
+ "optional": false
7765
+ }
7766
+ ]
7767
+ },
7618
7768
  "noise.seededPlane": {
7619
7769
  "id": "noise.seededPlane",
7620
7770
  "name": "seededPlane",
@@ -7650,7 +7800,7 @@
7650
7800
  "documented": true,
7651
7801
  "source": {
7652
7802
  "file": "std/paint/noise.ts",
7653
- "line": 209
7803
+ "line": 414
7654
7804
  },
7655
7805
  "kind": "function",
7656
7806
  "signature": "seededPlane(field: Field, slots: {scale: PropRef; seed: PropRef}): Field",
@@ -7693,7 +7843,7 @@
7693
7843
  "documented": true,
7694
7844
  "source": {
7695
7845
  "file": "std/paint/noise.ts",
7696
- "line": 248
7846
+ "line": 453
7697
7847
  },
7698
7848
  "kind": "function",
7699
7849
  "signature": "pixelGrid(field: Field, slots: {grain: PropRef; seed: PropRef}): Field",
@@ -7734,7 +7884,7 @@
7734
7884
  "documented": true,
7735
7885
  "source": {
7736
7886
  "file": "std/paint/noise.ts",
7737
- "line": 272
7887
+ "line": 477
7738
7888
  },
7739
7889
  "kind": "function",
7740
7890
  "signature": "scaledPlane(field: Field, slots: {scale: PropRef}): Field",
@@ -7781,7 +7931,7 @@
7781
7931
  "documented": true,
7782
7932
  "source": {
7783
7933
  "file": "std/paint/noise.ts",
7784
- "line": 300
7934
+ "line": 505
7785
7935
  },
7786
7936
  "kind": "function",
7787
7937
  "signature": "evolving(field: Field, opts: {rate: number}): Field",
@@ -7824,7 +7974,7 @@
7824
7974
  "documented": true,
7825
7975
  "source": {
7826
7976
  "file": "std/paint/noise.ts",
7827
- "line": 327
7977
+ "line": 532
7828
7978
  },
7829
7979
  "kind": "function",
7830
7980
  "signature": "gaborGrains(slots: {frequency: PropRef}): Field",
@@ -7862,7 +8012,7 @@
7862
8012
  "documented": true,
7863
8013
  "source": {
7864
8014
  "file": "std/paint/noise.ts",
7865
- "line": 347
8015
+ "line": 552
7866
8016
  },
7867
8017
  "kind": "function",
7868
8018
  "signature": "waveletBands(slots: {detail: PropRef}): Field",
@@ -7901,7 +8051,7 @@
7901
8051
  "documented": true,
7902
8052
  "source": {
7903
8053
  "file": "std/paint/noise.ts",
7904
- "line": 366
8054
+ "line": 571
7905
8055
  },
7906
8056
  "kind": "function",
7907
8057
  "signature": "blueSpeckle(): Field",
@@ -7933,7 +8083,7 @@
7933
8083
  "documented": true,
7934
8084
  "source": {
7935
8085
  "file": "std/paint/noise.ts",
7936
- "line": 383
8086
+ "line": 588
7937
8087
  },
7938
8088
  "kind": "function",
7939
8089
  "signature": "erosionRidges(): Field",
@@ -7965,7 +8115,7 @@
7965
8115
  "documented": true,
7966
8116
  "source": {
7967
8117
  "file": "std/paint/noise.ts",
7968
- "line": 400
8118
+ "line": 605
7969
8119
  },
7970
8120
  "kind": "function",
7971
8121
  "signature": "curlSpeed(opts: {rate: number}): Field",
@@ -8003,7 +8153,7 @@
8003
8153
  "documented": true,
8004
8154
  "source": {
8005
8155
  "file": "std/paint/noise.ts",
8006
- "line": 420
8156
+ "line": 625
8007
8157
  },
8008
8158
  "kind": "function",
8009
8159
  "signature": "scratchStreaks(slots: {thickness: PropRef}): Field",
@@ -8043,7 +8193,7 @@
8043
8193
  "documented": true,
8044
8194
  "source": {
8045
8195
  "file": "std/paint/noise.ts",
8046
- "line": 442
8196
+ "line": 647
8047
8197
  },
8048
8198
  "kind": "function",
8049
8199
  "signature": "unitized(field: Field): Field",
@@ -8091,7 +8241,7 @@
8091
8241
  "documented": true,
8092
8242
  "source": {
8093
8243
  "file": "std/paint/noise.ts",
8094
- "line": 464
8244
+ "line": 669
8095
8245
  },
8096
8246
  "kind": "function",
8097
8247
  "signature": "noiseTone(field: Field, slots?: {contrast?: PropRef; balance?: PropRef}): Field",
@@ -8134,7 +8284,7 @@
8134
8284
  "documented": true,
8135
8285
  "source": {
8136
8286
  "file": "std/paint/noise.ts",
8137
- "line": 489
8287
+ "line": 694
8138
8288
  },
8139
8289
  "kind": "function",
8140
8290
  "signature": "signedTone(field: Field, slots: {contrast: PropRef; balance: PropRef}): Field",
@@ -8175,7 +8325,7 @@
8175
8325
  "documented": true,
8176
8326
  "source": {
8177
8327
  "file": "std/paint/noise.ts",
8178
- "line": 510
8328
+ "line": 715
8179
8329
  },
8180
8330
  "kind": "function",
8181
8331
  "signature": "gainTone(field: Field, slots: {contrast: PropRef; balance: PropRef}): Field",
@@ -8218,7 +8368,7 @@
8218
8368
  "documented": true,
8219
8369
  "source": {
8220
8370
  "file": "std/paint/noise.ts",
8221
- "line": 531
8371
+ "line": 736
8222
8372
  },
8223
8373
  "kind": "function",
8224
8374
  "signature": "linearPair(a: PropRef, b: PropRef): Palette",
@@ -8263,7 +8413,7 @@
8263
8413
  "documented": true,
8264
8414
  "source": {
8265
8415
  "file": "std/paint/noise.ts",
8266
- "line": 555
8416
+ "line": 760
8267
8417
  },
8268
8418
  "kind": "function",
8269
8419
  "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 +8455,7 @@
8305
8455
  "documented": true,
8306
8456
  "source": {
8307
8457
  "file": "std/paint/noise.ts",
8308
- "line": 600
8458
+ "line": 805
8309
8459
  },
8310
8460
  "kind": "function",
8311
8461
  "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 +8494,7 @@
8344
8494
  "documented": true,
8345
8495
  "source": {
8346
8496
  "file": "std/paint/noise.ts",
8347
- "line": 657
8497
+ "line": 862
8348
8498
  },
8349
8499
  "kind": "function",
8350
8500
  "signature": "cellDistances(slots: {scale: PropRef; seed: PropRef}): Field",
@@ -8382,7 +8532,7 @@
8382
8532
  "documented": true,
8383
8533
  "source": {
8384
8534
  "file": "std/paint/noise.ts",
8385
- "line": 680
8535
+ "line": 885
8386
8536
  },
8387
8537
  "kind": "function",
8388
8538
  "signature": "cellFill(cells: Field, slots: {edgeIntensity: PropRef}): Field",
@@ -8425,7 +8575,7 @@
8425
8575
  "documented": true,
8426
8576
  "source": {
8427
8577
  "file": "std/paint/noise.ts",
8428
- "line": 700
8578
+ "line": 905
8429
8579
  },
8430
8580
  "kind": "function",
8431
8581
  "signature": "cellBorders(cells: Field, slots: {softness: PropRef; scale: PropRef}): Field",
@@ -8468,7 +8618,7 @@
8468
8618
  "documented": true,
8469
8619
  "source": {
8470
8620
  "file": "std/paint/noise.ts",
8471
- "line": 719
8621
+ "line": 924
8472
8622
  },
8473
8623
  "kind": "function",
8474
8624
  "signature": "borderOverlay(paint: Paint, mask: Field, slots: {color: PropRef}): Paint",
@@ -8517,7 +8667,7 @@
8517
8667
  "documented": true,
8518
8668
  "source": {
8519
8669
  "file": "std/paint/noise.ts",
8520
- "line": 747
8670
+ "line": 952
8521
8671
  },
8522
8672
  "kind": "function",
8523
8673
  "signature": "overRgb(paint: Paint, ...stages: RgbStage[]): Paint",
@@ -8560,7 +8710,7 @@
8560
8710
  "documented": true,
8561
8711
  "source": {
8562
8712
  "file": "std/paint/noise.ts",
8563
- "line": 768
8713
+ "line": 973
8564
8714
  },
8565
8715
  "kind": "function",
8566
8716
  "signature": "backToP3(slots: {space?: PropRef}): RgbStage",
@@ -8597,7 +8747,7 @@
8597
8747
  "documented": true,
8598
8748
  "source": {
8599
8749
  "file": "std/paint/noise.ts",
8600
- "line": 785
8750
+ "line": 990
8601
8751
  },
8602
8752
  "kind": "function",
8603
8753
  "signature": "tonePow(): RgbStage",
@@ -8632,7 +8782,7 @@
8632
8782
  "documented": true,
8633
8783
  "source": {
8634
8784
  "file": "std/paint/noise.ts",
8635
- "line": 813
8785
+ "line": 1018
8636
8786
  },
8637
8787
  "kind": "function",
8638
8788
  "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 +8815,7 @@
8665
8815
  "documented": true,
8666
8816
  "source": {
8667
8817
  "file": "std/paint/noise.ts",
8668
- "line": 878
8818
+ "line": 1083
8669
8819
  },
8670
8820
  "kind": "constant",
8671
8821
  "signature": "reliefBases.stone: { readonly fn: TgpuFn<(p: Vec2f) => F32>; readonly hint: \"stone12\"; }",
@@ -8692,7 +8842,7 @@
8692
8842
  "documented": true,
8693
8843
  "source": {
8694
8844
  "file": "std/paint/noise.ts",
8695
- "line": 880
8845
+ "line": 1085
8696
8846
  },
8697
8847
  "kind": "constant",
8698
8848
  "signature": "reliefBases.wool: { readonly fn: TgpuFn<(p: Vec2f) => F32>; readonly hint: \"wool12\"; }",
@@ -8724,7 +8874,7 @@
8724
8874
  "documented": true,
8725
8875
  "source": {
8726
8876
  "file": "std/paint/noise.ts",
8727
- "line": 876
8877
+ "line": 1081
8728
8878
  },
8729
8879
  "kind": "object",
8730
8880
  "signature": "reliefBases: { stone, wool }",
@@ -8762,7 +8912,7 @@
8762
8912
  "documented": true,
8763
8913
  "source": {
8764
8914
  "file": "std/paint/noise.ts",
8765
- "line": 904
8915
+ "line": 1109
8766
8916
  },
8767
8917
  "kind": "function",
8768
8918
  "signature": "noiseRelief(basis: ReliefBasis): (params: GpuFragmentParams) => Expr",
@@ -8800,7 +8950,7 @@
8800
8950
  "documented": true,
8801
8951
  "source": {
8802
8952
  "file": "std/paint/noise.ts",
8803
- "line": 922
8953
+ "line": 1127
8804
8954
  },
8805
8955
  "kind": "function",
8806
8956
  "signature": "transformWorleyMode(value: string): number",
@@ -8838,7 +8988,7 @@
8838
8988
  "documented": true,
8839
8989
  "source": {
8840
8990
  "file": "std/paint/noise.ts",
8841
- "line": 933
8991
+ "line": 1138
8842
8992
  },
8843
8993
  "kind": "function",
8844
8994
  "signature": "transformWorleyDistance(value: string): number",
@@ -10915,7 +11065,8 @@
10915
11065
  "Chrome",
10916
11066
  "LiquidMetal",
10917
11067
  "Nebula",
10918
- "Obsidian"
11068
+ "Obsidian",
11069
+ "Satin"
10919
11070
  ],
10920
11071
  "documented": true,
10921
11072
  "source": {
@@ -10923,7 +11074,7 @@
10923
11074
  "line": 435
10924
11075
  },
10925
11076
  "kind": "function",
10926
- "signature": "viewRay(params: GpuFragmentParams, field: SurfaceField, fov: number = 0.6): Expr",
11077
+ "signature": "viewRay(params: GpuFragmentParams, field: Pick<SurfaceField, 'aspect'>, fov: number = 0.6): Expr",
10927
11078
  "params": [
10928
11079
  {
10929
11080
  "name": "params",
@@ -10932,7 +11083,7 @@
10932
11083
  },
10933
11084
  {
10934
11085
  "name": "field",
10935
- "type": "SurfaceField",
11086
+ "type": "Pick<SurfaceField, 'aspect'>",
10936
11087
  "optional": false
10937
11088
  },
10938
11089
  {
@@ -11013,7 +11164,8 @@
11013
11164
  "usage": "materials.tiltNormal"
11014
11165
  },
11015
11166
  "usedBy": [
11016
- "BrushedMetal"
11167
+ "BrushedMetal",
11168
+ "Satin"
11017
11169
  ],
11018
11170
  "documented": true,
11019
11171
  "source": {
@@ -11122,7 +11274,8 @@
11122
11274
  "usage": "materials.grainNoise"
11123
11275
  },
11124
11276
  "usedBy": [
11125
- "BrushedMetal"
11277
+ "BrushedMetal",
11278
+ "Satin"
11126
11279
  ],
11127
11280
  "documented": true,
11128
11281
  "source": {
@@ -11210,7 +11363,8 @@
11210
11363
  },
11211
11364
  "usedBy": [
11212
11365
  "BrushedMetal",
11213
- "CarbonFiber"
11366
+ "CarbonFiber",
11367
+ "Satin"
11214
11368
  ],
11215
11369
  "documented": true,
11216
11370
  "source": {
@@ -11258,7 +11412,8 @@
11258
11412
  "usage": "materials.wardAlphas"
11259
11413
  },
11260
11414
  "usedBy": [
11261
- "BrushedMetal"
11415
+ "BrushedMetal",
11416
+ "Satin"
11262
11417
  ],
11263
11418
  "documented": true,
11264
11419
  "source": {
@@ -11266,16 +11421,16 @@
11266
11421
  "line": 604
11267
11422
  },
11268
11423
  "kind": "function",
11269
- "signature": "wardAlphas(roughness: Expr, anisotropy: Expr): {along: Expr; across: Expr}",
11424
+ "signature": "wardAlphas(roughness: Expr | number, anisotropy: Expr | number): {along: Expr; across: Expr}",
11270
11425
  "params": [
11271
11426
  {
11272
11427
  "name": "roughness",
11273
- "type": "Expr",
11428
+ "type": "Expr | number",
11274
11429
  "optional": false
11275
11430
  },
11276
11431
  {
11277
11432
  "name": "anisotropy",
11278
- "type": "Expr",
11433
+ "type": "Expr | number",
11279
11434
  "optional": false
11280
11435
  }
11281
11436
  ]
@@ -11304,7 +11459,8 @@
11304
11459
  },
11305
11460
  "usedBy": [
11306
11461
  "BrushedMetal",
11307
- "CarbonFiber"
11462
+ "CarbonFiber",
11463
+ "Satin"
11308
11464
  ],
11309
11465
  "documented": true,
11310
11466
  "source": {
@@ -11541,7 +11697,8 @@
11541
11697
  },
11542
11698
  "usedBy": [
11543
11699
  "Chrome",
11544
- "Nebula"
11700
+ "Nebula",
11701
+ "Satin"
11545
11702
  ],
11546
11703
  "documented": true,
11547
11704
  "source": {
@@ -11584,7 +11741,8 @@
11584
11741
  "Chrome",
11585
11742
  "Frost",
11586
11743
  "LiquidMetal",
11587
- "Plastic"
11744
+ "Plastic",
11745
+ "Satin"
11588
11746
  ],
11589
11747
  "documented": true,
11590
11748
  "source": {
@@ -12284,7 +12442,8 @@
12284
12442
  "usage": "materials.fdSlope"
12285
12443
  },
12286
12444
  "usedBy": [
12287
- "Crystal"
12445
+ "Crystal",
12446
+ "Satin"
12288
12447
  ],
12289
12448
  "documented": true,
12290
12449
  "source": {
@@ -12317,6 +12476,62 @@
12317
12476
  }
12318
12477
  ]
12319
12478
  },
12479
+ "materials.fdCurvature": {
12480
+ "id": "materials.fdCurvature",
12481
+ "name": "fdCurvature",
12482
+ "qualifiedName": "fdCurvature",
12483
+ "category": "materials",
12484
+ "module": "std/paint/materials.ts",
12485
+ "summary": "The value, slope and curvature of any field at a point: `value`, `dx`, `dy` and `curvature`.",
12486
+ "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.",
12487
+ "examples": [
12488
+ "const relief = fdCurvature(cloth, q, 0.004)\nconst cavity = clamp(sub(1, mul(relief.curvature, 0.005)), 0.6, 1.1)"
12489
+ ],
12490
+ "tips": [
12491
+ "Five taps of the field per pixel. Keep the field cheap."
12492
+ ],
12493
+ "see": [
12494
+ "materials.fdSlope",
12495
+ "materials.nudgeNormal"
12496
+ ],
12497
+ "import": {
12498
+ "statement": "import {materials} from 'shaders/std'",
12499
+ "usage": "materials.fdCurvature"
12500
+ },
12501
+ "usedBy": [
12502
+ "Satin"
12503
+ ],
12504
+ "documented": true,
12505
+ "source": {
12506
+ "file": "std/paint/materials.ts",
12507
+ "line": 1027
12508
+ },
12509
+ "kind": "function",
12510
+ "signature": "fdCurvature(sampleAt: (p: Expr) => Expr, p: Expr, eps: number, hint: string = 'fd'): {value: Expr; dx: Expr; dy: Expr; curvature: Expr}",
12511
+ "params": [
12512
+ {
12513
+ "name": "sampleAt",
12514
+ "type": "(p: Expr) => Expr",
12515
+ "optional": false
12516
+ },
12517
+ {
12518
+ "name": "p",
12519
+ "type": "Expr",
12520
+ "optional": false
12521
+ },
12522
+ {
12523
+ "name": "eps",
12524
+ "type": "number",
12525
+ "optional": false
12526
+ },
12527
+ {
12528
+ "name": "hint",
12529
+ "type": "string",
12530
+ "optional": true,
12531
+ "defaultValue": "'fd'"
12532
+ }
12533
+ ]
12534
+ },
12320
12535
  "materials.hashNoise": {
12321
12536
  "id": "materials.hashNoise",
12322
12537
  "name": "hashNoise",
@@ -12346,7 +12561,7 @@
12346
12561
  "documented": true,
12347
12562
  "source": {
12348
12563
  "file": "std/paint/materials.ts",
12349
- "line": 1022
12564
+ "line": 1057
12350
12565
  },
12351
12566
  "kind": "function",
12352
12567
  "signature": "hashNoise(x: Expr | number, y: Expr | number): Expr",
@@ -12387,7 +12602,7 @@
12387
12602
  "documented": true,
12388
12603
  "source": {
12389
12604
  "file": "std/paint/materials.ts",
12390
- "line": 1039
12605
+ "line": 1074
12391
12606
  },
12392
12607
  "kind": "function",
12393
12608
  "signature": "interleavedNoise(pixel: Expr, clock: Expr | number = 0): Expr",
@@ -12431,7 +12646,7 @@
12431
12646
  "documented": true,
12432
12647
  "source": {
12433
12648
  "file": "std/paint/materials.ts",
12434
- "line": 1055
12649
+ "line": 1090
12435
12650
  },
12436
12651
  "kind": "function",
12437
12652
  "signature": "valueNoise(x: Expr | number, y: Expr | number): Expr",
@@ -12474,7 +12689,7 @@
12474
12689
  "documented": true,
12475
12690
  "source": {
12476
12691
  "file": "std/paint/materials.ts",
12477
- "line": 1071
12692
+ "line": 1106
12478
12693
  },
12479
12694
  "kind": "function",
12480
12695
  "signature": "rotationSensor(frame: SurfaceFrame): {x: Expr; y: Expr}",
@@ -12512,7 +12727,7 @@
12512
12727
  "documented": true,
12513
12728
  "source": {
12514
12729
  "file": "std/paint/materials.ts",
12515
- "line": 1094
12730
+ "line": 1129
12516
12731
  },
12517
12732
  "kind": "function",
12518
12733
  "signature": "shellRefract(frame: SurfaceFrame, n: Expr, amount: Expr): {\n x: Expr\n y: Expr\n centered: {x: Expr; y: Expr}\n}",
@@ -12563,7 +12778,7 @@
12563
12778
  "documented": true,
12564
12779
  "source": {
12565
12780
  "file": "std/paint/materials.ts",
12566
- "line": 1122
12781
+ "line": 1157
12567
12782
  },
12568
12783
  "kind": "function",
12569
12784
  "signature": "schlickFresnel(grazing: Expr, opts: {r0?: number; gain: Expr | number; power?: number}): Expr",
@@ -12605,7 +12820,7 @@
12605
12820
  "documented": true,
12606
12821
  "source": {
12607
12822
  "file": "std/paint/materials.ts",
12608
- "line": 1139
12823
+ "line": 1174
12609
12824
  },
12610
12825
  "kind": "function",
12611
12826
  "signature": "twinkle(t: Expr, phase: Expr, opts: {amount: Expr; rate: number; spread: number}): Expr",
@@ -12653,7 +12868,7 @@
12653
12868
  "documented": true,
12654
12869
  "source": {
12655
12870
  "file": "std/paint/materials.ts",
12656
- "line": 1157
12871
+ "line": 1192
12657
12872
  },
12658
12873
  "kind": "function",
12659
12874
  "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 +12911,7 @@
12696
12911
  "documented": true,
12697
12912
  "source": {
12698
12913
  "file": "std/paint/materials.ts",
12699
- "line": 1212
12914
+ "line": 1247
12700
12915
  },
12701
12916
  "kind": "function",
12702
12917
  "signature": "placementPoint(params: GpuFragmentParams, position: Expr, hint: string = 'placed'): Expr",
@@ -12745,7 +12960,7 @@
12745
12960
  "documented": true,
12746
12961
  "source": {
12747
12962
  "file": "std/paint/materials.ts",
12748
- "line": 1233
12963
+ "line": 1268
12749
12964
  },
12750
12965
  "kind": "function",
12751
12966
  "signature": "continuedField(frame: SurfaceFrame, field: SurfaceField, params: GpuFragmentParams): {sdf: Expr; outward: Expr; at: (uv: Expr) => Expr}",
@@ -12794,7 +13009,7 @@
12794
13009
  "documented": true,
12795
13010
  "source": {
12796
13011
  "file": "std/paint/materials.ts",
12797
- "line": 1270
13012
+ "line": 1305
12798
13013
  },
12799
13014
  "kind": "function",
12800
13015
  "signature": "nearestEdge(sdfUV: Expr, sdf: Expr, slope: Expr, hint: string = 'edge'): {point: Expr; normal: Expr}",
@@ -12850,7 +13065,7 @@
12850
13065
  "documented": true,
12851
13066
  "source": {
12852
13067
  "file": "std/paint/materials.ts",
12853
- "line": 1288
13068
+ "line": 1323
12854
13069
  },
12855
13070
  "kind": "function",
12856
13071
  "signature": "pointLightFrom(light: {position: Expr; height: Expr | number}, at: Expr, hint: string = 'pl'): {L: Expr; toLight: Expr; distance: Expr}",
@@ -12896,12 +13111,13 @@
12896
13111
  },
12897
13112
  "usedBy": [
12898
13113
  "Irradiance",
13114
+ "Satin",
12899
13115
  "Voxels"
12900
13116
  ],
12901
13117
  "documented": true,
12902
13118
  "source": {
12903
13119
  "file": "std/paint/materials.ts",
12904
- "line": 1313
13120
+ "line": 1348
12905
13121
  },
12906
13122
  "kind": "function",
12907
13123
  "signature": "lambert(normal: Expr, light: Expr, opts: {wrap?: Expr | number} = {}): Expr",
@@ -12950,7 +13166,7 @@
12950
13166
  "documented": true,
12951
13167
  "source": {
12952
13168
  "file": "std/paint/materials.ts",
12953
- "line": 1328
13169
+ "line": 1363
12954
13170
  },
12955
13171
  "kind": "function",
12956
13172
  "signature": "inverseSquare(distance: Expr, range: Expr | number): Expr",
@@ -12993,7 +13209,7 @@
12993
13209
  "documented": true,
12994
13210
  "source": {
12995
13211
  "file": "std/paint/materials.ts",
12996
- "line": 1345
13212
+ "line": 1380
12997
13213
  },
12998
13214
  "kind": "function",
12999
13215
  "signature": "exposureTone(rgb: Expr): Expr",
@@ -13030,7 +13246,7 @@
13030
13246
  "documented": true,
13031
13247
  "source": {
13032
13248
  "file": "std/paint/materials.ts",
13033
- "line": 1362
13249
+ "line": 1397
13034
13250
  },
13035
13251
  "kind": "function",
13036
13252
  "signature": "sensorGrain(rgb: Expr, opts: {amount: Expr | number; pixel: Expr; clock: Expr | number}): Expr",
@@ -13074,7 +13290,7 @@
13074
13290
  "documented": true,
13075
13291
  "source": {
13076
13292
  "file": "std/paint/materials.ts",
13077
- "line": 1380
13293
+ "line": 1415
13078
13294
  },
13079
13295
  "kind": "function",
13080
13296
  "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 +13307,45 @@
13091
13307
  }
13092
13308
  ]
13093
13309
  },
13310
+ "materials.sheenLobe": {
13311
+ "id": "materials.sheenLobe",
13312
+ "name": "sheenLobe",
13313
+ "qualifiedName": "sheenLobe",
13314
+ "category": "materials",
13315
+ "module": "std/paint/materials.ts",
13316
+ "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.",
13317
+ "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.",
13318
+ "examples": [
13319
+ "const velvet = sheenLobe({normal: n, light: L, view, roughness: 0.5, gain: u.sheen})"
13320
+ ],
13321
+ "tips": [],
13322
+ "see": [
13323
+ "materials.anisoSpecular",
13324
+ "materials.lambert",
13325
+ "materials.grazingOf"
13326
+ ],
13327
+ "import": {
13328
+ "statement": "import {materials} from 'shaders/std'",
13329
+ "usage": "materials.sheenLobe"
13330
+ },
13331
+ "usedBy": [
13332
+ "Satin"
13333
+ ],
13334
+ "documented": true,
13335
+ "source": {
13336
+ "file": "std/paint/materials.ts",
13337
+ "line": 1449
13338
+ },
13339
+ "kind": "function",
13340
+ "signature": "sheenLobe(opts: {\n normal: Expr\n light: Expr\n view: Expr\n roughness: Expr | number\n gain?: Expr | number\n}): Expr",
13341
+ "params": [
13342
+ {
13343
+ "name": "opts",
13344
+ "type": "{\n normal: Expr\n light: Expr\n view: Expr\n roughness: Expr | number\n gain?: Expr | number\n}",
13345
+ "optional": false
13346
+ }
13347
+ ]
13348
+ },
13094
13349
  "volume.interiorRay": {
13095
13350
  "id": "volume.interiorRay",
13096
13351
  "name": "interiorRay",
@@ -14329,6 +14584,7 @@
14329
14584
  "Marble",
14330
14585
  "MeshGradient",
14331
14586
  "Prism",
14587
+ "Satin",
14332
14588
  "StudioBackground",
14333
14589
  "Waveform"
14334
14590
  ],
@@ -14495,6 +14751,7 @@
14495
14751
  "Nebula",
14496
14752
  "Obsidian",
14497
14753
  "Plastic",
14754
+ "Satin",
14498
14755
  "Water"
14499
14756
  ],
14500
14757
  "documented": true,
@@ -14542,7 +14799,8 @@
14542
14799
  "BrushedMetal",
14543
14800
  "CarbonFiber",
14544
14801
  "Heatmap",
14545
- "Obsidian"
14802
+ "Obsidian",
14803
+ "Satin"
14546
14804
  ],
14547
14805
  "documented": true,
14548
14806
  "source": {
@@ -15580,6 +15838,7 @@
15580
15838
  "Plastic",
15581
15839
  "Prism",
15582
15840
  "ReactionDiffusion",
15841
+ "Satin",
15583
15842
  "Sparkle",
15584
15843
  "StudioBackground",
15585
15844
  "Voxels",
@@ -15647,6 +15906,7 @@
15647
15906
  "Plastic",
15648
15907
  "Prism",
15649
15908
  "ReactionDiffusion",
15909
+ "Satin",
15650
15910
  "StudioBackground",
15651
15911
  "Voxels",
15652
15912
  "Water",
@@ -15719,6 +15979,7 @@
15719
15979
  "Plastic",
15720
15980
  "Prism",
15721
15981
  "ReactionDiffusion",
15982
+ "Satin",
15722
15983
  "SmokeFill",
15723
15984
  "Sparkle",
15724
15985
  "StudioBackground",
@@ -15786,6 +16047,7 @@
15786
16047
  "Plastic",
15787
16048
  "Prism",
15788
16049
  "ReactionDiffusion",
16050
+ "Satin",
15789
16051
  "Sparkle",
15790
16052
  "StudioBackground",
15791
16053
  "TimeTrail",
@@ -15835,6 +16097,7 @@
15835
16097
  "usedBy": [
15836
16098
  "Prism",
15837
16099
  "ReactionDiffusion",
16100
+ "Satin",
15838
16101
  "StudioBackground",
15839
16102
  "Voxels",
15840
16103
  "Waveform"
@@ -15883,6 +16146,7 @@
15883
16146
  "Hologram",
15884
16147
  "Nebula",
15885
16148
  "Plastic",
16149
+ "Satin",
15886
16150
  "Water",
15887
16151
  "Waveform"
15888
16152
  ],
@@ -16530,6 +16794,7 @@
16530
16794
  "Plastic",
16531
16795
  "Prism",
16532
16796
  "ReactionDiffusion",
16797
+ "Satin",
16533
16798
  "SmokeFill",
16534
16799
  "StudioBackground",
16535
16800
  "Surface3D",
@@ -16603,6 +16868,7 @@
16603
16868
  "Polygon",
16604
16869
  "Prism",
16605
16870
  "ReactionDiffusion",
16871
+ "Satin",
16606
16872
  "Sparkle",
16607
16873
  "StudioBackground",
16608
16874
  "Voxels",
@@ -17543,6 +17809,7 @@
17543
17809
  "PixelSort",
17544
17810
  "Plastic",
17545
17811
  "ReactionDiffusion",
17812
+ "Satin",
17546
17813
  "Sparkle",
17547
17814
  "Water"
17548
17815
  ],
@@ -17604,6 +17871,7 @@
17604
17871
  "PixelThrow",
17605
17872
  "Plastic",
17606
17873
  "ReactionDiffusion",
17874
+ "Satin",
17607
17875
  "Sparkle",
17608
17876
  "StudioBackground",
17609
17877
  "Surface3D",
@@ -17676,6 +17944,7 @@
17676
17944
  "Plastic",
17677
17945
  "Prism",
17678
17946
  "ReactionDiffusion",
17947
+ "Satin",
17679
17948
  "Sparkle",
17680
17949
  "StudioBackground",
17681
17950
  "Surface3D",
@@ -17797,6 +18066,7 @@
17797
18066
  "Plastic",
17798
18067
  "Prism",
17799
18068
  "ReactionDiffusion",
18069
+ "Satin",
17800
18070
  "Sparkle",
17801
18071
  "StudioBackground",
17802
18072
  "Surface3D",
@@ -27593,7 +27863,7 @@
27593
27863
  "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
27864
  "source": {
27595
27865
  "file": "std/paint/noise.ts",
27596
- "line": 39
27866
+ "line": 41
27597
27867
  }
27598
27868
  },
27599
27869
  "noise.WaveTerm": {
@@ -27607,7 +27877,35 @@
27607
27877
  "description": "Multiplying an x-wave by a y-wave gives an interference pattern instead of stripes. `weight` scales the term, default 1.",
27608
27878
  "source": {
27609
27879
  "file": "std/paint/noise.ts",
27610
- "line": 55
27880
+ "line": 57
27881
+ }
27882
+ },
27883
+ "noise.Fold": {
27884
+ "id": "noise.Fold",
27885
+ "name": "Fold",
27886
+ "category": "noise",
27887
+ "module": "std/paint/noise.ts",
27888
+ "kind": "interface",
27889
+ "text": "interface Fold {\n offset: Expr\n width: Expr\n height: Expr\n phase: Expr\n}",
27890
+ "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.",
27891
+ "description": "",
27892
+ "source": {
27893
+ "file": "std/paint/noise.ts",
27894
+ "line": 199
27895
+ }
27896
+ },
27897
+ "noise.DrapeOptions": {
27898
+ "id": "noise.DrapeOptions",
27899
+ "name": "DrapeOptions",
27900
+ "category": "noise",
27901
+ "module": "std/paint/noise.ts",
27902
+ "kind": "interface",
27903
+ "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}",
27904
+ "summary": "The knobs that shape and animate a draped cloth, shared by `drapedFolds` and `clothCoords`.",
27905
+ "description": "",
27906
+ "source": {
27907
+ "file": "std/paint/noise.ts",
27908
+ "line": 321
27611
27909
  }
27612
27910
  },
27613
27911
  "noise.RgbStage": {
@@ -27621,7 +27919,7 @@
27621
27919
  "description": "Alpha is not touched.",
27622
27920
  "source": {
27623
27921
  "file": "std/paint/noise.ts",
27624
- "line": 732
27922
+ "line": 937
27625
27923
  }
27626
27924
  },
27627
27925
  "noise.ReliefBasis": {
@@ -27635,7 +27933,7 @@
27635
27933
  "description": "Pick one from `reliefBases`.",
27636
27934
  "source": {
27637
27935
  "file": "std/paint/noise.ts",
27638
- "line": 859
27936
+ "line": 1064
27639
27937
  }
27640
27938
  },
27641
27939
  "light.LightValue": {
@@ -29124,8 +29422,8 @@
29124
29422
  }
29125
29423
  },
29126
29424
  "coverage": {
29127
- "words": 570,
29128
- "documented": 570,
29425
+ "words": 575,
29426
+ "documented": 575,
29129
29427
  "undocumented": [],
29130
29428
  "curatedCategories": [
29131
29429
  "compose",