shaders 3.0.452 → 3.1.454

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 (860) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/{AngularBlur-BGPN-q7Q.js → AngularBlur-CIw_xeFr.js} +25 -31
  3. package/dist/core/Arc-Dh0gjBrJ.js +183 -0
  4. package/dist/core/{Ascii-MEJdXy2h.js → Ascii-CUk527uY.js} +34 -46
  5. package/dist/core/{Aurora-BAafQuBz.js → Aurora-CTWNhlNr.js} +14 -15
  6. package/dist/core/{BarShift-nVtvlHii.js → BarShift-BrOamln6.js} +24 -122
  7. package/dist/core/BarnDoors-D_lVAMPJ.js +170 -0
  8. package/dist/core/{Beam-D7IyWHAx.js → Beam-CgpfMTUq.js} +45 -461
  9. package/dist/core/{Bend-RtDgo8kD.js → Bend-CRuu6NuH.js} +13 -57
  10. package/dist/core/{Blob-DH-MnnS6.js → Blob-1mhEIcv5.js} +3 -3
  11. package/dist/core/BlockDissolve-DwWPjla0.js +178 -0
  12. package/dist/core/{BlockNoise-Drf4_hBO.js → BlockNoise-BMt760_p.js} +36 -113
  13. package/dist/core/{BlueNoise-CEwncn_5.js → BlueNoise-Cfo_HthN.js} +24 -46
  14. package/dist/core/Blur-Bc8evwsz.js +428 -0
  15. package/dist/core/{Boids-D0-S7SI7.js → Boids-CtvT1VsV.js} +105 -427
  16. package/dist/core/{BokehBlur-CXBx5wog.js → BokehBlur-CWQm00ut.js} +37 -214
  17. package/dist/core/{BrickPattern-BKuDn_RF.js → BrickPattern-DomddM0C.js} +89 -335
  18. package/dist/core/{BrightnessContrast-ph33aPUw.js → BrightnessContrast-Bs8AV0he.js} +16 -15
  19. package/dist/core/{BrushedMetal-CDtIZKcg.js → BrushedMetal-BAgNgeo1.js} +246 -798
  20. package/dist/core/{Bulge-fgRLH3BN.js → Bulge-CdhRTWSH.js} +13 -71
  21. package/dist/core/{CRTScreen-CSRu7VZT.js → CRTScreen-BxnPxDw9.js} +1 -1
  22. package/dist/core/{CarbonFiber-DXa8yomK.js → CarbonFiber-mK6eHIpy.js} +189 -736
  23. package/dist/core/{Chalkboard-UKLkHrLB.js → Chalkboard-BizZEHlC.js} +2 -2
  24. package/dist/core/{ChannelBlur-Bfl6C2nt.js → ChannelBlur-Oz40DKPZ.js} +15 -39
  25. package/dist/core/{CheckerWipe-DDUBzOJZ.js → CheckerWipe-yv4dK6n5.js} +83 -211
  26. package/dist/core/Checkerboard-Ynfnt3oJ.js +158 -0
  27. package/dist/core/{Chevron-Bc0h2Rzv.js → Chevron-CEwNP2vt.js} +46 -117
  28. package/dist/core/{ChromaFlow-wBzMJ-PA.js → ChromaFlow-BXw1jQkn.js} +3 -3
  29. package/dist/core/{ChromaticAberration--78QtyKl.js → ChromaticAberration-CWhYEGDU.js} +2 -2
  30. package/dist/core/Chrome-DoPYr4Kd.js +3438 -0
  31. package/dist/core/Circle-DGvP0Svo.js +267 -0
  32. package/dist/core/{ColorWheel-BLgkdEmc.js → ColorWheel-BCReEdLZ.js} +48 -63
  33. package/dist/core/{CompressionArtifacts-C61W9yw2.js → CompressionArtifacts-Cm0iOzys.js} +2 -2
  34. package/dist/core/{ConcentricSpin-BA-pPXA5.js → ConcentricSpin-B3GHzoS1.js} +37 -146
  35. package/dist/core/{ConicGradient-DD2NOoA2.js → ConicGradient-C3zzgyV4.js} +25 -143
  36. package/dist/core/{ContourLines-rxGkKb2q.js → ContourLines-DDzxvg9k.js} +5 -66
  37. package/dist/core/{CornerPin-CHkM91UE.js → CornerPin-VFPI_Jzq.js} +9 -54
  38. package/dist/core/Crescent-DL6EeZZp.js +187 -0
  39. package/dist/core/Cross-DQIgZt-C.js +188 -0
  40. package/dist/core/{Crystal-0oIYL_aS.js → Crystal-B9DIgDD7.js} +81 -262
  41. package/dist/core/{CurlNoise-BJCULaf9.js → CurlNoise-D6kSV8PJ.js} +40 -98
  42. package/dist/core/{CursorRipples-BLDfv2sS.js → CursorRipples-C1hLNWzZ.js} +63 -60
  43. package/dist/core/{CursorTrail-ByRtE4T-.js → CursorTrail-CPW8orHG.js} +66 -52
  44. package/dist/core/{DataMosh-zH8BS7dt.js → DataMosh-CjVK_gxL.js} +23 -56
  45. package/dist/core/{DiamondGradient-D6_jgke5.js → DiamondGradient-BkrLPdAd.js} +43 -186
  46. package/dist/core/{DiamondWipe-CeJJPxX6.js → DiamondWipe-Cscn7Dyy.js} +45 -205
  47. package/dist/core/{DiffuseBlur-CPniI-42.js → DiffuseBlur-DUBfHpUN.js} +8 -11
  48. package/dist/core/{DisplacementMap-CCnnAPvB.js → DisplacementMap-B-cVoGbC.js} +4 -3
  49. package/dist/core/{Dither-WIfj4N7O.js → Dither-B4lhnNLA.js} +9 -12
  50. package/dist/core/{DotGrid-BhzPWYK4.js → DotGrid-CJJXTOk6.js} +78 -355
  51. package/dist/core/{DropShadow-D-YFgaHS.js → DropShadow-B4msUftn.js} +31 -32
  52. package/dist/core/{Duotone-lXgv9Fip.js → Duotone-DF3dn0kC.js} +11 -8
  53. package/dist/core/Ellipse-WuGsM7Gr.js +168 -0
  54. package/dist/core/{Emboss-UmDoGSQF.js → Emboss-D5RYAc-U.js} +14 -35
  55. package/dist/core/{Engraving-CN0OrgUo.js → Engraving-DNNHKvIr.js} +12 -12
  56. package/dist/core/{ErosionNoise-Wu1fxJfJ.js → ErosionNoise-w1aTuwY4.js} +35 -98
  57. package/dist/core/{Exposure-B5oEoUk-.js → Exposure-BSsbosYN.js} +15 -11
  58. package/dist/core/{FallingLines-CsNVa3dc.js → FallingLines-C1YT49dj.js} +13 -14
  59. package/dist/core/{FilmGrain-Br5EDq0B.js → FilmGrain-BeZQzxdU.js} +21 -15
  60. package/dist/core/{FilmStock-BzaKrJRG.js → FilmStock-Bgn9OyQY.js} +9 -734
  61. package/dist/core/{Flip-HRnCpBGd.js → Flip-DJuox9qR.js} +11 -25
  62. package/dist/core/{FloatingParticles-DNGXQrHG.js → FloatingParticles-Ch5OJjCc.js} +128 -447
  63. package/dist/core/{FlowField-rJGiwKMI.js → FlowField-Cime_Fqy.js} +6 -5
  64. package/dist/core/Flower--1qeeCuA.js +187 -0
  65. package/dist/core/{FlowingGradient-CD6_NVZB.js → FlowingGradient-DL1e3OKu.js} +12 -17
  66. package/dist/core/{FlutedGlass-CrKD5b4k.js → FlutedGlass-CqSVa4kd.js} +5 -4
  67. package/dist/core/Fog-DvOvVKbF.js +2261 -0
  68. package/dist/core/{Form3D-DQ7SxWFV.js → Form3D-CabM27VZ.js} +152 -838
  69. package/dist/core/{FractalNoise-DOU_jooR.js → FractalNoise-Bu8FbMYX.js} +57 -321
  70. package/dist/core/{Frost-BEnyt-CW.js → Frost-BnE3EI6s.js} +77 -170
  71. package/dist/core/{GaborNoise-CMt5270_.js → GaborNoise-BZFyQbDr.js} +36 -99
  72. package/dist/core/{Glass-CSJ1vRoj.js → Glass-DPa3OWjZ.js} +15 -27
  73. package/dist/core/{GlassTiles-C3w1jqsb.js → GlassTiles-B4Y8x78X.js} +3 -2
  74. package/dist/core/{Glitch-BxP1fWwQ.js → Glitch-nokyLk8Q.js} +1 -1
  75. package/dist/core/Glow-C3VfGUb6.js +198 -0
  76. package/dist/core/{Godrays-DsolPk6B.js → Godrays-fglKeS0z.js} +37 -72
  77. package/dist/core/{Goo-Db0tOvqs.js → Goo-BPaUKk1S.js} +13 -42
  78. package/dist/core/{GradientMap-BfpgWnfm.js → GradientMap-DQ4IbzIx.js} +23 -17
  79. package/dist/core/{Grayscale-DTrRYf14.js → Grayscale-Bpp1Q2KT.js} +9 -11
  80. package/dist/core/Grid-BneV9T3T.js +684 -0
  81. package/dist/core/{GridDistortion-Du7cRxX_.js → GridDistortion-CAKSKhII.js} +8 -53
  82. package/dist/core/{Group-BKumfLn_.js → Group-UvbIuzy-.js} +1 -1
  83. package/dist/core/{HTMLInCanvas-CtKAkjSy.js → HTMLInCanvas-CMxSuq5H.js} +16 -27
  84. package/dist/core/{Halftone-CwWlH4Zi.js → Halftone-SiFx0wAg.js} +4 -3
  85. package/dist/core/Heart-DLQnxsbQ.js +144 -0
  86. package/dist/core/{Heatmap-D-61Tysu.js → Heatmap-Bp0wi8r1.js} +14 -31
  87. package/dist/core/{HexGrid-BxgXRDm3.js → HexGrid-LGx240mZ.js} +82 -486
  88. package/dist/core/{Hologram-DIgdhf5F.js → Hologram-B-090nzV.js} +14 -48
  89. package/dist/core/{Holographic-BNMw20mj.js → Holographic-CSIQUm1_.js} +90 -298
  90. package/dist/core/{HueShift-CiG-leUg.js → HueShift-B7l4vcZP.js} +17 -14
  91. package/dist/core/ImageTexture-D41xKACO.js +58 -0
  92. package/dist/core/InkFlow-Bd4RXQmm.js +1159 -0
  93. package/dist/core/{Invert-QtF0OVwG.js → Invert-CEfJB0WN.js} +9 -11
  94. package/dist/core/IrisWipe-O6dc-Aq2.js +163 -0
  95. package/dist/core/{IsometricCubes-C87okilH.js → IsometricCubes-BQFwe-5s.js} +106 -473
  96. package/dist/core/{Kaleidoscope-Ue2Atc25.js → Kaleidoscope-DQFV4-lX.js} +15 -71
  97. package/dist/core/{KeyFrames-Bb_6EmyV.js → KeyFrames-BjH6gHSf.js} +32 -67
  98. package/dist/core/{LensDistortion-DxhU8nws.js → LensDistortion-BcodYk7_.js} +3 -3
  99. package/dist/core/{LensFlare-YXo4zdAn.js → LensFlare-B4F0dq7O.js} +106 -348
  100. package/dist/core/{LightEdge-BzESg64B.js → LightEdge-l2zPIeMQ.js} +14 -31
  101. package/dist/core/{LightLeak-BQKAeM6h.js → LightLeak-BSy19CB6.js} +49 -333
  102. package/dist/core/Line-CRGYWOyW.js +1428 -0
  103. package/dist/core/{LinearBlur-DaAraWV3.js → LinearBlur-DGfbbIWb.js} +20 -31
  104. package/dist/core/{LinearGradient-CL5FnVfT.js → LinearGradient-DOWwm0bP.js} +59 -110
  105. package/dist/core/LinearWipe-0nTDgTcZ.js +162 -0
  106. package/dist/core/{LiquidMetal-BRhwukdo.js → LiquidMetal-BbyxqZoO.js} +180 -347
  107. package/dist/core/{Liquify-p_Gz_FHr.js → Liquify-Bg2tEc64.js} +10 -54
  108. package/dist/core/{MagneticFilings-DOvxWL0a.js → MagneticFilings-5NVqpsrW.js} +123 -416
  109. package/dist/core/{Marble-CkYRfCV8.js → Marble-CzoJcXvo.js} +14 -15
  110. package/dist/core/{Mirror-CxoKC1gR.js → Mirror-B_2eQT6d.js} +11 -67
  111. package/dist/core/{MultiPointGradient-B4qZwcHL.js → MultiPointGradient-NJZfFGVb.js} +27 -140
  112. package/dist/core/{Neon-C2QmSiyi.js → Neon-m8PtEGdE.js} +14 -33
  113. package/dist/core/{NoiseDissolve-DaNRO71N.js → NoiseDissolve-DxvqR71w.js} +21 -129
  114. package/dist/core/{ObjectTracker-e4hHSKMw.js → ObjectTracker-DlVNN9LJ.js} +41 -51
  115. package/dist/core/{PagePeel-DT6GI9mV.js → PagePeel-BZOvdHFV.js} +3 -2
  116. package/dist/core/{Paper-QrPBpeei.js → Paper-Bn3DETI2.js} +2 -2
  117. package/dist/core/Parallelogram-a6zB6mY9.js +187 -0
  118. package/dist/core/{ParticleField-B1nL_L7A.js → ParticleField-CUtlCqxz.js} +172 -385
  119. package/dist/core/{ParticleFlow-w2G9pdt5.js → ParticleFlow-Ck5Ta_Rj.js} +250 -2572
  120. package/dist/core/{Particles-BsxM8Kbc.js → Particles-rnTAu4Mr.js} +366 -475
  121. package/dist/core/{PerlinNoise-DqZj-I8R.js → PerlinNoise-BUbmE_JA.js} +36 -113
  122. package/dist/core/{Perspective-BzxylO20.js → Perspective-S94umCQn.js} +17 -71
  123. package/dist/core/{PixelSort-Dm2iMElk.js → PixelSort-CF0-TpU7.js} +2 -2
  124. package/dist/core/{PixelThrow-gRTKhK8X.js → PixelThrow-B7Ry665b.js} +7 -651
  125. package/dist/core/{Pixelate-B8ZnTAOo.js → Pixelate-BLdO8qAT.js} +1 -1
  126. package/dist/core/Plasma-DOH9gxWt.js +355 -0
  127. package/dist/core/{Plastic-DMJ99k56.js → Plastic-CQNoTl22.js} +86 -271
  128. package/dist/core/{PolarCoordinates-DOhGjR_6.js → PolarCoordinates-DZNOyHmN.js} +15 -72
  129. package/dist/core/Polygon-BM3xGxOC.js +231 -0
  130. package/dist/core/{Posterize-OvT-UsAO.js → Posterize-BJl7Irml.js} +51 -18
  131. package/dist/core/{Prism-DYBxTA6Z.js → Prism-CaJyExNA.js} +3 -3
  132. package/dist/core/{ProgressiveBlur-Da5uOM1i.js → ProgressiveBlur-B1Ur87dm.js} +56 -368
  133. package/dist/core/{RadialGradient-o_6P-7Dn.js → RadialGradient-C1Fb8TaL.js} +44 -185
  134. package/dist/core/RadialWipe-CA5xWWPN.js +222 -0
  135. package/dist/core/RandomBars-B7ZwitL3.js +238 -0
  136. package/dist/core/{ReactionDiffusion-DWTCvJJu.js → ReactionDiffusion--54drNkY.js} +403 -1270
  137. package/dist/core/{RectangularCoordinates-PM_QP9Cg.js → RectangularCoordinates-BEOFurXt.js} +14 -70
  138. package/dist/core/{ReflectivePlane-BpXGIShc.js → ReflectivePlane-wERmyiKx.js} +12 -77
  139. package/dist/core/{Repeater-CE4LJUbK.js → Repeater-Cy8up7cj.js} +2 -2
  140. package/dist/core/{Ring-DObEwgX4.js → Ring-Cogdtn-0.js} +19 -134
  141. package/dist/core/{RippleWipe-DQNw1oen.js → RippleWipe-fJwyE4vj.js} +24 -273
  142. package/dist/core/{Ripples-DKMqucX3.js → Ripples-BSHfhVG1.js} +3 -3
  143. package/dist/core/RoundedRect-D3intNNI.js +188 -0
  144. package/dist/core/{Saturation-BA0cEqnb.js → Saturation-D42Bfc5P.js} +14 -12
  145. package/dist/core/{Scratches-CvOYMmEB.js → Scratches-Ih3Kx_UW.js} +5 -5
  146. package/dist/core/{Sharpness-B25UDMka.js → Sharpness-Dyh6312-.js} +11 -11
  147. package/dist/core/{Shatter-BSaxWBf3.js → Shatter-Qc5aMkWj.js} +3 -4
  148. package/dist/core/{SimplexNoise-X8ctCpRm.js → SimplexNoise-E7ssgWPN.js} +37 -179
  149. package/dist/core/{SineWave-BZpbJLxE.js → SineWave-CnPtZLSs.js} +6 -5
  150. package/dist/core/{SliceWipe-CgUPHf9K.js → SliceWipe-Byb46V6I.js} +15 -25
  151. package/dist/core/Smoke-5x6IAk2_.js +1265 -0
  152. package/dist/core/SmokeFill-DOQpTlCv.js +3192 -0
  153. package/dist/core/SmokeFlow-B4fdM2M-.js +903 -0
  154. package/dist/core/{Solarize-BFDNOt5j.js → Solarize-BB0bXhP0.js} +15 -15
  155. package/dist/core/{SolidColor-dYxjV0YF.js → SolidColor-D-6N9JmI.js} +1 -1
  156. package/dist/core/{Spherize-B6SvuqQJ.js → Spherize-aWpru70e.js} +2 -2
  157. package/dist/core/{Spiral-CPZP_vQa.js → Spiral-Dbm2j7mM.js} +5 -4
  158. package/dist/core/Star-XtB9FBhQ.js +187 -0
  159. package/dist/core/{Stone-4agvCnSU.js → Stone-i7v3RIb9.js} +2 -2
  160. package/dist/core/{Strands-CmapxVwQ.js → Strands-BFaZBnNo.js} +6 -5
  161. package/dist/core/{Stretch-C1LWL_wK.js → Stretch-BKg0gjm4.js} +15 -72
  162. package/dist/core/{Stripes-EOLd6RRs.js → Stripes-B_SkTR2m.js} +83 -378
  163. package/dist/core/{StudioBackground-C7jsxhTF.js → StudioBackground-CUsUWJ2L.js} +14 -133
  164. package/dist/core/{SunBurst-CW8v2t1A.js → SunBurst-DiqSzz5A.js} +34 -52
  165. package/dist/core/{Surface3D-GduOaT4l.js → Surface3D-DxzfMHn2.js} +15 -21
  166. package/dist/core/{Swirl-DOWMWPUy.js → Swirl-DBxZ6Wud.js} +3 -3
  167. package/dist/core/Teardrop-CnhwMyQx.js +168 -0
  168. package/dist/core/{Text-BcmS8Qpt.js → Text-Cb6QJNWo.js} +51 -70
  169. package/dist/core/{ThinFilm-CA62fdTo.js → ThinFilm-B7CTONK1.js} +28 -176
  170. package/dist/core/{TiltShift-CYsneEnY.js → TiltShift-DqEFOoJG.js} +62 -368
  171. package/dist/core/{TimeTrail-UGRKixHj.js → TimeTrail-G_JamlY8.js} +28 -73
  172. package/dist/core/{Tint-DjGTug2D.js → Tint-Dj1rSoJ0.js} +14 -21
  173. package/dist/core/{Trapezoid-bgyR835g.js → Trapezoid-D2PMU9G3.js} +40 -160
  174. package/dist/core/{TriangularGrid-CUSkwEhh.js → TriangularGrid-C3DBCmaj.js} +69 -349
  175. package/dist/core/{Tritone-0AbzRJ53.js → Tritone-DfULv51I.js} +11 -8
  176. package/dist/core/{Truchet-C3rl-XiI.js → Truchet-yjZm8xe3.js} +73 -172
  177. package/dist/core/{Twirl-CPZBpUkY.js → Twirl-DfRsql00.js} +11 -67
  178. package/dist/core/{VHS-BIeq0vbY.js → VHS-Z23X9XD6.js} +1 -1
  179. package/dist/core/VenetianBlinds-CCucT73e.js +188 -0
  180. package/dist/core/Vesica-BIGpXjWv.js +168 -0
  181. package/dist/core/{Vibrance-gTtCSaNa.js → Vibrance-CtlvCONz.js} +15 -11
  182. package/dist/core/VideoTexture-DW6bQduh.js +58 -0
  183. package/dist/core/{Vignette-y7R3ujxN.js → Vignette-Dz3pPnPR.js} +24 -21
  184. package/dist/core/Voronoi-5QA-0zme.js +363 -0
  185. package/dist/core/{Water-BvymB3Av.js → Water-DlvNrnrU.js} +84 -269
  186. package/dist/core/{Watercolor-C7vDF39A.js → Watercolor-BWx4xdwk.js} +3 -3
  187. package/dist/core/{WaveDistortion-DMfhW-zm.js → WaveDistortion-CRQzZDLP.js} +18 -66
  188. package/dist/core/{WaveletNoise-CqnpQKOm.js → WaveletNoise-CZS67VBU.js} +36 -99
  189. package/dist/core/{Weave-CcYi9PzL.js → Weave-DpwAU5Rn.js} +77 -254
  190. package/dist/core/WebcamTexture-DauLQjCl.js +130 -0
  191. package/dist/core/{Wool-CpI-Xd6P.js → Wool-CEaWGZB1.js} +2 -2
  192. package/dist/core/WorleyNoise-CjRMr7xP.js +558 -0
  193. package/dist/core/{ZoomBlur-CSFf3Q4x.js → ZoomBlur-DgG9JA7a.js} +18 -29
  194. package/dist/core/aa-C8WSqiNB.js +1094 -0
  195. package/dist/core/{agents-BuYW06Wk.js → agents-C_kohsYu.js} +1 -1
  196. package/dist/core/bevel-ogqjoZKV.js +121 -0
  197. package/dist/core/{blur-BAqURXkj.js → blur-CZuIxzX6.js} +1782 -3
  198. package/dist/core/canvasRaster-BB2bNhS7.js +80 -0
  199. package/dist/core/cells-CM9mfnTr.js +1042 -0
  200. package/dist/core/cellular-qYnxKdPx.js +1593 -0
  201. package/dist/core/constants-DoOzbl5b.js +9 -0
  202. package/dist/core/{sdf-B5E-Vv1j.js → device-B0ZwBfOg.js} +107 -6
  203. package/dist/core/{edges-Dm0I-Ud7.js → edges-CD7gCAto.js} +665 -1
  204. package/dist/core/fields-CC0756V2.js +1311 -0
  205. package/dist/core/geom-90G-d_hc.js +1036 -0
  206. package/dist/core/{glass-ClmiwTb0.js → glass-D8xs_kIG.js} +1 -1
  207. package/dist/core/gpu/compute.d.ts +80 -9
  208. package/dist/core/gpu/compute.d.ts.map +1 -1
  209. package/dist/core/gpu/contract.d.ts +22 -1
  210. package/dist/core/gpu/contract.d.ts.map +1 -1
  211. package/dist/core/gpu/kit/aa.d.ts +111 -0
  212. package/dist/core/gpu/kit/aa.d.ts.map +1 -0
  213. package/dist/core/gpu/kit/blur.d.ts +288 -9
  214. package/dist/core/gpu/kit/blur.d.ts.map +1 -1
  215. package/dist/core/gpu/kit/cells.d.ts +136 -0
  216. package/dist/core/gpu/kit/cells.d.ts.map +1 -0
  217. package/dist/core/gpu/kit/cellular.d.ts +102 -0
  218. package/dist/core/gpu/kit/cellular.d.ts.map +1 -0
  219. package/dist/core/gpu/kit/constants.d.ts +52 -0
  220. package/dist/core/gpu/kit/constants.d.ts.map +1 -0
  221. package/dist/core/gpu/kit/effects/bevel.d.ts +5 -0
  222. package/dist/core/gpu/kit/effects/bevel.d.ts.map +1 -0
  223. package/dist/core/gpu/kit/effects/index.d.ts +3 -3
  224. package/dist/core/gpu/kit/effects/index.d.ts.map +1 -1
  225. package/dist/core/gpu/kit/effects/raymarch3d.d.ts +17 -34
  226. package/dist/core/gpu/kit/effects/raymarch3d.d.ts.map +1 -1
  227. package/dist/core/gpu/kit/effects/thinFilm.d.ts +3 -1
  228. package/dist/core/gpu/kit/effects/thinFilm.d.ts.map +1 -1
  229. package/dist/core/gpu/kit/fields.d.ts +143 -0
  230. package/dist/core/gpu/kit/fields.d.ts.map +1 -0
  231. package/dist/core/gpu/kit/geom.d.ts +129 -0
  232. package/dist/core/gpu/kit/geom.d.ts.map +1 -0
  233. package/dist/core/gpu/kit/host/canvasRaster.d.ts +104 -0
  234. package/dist/core/gpu/kit/host/canvasRaster.d.ts.map +1 -0
  235. package/dist/core/gpu/kit/host/mediaLifecycle.d.ts +173 -0
  236. package/dist/core/gpu/kit/host/mediaLifecycle.d.ts.map +1 -0
  237. package/dist/core/gpu/kit/host/pointer.d.ts +155 -0
  238. package/dist/core/gpu/kit/host/pointer.d.ts.map +1 -0
  239. package/dist/core/gpu/kit/index.d.ts +10 -0
  240. package/dist/core/gpu/kit/index.d.ts.map +1 -1
  241. package/dist/core/gpu/kit/lightfields.d.ts +114 -0
  242. package/dist/core/gpu/kit/lightfields.d.ts.map +1 -0
  243. package/dist/core/gpu/kit/lighting.d.ts +115 -0
  244. package/dist/core/gpu/kit/lighting.d.ts.map +1 -0
  245. package/dist/core/gpu/kit/media.d.ts +44 -0
  246. package/dist/core/gpu/kit/media.d.ts.map +1 -1
  247. package/dist/core/gpu/kit/noiseColor.d.ts +19 -4
  248. package/dist/core/gpu/kit/noiseColor.d.ts.map +1 -1
  249. package/dist/core/gpu/kit/reveal.d.ts +75 -0
  250. package/dist/core/gpu/kit/reveal.d.ts.map +1 -0
  251. package/dist/core/gpu/kit/sampling.d.ts +43 -0
  252. package/dist/core/gpu/kit/sampling.d.ts.map +1 -1
  253. package/dist/core/gpu/kit/sdf.d.ts +23 -0
  254. package/dist/core/gpu/kit/sdf.d.ts.map +1 -1
  255. package/dist/core/gpu/kit/sdf3d.d.ts +54 -1
  256. package/dist/core/gpu/kit/sdf3d.d.ts.map +1 -1
  257. package/dist/core/gpu/kit/tone.d.ts +100 -0
  258. package/dist/core/gpu/kit/tone.d.ts.map +1 -0
  259. package/dist/core/gpu/porters.d.ts +11 -1
  260. package/dist/core/gpu/porters.d.ts.map +1 -1
  261. package/dist/core/gpu/scaffolds/agentSystem.d.ts +244 -0
  262. package/dist/core/gpu/scaffolds/agentSystem.d.ts.map +1 -0
  263. package/dist/core/gpu/scaffolds/feedbackSim.d.ts +102 -0
  264. package/dist/core/gpu/scaffolds/feedbackSim.d.ts.map +1 -0
  265. package/dist/core/gpu/scaffolds/fluids.d.ts +170 -0
  266. package/dist/core/gpu/scaffolds/fluids.d.ts.map +1 -0
  267. package/dist/core/gpu/scaffolds/lateBoundChild.d.ts +51 -0
  268. package/dist/core/gpu/scaffolds/lateBoundChild.d.ts.map +1 -0
  269. package/dist/core/gpu/scaffolds/pointwiseFilter.d.ts +77 -0
  270. package/dist/core/gpu/scaffolds/pointwiseFilter.d.ts.map +1 -0
  271. package/dist/core/gpu/scaffolds/rttFilter.d.ts +35 -0
  272. package/dist/core/gpu/scaffolds/rttFilter.d.ts.map +1 -0
  273. package/dist/core/gpu/scaffolds/sdfShape.d.ts +98 -0
  274. package/dist/core/gpu/scaffolds/sdfShape.d.ts.map +1 -0
  275. package/dist/core/gpu/scaffolds/shared.d.ts +16 -0
  276. package/dist/core/gpu/scaffolds/shared.d.ts.map +1 -0
  277. package/dist/core/gpu/scaffolds/simShared.d.ts +61 -0
  278. package/dist/core/gpu/scaffolds/simShared.d.ts.map +1 -0
  279. package/dist/core/gpu/scaffolds/uvRemapShader.d.ts +134 -0
  280. package/dist/core/gpu/scaffolds/uvRemapShader.d.ts.map +1 -0
  281. package/dist/core/index.js +227 -212
  282. package/dist/core/lightfields-ffHoLyJn.js +1550 -0
  283. package/dist/core/lighting-D3jc6qOc.js +1270 -0
  284. package/dist/core/{media-_wFh8vJm.js → media-fQMXfvXd.js} +31 -2
  285. package/dist/core/mediaLifecycle-yHZ8w5aj.js +314 -0
  286. package/dist/core/{noise-C_ZfgxTN.js → noise-Bd6IGS0W.js} +1 -1
  287. package/dist/core/{noiseColor-Buljb-6r.js → noiseColor-DRDY44sf.js} +2 -2
  288. package/dist/core/noiseColor-DYhX5Js1.js +28 -0
  289. package/dist/core/{noiseStylize-7YW6DiP4.js → noiseStylize-CkeVSB9C.js} +2 -2
  290. package/dist/core/pointer-DGDGF-yO.js +88 -0
  291. package/dist/core/porters-DUtQounc.js +12220 -0
  292. package/dist/core/propConfigs-k3hs8KYL.js +190 -0
  293. package/dist/core/registry.js +222 -209
  294. package/dist/core/reveal-DhktaT1C.js +1071 -0
  295. package/dist/core/{shapeEffectBounds-CjOvQ3n3.js → sdf3d-CP87OlsQ.js} +18752 -18710
  296. package/dist/core/shaderRegistry-CRAdWHAK.js +431 -0
  297. package/dist/core/shaderRegistry.d.ts.map +1 -1
  298. package/dist/core/shaders/AngularBlur/index.d.ts +8 -4
  299. package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
  300. package/dist/core/shaders/AngularBlur/index.js +7 -5
  301. package/dist/core/shaders/Arc/index.d.ts +0 -65
  302. package/dist/core/shaders/Arc/index.d.ts.map +1 -1
  303. package/dist/core/shaders/Arc/index.js +6 -7
  304. package/dist/core/shaders/Ascii/index.d.ts.map +1 -1
  305. package/dist/core/shaders/Ascii/index.js +8 -5
  306. package/dist/core/shaders/Aurora/index.d.ts.map +1 -1
  307. package/dist/core/shaders/Aurora/index.js +9 -6
  308. package/dist/core/shaders/BarShift/index.d.ts +1 -7
  309. package/dist/core/shaders/BarShift/index.d.ts.map +1 -1
  310. package/dist/core/shaders/BarShift/index.js +8 -6
  311. package/dist/core/shaders/BarnDoors/index.d.ts.map +1 -1
  312. package/dist/core/shaders/BarnDoors/index.js +8 -5
  313. package/dist/core/shaders/Beam/index.d.ts.map +1 -1
  314. package/dist/core/shaders/Beam/index.js +9 -5
  315. package/dist/core/shaders/Bend/index.d.ts +0 -6
  316. package/dist/core/shaders/Bend/index.d.ts.map +1 -1
  317. package/dist/core/shaders/Bend/index.js +7 -5
  318. package/dist/core/shaders/Blob/index.js +6 -5
  319. package/dist/core/shaders/BlockDissolve/index.d.ts.map +1 -1
  320. package/dist/core/shaders/BlockDissolve/index.js +9 -6
  321. package/dist/core/shaders/BlockNoise/index.d.ts.map +1 -1
  322. package/dist/core/shaders/BlockNoise/index.js +13 -8
  323. package/dist/core/shaders/BlueNoise/index.d.ts.map +1 -1
  324. package/dist/core/shaders/BlueNoise/index.js +13 -8
  325. package/dist/core/shaders/Blur/index.d.ts +6 -6
  326. package/dist/core/shaders/Blur/index.d.ts.map +1 -1
  327. package/dist/core/shaders/Blur/index.js +7 -6
  328. package/dist/core/shaders/Boids/index.d.ts.map +1 -1
  329. package/dist/core/shaders/Boids/index.js +9 -8
  330. package/dist/core/shaders/BokehBlur/index.d.ts +16 -16
  331. package/dist/core/shaders/BokehBlur/index.d.ts.map +1 -1
  332. package/dist/core/shaders/BokehBlur/index.js +8 -6
  333. package/dist/core/shaders/BrickPattern/index.d.ts.map +1 -1
  334. package/dist/core/shaders/BrickPattern/index.js +10 -5
  335. package/dist/core/shaders/BrightnessContrast/index.d.ts.map +1 -1
  336. package/dist/core/shaders/BrightnessContrast/index.js +6 -5
  337. package/dist/core/shaders/BrushedMetal/index.d.ts +13 -1
  338. package/dist/core/shaders/BrushedMetal/index.d.ts.map +1 -1
  339. package/dist/core/shaders/BrushedMetal/index.js +12 -11
  340. package/dist/core/shaders/Bulge/index.d.ts +2 -16
  341. package/dist/core/shaders/Bulge/index.d.ts.map +1 -1
  342. package/dist/core/shaders/Bulge/index.js +6 -5
  343. package/dist/core/shaders/CRTScreen/index.js +6 -5
  344. package/dist/core/shaders/CarbonFiber/index.d.ts +13 -1
  345. package/dist/core/shaders/CarbonFiber/index.d.ts.map +1 -1
  346. package/dist/core/shaders/CarbonFiber/index.js +12 -11
  347. package/dist/core/shaders/Chalkboard/index.js +6 -5
  348. package/dist/core/shaders/ChannelBlur/index.d.ts.map +1 -1
  349. package/dist/core/shaders/ChannelBlur/index.js +7 -6
  350. package/dist/core/shaders/CheckerWipe/index.d.ts.map +1 -1
  351. package/dist/core/shaders/CheckerWipe/index.js +8 -5
  352. package/dist/core/shaders/Checkerboard/index.d.ts +0 -2
  353. package/dist/core/shaders/Checkerboard/index.d.ts.map +1 -1
  354. package/dist/core/shaders/Checkerboard/index.js +9 -6
  355. package/dist/core/shaders/Chevron/index.d.ts.map +1 -1
  356. package/dist/core/shaders/Chevron/index.js +8 -5
  357. package/dist/core/shaders/ChromaFlow/index.js +6 -6
  358. package/dist/core/shaders/ChromaticAberration/index.js +6 -5
  359. package/dist/core/shaders/Chrome/index.d.ts +152 -0
  360. package/dist/core/shaders/Chrome/index.d.ts.map +1 -0
  361. package/dist/core/shaders/Chrome/index.js +14 -0
  362. package/dist/core/shaders/Circle/index.d.ts +0 -50
  363. package/dist/core/shaders/Circle/index.d.ts.map +1 -1
  364. package/dist/core/shaders/Circle/index.js +6 -7
  365. package/dist/core/shaders/ColorWheel/index.d.ts.map +1 -1
  366. package/dist/core/shaders/ColorWheel/index.js +8 -5
  367. package/dist/core/shaders/CompressionArtifacts/index.js +6 -5
  368. package/dist/core/shaders/ConcentricSpin/index.d.ts +3 -17
  369. package/dist/core/shaders/ConcentricSpin/index.d.ts.map +1 -1
  370. package/dist/core/shaders/ConcentricSpin/index.js +8 -6
  371. package/dist/core/shaders/ConicGradient/index.d.ts.map +1 -1
  372. package/dist/core/shaders/ConicGradient/index.js +10 -5
  373. package/dist/core/shaders/ContourLines/index.d.ts +1 -1
  374. package/dist/core/shaders/ContourLines/index.d.ts.map +1 -1
  375. package/dist/core/shaders/ContourLines/index.js +7 -5
  376. package/dist/core/shaders/CornerPin/index.d.ts +0 -6
  377. package/dist/core/shaders/CornerPin/index.d.ts.map +1 -1
  378. package/dist/core/shaders/CornerPin/index.js +6 -5
  379. package/dist/core/shaders/Crescent/index.d.ts +0 -71
  380. package/dist/core/shaders/Crescent/index.d.ts.map +1 -1
  381. package/dist/core/shaders/Crescent/index.js +6 -7
  382. package/dist/core/shaders/Cross/index.d.ts +0 -71
  383. package/dist/core/shaders/Cross/index.d.ts.map +1 -1
  384. package/dist/core/shaders/Cross/index.js +6 -7
  385. package/dist/core/shaders/Crystal/index.d.ts.map +1 -1
  386. package/dist/core/shaders/Crystal/index.js +11 -11
  387. package/dist/core/shaders/CurlNoise/index.d.ts.map +1 -1
  388. package/dist/core/shaders/CurlNoise/index.js +13 -8
  389. package/dist/core/shaders/CursorRipples/index.d.ts.map +1 -1
  390. package/dist/core/shaders/CursorRipples/index.js +7 -5
  391. package/dist/core/shaders/CursorTrail/index.d.ts.map +1 -1
  392. package/dist/core/shaders/CursorTrail/index.js +7 -5
  393. package/dist/core/shaders/DataMosh/index.d.ts.map +1 -1
  394. package/dist/core/shaders/DataMosh/index.js +6 -5
  395. package/dist/core/shaders/DiamondGradient/index.d.ts.map +1 -1
  396. package/dist/core/shaders/DiamondGradient/index.js +10 -5
  397. package/dist/core/shaders/DiamondWipe/index.d.ts.map +1 -1
  398. package/dist/core/shaders/DiamondWipe/index.js +8 -5
  399. package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
  400. package/dist/core/shaders/DiffuseBlur/index.js +6 -5
  401. package/dist/core/shaders/DisplacementMap/index.d.ts.map +1 -1
  402. package/dist/core/shaders/DisplacementMap/index.js +7 -5
  403. package/dist/core/shaders/Dither/index.d.ts.map +1 -1
  404. package/dist/core/shaders/Dither/index.js +6 -5
  405. package/dist/core/shaders/DotGrid/index.d.ts +0 -1
  406. package/dist/core/shaders/DotGrid/index.d.ts.map +1 -1
  407. package/dist/core/shaders/DotGrid/index.js +11 -6
  408. package/dist/core/shaders/DropShadow/index.d.ts.map +1 -1
  409. package/dist/core/shaders/DropShadow/index.js +8 -5
  410. package/dist/core/shaders/Duotone/index.d.ts.map +1 -1
  411. package/dist/core/shaders/Duotone/index.js +6 -5
  412. package/dist/core/shaders/Ellipse/index.d.ts +0 -65
  413. package/dist/core/shaders/Ellipse/index.d.ts.map +1 -1
  414. package/dist/core/shaders/Ellipse/index.js +6 -7
  415. package/dist/core/shaders/Emboss/index.d.ts.map +1 -1
  416. package/dist/core/shaders/Emboss/index.js +8 -10
  417. package/dist/core/shaders/Engraving/index.d.ts.map +1 -1
  418. package/dist/core/shaders/Engraving/index.js +8 -6
  419. package/dist/core/shaders/ErosionNoise/index.d.ts.map +1 -1
  420. package/dist/core/shaders/ErosionNoise/index.js +13 -8
  421. package/dist/core/shaders/Exposure/index.d.ts.map +1 -1
  422. package/dist/core/shaders/Exposure/index.js +6 -5
  423. package/dist/core/shaders/FallingLines/index.d.ts.map +1 -1
  424. package/dist/core/shaders/FallingLines/index.js +8 -5
  425. package/dist/core/shaders/FilmGrain/index.d.ts.map +1 -1
  426. package/dist/core/shaders/FilmGrain/index.js +6 -5
  427. package/dist/core/shaders/FilmStock/index.d.ts +9 -10
  428. package/dist/core/shaders/FilmStock/index.d.ts.map +1 -1
  429. package/dist/core/shaders/FilmStock/index.js +7 -6
  430. package/dist/core/shaders/Flip/index.d.ts.map +1 -1
  431. package/dist/core/shaders/Flip/index.js +6 -5
  432. package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
  433. package/dist/core/shaders/FloatingParticles/index.js +9 -8
  434. package/dist/core/shaders/FlowField/index.d.ts.map +1 -1
  435. package/dist/core/shaders/FlowField/index.js +8 -6
  436. package/dist/core/shaders/Flower/index.d.ts +0 -71
  437. package/dist/core/shaders/Flower/index.d.ts.map +1 -1
  438. package/dist/core/shaders/Flower/index.js +6 -7
  439. package/dist/core/shaders/FlowingGradient/index.d.ts.map +1 -1
  440. package/dist/core/shaders/FlowingGradient/index.js +8 -6
  441. package/dist/core/shaders/FlutedGlass/index.d.ts.map +1 -1
  442. package/dist/core/shaders/FlutedGlass/index.js +7 -5
  443. package/dist/core/shaders/Fog/index.d.ts +1 -9
  444. package/dist/core/shaders/Fog/index.d.ts.map +1 -1
  445. package/dist/core/shaders/Fog/index.js +8 -5
  446. package/dist/core/shaders/Form3D/index.d.ts.map +1 -1
  447. package/dist/core/shaders/Form3D/index.js +7 -5
  448. package/dist/core/shaders/FractalNoise/index.d.ts.map +1 -1
  449. package/dist/core/shaders/FractalNoise/index.js +12 -7
  450. package/dist/core/shaders/Frost/index.d.ts.map +1 -1
  451. package/dist/core/shaders/Frost/index.js +11 -11
  452. package/dist/core/shaders/GaborNoise/index.d.ts.map +1 -1
  453. package/dist/core/shaders/GaborNoise/index.js +13 -8
  454. package/dist/core/shaders/Glass/index.d.ts.map +1 -1
  455. package/dist/core/shaders/Glass/index.js +9 -11
  456. package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
  457. package/dist/core/shaders/GlassTiles/index.js +7 -5
  458. package/dist/core/shaders/Glitch/index.js +6 -5
  459. package/dist/core/shaders/Glow/index.d.ts +22 -26
  460. package/dist/core/shaders/Glow/index.d.ts.map +1 -1
  461. package/dist/core/shaders/Glow/index.js +7 -6
  462. package/dist/core/shaders/Godrays/index.d.ts.map +1 -1
  463. package/dist/core/shaders/Godrays/index.js +9 -5
  464. package/dist/core/shaders/Goo/index.d.ts.map +1 -1
  465. package/dist/core/shaders/Goo/index.js +9 -10
  466. package/dist/core/shaders/GradientMap/index.d.ts.map +1 -1
  467. package/dist/core/shaders/GradientMap/index.js +7 -5
  468. package/dist/core/shaders/Grayscale/index.d.ts.map +1 -1
  469. package/dist/core/shaders/Grayscale/index.js +6 -5
  470. package/dist/core/shaders/Grid/index.d.ts +0 -1
  471. package/dist/core/shaders/Grid/index.d.ts.map +1 -1
  472. package/dist/core/shaders/Grid/index.js +11 -6
  473. package/dist/core/shaders/GridDistortion/index.d.ts +0 -6
  474. package/dist/core/shaders/GridDistortion/index.d.ts.map +1 -1
  475. package/dist/core/shaders/GridDistortion/index.js +6 -5
  476. package/dist/core/shaders/Group/index.js +6 -5
  477. package/dist/core/shaders/HTMLInCanvas/index.d.ts.map +1 -1
  478. package/dist/core/shaders/HTMLInCanvas/index.js +7 -5
  479. package/dist/core/shaders/Halftone/index.d.ts.map +1 -1
  480. package/dist/core/shaders/Halftone/index.js +7 -5
  481. package/dist/core/shaders/Heart/index.d.ts +0 -59
  482. package/dist/core/shaders/Heart/index.d.ts.map +1 -1
  483. package/dist/core/shaders/Heart/index.js +6 -7
  484. package/dist/core/shaders/Heatmap/index.d.ts.map +1 -1
  485. package/dist/core/shaders/Heatmap/index.js +10 -11
  486. package/dist/core/shaders/HexGrid/index.d.ts.map +1 -1
  487. package/dist/core/shaders/HexGrid/index.js +10 -5
  488. package/dist/core/shaders/Hologram/index.d.ts.map +1 -1
  489. package/dist/core/shaders/Hologram/index.js +10 -11
  490. package/dist/core/shaders/Holographic/index.d.ts.map +1 -1
  491. package/dist/core/shaders/Holographic/index.js +11 -11
  492. package/dist/core/shaders/HueShift/index.d.ts.map +1 -1
  493. package/dist/core/shaders/HueShift/index.js +7 -5
  494. package/dist/core/shaders/ImageTexture/index.d.ts +0 -6
  495. package/dist/core/shaders/ImageTexture/index.d.ts.map +1 -1
  496. package/dist/core/shaders/ImageTexture/index.js +6 -7
  497. package/dist/core/shaders/InkFlow/index.d.ts +1 -9
  498. package/dist/core/shaders/InkFlow/index.d.ts.map +1 -1
  499. package/dist/core/shaders/InkFlow/index.js +7 -5
  500. package/dist/core/shaders/Invert/index.d.ts.map +1 -1
  501. package/dist/core/shaders/Invert/index.js +6 -5
  502. package/dist/core/shaders/IrisWipe/index.d.ts.map +1 -1
  503. package/dist/core/shaders/IrisWipe/index.js +8 -5
  504. package/dist/core/shaders/IsometricCubes/index.d.ts.map +1 -1
  505. package/dist/core/shaders/IsometricCubes/index.js +10 -5
  506. package/dist/core/shaders/Kaleidoscope/index.d.ts +2 -16
  507. package/dist/core/shaders/Kaleidoscope/index.d.ts.map +1 -1
  508. package/dist/core/shaders/Kaleidoscope/index.js +7 -5
  509. package/dist/core/shaders/KeyFrames/index.d.ts.map +1 -1
  510. package/dist/core/shaders/KeyFrames/index.js +7 -5
  511. package/dist/core/shaders/LensDistortion/index.js +6 -6
  512. package/dist/core/shaders/LensFlare/index.d.ts.map +1 -1
  513. package/dist/core/shaders/LensFlare/index.js +10 -5
  514. package/dist/core/shaders/LightEdge/index.d.ts.map +1 -1
  515. package/dist/core/shaders/LightEdge/index.js +10 -11
  516. package/dist/core/shaders/LightLeak/index.d.ts.map +1 -1
  517. package/dist/core/shaders/LightLeak/index.js +10 -6
  518. package/dist/core/shaders/Line/index.d.ts +72 -0
  519. package/dist/core/shaders/Line/index.d.ts.map +1 -0
  520. package/dist/core/shaders/Line/index.js +8 -0
  521. package/dist/core/shaders/LinearBlur/index.d.ts +2 -1
  522. package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
  523. package/dist/core/shaders/LinearBlur/index.js +8 -5
  524. package/dist/core/shaders/LinearGradient/index.d.ts.map +1 -1
  525. package/dist/core/shaders/LinearGradient/index.js +8 -5
  526. package/dist/core/shaders/LinearWipe/index.d.ts.map +1 -1
  527. package/dist/core/shaders/LinearWipe/index.js +8 -5
  528. package/dist/core/shaders/LiquidMetal/index.d.ts +13 -1
  529. package/dist/core/shaders/LiquidMetal/index.d.ts.map +1 -1
  530. package/dist/core/shaders/LiquidMetal/index.js +12 -11
  531. package/dist/core/shaders/Liquify/index.d.ts +0 -6
  532. package/dist/core/shaders/Liquify/index.d.ts.map +1 -1
  533. package/dist/core/shaders/Liquify/index.js +6 -5
  534. package/dist/core/shaders/MagneticFilings/index.d.ts.map +1 -1
  535. package/dist/core/shaders/MagneticFilings/index.js +9 -8
  536. package/dist/core/shaders/Marble/index.d.ts.map +1 -1
  537. package/dist/core/shaders/Marble/index.js +9 -6
  538. package/dist/core/shaders/Mirror/index.d.ts +2 -16
  539. package/dist/core/shaders/Mirror/index.d.ts.map +1 -1
  540. package/dist/core/shaders/Mirror/index.js +7 -5
  541. package/dist/core/shaders/MultiPointGradient/index.d.ts.map +1 -1
  542. package/dist/core/shaders/MultiPointGradient/index.js +7 -5
  543. package/dist/core/shaders/Neon/index.d.ts.map +1 -1
  544. package/dist/core/shaders/Neon/index.js +6 -9
  545. package/dist/core/shaders/NoiseDissolve/index.d.ts.map +1 -1
  546. package/dist/core/shaders/NoiseDissolve/index.js +9 -6
  547. package/dist/core/shaders/ObjectTracker/index.d.ts.map +1 -1
  548. package/dist/core/shaders/ObjectTracker/index.js +9 -6
  549. package/dist/core/shaders/PagePeel/index.d.ts.map +1 -1
  550. package/dist/core/shaders/PagePeel/index.js +7 -5
  551. package/dist/core/shaders/Paper/index.js +7 -6
  552. package/dist/core/shaders/Parallelogram/index.d.ts +0 -71
  553. package/dist/core/shaders/Parallelogram/index.d.ts.map +1 -1
  554. package/dist/core/shaders/Parallelogram/index.js +6 -7
  555. package/dist/core/shaders/ParticleField/index.d.ts.map +1 -1
  556. package/dist/core/shaders/ParticleField/index.js +9 -8
  557. package/dist/core/shaders/ParticleFlow/index.d.ts +1 -6
  558. package/dist/core/shaders/ParticleFlow/index.d.ts.map +1 -1
  559. package/dist/core/shaders/ParticleFlow/index.js +9 -8
  560. package/dist/core/shaders/Particles/index.d.ts.map +1 -1
  561. package/dist/core/shaders/Particles/index.js +10 -11
  562. package/dist/core/shaders/PerlinNoise/index.d.ts.map +1 -1
  563. package/dist/core/shaders/PerlinNoise/index.js +13 -8
  564. package/dist/core/shaders/Perspective/index.d.ts +0 -12
  565. package/dist/core/shaders/Perspective/index.d.ts.map +1 -1
  566. package/dist/core/shaders/Perspective/index.js +7 -5
  567. package/dist/core/shaders/PixelSort/index.js +6 -5
  568. package/dist/core/shaders/PixelThrow/index.d.ts +8 -9
  569. package/dist/core/shaders/PixelThrow/index.d.ts.map +1 -1
  570. package/dist/core/shaders/PixelThrow/index.js +6 -6
  571. package/dist/core/shaders/Pixelate/index.js +6 -5
  572. package/dist/core/shaders/Plasma/index.d.ts +2 -2
  573. package/dist/core/shaders/Plasma/index.d.ts.map +1 -1
  574. package/dist/core/shaders/Plasma/index.js +12 -6
  575. package/dist/core/shaders/Plastic/index.d.ts.map +1 -1
  576. package/dist/core/shaders/Plastic/index.js +11 -11
  577. package/dist/core/shaders/PolarCoordinates/index.d.ts +2 -16
  578. package/dist/core/shaders/PolarCoordinates/index.d.ts.map +1 -1
  579. package/dist/core/shaders/PolarCoordinates/index.js +7 -5
  580. package/dist/core/shaders/Polygon/index.d.ts +0 -71
  581. package/dist/core/shaders/Polygon/index.d.ts.map +1 -1
  582. package/dist/core/shaders/Polygon/index.js +6 -7
  583. package/dist/core/shaders/Posterize/index.d.ts.map +1 -1
  584. package/dist/core/shaders/Posterize/index.js +6 -5
  585. package/dist/core/shaders/Prism/index.d.ts +2 -1
  586. package/dist/core/shaders/Prism/index.d.ts.map +1 -1
  587. package/dist/core/shaders/Prism/index.js +6 -5
  588. package/dist/core/shaders/ProgressiveBlur/index.d.ts +16 -16
  589. package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
  590. package/dist/core/shaders/ProgressiveBlur/index.js +8 -6
  591. package/dist/core/shaders/RadialGradient/index.d.ts.map +1 -1
  592. package/dist/core/shaders/RadialGradient/index.js +10 -5
  593. package/dist/core/shaders/RadialWipe/index.d.ts.map +1 -1
  594. package/dist/core/shaders/RadialWipe/index.js +8 -5
  595. package/dist/core/shaders/RandomBars/index.d.ts.map +1 -1
  596. package/dist/core/shaders/RandomBars/index.js +9 -6
  597. package/dist/core/shaders/ReactionDiffusion/index.d.ts.map +1 -1
  598. package/dist/core/shaders/ReactionDiffusion/index.js +8 -5
  599. package/dist/core/shaders/RectangularCoordinates/index.d.ts +2 -16
  600. package/dist/core/shaders/RectangularCoordinates/index.d.ts.map +1 -1
  601. package/dist/core/shaders/RectangularCoordinates/index.js +7 -5
  602. package/dist/core/shaders/ReflectivePlane/index.d.ts.map +1 -1
  603. package/dist/core/shaders/ReflectivePlane/index.js +7 -6
  604. package/dist/core/shaders/Repeater/index.js +6 -5
  605. package/dist/core/shaders/Ring/index.d.ts +0 -59
  606. package/dist/core/shaders/Ring/index.d.ts.map +1 -1
  607. package/dist/core/shaders/Ring/index.js +6 -7
  608. package/dist/core/shaders/RippleWipe/index.d.ts.map +1 -1
  609. package/dist/core/shaders/RippleWipe/index.js +8 -5
  610. package/dist/core/shaders/Ripples/index.js +6 -5
  611. package/dist/core/shaders/RoundedRect/index.d.ts +0 -71
  612. package/dist/core/shaders/RoundedRect/index.d.ts.map +1 -1
  613. package/dist/core/shaders/RoundedRect/index.js +6 -7
  614. package/dist/core/shaders/Saturation/index.d.ts.map +1 -1
  615. package/dist/core/shaders/Saturation/index.js +6 -5
  616. package/dist/core/shaders/Scratches/index.js +10 -8
  617. package/dist/core/shaders/Sharpness/index.d.ts.map +1 -1
  618. package/dist/core/shaders/Sharpness/index.js +6 -5
  619. package/dist/core/shaders/Shatter/index.js +6 -6
  620. package/dist/core/shaders/SimplexNoise/index.d.ts +0 -18
  621. package/dist/core/shaders/SimplexNoise/index.d.ts.map +1 -1
  622. package/dist/core/shaders/SimplexNoise/index.js +13 -7
  623. package/dist/core/shaders/SineWave/index.d.ts.map +1 -1
  624. package/dist/core/shaders/SineWave/index.js +7 -5
  625. package/dist/core/shaders/SliceWipe/index.d.ts.map +1 -1
  626. package/dist/core/shaders/SliceWipe/index.js +7 -5
  627. package/dist/core/shaders/Smoke/index.d.ts +1 -9
  628. package/dist/core/shaders/Smoke/index.d.ts.map +1 -1
  629. package/dist/core/shaders/Smoke/index.js +7 -5
  630. package/dist/core/shaders/SmokeFill/index.d.ts +1 -9
  631. package/dist/core/shaders/SmokeFill/index.d.ts.map +1 -1
  632. package/dist/core/shaders/SmokeFill/index.js +9 -10
  633. package/dist/core/shaders/SmokeFlow/index.d.ts +1 -9
  634. package/dist/core/shaders/SmokeFlow/index.d.ts.map +1 -1
  635. package/dist/core/shaders/SmokeFlow/index.js +7 -5
  636. package/dist/core/shaders/Solarize/index.d.ts.map +1 -1
  637. package/dist/core/shaders/Solarize/index.js +6 -5
  638. package/dist/core/shaders/SolidColor/index.js +2 -2
  639. package/dist/core/shaders/Spherize/index.js +6 -5
  640. package/dist/core/shaders/Spiral/index.d.ts.map +1 -1
  641. package/dist/core/shaders/Spiral/index.js +7 -5
  642. package/dist/core/shaders/Star/index.d.ts +0 -71
  643. package/dist/core/shaders/Star/index.d.ts.map +1 -1
  644. package/dist/core/shaders/Star/index.js +6 -7
  645. package/dist/core/shaders/Stone/index.js +4 -4
  646. package/dist/core/shaders/Strands/index.d.ts.map +1 -1
  647. package/dist/core/shaders/Strands/index.js +7 -5
  648. package/dist/core/shaders/Stretch/index.d.ts +2 -16
  649. package/dist/core/shaders/Stretch/index.d.ts.map +1 -1
  650. package/dist/core/shaders/Stretch/index.js +7 -5
  651. package/dist/core/shaders/Stripes/index.d.ts +0 -1
  652. package/dist/core/shaders/Stripes/index.d.ts.map +1 -1
  653. package/dist/core/shaders/Stripes/index.js +10 -6
  654. package/dist/core/shaders/StudioBackground/index.d.ts.map +1 -1
  655. package/dist/core/shaders/StudioBackground/index.js +9 -5
  656. package/dist/core/shaders/SunBurst/index.d.ts.map +1 -1
  657. package/dist/core/shaders/SunBurst/index.js +9 -5
  658. package/dist/core/shaders/Surface3D/index.d.ts.map +1 -1
  659. package/dist/core/shaders/Surface3D/index.js +8 -7
  660. package/dist/core/shaders/Swirl/index.js +6 -5
  661. package/dist/core/shaders/Teardrop/index.d.ts +0 -65
  662. package/dist/core/shaders/Teardrop/index.d.ts.map +1 -1
  663. package/dist/core/shaders/Teardrop/index.js +6 -7
  664. package/dist/core/shaders/Text/index.d.ts.map +1 -1
  665. package/dist/core/shaders/Text/index.js +10 -6
  666. package/dist/core/shaders/ThinFilm/index.d.ts.map +1 -1
  667. package/dist/core/shaders/ThinFilm/index.js +8 -9
  668. package/dist/core/shaders/TiltShift/index.d.ts +16 -16
  669. package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
  670. package/dist/core/shaders/TiltShift/index.js +8 -6
  671. package/dist/core/shaders/TimeTrail/index.d.ts.map +1 -1
  672. package/dist/core/shaders/TimeTrail/index.js +6 -6
  673. package/dist/core/shaders/Tint/index.d.ts.map +1 -1
  674. package/dist/core/shaders/Tint/index.js +6 -5
  675. package/dist/core/shaders/Trapezoid/index.d.ts +0 -71
  676. package/dist/core/shaders/Trapezoid/index.d.ts.map +1 -1
  677. package/dist/core/shaders/Trapezoid/index.js +6 -7
  678. package/dist/core/shaders/TriangularGrid/index.d.ts.map +1 -1
  679. package/dist/core/shaders/TriangularGrid/index.js +10 -5
  680. package/dist/core/shaders/Tritone/index.d.ts.map +1 -1
  681. package/dist/core/shaders/Tritone/index.js +6 -5
  682. package/dist/core/shaders/Truchet/index.d.ts.map +1 -1
  683. package/dist/core/shaders/Truchet/index.js +10 -5
  684. package/dist/core/shaders/Twirl/index.d.ts +2 -16
  685. package/dist/core/shaders/Twirl/index.d.ts.map +1 -1
  686. package/dist/core/shaders/Twirl/index.js +6 -5
  687. package/dist/core/shaders/VHS/index.js +6 -5
  688. package/dist/core/shaders/VenetianBlinds/index.d.ts.map +1 -1
  689. package/dist/core/shaders/VenetianBlinds/index.js +8 -5
  690. package/dist/core/shaders/Vesica/index.d.ts +0 -65
  691. package/dist/core/shaders/Vesica/index.d.ts.map +1 -1
  692. package/dist/core/shaders/Vesica/index.js +6 -7
  693. package/dist/core/shaders/Vibrance/index.d.ts.map +1 -1
  694. package/dist/core/shaders/Vibrance/index.js +6 -5
  695. package/dist/core/shaders/VideoTexture/index.d.ts +0 -25
  696. package/dist/core/shaders/VideoTexture/index.d.ts.map +1 -1
  697. package/dist/core/shaders/VideoTexture/index.js +7 -7
  698. package/dist/core/shaders/Vignette/index.d.ts.map +1 -1
  699. package/dist/core/shaders/Vignette/index.js +6 -5
  700. package/dist/core/shaders/Voronoi/index.d.ts.map +1 -1
  701. package/dist/core/shaders/Voronoi/index.js +11 -5
  702. package/dist/core/shaders/Water/index.d.ts.map +1 -1
  703. package/dist/core/shaders/Water/index.js +11 -11
  704. package/dist/core/shaders/Watercolor/index.js +7 -6
  705. package/dist/core/shaders/WaveDistortion/index.d.ts +0 -6
  706. package/dist/core/shaders/WaveDistortion/index.d.ts.map +1 -1
  707. package/dist/core/shaders/WaveDistortion/index.js +7 -5
  708. package/dist/core/shaders/WaveletNoise/index.d.ts.map +1 -1
  709. package/dist/core/shaders/WaveletNoise/index.js +13 -8
  710. package/dist/core/shaders/Weave/index.d.ts.map +1 -1
  711. package/dist/core/shaders/Weave/index.js +10 -5
  712. package/dist/core/shaders/WebcamTexture/index.d.ts +0 -6
  713. package/dist/core/shaders/WebcamTexture/index.d.ts.map +1 -1
  714. package/dist/core/shaders/WebcamTexture/index.js +8 -7
  715. package/dist/core/shaders/Wool/index.js +4 -4
  716. package/dist/core/shaders/WorleyNoise/index.d.ts +2 -2
  717. package/dist/core/shaders/WorleyNoise/index.d.ts.map +1 -1
  718. package/dist/core/shaders/WorleyNoise/index.js +12 -5
  719. package/dist/core/shaders/ZoomBlur/index.d.ts +2 -1
  720. package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
  721. package/dist/core/shaders/ZoomBlur/index.js +7 -5
  722. package/dist/core/tone-DPUvX6X0.js +705 -0
  723. package/dist/core/utilities/halfUvProps.d.ts +35 -0
  724. package/dist/core/utilities/halfUvProps.d.ts.map +1 -0
  725. package/dist/core/utilities/measure.d.ts.map +1 -1
  726. package/dist/core/utilities/propConfigs.d.ts +106 -0
  727. package/dist/core/utilities/propConfigs.d.ts.map +1 -0
  728. package/dist/core/utilities/transformations/index.js +1 -1
  729. package/dist/js/bundle.js +168 -168
  730. package/dist/js/createShader.js +1 -1
  731. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  732. package/dist/js/utils/generatePresetCode.js +54 -0
  733. package/dist/react/Chrome.js +226 -0
  734. package/dist/react/Line.js +226 -0
  735. package/dist/react/Preview.js +2 -0
  736. package/dist/react/Shader.js +1 -1
  737. package/dist/react/bundle.js +176 -176
  738. package/dist/react/components/BrushedMetal.d.ts +3 -1
  739. package/dist/react/components/BrushedMetal.d.ts.map +1 -1
  740. package/dist/react/components/CarbonFiber.d.ts +3 -1
  741. package/dist/react/components/CarbonFiber.d.ts.map +1 -1
  742. package/dist/react/components/Chrome.d.ts +46 -0
  743. package/dist/react/components/Chrome.d.ts.map +1 -0
  744. package/dist/react/components/Line.d.ts +40 -0
  745. package/dist/react/components/Line.d.ts.map +1 -0
  746. package/dist/react/components/LiquidMetal.d.ts +3 -1
  747. package/dist/react/components/LiquidMetal.d.ts.map +1 -1
  748. package/dist/react/engine/Preview.d.ts.map +1 -1
  749. package/dist/react/index.d.ts +2 -0
  750. package/dist/react/index.d.ts.map +1 -1
  751. package/dist/react/index.js +3 -1
  752. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  753. package/dist/react/utils/generatePresetCode.js +54 -0
  754. package/dist/registry.js +1471 -338
  755. package/dist/solid/components/BrushedMetal.d.ts +3 -1
  756. package/dist/solid/components/BrushedMetal.d.ts.map +1 -1
  757. package/dist/solid/components/CarbonFiber.d.ts +3 -1
  758. package/dist/solid/components/CarbonFiber.d.ts.map +1 -1
  759. package/dist/solid/components/Chrome.d.ts +43 -0
  760. package/dist/solid/components/Chrome.d.ts.map +1 -0
  761. package/dist/solid/components/Chrome.js +232 -0
  762. package/dist/solid/components/Line.d.ts +37 -0
  763. package/dist/solid/components/Line.d.ts.map +1 -0
  764. package/dist/solid/components/Line.js +232 -0
  765. package/dist/solid/components/LiquidMetal.d.ts +3 -1
  766. package/dist/solid/components/LiquidMetal.d.ts.map +1 -1
  767. package/dist/solid/engine/Preview.d.ts.map +1 -1
  768. package/dist/solid/engine/Preview.js +203 -199
  769. package/dist/solid/engine/Shader.js +1 -1
  770. package/dist/solid/index.d.ts +2 -0
  771. package/dist/solid/index.d.ts.map +1 -1
  772. package/dist/solid/index.js +333 -329
  773. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  774. package/dist/solid/utils/generatePresetCode.js +54 -0
  775. package/dist/svelte/components/BrushedMetal.svelte.d.ts +2 -0
  776. package/dist/svelte/components/CarbonFiber.svelte.d.ts +2 -0
  777. package/dist/svelte/components/Chrome.svelte.d.ts +33 -0
  778. package/dist/svelte/components/Line.svelte.d.ts +27 -0
  779. package/dist/svelte/components/LiquidMetal.svelte.d.ts +2 -0
  780. package/dist/svelte/index.d.ts +2 -0
  781. package/dist/svelte/index.js +2313 -1899
  782. package/dist/svelte/source/components/BrushedMetal.svelte +2 -0
  783. package/dist/svelte/source/components/CarbonFiber.svelte +2 -0
  784. package/dist/svelte/source/components/Chrome.svelte +357 -0
  785. package/dist/svelte/source/components/Line.svelte +351 -0
  786. package/dist/svelte/source/components/LiquidMetal.svelte +2 -0
  787. package/dist/svelte/source/engine/Preview.svelte +4 -0
  788. package/dist/svelte/source/index.js +2 -0
  789. package/dist/svelte/utils/generatePresetCode.js +54 -0
  790. package/dist/vue/BrushedMetal.vue_vue_type_script_setup_true_lang.js +2 -0
  791. package/dist/vue/CarbonFiber.vue_vue_type_script_setup_true_lang.js +2 -0
  792. package/dist/vue/Chrome.js +3 -0
  793. package/dist/vue/Chrome.vue_vue_type_script_setup_true_lang.js +247 -0
  794. package/dist/vue/Line.js +3 -0
  795. package/dist/vue/Line.vue_vue_type_script_setup_true_lang.js +234 -0
  796. package/dist/vue/LiquidMetal.vue_vue_type_script_setup_true_lang.js +2 -0
  797. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +4 -0
  798. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  799. package/dist/vue/components/BrushedMetal.vue.d.ts +2 -0
  800. package/dist/vue/components/BrushedMetal.vue.d.ts.map +1 -1
  801. package/dist/vue/components/CarbonFiber.vue.d.ts +2 -0
  802. package/dist/vue/components/CarbonFiber.vue.d.ts.map +1 -1
  803. package/dist/vue/components/Chrome.vue.d.ts +68 -0
  804. package/dist/vue/components/Chrome.vue.d.ts.map +1 -0
  805. package/dist/vue/components/Line.vue.d.ts +62 -0
  806. package/dist/vue/components/Line.vue.d.ts.map +1 -0
  807. package/dist/vue/components/LiquidMetal.vue.d.ts +2 -0
  808. package/dist/vue/components/LiquidMetal.vue.d.ts.map +1 -1
  809. package/dist/vue/index.d.ts +2 -0
  810. package/dist/vue/index.d.ts.map +1 -1
  811. package/dist/vue/index.js +3 -1
  812. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  813. package/dist/vue/utils/generatePresetCode.js +54 -0
  814. package/package.json +17 -1
  815. package/dist/core/Arc-B3WUGG1Z.js +0 -331
  816. package/dist/core/BarnDoors-D6E5jOl2.js +0 -447
  817. package/dist/core/BlockDissolve-DIGuzCsR.js +0 -365
  818. package/dist/core/Blur-BbEw_oFx.js +0 -701
  819. package/dist/core/Checkerboard-CjRqLaQW.js +0 -709
  820. package/dist/core/Circle-sKqyx9pq.js +0 -358
  821. package/dist/core/Crescent-SDicMQui.js +0 -335
  822. package/dist/core/Cross-Bv1j7D12.js +0 -335
  823. package/dist/core/Ellipse-B1QfTjTA.js +0 -316
  824. package/dist/core/Flower-DGCyfNeJ.js +0 -335
  825. package/dist/core/Fog-uK8ECyzk.js +0 -5667
  826. package/dist/core/Glow-6yyCrCzW.js +0 -2051
  827. package/dist/core/Grid-COJiaxy5.js +0 -1346
  828. package/dist/core/Heart-C-BeqQH8.js +0 -297
  829. package/dist/core/ImageTexture-56vkFGyi.js +0 -183
  830. package/dist/core/InkFlow-DgS686Pl.js +0 -4983
  831. package/dist/core/IrisWipe-BEtEyvcI.js +0 -418
  832. package/dist/core/LinearWipe-xR6RSzjC.js +0 -423
  833. package/dist/core/Parallelogram-C_WrJLLX.js +0 -335
  834. package/dist/core/Plasma-BEub5fXm.js +0 -715
  835. package/dist/core/Polygon-D0hD4asI.js +0 -379
  836. package/dist/core/RadialWipe-gmGpyKWI.js +0 -528
  837. package/dist/core/RandomBars-CrDa3Bam.js +0 -490
  838. package/dist/core/RoundedRect-CFd87T89.js +0 -336
  839. package/dist/core/Smoke-B7xEP6sH.js +0 -5003
  840. package/dist/core/SmokeFill-B0nTuWPV.js +0 -7118
  841. package/dist/core/SmokeFlow-B0Li2heA.js +0 -4610
  842. package/dist/core/Star-CcfONMfP.js +0 -335
  843. package/dist/core/Teardrop-D4g6UQ84.js +0 -316
  844. package/dist/core/VenetianBlinds-sWQYWM0-.js +0 -459
  845. package/dist/core/Vesica-CG1x-_aG.js +0 -316
  846. package/dist/core/VideoTexture-DqfCv_YE.js +0 -927
  847. package/dist/core/Voronoi--B90OaVd.js +0 -935
  848. package/dist/core/WebcamTexture-C_tF_65y.js +0 -220
  849. package/dist/core/WorleyNoise-DqYFie3m.js +0 -1667
  850. package/dist/core/compute-DYJOCqJI.js +0 -31
  851. package/dist/core/dataEncoding-CEmpiitu.js +0 -24
  852. package/dist/core/device-BODv_4aH.js +0 -10
  853. package/dist/core/gpu/kit/effects/prism.d.ts +0 -111
  854. package/dist/core/gpu/kit/effects/prism.d.ts.map +0 -1
  855. package/dist/core/naturalSize-B679wTgN.js +0 -24
  856. package/dist/core/noiseColor-88y7I7KI.js +0 -103
  857. package/dist/core/porters-DnWlc17D.js +0 -991
  858. package/dist/core/shaderRegistry-DwraFv9_.js +0 -427
  859. /package/dist/core/{fonts-DFuXI3Hk.js → fonts-ScBvKolx.js} +0 -0
  860. /package/dist/core/{transformations-CsPUHppB.js → transformations-B-zNWNdd.js} +0 -0
@@ -0,0 +1,244 @@
1
+ import { TgpuBindGroupLayout } from 'typegpu';
2
+ import { AnyWgslStruct, Infer } from 'typegpu/data';
3
+ import { ComputeStep, KitComputePipeline } from '../compute';
4
+ import { GpuFragmentParams, KitTexture } from '../contract';
5
+ import { d } from '../kit';
6
+
7
+ /** A value with a lower setting for coarse-pointer (phone/tablet) GPUs. */
8
+ export interface DeviceTier {
9
+ desktop: number;
10
+ mobile: number;
11
+ }
12
+ /**
13
+ * Pick the coarse-pointer or the desktop value.
14
+ *
15
+ * BUILD-TIME CONSTANT BY DESIGN for a resolution: the accumulator length lives in a module-scope
16
+ * `tgpu.bindGroupLayout`, so it must be decided at import time, not per composition. SSR and the
17
+ * GPU-free tests resolve to `desktop`.
18
+ */
19
+ export declare function resolveDeviceTier(tier: DeviceTier): number;
20
+ /**
21
+ * The square render/accumulator resolution for this device tier.
22
+ *
23
+ * PAIR THIS WITH A FIXED `SIZE_REF_RES`. Agent body sizes are authored in texels, so deriving them
24
+ * from the live (tiered) resolution makes the same preset render a *larger* flock on a phone —
25
+ * fewer texels across the same canvas means each texel covers more screen. Size math must divide by
26
+ * {@link SIZE_REF_RES}; only the buffer/texture extents use the tiered value.
27
+ */
28
+ export declare function resolveRenderRes(tier: DeviceTier): number;
29
+ /** The fixed resolution agent sizes are authored against, decoupling them from {@link resolveRenderRes}. */
30
+ export declare const SIZE_REF_RES = 1024;
31
+ /**
32
+ * Fixed-point gains for the atomic energy accumulators.
33
+ *
34
+ * The resolve's alpha curve is `1 − e^(−1.6·E)` with `E = raw/255`, which reaches 1.0 only
35
+ * asymptotically. A HARD shape's interior returns coverage exactly 1, so at a gain of 255 its
36
+ * centre would resolve to `1 − e^(−1.6)` ≈ 0.80 — a solid dot rendering 80% grey. `HARD`
37
+ * over-drives the scale by 2.5× so those interiors saturate; `SOFT` keeps the true scale because a
38
+ * Gaussian skirt is *supposed* to top out below opaque.
39
+ */
40
+ export declare const FIXED_POINT_GAINS: {
41
+ readonly HARD: 637;
42
+ readonly SOFT: 255;
43
+ };
44
+ /**
45
+ * The R2 sequence's irrational strides (the 2D "plastic constant" generalization of the golden
46
+ * ratio): `frac(0.5 + i·α)` gives quasi-uniform coverage for ANY prefix of `i`, so a count slider
47
+ * can grow or shrink the population without re-seeding and without leaving holes. Positions derived
48
+ * from the index alone need no storage.
49
+ */
50
+ export declare const R2_ALPHA: readonly [0.7548776662466927, 0.5698402909980532];
51
+ /**
52
+ * The R3 sequence's strides — the same construction one dimension up. Used per FRAME rather than
53
+ * per agent: stepping a sub-cell offset along R3 dithers a voxel lattice evenly over time, which is
54
+ * what keeps a density grid from standing in coherent moiré with a shape boundary.
55
+ */
56
+ export declare const R3_ALPHA: readonly [0.8191725133961645, 0.6710436067037893, 0.5497004779019703];
57
+ /** Per-frame values every agent shader derives from the renderer's frame params. */
58
+ export interface AgentFrame {
59
+ /** Frame delta clamped to [1ms, 33ms] — one stalled frame must not teleport the simulation. */
60
+ dt: number;
61
+ /** Viewport aspect (guarded against a zero-height canvas). */
62
+ aspect: number;
63
+ pointerX: number;
64
+ pointerY: number;
65
+ }
66
+ /** The subset of the renderer's frame params an agent simulation reads. */
67
+ export interface AgentFrameParams {
68
+ pointer?: {
69
+ x: number;
70
+ y: number;
71
+ };
72
+ deltaTime?: number;
73
+ dimensions?: {
74
+ width: number;
75
+ height: number;
76
+ };
77
+ }
78
+ /**
79
+ * Normalize the renderer's frame params: dt clamp, aspect, pointer defaults.
80
+ *
81
+ * The dt clamp is load-bearing in both directions. The floor stops a division blowing up on a
82
+ * 0ms frame; the 33ms ceiling means a tab-switch or a long GC pause advances the sim by one slow
83
+ * frame instead of integrating a one-second step and throwing every agent off-screen.
84
+ *
85
+ * `fallbackAspect` is what a shader wants when the canvas has no height yet — 16/9 for a
86
+ * generator that fills the viewport, 1 for one whose grid is refit to the aspect each frame.
87
+ */
88
+ export declare function readAgentFrame(frameParams: unknown, fallbackAspect?: number): AgentFrame;
89
+ /**
90
+ * The numeric prop reader every one of these shaders declared inline (10 copies).
91
+ *
92
+ * Why a fallback per call rather than reading the prop's declared default: a dynamic prop (a range
93
+ * map, a mouse binding) can resolve to a non-number for a frame, and a kernel uniform must never
94
+ * receive `undefined`.
95
+ */
96
+ export declare function makeCpuValueGetter(getCpuValue: (prop: string) => unknown): (key: string, fallback: number) => number;
97
+ /** Clamp a raw count prop into `[min, cap]` — the runtime cap, never the prop's declared range. */
98
+ export declare function clampAgentCount(raw: number, min: number, cap: number): number;
99
+ /** Inclusive texel bounds of a splat window, already clipped to the accumulator. */
100
+ export declare const SplatWindow: d.WgslStruct<{
101
+ x0: d.I32;
102
+ x1: d.I32;
103
+ y0: d.I32;
104
+ y1: d.I32;
105
+ }>;
106
+ /**
107
+ * The splat window for an agent living in WORLD space — x ∈ [0, aspect], y ∈ [0, 1], 1 unit == the
108
+ * canvas height — splatting into a SQUARE `res × res` accumulator.
109
+ *
110
+ * Two things make this worth having in one place. First, the window is sized to the agent's ACTUAL
111
+ * reach rather than a fixed box, which is a correctness fix and not just an optimization: a fixed
112
+ * ±16-texel window hard-clipped large `arrow` / `streak` / `glow` shapes into squares. Second, the
113
+ * radius is PER AXIS. The accumulator is square but the world domain is `aspect` wide, so one
114
+ * x-texel covers `aspect` times as much world as a y-texel — hence the divide. Getting that wrong
115
+ * is invisible at 1:1 and stretches every agent on a wide canvas.
116
+ *
117
+ * `reach` is the world-space accept radius (shape extent + AA margin). Clipping happens once here,
118
+ * so the caller's inner loop carries no bounds test, and an off-screen agent clips to an empty
119
+ * range — which is also the off-target early-out.
120
+ */
121
+ export declare const worldSplatWindow: import('typegpu').TgpuFn<(pos: d.Vec2f, reach: d.F32, aspect: d.F32, res: d.F32) => d.WgslStruct<{
122
+ x0: d.I32;
123
+ x1: d.I32;
124
+ y0: d.I32;
125
+ y1: d.I32;
126
+ }>>;
127
+ /**
128
+ * The splat window for an agent already projected to TEXEL coordinates, with an isotropic radius
129
+ * (the projected-3D consumers, whose render target has square texels so no aspect term survives).
130
+ *
131
+ * `last` is the inclusive maximum texel per axis, passed rather than derived because the target
132
+ * extent can be a per-frame uniform (a target fitted to the frame aspect).
133
+ */
134
+ export declare const texelSplatWindow: import('typegpu').TgpuFn<(center: d.Vec2f, rad: d.I32, last: d.Vec2i) => d.WgslStruct<{
135
+ x0: d.I32;
136
+ x1: d.I32;
137
+ y0: d.I32;
138
+ y1: d.I32;
139
+ }>>;
140
+ /**
141
+ * Accumulated energy → coverage alpha: `1 − e^(−k·energy)`. Saturating, so overlapping agents
142
+ * deepen toward opaque without ever clipping, and empty texels resolve to exactly 0 (fully
143
+ * transparent gaps, so the field composites over anything).
144
+ *
145
+ * WHY THE READ-THEN-ZERO ISN'T HERE. Every consumer's resolve reads its accumulator with
146
+ * `atomicLoad` and immediately `atomicStore`s 0 — one thread owns each cell and nothing else is in
147
+ * flight, so that needs no exchange and replaces a separate full-target clear pass. It cannot be
148
+ * shared as a `tgpu.fn` because WGSL cannot take a storage array as a function parameter, so the
149
+ * two-line load/store stays in each shader, next to the layout entry it names.
150
+ */
151
+ export declare const energyCoverageAlpha: import('typegpu').TgpuFn<(energy: d.F32, k: d.F32) => d.F32>;
152
+ /**
153
+ * Semi-implicit Euler with exponential drag and a speed clamp — the integrator the force-based
154
+ * consumers share.
155
+ *
156
+ * Semi-implicit (velocity updated first, then position from the NEW velocity) is what keeps an
157
+ * underdamped spring stable at the frame rates a browser actually delivers; explicit Euler gains
158
+ * energy and eventually explodes. `dragMul` is `exp(−drag·dt)` computed on the CPU, so the decay is
159
+ * frame-rate independent rather than a per-frame multiply. The clamp is a safety net, not a feel
160
+ * knob: without it one bad frame's force can launch an agent out of the domain entirely.
161
+ */
162
+ export declare const integrateSemiImplicitEuler: import('typegpu').TgpuFn<(vel: d.Vec3f, force: d.Vec3f, dt: d.F32, dragMul: d.F32, maxSpeed: d.F32) => d.Vec3f>;
163
+ /** How many threads a step dispatches. */
164
+ export type AgentThreads =
165
+ /** The runtime agent count, passed to `frame({count})`. */
166
+ 'agents'
167
+ /** `maxAgents` — the static bound, for a one-shot init/re-seed over every slot. */
168
+ | 'max'
169
+ /** A per-frame 2D grid, passed to `frame({grid})`. */
170
+ | 'grid'
171
+ /** A fixed size given by `size` (a full render target, a voxel grid). */
172
+ | 'fixed';
173
+ export interface AgentPipelineSpec {
174
+ /** A module-scope `tgpu.fn` kernel: `(i)` for 1D dispatch, `(x, y)` for `'grid'` / 2D `'fixed'`. */
175
+ kernel: ((i: number) => void) | ((x: number, y: number) => void);
176
+ threads: AgentThreads;
177
+ /** Required for `threads: 'fixed'`; its length picks the 1D or 2D dispatch. */
178
+ size?: [number] | [number, number];
179
+ /** Chain `extraBindGroup` onto this pipeline (a shape family's own SDF resources). */
180
+ extra?: boolean;
181
+ }
182
+ export interface AgentSystemConfig<TParams extends AnyWgslStruct> {
183
+ /**
184
+ * The shader's module-scope bind group layout. Buffers are allocated by introspecting it, and
185
+ * the kernels reference it directly — so its key names are the WGSL identifiers.
186
+ */
187
+ layout: TgpuBindGroupLayout;
188
+ /** Schema of the layout's `uniform` entry — the per-frame CPU-derived inputs. */
189
+ params: TParams;
190
+ /** The output storage texture the resolve writes and the fragment samples. */
191
+ output: {
192
+ /** Layout key of the `storageTexture` entry. */
193
+ key: string;
194
+ /** Key in the returned `outputs` record (what the fragment reads off `computeOutputs`). */
195
+ name: string;
196
+ size: [number, number];
197
+ format: 'rgba16float';
198
+ };
199
+ /** The static dispatch/loop bound — how many slots the state buffers hold. */
200
+ maxAgents: number;
201
+ /** Effective count ceiling per device tier. The prop's declared range is unchanged. */
202
+ countCap?: DeviceTier;
203
+ /** Layout keys bound late, from another node's output (a child RTT). See `bindExternal`. */
204
+ externalKeys?: readonly string[];
205
+ /** A second bind group chained onto every pipeline marked `extra: true`. */
206
+ extraBindGroup?: unknown;
207
+ pipelines: Record<string, AgentPipelineSpec>;
208
+ /** Per-frame execution order (keys of `pipelines`). */
209
+ program: readonly string[];
210
+ /** Key of the one-shot step run before the first frame's program, and again on a reseed. */
211
+ initStep?: string;
212
+ }
213
+ export interface AgentSystem<TParams extends AnyWgslStruct> {
214
+ /** Spread into the compute hook's `outputs`. */
215
+ outputs: Record<string, KitTexture>;
216
+ /** Write the whole per-frame uniform struct (strict layout — a plain struct has no partial patch). */
217
+ writeParams: (values: Infer<TParams>) => void;
218
+ /** The effective agent-count ceiling for this device. */
219
+ readonly countCap: number;
220
+ /** Clamp a raw count prop into `[min, countCap]`. */
221
+ resolveCount: (raw: number, min?: number) => number;
222
+ /** The created pipelines, by config key — for a shader that needs to dispatch one itself. */
223
+ pipelines: Record<string, KitComputePipeline>;
224
+ /** Bind the late-arriving external resources (call from `bindInputs`). */
225
+ bindExternal: (entries: Record<string, unknown>) => void;
226
+ /**
227
+ * The frame's compute steps, with the one-shot init prepended on the first call (and whenever
228
+ * `reseed` changes). `null` until every external key is bound.
229
+ */
230
+ frame: (opts?: {
231
+ count?: number;
232
+ grid?: [number, number];
233
+ reseed?: number;
234
+ }) => ComputeStep[] | null;
235
+ }
236
+ /**
237
+ * Build the runtime side of an agent simulation: state buffers, the output texture, the uniform,
238
+ * the bind group, the guarded pipelines, and the per-frame step list.
239
+ *
240
+ * Returns `null` when there is no GPU device (SSR, the GPU-free resolve tests) — the caller returns
241
+ * `null` from its `compute` hook and the fragment falls back.
242
+ */
243
+ export declare function createAgentSystem<TParams extends AnyWgslStruct>(params: GpuFragmentParams, config: AgentSystemConfig<TParams>): AgentSystem<TParams> | null;
244
+ //# sourceMappingURL=agentSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentSystem.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/agentSystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import { ComputeStep, PingPongPair } from '../compute';
2
+ import { GpuFragmentParams, KitTexture } from '../contract';
3
+
4
+ export { createPingPongPair, type PingPongPair } from '../compute';
5
+ /** Texture size as `[width, height]`, or one number for a square. */
6
+ export type SimSize = number | readonly [number, number];
7
+ /** One side of the ping-pong: the state texture plus any extra lockstep-swapping slots. */
8
+ export interface SimSlot {
9
+ /** The state texture for this side. */
10
+ state: unknown;
11
+ /** Extra per-side textures declared via `extraSlots`, keyed by their declared name. */
12
+ extra: Record<string, unknown>;
13
+ }
14
+ /** What `bindGroups` / `staticGroups` get to build bind groups from. */
15
+ export interface SimBindContext {
16
+ /** The child RTT, already typed for `root.createBindGroup`. */
17
+ childTexture: never;
18
+ /** The display copy the fragment samples (a write-only storage target for the kernel). */
19
+ display: unknown;
20
+ /** Orientation-independent textures declared via `textures`, keyed by name. */
21
+ textures: Record<string, unknown>;
22
+ }
23
+ /** What the per-frame callback gets. */
24
+ export interface SimTick<TGroups, TStatic> {
25
+ /** Bind groups for the CURRENT orientation. */
26
+ groups: TGroups;
27
+ /** Orientation-independent bind groups (from `staticGroups`), or `undefined` if none declared. */
28
+ shared: TStatic;
29
+ /** Frame delta, clamped to `maxDeltaTime` and multiplied by the `speedProp` value. */
30
+ dt: number;
31
+ /** Sum of every `dt` so far — the sim's own clock, unaffected by the global time uniform. */
32
+ localTime: number;
33
+ /** The raw frame delta before clamping and speed scaling. */
34
+ rawDeltaTime: number;
35
+ }
36
+ export interface FeedbackTrailSimOptions<TGroups, TStatic> {
37
+ /** State + display resolution. */
38
+ size: SimSize;
39
+ /** Storage format for state, display and extra textures. Must be a core storage format. */
40
+ format: 'rgba16float' | 'rgba32float';
41
+ /**
42
+ * Extra texture pairs that swap in LOCKSTEP with the state (TimeTrail's previous-live-frame
43
+ * copy). Value is that slot's size — pass `[1, 1]` for a stub a compile-time-disabled kernel
44
+ * variant never touches but the bind group still has to fill.
45
+ */
46
+ extraSlots?: Record<string, SimSize>;
47
+ /** Orientation-independent extra textures (KeyFrames' feature grid). */
48
+ textures?: Record<string, SimSize>;
49
+ /** Prop whose value scales `dt`. Omit for an unscaled (real-time) sim. */
50
+ speedProp?: string;
51
+ /** Upper bound on the frame delta before speed scaling. Defaults to 0.05 s. */
52
+ maxDeltaTime?: number;
53
+ /** Build the bind groups for one orientation. Called twice (once per orientation), late. */
54
+ bindGroups: (ctx: SimBindContext, read: SimSlot, write: SimSlot) => TGroups;
55
+ /** Build orientation-independent bind groups. Called once, late. */
56
+ staticGroups?: (ctx: SimBindContext) => TStatic;
57
+ }
58
+ export interface FeedbackTrailSim<TGroups, TStatic> {
59
+ /** The child's RTT handle — put it in `outputs` so the fragment samples it rather than re-RTTing. */
60
+ readonly childTexture: KitTexture;
61
+ /** The registered display copy — put it in `outputs`; the fragment samples this. */
62
+ readonly display: KitTexture;
63
+ /** The raw state pair, for a shader that needs the textures directly. */
64
+ readonly pair: PingPongPair<SimSlot>;
65
+ /** Hand straight to the compute node's `bindInputs`. */
66
+ bindInputs: (resolve: (key: string) => {
67
+ texture: unknown;
68
+ } | undefined) => void;
69
+ /**
70
+ * The body of `getComputeNodes`. Returns `null` before the child RTT is bound. Otherwise
71
+ * advances the clock, invokes `frame`, and swaps the ping-pong — but only if `frame` returned
72
+ * steps, so an idle-skip frame leaves the orientation untouched.
73
+ */
74
+ tick: (frameParams: unknown, frame: (t: SimTick<TGroups, TStatic>) => ComputeStep[] | null) => ComputeStep[] | null;
75
+ }
76
+ /**
77
+ * Allocate and wire a state-texture feedback simulation. Returns `null` when there is no child or
78
+ * no GPU device, which is the "fragment falls back to a passthrough" branch every consumer has.
79
+ *
80
+ * @example
81
+ * const sim = createFeedbackTrailSim(params, {
82
+ * size: STATE_RES,
83
+ * format: 'rgba16float',
84
+ * speedProp: 'speed',
85
+ * bindGroups: ({childTexture, display}, read, write) =>
86
+ * root.createBindGroup(moshLayout, {
87
+ * src: childTexture, prev: read.state, next: write.state, display,
88
+ * params: paramsBuf.buffer,
89
+ * } as never),
90
+ * })
91
+ * if (!sim) return null
92
+ * return {
93
+ * outputs: {childTexture: sim.childTexture, display: sim.display},
94
+ * bindInputs: sim.bindInputs,
95
+ * getComputeNodes: (fp) => sim.tick(fp, ({groups, dt, localTime}) => {
96
+ * paramsBuf.write({time: localTime, dt, ...})
97
+ * return [pipeline.with(groups)]
98
+ * }),
99
+ * }
100
+ */
101
+ export declare function createFeedbackTrailSim<TGroups, TStatic = undefined>(params: GpuFragmentParams, opts: FeedbackTrailSimOptions<TGroups, TStatic>): FeedbackTrailSim<TGroups, TStatic> | null;
102
+ //# sourceMappingURL=feedbackSim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedbackSim.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/feedbackSim.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ import { d } from '../kit';
2
+ import { ComputeStep, KitComputePipeline } from '../compute';
3
+ import { TgpuRoot } from 'typegpu';
4
+
5
+ /**
6
+ * The storage-texture form every fluid consumer publishes through: rgba16float, write-only. Half
7
+ * floats are enough for a velocity or dye field and they give the fragment hardware-bilinear
8
+ * filtering on the upsample, which a 32-bit format would not on most Android GPUs.
9
+ */
10
+ export type FluidStorageTexture = d.textureStorage2d<'rgba16float', 'write-only'>;
11
+ /** The solve uniforms every kernel set reads. */
12
+ export interface FluidSolveParams {
13
+ readonly dt: number;
14
+ readonly curlStrength: number;
15
+ readonly velFade: number;
16
+ }
17
+ /** The additional uniforms the dye passes read. */
18
+ export interface FluidDyeParams extends FluidSolveParams {
19
+ readonly dyeFade: number;
20
+ readonly colorDecay: number;
21
+ }
22
+ /**
23
+ * The union of every layout entry the solver can touch.
24
+ *
25
+ * Which entries are actually required depends on the options, and TypeScript cannot express
26
+ * "`dyeA` is required iff `dye !== 'none'`" across one signature — so the builder takes the core
27
+ * shape and casts once internally. A layout missing an entry its options need fails at
28
+ * `tgpu.resolve` time, which every consumer's resolve gate exercises.
29
+ */
30
+ export interface FluidSolverLayout {
31
+ readonly $: {
32
+ readonly velA: d.v4f[];
33
+ readonly velB: d.v4f[];
34
+ readonly pressure: number[];
35
+ readonly divergence: number[];
36
+ readonly params: FluidSolveParams;
37
+ };
38
+ }
39
+ /** The output pass's layout: the dye buffer read-only, plus the storage texture it publishes to. */
40
+ export interface FluidOutputLayout {
41
+ readonly $: {
42
+ readonly dyeA: d.v4f[];
43
+ readonly outTex: FluidStorageTexture;
44
+ };
45
+ }
46
+ /**
47
+ * How the grid edges behave.
48
+ *
49
+ * - `clamped` — neighbour lookups clamp to the grid, and the divergence pass reflects the wall-normal
50
+ * velocity at the border (free-slip): the fluid is in a box.
51
+ * - `toroidal` — neighbour lookups and advection backtraces wrap modulo N: the field is seamless and
52
+ * has no walls at all. Fog uses this so its cloud has no visible frame.
53
+ */
54
+ export type FluidBoundary = 'clamped' | 'toroidal';
55
+ /**
56
+ * What the dye field carries.
57
+ *
58
+ * - `none` — velocity only. The consumer reads the field for something else (ParticleFlow advects
59
+ * particles through it), so there is no dye to advect, copy or publish.
60
+ * - `densityAge` — `x` = density, `y` = age in [0, 1]. The fragment colours density by age, which is
61
+ * what gives smoke its fresh→aged ramp.
62
+ * - `rgb` — `xyz` = colour. The dye IS the picture (InkFlow).
63
+ */
64
+ export type FluidDyeMode = 'none' | 'densityAge' | 'rgb';
65
+ export interface StableFluidsOptions {
66
+ /** Grid resolution per axis. The kernels are dispatched 2D over N×N. */
67
+ n: number;
68
+ /**
69
+ * Prefix for every kernel's `$name`. Kernel names appear in the emitted WGSL, so this is what
70
+ * keeps each consumer's snapshots stable and keeps two fluid shaders in one tree from colliding
71
+ * on WGSL identifiers (C3).
72
+ */
73
+ namePrefix: string;
74
+ boundary: FluidBoundary;
75
+ dye: FluidDyeMode;
76
+ /** Divide advected dye by `1 + dyeFade·dt` and floor it at zero. Fog's fog is permanent. */
77
+ dyeDissipation?: boolean;
78
+ /** Advance the age channel by `dt · 0.4 · colorDecay` (capped at 1). `densityAge` only. */
79
+ ageAdvance?: boolean;
80
+ /**
81
+ * Gate the fluid on `maskBuf.x`: cells outside the mask are solid walls in the divergence pass,
82
+ * and advected velocity/dye is zeroed there. SmokeFill uses it to confine smoke to a shape.
83
+ * `clamped` only — a toroidal field with interior walls is not a configuration we ship.
84
+ */
85
+ solidMask?: boolean;
86
+ /**
87
+ * Clamp the post-projection velocity magnitude to this many grid cells per second. Fog needs it
88
+ * because a permanent, never-dissipating field can otherwise accumulate enough energy over
89
+ * minutes to advect further than one cell per step and go unstable.
90
+ */
91
+ velocityCap?: number;
92
+ /** Also `textureStore` the solved velocity into `velOutTex` from the copy pass. */
93
+ publishVelocityTexture?: boolean;
94
+ /** Per-frame pressure retention in the divergence pass (the warm start). Default 0.8. */
95
+ pressureDecay?: number;
96
+ }
97
+ /**
98
+ * The neighbour flat index for a (row, col) plus a (di, dj) offset, under the given boundary mode.
99
+ * Exported for consumers whose own kernels need the same lookup (a mask or obstacle pass).
100
+ */
101
+ export declare function neighbourIndex(n: number, boundary: FluidBoundary): import('typegpu').TgpuFn<(ii: d.I32, ji: d.I32, di: d.I32, dj: d.I32) => d.U32>;
102
+ /** The kernel set for one configuration. Absent members are the ones the options exclude. */
103
+ export interface StableFluidsKernels {
104
+ curl: (cx: number, cy: number) => void;
105
+ vorticity: (cx: number, cy: number) => void;
106
+ divergence: (cx: number, cy: number) => void;
107
+ jacobi: (cx: number, cy: number) => void;
108
+ gradSubtract: (cx: number, cy: number) => void;
109
+ advectVel: (cx: number, cy: number) => void;
110
+ copyVel: (cx: number, cy: number) => void;
111
+ advectDye?: (cx: number, cy: number) => void;
112
+ copyDye?: (cx: number, cy: number) => void;
113
+ }
114
+ /**
115
+ * Bake the solver kernels against a consumer's layout.
116
+ *
117
+ * Call this at MODULE scope, next to the layout declaration — the kernels are `tgpu.fn`s and want to
118
+ * exist once per module, not once per component instance.
119
+ */
120
+ export declare function buildStableFluidsKernels(layoutIn: FluidSolverLayout, opts: StableFluidsOptions): StableFluidsKernels;
121
+ /**
122
+ * The output pass: publish the dye buffer to a storage texture the fragment samples.
123
+ *
124
+ * Separate from `buildStableFluidsKernels` because it reads a DIFFERENT bind group — the dye buffer
125
+ * bound read-only alongside a write-only storage texture — and a kernel may only reference one
126
+ * layout.
127
+ *
128
+ * `densityAge` writes `(density, age, 0, 0)`; `rgb` writes `(r, g, b, 1)`. Both formats are
129
+ * rgba16float, so the fragment gets hardware-bilinear filtering for free on the upsample.
130
+ */
131
+ export declare function buildFluidOutputKernel(layout: FluidOutputLayout, opts: {
132
+ n: number;
133
+ namePrefix: string;
134
+ dye: Exclude<FluidDyeMode, 'none'>;
135
+ }): import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>;
136
+ /** The guarded compute pipelines for one kernel set, plus the ordered chain that drives them. */
137
+ export interface StableFluidsPasses {
138
+ curl: KitComputePipeline;
139
+ vorticity: KitComputePipeline;
140
+ divergence: KitComputePipeline;
141
+ jacobi: KitComputePipeline;
142
+ gradSubtract: KitComputePipeline;
143
+ advectVel: KitComputePipeline;
144
+ copyVel: KitComputePipeline;
145
+ advectDye?: KitComputePipeline;
146
+ copyDye?: KitComputePipeline;
147
+ /**
148
+ * The core per-frame chain: curl → vorticity → divergence → J× jacobi → gradSubtract →
149
+ * advectVel → copyVel → advectDye → copyDye.
150
+ *
151
+ * Emission splats go BEFORE it, the output pass and any per-shader restoration go after. Pass
152
+ * `vorticity` to substitute a shader's own variant (ParticleFlow folds an ambient breeze into
153
+ * that pass) without giving up the rest of the chain.
154
+ */
155
+ solveSteps(opts: {
156
+ jacobiIters: number;
157
+ vorticity?: ComputeStep;
158
+ }): ComputeStep[];
159
+ }
160
+ /**
161
+ * Wrap a kernel set in guarded compute pipelines bound to the caller's bind group.
162
+ *
163
+ * All passes share one bind group and one 2D dispatch size, which is what makes the whole solve a
164
+ * flat ordered list of dispatches with no per-pass rebinding.
165
+ */
166
+ export declare function createStableFluidsPasses(root: TgpuRoot, kernels: StableFluidsKernels, opts: {
167
+ n: number;
168
+ bindGroup: unknown;
169
+ }): StableFluidsPasses;
170
+ //# sourceMappingURL=fluids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluids.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/fluids.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { GpuFragmentParams, KitTexture } from '../contract';
2
+
3
+ /** The resolver the pass manager passes to `bindInputs`: texture key → bound texture. */
4
+ type InputResolver = (key: string) => {
5
+ texture: unknown;
6
+ } | undefined;
7
+ export interface LateBoundChildInput<TGroups> {
8
+ /**
9
+ * The child's RTT handle. Put it in the compute node's `outputs` so the fragment can sample
10
+ * the same texture (`computeOutputs.childTexture`) instead of RTT-ing the child twice.
11
+ */
12
+ readonly childTexture: KitTexture;
13
+ /** Hand straight to the compute node's `bindInputs`. */
14
+ bindInputs: (resolve: InputResolver) => void;
15
+ /**
16
+ * The bind groups built by `buildGroups`, or `null` while the child RTT is still unallocated.
17
+ * The canonical first line of `getComputeNodes` is `const g = child.bound(); if (!g) return null`.
18
+ */
19
+ bound(): TGroups | null;
20
+ /** Boolean form of {@link bound}, for readability in tests and guards. */
21
+ ready(): boolean;
22
+ }
23
+ /**
24
+ * Name a compute hook's child input and defer its bind-group construction to `bindInputs`.
25
+ *
26
+ * `buildGroups` receives the resolved child texture — already cast to the type
27
+ * `root.createBindGroup` accepts — and returns whatever collection of bind groups the shader
28
+ * needs (a single group, a `{a, b}` orientation pair, an object of several). It re-runs on every
29
+ * recompose, so anything it allocates must be safe to rebuild.
30
+ *
31
+ * Returns `null` when the node has no child at all, so a child-REQUIRED shader can write
32
+ * `if (!child) return null` and inherit the "no child → no compute" branch.
33
+ *
34
+ * @example
35
+ * const child = createLateBoundChildInput(params, (src) => ({
36
+ * bg: root.createBindGroup(layout, {src, prev: stateA, next: stateB, params: buf.buffer}),
37
+ * }))
38
+ * if (!child) return null
39
+ * return {
40
+ * outputs: {childTexture: child.childTexture, display},
41
+ * bindInputs: child.bindInputs,
42
+ * getComputeNodes: () => {
43
+ * const g = child.bound()
44
+ * if (!g) return null
45
+ * return [pipeline.with(g.bg)]
46
+ * },
47
+ * }
48
+ */
49
+ export declare function createLateBoundChildInput<TGroups>(params: GpuFragmentParams, buildGroups: (childTexture: never) => TGroups): LateBoundChildInput<TGroups> | null;
50
+ export {};
51
+ //# sourceMappingURL=lateBoundChild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lateBoundChild.d.ts","sourceRoot":"","sources":["../../../src/gpu/scaffolds/lateBoundChild.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAC,iBAAiB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAA;AAE9D,yFAAyF;AACzF,KAAK,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,GAAG,SAAS,CAAA;AAEpE,MAAM,WAAW,mBAAmB,CAAC,OAAO;IACxC;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAA;IACjC,wDAAwD;IACxD,UAAU,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;IAC5C;;;OAGG;IACH,KAAK,IAAI,OAAO,GAAG,IAAI,CAAA;IACvB,0EAA0E;IAC1E,KAAK,IAAI,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAC7C,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,CAAC,YAAY,EAAE,KAAK,KAAK,OAAO,GAC9C,mBAAmB,CAAC,OAAO,CAAC,GAAG,IAAI,CAiBrC"}