shaders 3.0.439 → 3.0.441

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 (407) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/{AngularBlur-BJKQrsoZ.js → AngularBlur-BDxGVOMQ.js} +2 -2
  3. package/dist/core/{Arc-BZdfWWlz.js → Arc-C981IGmm.js} +2 -2
  4. package/dist/core/{Ascii-CR5iFmk8.js → Ascii-C_-Jn2_c.js} +2 -2
  5. package/dist/core/{Aurora-C0KIoJY5.js → Aurora-D66-fTnE.js} +3 -3
  6. package/dist/core/{BarShift-_mdK3UWW.js → BarShift-DLaO6DjV.js} +3 -3
  7. package/dist/core/{Beam-DYvBEj6q.js → Beam-mVVEXCwG.js} +2 -2
  8. package/dist/core/{Blob-DgMJ5M6V.js → Blob-BnBDJJ84.js} +3 -3
  9. package/dist/core/{BlockNoise-CsBWCDzA.js → BlockNoise-DINAV0qg.js} +3 -3
  10. package/dist/core/{BlueNoise-D-WjLdgK.js → BlueNoise-B9jPJ1s5.js} +2 -2
  11. package/dist/core/{Blur-WeJoA31s.js → Blur-DDWaY0Ld.js} +1 -1
  12. package/dist/core/{BrickPattern-DPez_hvr.js → BrickPattern-DGsAflLE.js} +3 -3
  13. package/dist/core/{BrightnessContrast-XvDV1ixv.js → BrightnessContrast-CEHGmtvm.js} +1 -1
  14. package/dist/core/{BrushedMetal-DYwNjVpX.js → BrushedMetal-CcpOuWtJ.js} +5 -5
  15. package/dist/core/{Bulge-DcBJaYyW.js → Bulge-B3noQSAj.js} +2 -2
  16. package/dist/core/{CRTScreen-Byau9--w.js → CRTScreen-DL5luEsd.js} +1 -1
  17. package/dist/core/{CarbonFiber-DwYVLmd0.js → CarbonFiber-CSHN_f_N.js} +4 -4
  18. package/dist/core/{Chalkboard-D_FVdz4V.js → Chalkboard-BSLaGFyY.js} +2 -2
  19. package/dist/core/{ChannelBlur-B70l9vql.js → ChannelBlur-CDigdYX8.js} +1 -1
  20. package/dist/core/{Checkerboard-B_z4be-A.js → Checkerboard-DlZGigj6.js} +2 -2
  21. package/dist/core/{Chevron-CfGjPdH6.js → Chevron-BuOn9mA1.js} +3 -3
  22. package/dist/core/{ChromaFlow-B9zZUgzN.js → ChromaFlow-BOB8M0bU.js} +2 -2
  23. package/dist/core/{ChromaticAberration-BrGXd7kq.js → ChromaticAberration-gtezUw88.js} +2 -2
  24. package/dist/core/{Circle-DFx6OVnv.js → Circle-Vb7e3gL-.js} +2 -2
  25. package/dist/core/{ColorWheel-CI_qR6vL.js → ColorWheel-jc1jsi5U.js} +3 -3
  26. package/dist/core/{CompressionArtifacts-CVWkWovO.js → CompressionArtifacts-DlwHUO-X.js} +1 -1
  27. package/dist/core/{ConcentricSpin-lAMdNRDl.js → ConcentricSpin-BLIJre0M.js} +3 -3
  28. package/dist/core/{ConicGradient-C3wD1h2z.js → ConicGradient-BcNQlquk.js} +3 -3
  29. package/dist/core/{ContourLines-C3Hwaw1Y.js → ContourLines-CkGvhac3.js} +2 -2
  30. package/dist/core/{CornerPin-DxUoEjhR.js → CornerPin-DYy3m7oY.js} +2 -2
  31. package/dist/core/{Crescent-BCf_ZZI3.js → Crescent-CrWVqQDf.js} +2 -2
  32. package/dist/core/{Cross-CeQhwjVB.js → Cross-DUznb_Y-.js} +2 -2
  33. package/dist/core/{Crystal-CC7d_6kZ.js → Crystal-CgDpYkhN.js} +4 -4
  34. package/dist/core/{CurlNoise-KsNJEh6E.js → CurlNoise-DAYJuMmN.js} +3 -3
  35. package/dist/core/{CursorRipples-Jgm7iF0Z.js → CursorRipples-CNP8wzdR.js} +2 -2
  36. package/dist/core/{CursorTrail-CkNn85vn.js → CursorTrail-B1VULW3E.js} +3 -3
  37. package/dist/core/{DOMTexture-DFvbXYrj.js → DOMTexture-DROf41BI.js} +1 -1
  38. package/dist/core/{DataMosh-Dh7TYpbW.js → DataMosh-BYwbcTxJ.js} +1 -1
  39. package/dist/core/{DiamondGradient-HmZwnTdD.js → DiamondGradient-BB7ajCKo.js} +3 -3
  40. package/dist/core/{DiffuseBlur-uXE0w0DD.js → DiffuseBlur-KE2fGEND.js} +2 -2
  41. package/dist/core/{Dither-YUNtD1tI.js → Dither-B8yxWNxE.js} +2 -2
  42. package/dist/core/{DotGrid-DABCUp6d.js → DotGrid-Doh7yuqR.js} +3 -3
  43. package/dist/core/{DropShadow-C7KAuipC.js → DropShadow-DhHQBpiK.js} +2 -2
  44. package/dist/core/{Duotone-CuJunWJ0.js → Duotone-DA3IudVy.js} +2 -2
  45. package/dist/core/{Ellipse-DrZqqQh2.js → Ellipse-m1D5EVjj.js} +2 -2
  46. package/dist/core/{Emboss-D_-1_a3u.js → Emboss-C3NBF44G.js} +4 -4
  47. package/dist/core/{Engraving-fQ1zZJ89.js → Engraving-Bz503L4R.js} +2 -2
  48. package/dist/core/{ErosionNoise-B01HEvZk.js → ErosionNoise-DOOt5U2Z.js} +2 -2
  49. package/dist/core/{Exposure-o_CViEwJ.js → Exposure-DkQ4kanv.js} +1 -1
  50. package/dist/core/{FallingLines-Bv8X8gRy.js → FallingLines-BE6S1TUf.js} +3 -3
  51. package/dist/core/{FilmGrain-CoW4iHsT.js → FilmGrain-9-Mgc2Ri.js} +1 -1
  52. package/dist/core/{Flip-h2K3wLGX.js → Flip-Dpi0pVGo.js} +2 -2
  53. package/dist/core/{FloatingParticles-W_QAKOku.js → FloatingParticles-Qh0dQBmA.js} +2 -2
  54. package/dist/core/{FlowField-CwU9iWbf.js → FlowField-0UUp41dK.js} +3 -3
  55. package/dist/core/{Flower-DxOinfag.js → Flower-DJLgm11L.js} +2 -2
  56. package/dist/core/{FlowingGradient-DdFrloZC.js → FlowingGradient-C01NbZ16.js} +3 -3
  57. package/dist/core/{FlutedGlass-B9652Bh4.js → FlutedGlass-DIwsLgXX.js} +3 -3
  58. package/dist/core/{Fog-D5sIF3cX.js → Fog-BwPDTYRv.js} +2 -2
  59. package/dist/core/{Form3D-BmCwmFPZ.js → Form3D-Csuoy7Rq.js} +3 -3
  60. package/dist/core/{FractalNoise-BFs55FIe.js → FractalNoise-B9usxoBx.js} +3 -3
  61. package/dist/core/{Frost-C6qVP9a2.js → Frost-Bhd3oWES.js} +6 -6
  62. package/dist/core/{GaborNoise-C1LVTyG3.js → GaborNoise-CQX_VPTg.js} +3 -3
  63. package/dist/core/{Glass-DR9JYQMG.js → Glass-tFOQd3eV.js} +4 -4
  64. package/dist/core/{GlassTiles-D5Lrddns.js → GlassTiles-C-yPKp5B.js} +1 -1
  65. package/dist/core/{Glitch-B93JzM-d.js → Glitch-0i5BtHaq.js} +1 -1
  66. package/dist/core/{Glow-DlxNehzC.js → Glow-CMz4cv5I.js} +1 -1
  67. package/dist/core/{Godrays-n9Gjl-h6.js → Godrays-D0euidZr.js} +3 -3
  68. package/dist/core/{Goo-BusLBgE3.js → Goo-AMjCwSDQ.js} +5 -5
  69. package/dist/core/{GradientMap-CapG6NfM.js → GradientMap-BU4kVWfH.js} +2 -2
  70. package/dist/core/{Grayscale-Dx9gKGZb.js → Grayscale-iaDYz9To.js} +1 -1
  71. package/dist/core/{Grid-gZHTJmwP.js → Grid-BwbSPDqS.js} +2 -2
  72. package/dist/core/{GridDistortion-BkkuULR2.js → GridDistortion-B3S8D94q.js} +2 -2
  73. package/dist/core/{Group-pHN72R84.js → Group-0BcuiZZM.js} +1 -1
  74. package/dist/core/{Halftone-dlX8bpPV.js → Halftone-ClxolEhO.js} +2 -2
  75. package/dist/core/{Heart-CwELiXMT.js → Heart-BdSnsqq-.js} +2 -2
  76. package/dist/core/{Heatmap-unI_z4Uc.js → Heatmap-CFEEphb2.js} +62 -41
  77. package/dist/core/{HexGrid-BTWeNz9Z.js → HexGrid-D8CgLdgw.js} +2 -2
  78. package/dist/core/{Hologram-3-c4mCzw.js → Hologram-IJhpMkKa.js} +5 -5
  79. package/dist/core/{Holographic-SchvA6Dy.js → Holographic-BbrHmA39.js} +5 -5
  80. package/dist/core/{HueShift-BJGcv19-.js → HueShift-Bv6qzKH0.js} +1 -1
  81. package/dist/core/{ImageTexture-CRueGzAZ.js → ImageTexture-Dh6VPuYy.js} +1 -1
  82. package/dist/core/{Invert-DLot9mli.js → Invert-B8gtmw54.js} +1 -1
  83. package/dist/core/{IsometricCubes-CFg5QBjO.js → IsometricCubes-BL0ZvkwZ.js} +2 -2
  84. package/dist/core/{Kaleidoscope-BQFm59wM.js → Kaleidoscope-D4VzDZni.js} +2 -2
  85. package/dist/core/{KeyFrames-DiAKRsxm.js → KeyFrames-C-nnFGBw.js} +2 -2
  86. package/dist/core/{LensFlare-BpFbnSsM.js → LensFlare-D_LFHDo0.js} +3 -3
  87. package/dist/core/{LightEdge-CZpMFMKO.js → LightEdge-Ck4lGBye.js} +5 -5
  88. package/dist/core/{LightLeak-DGt9quKs.js → LightLeak-DuaMzzKh.js} +3 -3
  89. package/dist/core/{LinearBlur-ClAsNnkC.js → LinearBlur-CHioFPql.js} +2 -2
  90. package/dist/core/{LinearGradient-B_dBLhFm.js → LinearGradient-CEz9WjgA.js} +3 -3
  91. package/dist/core/{LiquidMetal-Bb9b2h9X.js → LiquidMetal-CtbGXpkb.js} +5 -5
  92. package/dist/core/{Liquify-B9ypclFj.js → Liquify-B0rCOoDY.js} +2 -2
  93. package/dist/core/{Marble-CZYhaDcz.js → Marble-BJp6F6BF.js} +3 -3
  94. package/dist/core/{Mirror--NvGPp-u.js → Mirror-9fC_SqqB.js} +2 -2
  95. package/dist/core/{MultiPointGradient-IJtw3dEC.js → MultiPointGradient-BuDBY6Ax.js} +2 -2
  96. package/dist/core/{Neon-Der_R-Bh.js → Neon-CgA9zX4Y.js} +4 -4
  97. package/dist/core/{ObjectTracker-CfW_aMyp.js → ObjectTracker-D1qrJe0c.js} +2 -2
  98. package/dist/core/{PagePeel-D_DnKmec.js → PagePeel-YA6Q8kM0.js} +1 -1
  99. package/dist/core/{Paper-CZT7vlqM.js → Paper-Bu3J7_h8.js} +1 -1
  100. package/dist/core/{Parallelogram-BAi9iFi0.js → Parallelogram-8VWcTkAt.js} +2 -2
  101. package/dist/core/{Particles-DtxN6LL7.js → Particles-BG7Z-4in.js} +3 -3
  102. package/dist/core/{PerlinNoise-BCbLpWKn.js → PerlinNoise-gV2dOb_o.js} +3 -3
  103. package/dist/core/{Perspective-DXIafIz8.js → Perspective-m70JnY4Z.js} +2 -2
  104. package/dist/core/{PixelSort-BnZgslHG.js → PixelSort-tKcoDnMz.js} +1 -1
  105. package/dist/core/{PixelThrow-BAVO2zdp.js → PixelThrow-CzelDKa4.js} +2 -2
  106. package/dist/core/{Pixelate-L-pZ8G79.js → Pixelate-CcBgoqXj.js} +1 -1
  107. package/dist/core/{Plasma-BELcebZa.js → Plasma-Bsei8uLa.js} +3 -3
  108. package/dist/core/{Plastic-e8KLjCgS.js → Plastic-D9qe3OWm.js} +5 -5
  109. package/dist/core/{PolarCoordinates-CNZ6Df5J.js → PolarCoordinates-C9WxI22k.js} +2 -2
  110. package/dist/core/{Polygon-BGBTOGLe.js → Polygon-D58HZRzJ.js} +2 -2
  111. package/dist/core/{Posterize-Cs_kyyjG.js → Posterize-DxR6F30M.js} +1 -1
  112. package/dist/core/{Prism-BUalIt7a.js → Prism-JLQP5dhZ.js} +3 -3
  113. package/dist/core/{ProgressiveBlur-C2wYIOH-.js → ProgressiveBlur-DpERTuHY.js} +2 -2
  114. package/dist/core/{RadialGradient-B3tlBsQZ.js → RadialGradient-N4mHVX7b.js} +3 -3
  115. package/dist/core/ReactionDiffusion-BpLbPwbw.js +4640 -0
  116. package/dist/core/{RectangularCoordinates-DWWlrqB4.js → RectangularCoordinates-Bt9H7sBE.js} +2 -2
  117. package/dist/core/{ReflectivePlane-BmM5w76k.js → ReflectivePlane-Cumbz3x2.js} +2 -2
  118. package/dist/core/{Repeater-V37OGlry.js → Repeater-DuRfWt9x.js} +2 -2
  119. package/dist/core/{Ring-WVyMeyoh.js → Ring-Cg_pZTin.js} +2 -2
  120. package/dist/core/{Ripples-Bv__zvme.js → Ripples-BtenteeG.js} +3 -3
  121. package/dist/core/{RoundedRect-B62UFEeb.js → RoundedRect-C0ETFLNc.js} +2 -2
  122. package/dist/core/{Saturation-DIRGc5kp.js → Saturation-BbOceqP3.js} +1 -1
  123. package/dist/core/{Scratches-ZFLTq06k.js → Scratches-B2Q_mgvt.js} +3 -3
  124. package/dist/core/{Sharpness-WYaGJlSI.js → Sharpness-Bhb9aDxA.js} +1 -1
  125. package/dist/core/{Shatter-CPS5Kdei.js → Shatter-zxLD4RY8.js} +2 -2
  126. package/dist/core/{SimplexNoise-DMWtripU.js → SimplexNoise-DTCJ__Jt.js} +3 -3
  127. package/dist/core/{SineWave-BOoYgny1.js → SineWave-JNTzGGXH.js} +3 -3
  128. package/dist/core/{Smoke-BGGH2iTS.js → Smoke-BX4EcQdI.js} +3 -3
  129. package/dist/core/{SmokeFill-ClBFBWz3.js → SmokeFill-9SqGHgJt.js} +4 -4
  130. package/dist/core/{SmokeFlow-DkBGrN_d.js → SmokeFlow-Cfs5EVW_.js} +3 -3
  131. package/dist/core/{Solarize-D_ZPY_Cr.js → Solarize-BQq15L3x.js} +1 -1
  132. package/dist/core/{SolidColor-rdMtlNyB.js → SolidColor-8aFR9Ecl.js} +1 -1
  133. package/dist/core/{Spherize-h1F31u9-.js → Spherize-Czfb_NCO.js} +2 -2
  134. package/dist/core/{Spiral-BMFhUpkP.js → Spiral-CO_pymky.js} +3 -3
  135. package/dist/core/{Star-D8d3Gk74.js → Star-CgLpQtzz.js} +2 -2
  136. package/dist/core/{Stone-CfpfDKpn.js → Stone-Bl9-bI0G.js} +2 -2
  137. package/dist/core/{Strands-256prKRG.js → Strands-BdSTwZXc.js} +3 -3
  138. package/dist/core/{Stretch-C7z0wdI7.js → Stretch-BCZ_vkQn.js} +2 -2
  139. package/dist/core/{Stripes-BVvuh6r7.js → Stripes-OLW9XYEW.js} +3 -3
  140. package/dist/core/{StudioBackground-Cy2qPLYJ.js → StudioBackground-ksKsEcWQ.js} +3 -3
  141. package/dist/core/{SunBurst-vUglW69s.js → SunBurst-B_mkcjjh.js} +3 -3
  142. package/dist/core/{Surface3D-quYcBdK_.js → Surface3D-D6D9L3et.js} +2 -2
  143. package/dist/core/{Swirl-BD3Fk-SC.js → Swirl-DMQ-Iq-_.js} +3 -3
  144. package/dist/core/{Teardrop-Bxfkjjaz.js → Teardrop-Dz5aCCyM.js} +2 -2
  145. package/dist/core/{Text-CrbVixvj.js → Text-9v36CCo0.js} +2 -2
  146. package/dist/core/{ThinFilm-D_y48u9e.js → ThinFilm-C28dTgXR.js} +4 -4
  147. package/dist/core/{TiltShift-3s5RKGCa.js → TiltShift-Df93B2bk.js} +2 -2
  148. package/dist/core/{Tint-DZUIRc-Z.js → Tint-e-sF3Q5L.js} +2 -2
  149. package/dist/core/{Trapezoid-7VOLjftp.js → Trapezoid-B6r05rcQ.js} +2 -2
  150. package/dist/core/{TriangularGrid-Qek0gRuV.js → TriangularGrid-CX7hnKpa.js} +3 -3
  151. package/dist/core/{Tritone-CqYOMKFE.js → Tritone-CccAEZZ2.js} +2 -2
  152. package/dist/core/{Truchet-D6emdFny.js → Truchet-DG3fNF5b.js} +2 -2
  153. package/dist/core/{Twirl-Y8OzHc49.js → Twirl-CtFo8Cjm.js} +2 -2
  154. package/dist/core/{VHS-B28K9Bfc.js → VHS-CKc1qc0j.js} +1 -1
  155. package/dist/core/{Vesica-DFRPMcgz.js → Vesica-D1HOV75v.js} +2 -2
  156. package/dist/core/{Vibrance-BkMNClGf.js → Vibrance-E9-pYAwh.js} +1 -1
  157. package/dist/core/{VideoTexture-DNfGZ4kz.js → VideoTexture-Df7BPBe-.js} +1 -1
  158. package/dist/core/{Vignette-DWveIoCk.js → Vignette-DOVH3O7h.js} +2 -2
  159. package/dist/core/{Voronoi-c1kHPUka.js → Voronoi-BYmYkJfN.js} +3 -3
  160. package/dist/core/{Water-CEmTC2Ii.js → Water-DAQnd09w.js} +5 -5
  161. package/dist/core/{Watercolor--Bg1ZPIG.js → Watercolor-B1iwfQSH.js} +2 -2
  162. package/dist/core/{WaveDistortion-BSyW8c28.js → WaveDistortion-BNkgWs3D.js} +3 -3
  163. package/dist/core/{WaveletNoise-cDkFw55m.js → WaveletNoise-ByqzdG-6.js} +3 -3
  164. package/dist/core/{Weave--Ex2UVBt.js → Weave-DeItcIeX.js} +2 -2
  165. package/dist/core/{WebcamTexture-CPWUtxVm.js → WebcamTexture-BAeqZ7pH.js} +1 -1
  166. package/dist/core/{Wool-BNmVUISf.js → Wool-Br5Ajlvr.js} +2 -2
  167. package/dist/core/{WorleyNoise-CbhvPZS-.js → WorleyNoise-D1piyiG2.js} +3 -3
  168. package/dist/core/{ZoomBlur-BR_do-LV.js → ZoomBlur-ZEtNzn4_.js} +2 -2
  169. package/dist/core/{coords-CWOT0Wqh.js → coords-DLZT4HVT.js} +136 -13
  170. package/dist/core/{glass-hUL2pCYG.js → glass-CGThMEIa.js} +1 -1
  171. package/dist/core/gpu/composer.d.ts.map +1 -1
  172. package/dist/core/gpu/contract.d.ts +1 -0
  173. package/dist/core/gpu/contract.d.ts.map +1 -1
  174. package/dist/core/gpu/kit/sdf3d.d.ts.map +1 -1
  175. package/dist/core/gpu/transforms.d.ts.map +1 -1
  176. package/dist/core/index.js +175 -174
  177. package/dist/core/{noiseColor-WSY8YuLZ.js → noiseColor-kVjc2DJn.js} +2 -2
  178. package/dist/core/{porters-Dg80Yg90.js → porters-DdcOi7BN.js} +4 -3
  179. package/dist/core/registry.js +175 -174
  180. package/dist/core/shaderRegistry-Gsachoy8.js +372 -0
  181. package/dist/core/shaderRegistry.d.ts.map +1 -1
  182. package/dist/core/shaders/AngularBlur/index.js +4 -4
  183. package/dist/core/shaders/Arc/index.js +4 -4
  184. package/dist/core/shaders/Ascii/index.js +4 -4
  185. package/dist/core/shaders/Aurora/index.js +4 -4
  186. package/dist/core/shaders/BarShift/index.js +4 -4
  187. package/dist/core/shaders/Beam/index.js +4 -4
  188. package/dist/core/shaders/Blob/index.js +4 -4
  189. package/dist/core/shaders/BlockNoise/index.js +5 -5
  190. package/dist/core/shaders/BlueNoise/index.js +5 -5
  191. package/dist/core/shaders/Blur/index.js +4 -4
  192. package/dist/core/shaders/BrickPattern/index.js +4 -4
  193. package/dist/core/shaders/BrightnessContrast/index.js +4 -4
  194. package/dist/core/shaders/BrushedMetal/index.js +6 -6
  195. package/dist/core/shaders/Bulge/index.js +4 -4
  196. package/dist/core/shaders/CRTScreen/index.js +4 -4
  197. package/dist/core/shaders/CarbonFiber/index.js +6 -6
  198. package/dist/core/shaders/Chalkboard/index.js +4 -4
  199. package/dist/core/shaders/ChannelBlur/index.js +4 -4
  200. package/dist/core/shaders/Checkerboard/index.js +4 -4
  201. package/dist/core/shaders/Chevron/index.js +4 -4
  202. package/dist/core/shaders/ChromaFlow/index.js +4 -4
  203. package/dist/core/shaders/ChromaticAberration/index.js +4 -4
  204. package/dist/core/shaders/Circle/index.js +4 -4
  205. package/dist/core/shaders/ColorWheel/index.js +4 -4
  206. package/dist/core/shaders/CompressionArtifacts/index.js +4 -4
  207. package/dist/core/shaders/ConcentricSpin/index.js +4 -4
  208. package/dist/core/shaders/ConicGradient/index.js +4 -4
  209. package/dist/core/shaders/ContourLines/index.js +4 -4
  210. package/dist/core/shaders/CornerPin/index.js +4 -4
  211. package/dist/core/shaders/Crescent/index.js +4 -4
  212. package/dist/core/shaders/Cross/index.js +4 -4
  213. package/dist/core/shaders/Crystal/index.js +6 -6
  214. package/dist/core/shaders/CurlNoise/index.js +5 -5
  215. package/dist/core/shaders/CursorRipples/index.js +4 -4
  216. package/dist/core/shaders/CursorTrail/index.js +4 -4
  217. package/dist/core/shaders/DOMTexture/index.js +4 -4
  218. package/dist/core/shaders/DataMosh/index.js +4 -4
  219. package/dist/core/shaders/DiamondGradient/index.js +4 -4
  220. package/dist/core/shaders/DiffuseBlur/index.js +4 -4
  221. package/dist/core/shaders/Dither/index.js +4 -4
  222. package/dist/core/shaders/DotGrid/index.js +4 -4
  223. package/dist/core/shaders/DropShadow/index.js +4 -4
  224. package/dist/core/shaders/Duotone/index.js +4 -4
  225. package/dist/core/shaders/Ellipse/index.js +4 -4
  226. package/dist/core/shaders/Emboss/index.js +6 -6
  227. package/dist/core/shaders/Engraving/index.js +4 -4
  228. package/dist/core/shaders/ErosionNoise/index.js +5 -5
  229. package/dist/core/shaders/Exposure/index.js +4 -4
  230. package/dist/core/shaders/FallingLines/index.js +4 -4
  231. package/dist/core/shaders/FilmGrain/index.js +4 -4
  232. package/dist/core/shaders/Flip/index.js +4 -4
  233. package/dist/core/shaders/FloatingParticles/index.js +4 -4
  234. package/dist/core/shaders/FlowField/index.js +4 -4
  235. package/dist/core/shaders/Flower/index.js +4 -4
  236. package/dist/core/shaders/FlowingGradient/index.js +4 -4
  237. package/dist/core/shaders/FlutedGlass/index.js +4 -4
  238. package/dist/core/shaders/Fog/index.js +4 -4
  239. package/dist/core/shaders/Form3D/index.js +4 -4
  240. package/dist/core/shaders/FractalNoise/index.js +4 -4
  241. package/dist/core/shaders/Frost/index.d.ts.map +1 -1
  242. package/dist/core/shaders/Frost/index.js +6 -6
  243. package/dist/core/shaders/GaborNoise/index.js +5 -5
  244. package/dist/core/shaders/Glass/index.js +6 -6
  245. package/dist/core/shaders/GlassTiles/index.js +4 -4
  246. package/dist/core/shaders/Glitch/index.js +4 -4
  247. package/dist/core/shaders/Glow/index.js +4 -4
  248. package/dist/core/shaders/Godrays/index.js +4 -4
  249. package/dist/core/shaders/Goo/index.js +6 -6
  250. package/dist/core/shaders/GradientMap/index.js +4 -4
  251. package/dist/core/shaders/Grayscale/index.js +4 -4
  252. package/dist/core/shaders/Grid/index.js +4 -4
  253. package/dist/core/shaders/GridDistortion/index.js +4 -4
  254. package/dist/core/shaders/Group/index.js +4 -4
  255. package/dist/core/shaders/Halftone/index.js +4 -4
  256. package/dist/core/shaders/Heart/index.js +4 -4
  257. package/dist/core/shaders/Heatmap/index.d.ts +2 -2
  258. package/dist/core/shaders/Heatmap/index.d.ts.map +1 -1
  259. package/dist/core/shaders/Heatmap/index.js +6 -6
  260. package/dist/core/shaders/HexGrid/index.js +4 -4
  261. package/dist/core/shaders/Hologram/index.js +6 -6
  262. package/dist/core/shaders/Holographic/index.js +6 -6
  263. package/dist/core/shaders/HueShift/index.js +4 -4
  264. package/dist/core/shaders/ImageTexture/index.js +4 -4
  265. package/dist/core/shaders/Invert/index.js +4 -4
  266. package/dist/core/shaders/IsometricCubes/index.js +4 -4
  267. package/dist/core/shaders/Kaleidoscope/index.js +4 -4
  268. package/dist/core/shaders/KeyFrames/index.js +4 -4
  269. package/dist/core/shaders/LensFlare/index.js +4 -4
  270. package/dist/core/shaders/LightEdge/index.js +6 -6
  271. package/dist/core/shaders/LightLeak/index.js +4 -4
  272. package/dist/core/shaders/LinearBlur/index.js +4 -4
  273. package/dist/core/shaders/LinearGradient/index.js +4 -4
  274. package/dist/core/shaders/LiquidMetal/index.js +6 -6
  275. package/dist/core/shaders/Liquify/index.js +4 -4
  276. package/dist/core/shaders/Marble/index.js +4 -4
  277. package/dist/core/shaders/Mirror/index.js +4 -4
  278. package/dist/core/shaders/MultiPointGradient/index.js +4 -4
  279. package/dist/core/shaders/Neon/index.js +5 -5
  280. package/dist/core/shaders/ObjectTracker/index.js +4 -4
  281. package/dist/core/shaders/PagePeel/index.js +4 -4
  282. package/dist/core/shaders/Paper/index.js +4 -4
  283. package/dist/core/shaders/Parallelogram/index.js +4 -4
  284. package/dist/core/shaders/Particles/index.js +5 -5
  285. package/dist/core/shaders/PerlinNoise/index.js +5 -5
  286. package/dist/core/shaders/Perspective/index.js +4 -4
  287. package/dist/core/shaders/PixelSort/index.js +4 -4
  288. package/dist/core/shaders/PixelThrow/index.js +4 -4
  289. package/dist/core/shaders/Pixelate/index.js +4 -4
  290. package/dist/core/shaders/Plasma/index.js +4 -4
  291. package/dist/core/shaders/Plastic/index.js +6 -6
  292. package/dist/core/shaders/PolarCoordinates/index.js +4 -4
  293. package/dist/core/shaders/Polygon/index.js +4 -4
  294. package/dist/core/shaders/Posterize/index.js +4 -4
  295. package/dist/core/shaders/Prism/index.js +4 -4
  296. package/dist/core/shaders/ProgressiveBlur/index.js +4 -4
  297. package/dist/core/shaders/RadialGradient/index.js +4 -4
  298. package/dist/core/shaders/ReactionDiffusion/index.d.ts +163 -0
  299. package/dist/core/shaders/ReactionDiffusion/index.d.ts.map +1 -0
  300. package/dist/core/shaders/ReactionDiffusion/index.js +5 -0
  301. package/dist/core/shaders/RectangularCoordinates/index.js +4 -4
  302. package/dist/core/shaders/ReflectivePlane/index.js +4 -4
  303. package/dist/core/shaders/Repeater/index.js +4 -4
  304. package/dist/core/shaders/Ring/index.js +4 -4
  305. package/dist/core/shaders/Ripples/index.js +4 -4
  306. package/dist/core/shaders/RoundedRect/index.js +4 -4
  307. package/dist/core/shaders/Saturation/index.js +4 -4
  308. package/dist/core/shaders/Scratches/index.js +5 -5
  309. package/dist/core/shaders/Sharpness/index.js +4 -4
  310. package/dist/core/shaders/Shatter/index.js +4 -4
  311. package/dist/core/shaders/SimplexNoise/index.js +4 -4
  312. package/dist/core/shaders/SineWave/index.js +4 -4
  313. package/dist/core/shaders/Smoke/index.js +4 -4
  314. package/dist/core/shaders/SmokeFill/index.js +6 -6
  315. package/dist/core/shaders/SmokeFlow/index.js +4 -4
  316. package/dist/core/shaders/Solarize/index.js +4 -4
  317. package/dist/core/shaders/SolidColor/index.js +2 -2
  318. package/dist/core/shaders/Spherize/index.js +4 -4
  319. package/dist/core/shaders/Spiral/index.js +4 -4
  320. package/dist/core/shaders/Star/index.js +4 -4
  321. package/dist/core/shaders/Stone/index.js +3 -3
  322. package/dist/core/shaders/Strands/index.js +4 -4
  323. package/dist/core/shaders/Stretch/index.js +4 -4
  324. package/dist/core/shaders/Stripes/index.js +4 -4
  325. package/dist/core/shaders/StudioBackground/index.js +4 -4
  326. package/dist/core/shaders/SunBurst/index.js +4 -4
  327. package/dist/core/shaders/Surface3D/index.js +4 -4
  328. package/dist/core/shaders/Swirl/index.js +4 -4
  329. package/dist/core/shaders/Teardrop/index.js +4 -4
  330. package/dist/core/shaders/Text/index.js +4 -4
  331. package/dist/core/shaders/ThinFilm/index.js +5 -5
  332. package/dist/core/shaders/TiltShift/index.js +4 -4
  333. package/dist/core/shaders/Tint/index.js +4 -4
  334. package/dist/core/shaders/Trapezoid/index.js +4 -4
  335. package/dist/core/shaders/TriangularGrid/index.js +4 -4
  336. package/dist/core/shaders/Tritone/index.js +4 -4
  337. package/dist/core/shaders/Truchet/index.js +4 -4
  338. package/dist/core/shaders/Twirl/index.js +4 -4
  339. package/dist/core/shaders/VHS/index.js +4 -4
  340. package/dist/core/shaders/Vesica/index.js +4 -4
  341. package/dist/core/shaders/Vibrance/index.js +4 -4
  342. package/dist/core/shaders/VideoTexture/index.js +4 -4
  343. package/dist/core/shaders/Vignette/index.js +4 -4
  344. package/dist/core/shaders/Voronoi/index.js +4 -4
  345. package/dist/core/shaders/Water/index.js +6 -6
  346. package/dist/core/shaders/Watercolor/index.js +4 -4
  347. package/dist/core/shaders/WaveDistortion/index.js +4 -4
  348. package/dist/core/shaders/WaveletNoise/index.js +5 -5
  349. package/dist/core/shaders/Weave/index.js +4 -4
  350. package/dist/core/shaders/WebcamTexture/index.js +4 -4
  351. package/dist/core/shaders/Wool/index.js +3 -3
  352. package/dist/core/shaders/WorleyNoise/index.js +4 -4
  353. package/dist/core/shaders/ZoomBlur/index.js +4 -4
  354. package/dist/core/{shapeEffectBounds-BlxxsYMN.js → shapeEffectBounds-BglTGD4B.js} +1 -59
  355. package/dist/core/{transformations-fqzznt4g.js → transformations-P50Uo_Ju.js} +2 -1
  356. package/dist/core/utilities/transformations/index.js +1 -1
  357. package/dist/core/utilities/transformations.d.ts.map +1 -1
  358. package/dist/js/bundle.js +142 -142
  359. package/dist/js/createShader.js +1 -1
  360. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  361. package/dist/js/utils/generatePresetCode.js +25 -0
  362. package/dist/react/Preview.js +1 -0
  363. package/dist/react/ReactionDiffusion.js +220 -0
  364. package/dist/react/Shader.js +1 -1
  365. package/dist/react/bundle.js +138 -138
  366. package/dist/react/components/ReactionDiffusion.d.ts +40 -0
  367. package/dist/react/components/ReactionDiffusion.d.ts.map +1 -0
  368. package/dist/react/engine/Preview.d.ts.map +1 -1
  369. package/dist/react/index.d.ts +1 -0
  370. package/dist/react/index.d.ts.map +1 -1
  371. package/dist/react/index.js +2 -1
  372. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  373. package/dist/react/utils/generatePresetCode.js +25 -0
  374. package/dist/registry.js +674 -0
  375. package/dist/solid/components/ReactionDiffusion.d.ts +37 -0
  376. package/dist/solid/components/ReactionDiffusion.d.ts.map +1 -0
  377. package/dist/solid/components/ReactionDiffusion.js +228 -0
  378. package/dist/solid/engine/Preview.d.ts.map +1 -1
  379. package/dist/solid/engine/Preview.js +228 -226
  380. package/dist/solid/engine/Shader.js +1 -1
  381. package/dist/solid/index.d.ts +1 -0
  382. package/dist/solid/index.d.ts.map +1 -1
  383. package/dist/solid/index.js +112 -110
  384. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  385. package/dist/solid/utils/generatePresetCode.js +25 -0
  386. package/dist/svelte/components/ReactionDiffusion.svelte.d.ts +27 -0
  387. package/dist/svelte/index.d.ts +1 -0
  388. package/dist/svelte/index.js +2131 -1928
  389. package/dist/svelte/source/components/ReactionDiffusion.svelte +346 -0
  390. package/dist/svelte/source/engine/Preview.svelte +2 -0
  391. package/dist/svelte/source/index.js +1 -0
  392. package/dist/svelte/utils/generatePresetCode.js +25 -0
  393. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  394. package/dist/vue/ReactionDiffusion.js +3 -0
  395. package/dist/vue/ReactionDiffusion.vue_vue_type_script_setup_true_lang.js +237 -0
  396. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +39 -17
  397. package/dist/vue/components/ReactionDiffusion.vue.d.ts +62 -0
  398. package/dist/vue/components/ReactionDiffusion.vue.d.ts.map +1 -0
  399. package/dist/vue/engine/Shader.vue.d.ts.map +1 -1
  400. package/dist/vue/index.d.ts +1 -0
  401. package/dist/vue/index.d.ts.map +1 -1
  402. package/dist/vue/index.js +2 -1
  403. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  404. package/dist/vue/utils/generatePresetCode.js +25 -0
  405. package/package.json +9 -6
  406. package/dist/core/shaderRegistry-DC0r_QlY.js +0 -370
  407. /package/dist/core/{noiseStylize-C2jzZv4d.js → noiseStylize-BMnwulEm.js} +0 -0
@@ -0,0 +1,4640 @@
1
+ import { Ft as floatE, H as createStateBuffer, Kt as colorMixing_exports, Lt as vec4, V as createGuardedCompute, jt as call, kt as ZERO, n as tgpu, sn as d, z as std } from "./coords-DLZT4HVT.js";
2
+ import { a as transformColor, i as transformBoolean, o as transformColorSpace, t as colorSpaceOptions } from "./transformations-P50Uo_Ju.js";
3
+ var cm = colorMixing_exports;
4
+ var N = 512;
5
+ var COUNT = N * N;
6
+ var STATE_FORMAT = "rgba16float";
7
+ var MAX_ITERATIONS = 16;
8
+ var SEED_DENSITY = .06;
9
+ var RELIEF_EPS = 1.5 / N;
10
+ var RELIEF_STRENGTH = 6;
11
+ var RELIEF_AMBIENT = .42;
12
+ var RELIEF_LIGHT_XY = .85;
13
+ var RELIEF_LIGHT_Z = .55;
14
+ var RELIEF_SHININESS = 18;
15
+ var RELIEF_SPEC = .35;
16
+ var DEG2RAD = Math.PI / 180;
17
+ var PRESETS = {
18
+ coral: {
19
+ feed: .0545,
20
+ kill: .062
21
+ },
22
+ mitosis: {
23
+ feed: .0367,
24
+ kill: .0649
25
+ },
26
+ spots: {
27
+ feed: .03,
28
+ kill: .062
29
+ },
30
+ maze: {
31
+ feed: .029,
32
+ kill: .057
33
+ },
34
+ worms: {
35
+ feed: .078,
36
+ kill: .061
37
+ },
38
+ fingerprints: {
39
+ feed: .037,
40
+ kill: .06
41
+ },
42
+ holes: {
43
+ feed: .039,
44
+ kill: .058
45
+ },
46
+ solitons: {
47
+ feed: .074,
48
+ kill: .064
49
+ },
50
+ bubbles: {
51
+ feed: .098,
52
+ kill: .0555
53
+ },
54
+ waves: {
55
+ feed: .014,
56
+ kill: .045
57
+ },
58
+ flowers: {
59
+ feed: .062,
60
+ kill: .06093
61
+ }
62
+ };
63
+ var CHILD_CONTRAST_MAX = 8;
64
+ var CHILD_DFEED = .022;
65
+ var CHILD_DKILL = .014;
66
+ var CHILD_FEED_MIN = .008;
67
+ var CHILD_FEED_MAX = .11;
68
+ var CHILD_KILL_MIN = .03;
69
+ var CHILD_KILL_MAX = .075;
70
+ var RDParams = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(d.struct({
71
+ feed: d.f32,
72
+ kill: d.f32,
73
+ dv: d.f32,
74
+ brushRadSq: d.f32,
75
+ brushStrength: d.f32,
76
+ cursorX: d.f32,
77
+ cursorY: d.f32,
78
+ cursorActive: d.f32,
79
+ childInfluence: d.f32,
80
+ childContrast: d.f32,
81
+ childThreshold: d.f32,
82
+ childInvert: d.f32,
83
+ childMapX: d.f32,
84
+ childMapY: d.f32,
85
+ _pad0: d.f32,
86
+ _pad1: d.f32
87
+ }), "RDParams");
88
+ var reactionLayout = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(tgpu.bindGroupLayout({
89
+ readBuf: {
90
+ storage: d.arrayOf(d.vec2f, COUNT),
91
+ access: "readonly"
92
+ },
93
+ writeBuf: {
94
+ storage: d.arrayOf(d.vec2f, COUNT),
95
+ access: "mutable"
96
+ },
97
+ params: { uniform: RDParams }
98
+ }), "reactionLayout");
99
+ var seedLayout = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(tgpu.bindGroupLayout({ stateBuf: {
100
+ storage: d.arrayOf(d.vec2f, COUNT),
101
+ access: "mutable"
102
+ } }), "seedLayout");
103
+ var outputLayout = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(tgpu.bindGroupLayout({
104
+ srcBuf: {
105
+ storage: d.arrayOf(d.vec2f, COUNT),
106
+ access: "readonly"
107
+ },
108
+ outTex: { storageTexture: d.textureStorage2d(STATE_FORMAT, "write-only") }
109
+ }), "outputLayout");
110
+ var reactionChildLayout = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(tgpu.bindGroupLayout({
111
+ readBuf: {
112
+ storage: d.arrayOf(d.vec2f, COUNT),
113
+ access: "readonly"
114
+ },
115
+ writeBuf: {
116
+ storage: d.arrayOf(d.vec2f, COUNT),
117
+ access: "mutable"
118
+ },
119
+ params: { uniform: RDParams },
120
+ childTex: { texture: d.texture2d(d.f32) }
121
+ }), "reactionChildLayout");
122
+ var nbrState = tgpu.fn([
123
+ d.i32,
124
+ d.i32,
125
+ d.i32,
126
+ d.i32
127
+ ], d.vec2f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((ii, ji, di, dj) => {
128
+ "use gpu";
129
+ const row = std.clamp(__tsover_add(ii, di), 0, __tsover_sub(N, 1));
130
+ const col = std.clamp(__tsover_add(ji, dj), 0, __tsover_sub(N, 1));
131
+ return reactionLayout.$.readBuf[d.u32(__tsover_add(__tsover_mul(row, N), col))];
132
+ }), {
133
+ v: 1,
134
+ name: void 0,
135
+ ast: {
136
+ "params": [
137
+ {
138
+ "type": "i",
139
+ "name": "ii"
140
+ },
141
+ {
142
+ "type": "i",
143
+ "name": "ji"
144
+ },
145
+ {
146
+ "type": "i",
147
+ "name": "di"
148
+ },
149
+ {
150
+ "type": "i",
151
+ "name": "dj"
152
+ }
153
+ ],
154
+ "body": [0, [
155
+ [
156
+ 13,
157
+ "row",
158
+ [
159
+ 6,
160
+ [
161
+ 7,
162
+ "std",
163
+ "clamp"
164
+ ],
165
+ [
166
+ [
167
+ 1,
168
+ "ii",
169
+ "+",
170
+ "di"
171
+ ],
172
+ [5, "0"],
173
+ [
174
+ 1,
175
+ "N",
176
+ "-",
177
+ [5, "1"]
178
+ ]
179
+ ]
180
+ ]
181
+ ],
182
+ [
183
+ 13,
184
+ "col",
185
+ [
186
+ 6,
187
+ [
188
+ 7,
189
+ "std",
190
+ "clamp"
191
+ ],
192
+ [
193
+ [
194
+ 1,
195
+ "ji",
196
+ "+",
197
+ "dj"
198
+ ],
199
+ [5, "0"],
200
+ [
201
+ 1,
202
+ "N",
203
+ "-",
204
+ [5, "1"]
205
+ ]
206
+ ]
207
+ ]
208
+ ],
209
+ [10, [
210
+ 8,
211
+ [
212
+ 7,
213
+ [
214
+ 7,
215
+ "reactionLayout",
216
+ "$"
217
+ ],
218
+ "readBuf"
219
+ ],
220
+ [
221
+ 6,
222
+ [
223
+ 7,
224
+ "d",
225
+ "u32"
226
+ ],
227
+ [[
228
+ 1,
229
+ [
230
+ 1,
231
+ "row",
232
+ "*",
233
+ "N"
234
+ ],
235
+ "+",
236
+ "col"
237
+ ]]
238
+ ]
239
+ ]]
240
+ ]],
241
+ "externalNames": [
242
+ "std",
243
+ "N",
244
+ "reactionLayout",
245
+ "d"
246
+ ]
247
+ },
248
+ externals: () => ({
249
+ std,
250
+ N,
251
+ reactionLayout,
252
+ d
253
+ })
254
+ }) && $.f)({})).$name("reactionDiffusionNbr");
255
+ const reactionKernel = tgpu.fn([d.u32, d.u32])(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
256
+ "use gpu";
257
+ const p = reactionLayout.$.params;
258
+ const idx = __tsover_add(__tsover_mul(cy, d.u32(N)), cx);
259
+ const self = reactionLayout.$.readBuf[idx];
260
+ const ii = d.i32(cy);
261
+ const ji = d.i32(cx);
262
+ const L = nbrState(ii, ji, 0, -1);
263
+ const R = nbrState(ii, ji, 0, 1);
264
+ const T = nbrState(ii, ji, -1, 0);
265
+ const B = nbrState(ii, ji, 1, 0);
266
+ const TL = nbrState(ii, ji, -1, -1);
267
+ const TR = nbrState(ii, ji, -1, 1);
268
+ const BL = nbrState(ii, ji, 1, -1);
269
+ const BR = nbrState(ii, ji, 1, 1);
270
+ const lapU = __tsover_sub(__tsover_add(__tsover_mul(__tsover_add(__tsover_add(__tsover_add(L.x, R.x), T.x), B.x), .2), __tsover_mul(__tsover_add(__tsover_add(__tsover_add(TL.x, TR.x), BL.x), BR.x), .05)), self.x);
271
+ const lapV = __tsover_sub(__tsover_add(__tsover_mul(__tsover_add(__tsover_add(__tsover_add(L.y, R.y), T.y), B.y), .2), __tsover_mul(__tsover_add(__tsover_add(__tsover_add(TL.y, TR.y), BL.y), BR.y), .05)), self.y);
272
+ const U = self.x;
273
+ const V = self.y;
274
+ const uvv = __tsover_mul(__tsover_mul(U, V), V);
275
+ let newU = __tsover_add(U, __tsover_add(__tsover_sub(lapU, uvv), __tsover_mul(p.feed, __tsover_sub(1, U))));
276
+ let newV = __tsover_add(V, __tsover_sub(__tsover_add(__tsover_mul(p.dv, lapV), uvv), __tsover_mul(__tsover_add(p.feed, p.kill), V)));
277
+ if (p.cursorActive > 0) {
278
+ const cellX = __tsover_add(d.f32(cx), .5);
279
+ const cellY = __tsover_add(d.f32(cy), .5);
280
+ const dxp = __tsover_sub(cellX, p.cursorX);
281
+ const dyp = __tsover_sub(cellY, p.cursorY);
282
+ const distSq = __tsover_add(__tsover_mul(dxp, dxp), __tsover_mul(dyp, dyp));
283
+ const inf = __tsover_mul(std.exp(__tsover_mul(__tsover_div(distSq, std.max(p.brushRadSq, d.f32(1))), -1)), p.cursorActive);
284
+ newV = std.min(__tsover_add(newV, __tsover_mul(inf, p.brushStrength)), d.f32(1));
285
+ }
286
+ newU = std.clamp(newU, 0, 1);
287
+ newV = std.clamp(newV, 0, 1);
288
+ reactionLayout.$.writeBuf[idx] = d.vec2f(newU, newV);
289
+ }), {
290
+ v: 1,
291
+ name: void 0,
292
+ ast: {
293
+ "params": [{
294
+ "type": "i",
295
+ "name": "cx"
296
+ }, {
297
+ "type": "i",
298
+ "name": "cy"
299
+ }],
300
+ "body": [0, [
301
+ [
302
+ 13,
303
+ "p",
304
+ [
305
+ 7,
306
+ [
307
+ 7,
308
+ "reactionLayout",
309
+ "$"
310
+ ],
311
+ "params"
312
+ ]
313
+ ],
314
+ [
315
+ 13,
316
+ "idx",
317
+ [
318
+ 1,
319
+ [
320
+ 1,
321
+ "cy",
322
+ "*",
323
+ [
324
+ 6,
325
+ [
326
+ 7,
327
+ "d",
328
+ "u32"
329
+ ],
330
+ ["N"]
331
+ ]
332
+ ],
333
+ "+",
334
+ "cx"
335
+ ]
336
+ ],
337
+ [
338
+ 13,
339
+ "self",
340
+ [
341
+ 8,
342
+ [
343
+ 7,
344
+ [
345
+ 7,
346
+ "reactionLayout",
347
+ "$"
348
+ ],
349
+ "readBuf"
350
+ ],
351
+ "idx"
352
+ ]
353
+ ],
354
+ [
355
+ 13,
356
+ "ii",
357
+ [
358
+ 6,
359
+ [
360
+ 7,
361
+ "d",
362
+ "i32"
363
+ ],
364
+ ["cy"]
365
+ ]
366
+ ],
367
+ [
368
+ 13,
369
+ "ji",
370
+ [
371
+ 6,
372
+ [
373
+ 7,
374
+ "d",
375
+ "i32"
376
+ ],
377
+ ["cx"]
378
+ ]
379
+ ],
380
+ [
381
+ 13,
382
+ "L",
383
+ [
384
+ 6,
385
+ "nbrState",
386
+ [
387
+ "ii",
388
+ "ji",
389
+ [5, "0"],
390
+ [
391
+ 4,
392
+ "-",
393
+ [5, "1"]
394
+ ]
395
+ ]
396
+ ]
397
+ ],
398
+ [
399
+ 13,
400
+ "R",
401
+ [
402
+ 6,
403
+ "nbrState",
404
+ [
405
+ "ii",
406
+ "ji",
407
+ [5, "0"],
408
+ [5, "1"]
409
+ ]
410
+ ]
411
+ ],
412
+ [
413
+ 13,
414
+ "T",
415
+ [
416
+ 6,
417
+ "nbrState",
418
+ [
419
+ "ii",
420
+ "ji",
421
+ [
422
+ 4,
423
+ "-",
424
+ [5, "1"]
425
+ ],
426
+ [5, "0"]
427
+ ]
428
+ ]
429
+ ],
430
+ [
431
+ 13,
432
+ "B",
433
+ [
434
+ 6,
435
+ "nbrState",
436
+ [
437
+ "ii",
438
+ "ji",
439
+ [5, "1"],
440
+ [5, "0"]
441
+ ]
442
+ ]
443
+ ],
444
+ [
445
+ 13,
446
+ "TL",
447
+ [
448
+ 6,
449
+ "nbrState",
450
+ [
451
+ "ii",
452
+ "ji",
453
+ [
454
+ 4,
455
+ "-",
456
+ [5, "1"]
457
+ ],
458
+ [
459
+ 4,
460
+ "-",
461
+ [5, "1"]
462
+ ]
463
+ ]
464
+ ]
465
+ ],
466
+ [
467
+ 13,
468
+ "TR",
469
+ [
470
+ 6,
471
+ "nbrState",
472
+ [
473
+ "ii",
474
+ "ji",
475
+ [
476
+ 4,
477
+ "-",
478
+ [5, "1"]
479
+ ],
480
+ [5, "1"]
481
+ ]
482
+ ]
483
+ ],
484
+ [
485
+ 13,
486
+ "BL",
487
+ [
488
+ 6,
489
+ "nbrState",
490
+ [
491
+ "ii",
492
+ "ji",
493
+ [5, "1"],
494
+ [
495
+ 4,
496
+ "-",
497
+ [5, "1"]
498
+ ]
499
+ ]
500
+ ]
501
+ ],
502
+ [
503
+ 13,
504
+ "BR",
505
+ [
506
+ 6,
507
+ "nbrState",
508
+ [
509
+ "ii",
510
+ "ji",
511
+ [5, "1"],
512
+ [5, "1"]
513
+ ]
514
+ ]
515
+ ],
516
+ [
517
+ 13,
518
+ "lapU",
519
+ [
520
+ 1,
521
+ [
522
+ 1,
523
+ [
524
+ 1,
525
+ [
526
+ 1,
527
+ [
528
+ 1,
529
+ [
530
+ 1,
531
+ [
532
+ 7,
533
+ "L",
534
+ "x"
535
+ ],
536
+ "+",
537
+ [
538
+ 7,
539
+ "R",
540
+ "x"
541
+ ]
542
+ ],
543
+ "+",
544
+ [
545
+ 7,
546
+ "T",
547
+ "x"
548
+ ]
549
+ ],
550
+ "+",
551
+ [
552
+ 7,
553
+ "B",
554
+ "x"
555
+ ]
556
+ ],
557
+ "*",
558
+ [5, "0.2"]
559
+ ],
560
+ "+",
561
+ [
562
+ 1,
563
+ [
564
+ 1,
565
+ [
566
+ 1,
567
+ [
568
+ 1,
569
+ [
570
+ 7,
571
+ "TL",
572
+ "x"
573
+ ],
574
+ "+",
575
+ [
576
+ 7,
577
+ "TR",
578
+ "x"
579
+ ]
580
+ ],
581
+ "+",
582
+ [
583
+ 7,
584
+ "BL",
585
+ "x"
586
+ ]
587
+ ],
588
+ "+",
589
+ [
590
+ 7,
591
+ "BR",
592
+ "x"
593
+ ]
594
+ ],
595
+ "*",
596
+ [5, "0.05"]
597
+ ]
598
+ ],
599
+ "-",
600
+ [
601
+ 7,
602
+ "self",
603
+ "x"
604
+ ]
605
+ ]
606
+ ],
607
+ [
608
+ 13,
609
+ "lapV",
610
+ [
611
+ 1,
612
+ [
613
+ 1,
614
+ [
615
+ 1,
616
+ [
617
+ 1,
618
+ [
619
+ 1,
620
+ [
621
+ 1,
622
+ [
623
+ 7,
624
+ "L",
625
+ "y"
626
+ ],
627
+ "+",
628
+ [
629
+ 7,
630
+ "R",
631
+ "y"
632
+ ]
633
+ ],
634
+ "+",
635
+ [
636
+ 7,
637
+ "T",
638
+ "y"
639
+ ]
640
+ ],
641
+ "+",
642
+ [
643
+ 7,
644
+ "B",
645
+ "y"
646
+ ]
647
+ ],
648
+ "*",
649
+ [5, "0.2"]
650
+ ],
651
+ "+",
652
+ [
653
+ 1,
654
+ [
655
+ 1,
656
+ [
657
+ 1,
658
+ [
659
+ 1,
660
+ [
661
+ 7,
662
+ "TL",
663
+ "y"
664
+ ],
665
+ "+",
666
+ [
667
+ 7,
668
+ "TR",
669
+ "y"
670
+ ]
671
+ ],
672
+ "+",
673
+ [
674
+ 7,
675
+ "BL",
676
+ "y"
677
+ ]
678
+ ],
679
+ "+",
680
+ [
681
+ 7,
682
+ "BR",
683
+ "y"
684
+ ]
685
+ ],
686
+ "*",
687
+ [5, "0.05"]
688
+ ]
689
+ ],
690
+ "-",
691
+ [
692
+ 7,
693
+ "self",
694
+ "y"
695
+ ]
696
+ ]
697
+ ],
698
+ [
699
+ 13,
700
+ "U",
701
+ [
702
+ 7,
703
+ "self",
704
+ "x"
705
+ ]
706
+ ],
707
+ [
708
+ 13,
709
+ "V",
710
+ [
711
+ 7,
712
+ "self",
713
+ "y"
714
+ ]
715
+ ],
716
+ [
717
+ 13,
718
+ "uvv",
719
+ [
720
+ 1,
721
+ [
722
+ 1,
723
+ "U",
724
+ "*",
725
+ "V"
726
+ ],
727
+ "*",
728
+ "V"
729
+ ]
730
+ ],
731
+ [
732
+ 12,
733
+ "newU",
734
+ [
735
+ 1,
736
+ "U",
737
+ "+",
738
+ [
739
+ 1,
740
+ [
741
+ 1,
742
+ "lapU",
743
+ "-",
744
+ "uvv"
745
+ ],
746
+ "+",
747
+ [
748
+ 1,
749
+ [
750
+ 7,
751
+ "p",
752
+ "feed"
753
+ ],
754
+ "*",
755
+ [
756
+ 1,
757
+ [5, "1"],
758
+ "-",
759
+ "U"
760
+ ]
761
+ ]
762
+ ]
763
+ ]
764
+ ],
765
+ [
766
+ 12,
767
+ "newV",
768
+ [
769
+ 1,
770
+ "V",
771
+ "+",
772
+ [
773
+ 1,
774
+ [
775
+ 1,
776
+ [
777
+ 1,
778
+ [
779
+ 7,
780
+ "p",
781
+ "dv"
782
+ ],
783
+ "*",
784
+ "lapV"
785
+ ],
786
+ "+",
787
+ "uvv"
788
+ ],
789
+ "-",
790
+ [
791
+ 1,
792
+ [
793
+ 1,
794
+ [
795
+ 7,
796
+ "p",
797
+ "feed"
798
+ ],
799
+ "+",
800
+ [
801
+ 7,
802
+ "p",
803
+ "kill"
804
+ ]
805
+ ],
806
+ "*",
807
+ "V"
808
+ ]
809
+ ]
810
+ ]
811
+ ],
812
+ [
813
+ 11,
814
+ [
815
+ 1,
816
+ [
817
+ 7,
818
+ "p",
819
+ "cursorActive"
820
+ ],
821
+ ">",
822
+ [5, "0"]
823
+ ],
824
+ [0, [
825
+ [
826
+ 13,
827
+ "cellX",
828
+ [
829
+ 1,
830
+ [
831
+ 6,
832
+ [
833
+ 7,
834
+ "d",
835
+ "f32"
836
+ ],
837
+ ["cx"]
838
+ ],
839
+ "+",
840
+ [5, "0.5"]
841
+ ]
842
+ ],
843
+ [
844
+ 13,
845
+ "cellY",
846
+ [
847
+ 1,
848
+ [
849
+ 6,
850
+ [
851
+ 7,
852
+ "d",
853
+ "f32"
854
+ ],
855
+ ["cy"]
856
+ ],
857
+ "+",
858
+ [5, "0.5"]
859
+ ]
860
+ ],
861
+ [
862
+ 13,
863
+ "dxp",
864
+ [
865
+ 1,
866
+ "cellX",
867
+ "-",
868
+ [
869
+ 7,
870
+ "p",
871
+ "cursorX"
872
+ ]
873
+ ]
874
+ ],
875
+ [
876
+ 13,
877
+ "dyp",
878
+ [
879
+ 1,
880
+ "cellY",
881
+ "-",
882
+ [
883
+ 7,
884
+ "p",
885
+ "cursorY"
886
+ ]
887
+ ]
888
+ ],
889
+ [
890
+ 13,
891
+ "distSq",
892
+ [
893
+ 1,
894
+ [
895
+ 1,
896
+ "dxp",
897
+ "*",
898
+ "dxp"
899
+ ],
900
+ "+",
901
+ [
902
+ 1,
903
+ "dyp",
904
+ "*",
905
+ "dyp"
906
+ ]
907
+ ]
908
+ ],
909
+ [
910
+ 13,
911
+ "inf",
912
+ [
913
+ 1,
914
+ [
915
+ 6,
916
+ [
917
+ 7,
918
+ "std",
919
+ "exp"
920
+ ],
921
+ [[
922
+ 1,
923
+ [
924
+ 1,
925
+ "distSq",
926
+ "/",
927
+ [
928
+ 6,
929
+ [
930
+ 7,
931
+ "std",
932
+ "max"
933
+ ],
934
+ [[
935
+ 7,
936
+ "p",
937
+ "brushRadSq"
938
+ ], [
939
+ 6,
940
+ [
941
+ 7,
942
+ "d",
943
+ "f32"
944
+ ],
945
+ [[5, "1"]]
946
+ ]]
947
+ ]
948
+ ],
949
+ "*",
950
+ [
951
+ 4,
952
+ "-",
953
+ [5, "1"]
954
+ ]
955
+ ]]
956
+ ],
957
+ "*",
958
+ [
959
+ 7,
960
+ "p",
961
+ "cursorActive"
962
+ ]
963
+ ]
964
+ ],
965
+ [
966
+ 2,
967
+ "newV",
968
+ "=",
969
+ [
970
+ 6,
971
+ [
972
+ 7,
973
+ "std",
974
+ "min"
975
+ ],
976
+ [[
977
+ 1,
978
+ "newV",
979
+ "+",
980
+ [
981
+ 1,
982
+ "inf",
983
+ "*",
984
+ [
985
+ 7,
986
+ "p",
987
+ "brushStrength"
988
+ ]
989
+ ]
990
+ ], [
991
+ 6,
992
+ [
993
+ 7,
994
+ "d",
995
+ "f32"
996
+ ],
997
+ [[5, "1"]]
998
+ ]]
999
+ ]
1000
+ ]
1001
+ ]]
1002
+ ],
1003
+ [
1004
+ 2,
1005
+ "newU",
1006
+ "=",
1007
+ [
1008
+ 6,
1009
+ [
1010
+ 7,
1011
+ "std",
1012
+ "clamp"
1013
+ ],
1014
+ [
1015
+ "newU",
1016
+ [5, "0"],
1017
+ [5, "1"]
1018
+ ]
1019
+ ]
1020
+ ],
1021
+ [
1022
+ 2,
1023
+ "newV",
1024
+ "=",
1025
+ [
1026
+ 6,
1027
+ [
1028
+ 7,
1029
+ "std",
1030
+ "clamp"
1031
+ ],
1032
+ [
1033
+ "newV",
1034
+ [5, "0"],
1035
+ [5, "1"]
1036
+ ]
1037
+ ]
1038
+ ],
1039
+ [
1040
+ 2,
1041
+ [
1042
+ 8,
1043
+ [
1044
+ 7,
1045
+ [
1046
+ 7,
1047
+ "reactionLayout",
1048
+ "$"
1049
+ ],
1050
+ "writeBuf"
1051
+ ],
1052
+ "idx"
1053
+ ],
1054
+ "=",
1055
+ [
1056
+ 6,
1057
+ [
1058
+ 7,
1059
+ "d",
1060
+ "vec2f"
1061
+ ],
1062
+ ["newU", "newV"]
1063
+ ]
1064
+ ]
1065
+ ]],
1066
+ "externalNames": [
1067
+ "reactionLayout",
1068
+ "d",
1069
+ "N",
1070
+ "nbrState",
1071
+ "std"
1072
+ ]
1073
+ },
1074
+ externals: () => ({
1075
+ reactionLayout,
1076
+ d,
1077
+ N,
1078
+ nbrState,
1079
+ std
1080
+ })
1081
+ }) && $.f)({})).$name("reactionDiffusionReact");
1082
+ var nbrStateChild = tgpu.fn([
1083
+ d.i32,
1084
+ d.i32,
1085
+ d.i32,
1086
+ d.i32
1087
+ ], d.vec2f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((ii, ji, di, dj) => {
1088
+ "use gpu";
1089
+ const row = std.clamp(__tsover_add(ii, di), 0, __tsover_sub(N, 1));
1090
+ const col = std.clamp(__tsover_add(ji, dj), 0, __tsover_sub(N, 1));
1091
+ return reactionChildLayout.$.readBuf[d.u32(__tsover_add(__tsover_mul(row, N), col))];
1092
+ }), {
1093
+ v: 1,
1094
+ name: void 0,
1095
+ ast: {
1096
+ "params": [
1097
+ {
1098
+ "type": "i",
1099
+ "name": "ii"
1100
+ },
1101
+ {
1102
+ "type": "i",
1103
+ "name": "ji"
1104
+ },
1105
+ {
1106
+ "type": "i",
1107
+ "name": "di"
1108
+ },
1109
+ {
1110
+ "type": "i",
1111
+ "name": "dj"
1112
+ }
1113
+ ],
1114
+ "body": [0, [
1115
+ [
1116
+ 13,
1117
+ "row",
1118
+ [
1119
+ 6,
1120
+ [
1121
+ 7,
1122
+ "std",
1123
+ "clamp"
1124
+ ],
1125
+ [
1126
+ [
1127
+ 1,
1128
+ "ii",
1129
+ "+",
1130
+ "di"
1131
+ ],
1132
+ [5, "0"],
1133
+ [
1134
+ 1,
1135
+ "N",
1136
+ "-",
1137
+ [5, "1"]
1138
+ ]
1139
+ ]
1140
+ ]
1141
+ ],
1142
+ [
1143
+ 13,
1144
+ "col",
1145
+ [
1146
+ 6,
1147
+ [
1148
+ 7,
1149
+ "std",
1150
+ "clamp"
1151
+ ],
1152
+ [
1153
+ [
1154
+ 1,
1155
+ "ji",
1156
+ "+",
1157
+ "dj"
1158
+ ],
1159
+ [5, "0"],
1160
+ [
1161
+ 1,
1162
+ "N",
1163
+ "-",
1164
+ [5, "1"]
1165
+ ]
1166
+ ]
1167
+ ]
1168
+ ],
1169
+ [10, [
1170
+ 8,
1171
+ [
1172
+ 7,
1173
+ [
1174
+ 7,
1175
+ "reactionChildLayout",
1176
+ "$"
1177
+ ],
1178
+ "readBuf"
1179
+ ],
1180
+ [
1181
+ 6,
1182
+ [
1183
+ 7,
1184
+ "d",
1185
+ "u32"
1186
+ ],
1187
+ [[
1188
+ 1,
1189
+ [
1190
+ 1,
1191
+ "row",
1192
+ "*",
1193
+ "N"
1194
+ ],
1195
+ "+",
1196
+ "col"
1197
+ ]]
1198
+ ]
1199
+ ]]
1200
+ ]],
1201
+ "externalNames": [
1202
+ "std",
1203
+ "N",
1204
+ "reactionChildLayout",
1205
+ "d"
1206
+ ]
1207
+ },
1208
+ externals: () => ({
1209
+ std,
1210
+ N,
1211
+ reactionChildLayout,
1212
+ d
1213
+ })
1214
+ }) && $.f)({})).$name("reactionDiffusionNbrChild");
1215
+ const rdChildDrive = tgpu.fn([d.u32, d.u32], d.f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
1216
+ "use gpu";
1217
+ const p = reactionChildLayout.$.params;
1218
+ const dims = std.textureDimensions(reactionChildLayout.$.childTex);
1219
+ const fw = d.f32(dims.x);
1220
+ const fh = d.f32(dims.y);
1221
+ const fx = __tsover_div(__tsover_add(d.f32(cx), .5), d.f32(N));
1222
+ const fy = __tsover_div(__tsover_add(d.f32(cy), .5), d.f32(N));
1223
+ const cu = std.clamp(__tsover_add(__tsover_mul(__tsover_sub(fx, .5), p.childMapX), .5), d.f32(0), d.f32(1));
1224
+ const cv = std.clamp(__tsover_add(__tsover_mul(__tsover_sub(fy, .5), p.childMapY), .5), d.f32(0), d.f32(1));
1225
+ const px = d.u32(std.min(__tsover_mul(cu, fw), __tsover_sub(fw, 1)));
1226
+ const py = d.u32(std.min(__tsover_mul(cv, fh), __tsover_sub(fh, 1)));
1227
+ const texel = std.textureLoad(reactionChildLayout.$.childTex, d.vec2u(px, py), 0);
1228
+ const cov = std.clamp(texel.w, d.f32(0), d.f32(1));
1229
+ const rgb = texel.xyz.div(std.max(texel.w, d.f32(.001)));
1230
+ const luma = std.dot(rgb, d.vec3f(.2126, .7152, .0722));
1231
+ const gain = __tsover_add(d.f32(1), __tsover_mul(p.childContrast, d.f32(CHILD_CONTRAST_MAX)));
1232
+ const shaped = std.clamp(__tsover_add(__tsover_mul(__tsover_sub(luma, p.childThreshold), gain), .5), d.f32(0), d.f32(1));
1233
+ let signed = __tsover_mul(__tsover_sub(shaped, .5), 2);
1234
+ signed = std.select(signed, __tsover_mul(signed, -1), p.childInvert > .5);
1235
+ return __tsover_mul(signed, cov);
1236
+ }), {
1237
+ v: 1,
1238
+ name: void 0,
1239
+ ast: {
1240
+ "params": [{
1241
+ "type": "i",
1242
+ "name": "cx"
1243
+ }, {
1244
+ "type": "i",
1245
+ "name": "cy"
1246
+ }],
1247
+ "body": [0, [
1248
+ [
1249
+ 13,
1250
+ "p",
1251
+ [
1252
+ 7,
1253
+ [
1254
+ 7,
1255
+ "reactionChildLayout",
1256
+ "$"
1257
+ ],
1258
+ "params"
1259
+ ]
1260
+ ],
1261
+ [
1262
+ 13,
1263
+ "dims",
1264
+ [
1265
+ 6,
1266
+ [
1267
+ 7,
1268
+ "std",
1269
+ "textureDimensions"
1270
+ ],
1271
+ [[
1272
+ 7,
1273
+ [
1274
+ 7,
1275
+ "reactionChildLayout",
1276
+ "$"
1277
+ ],
1278
+ "childTex"
1279
+ ]]
1280
+ ]
1281
+ ],
1282
+ [
1283
+ 13,
1284
+ "fw",
1285
+ [
1286
+ 6,
1287
+ [
1288
+ 7,
1289
+ "d",
1290
+ "f32"
1291
+ ],
1292
+ [[
1293
+ 7,
1294
+ "dims",
1295
+ "x"
1296
+ ]]
1297
+ ]
1298
+ ],
1299
+ [
1300
+ 13,
1301
+ "fh",
1302
+ [
1303
+ 6,
1304
+ [
1305
+ 7,
1306
+ "d",
1307
+ "f32"
1308
+ ],
1309
+ [[
1310
+ 7,
1311
+ "dims",
1312
+ "y"
1313
+ ]]
1314
+ ]
1315
+ ],
1316
+ [
1317
+ 13,
1318
+ "fx",
1319
+ [
1320
+ 1,
1321
+ [
1322
+ 1,
1323
+ [
1324
+ 6,
1325
+ [
1326
+ 7,
1327
+ "d",
1328
+ "f32"
1329
+ ],
1330
+ ["cx"]
1331
+ ],
1332
+ "+",
1333
+ [5, "0.5"]
1334
+ ],
1335
+ "/",
1336
+ [
1337
+ 6,
1338
+ [
1339
+ 7,
1340
+ "d",
1341
+ "f32"
1342
+ ],
1343
+ ["N"]
1344
+ ]
1345
+ ]
1346
+ ],
1347
+ [
1348
+ 13,
1349
+ "fy",
1350
+ [
1351
+ 1,
1352
+ [
1353
+ 1,
1354
+ [
1355
+ 6,
1356
+ [
1357
+ 7,
1358
+ "d",
1359
+ "f32"
1360
+ ],
1361
+ ["cy"]
1362
+ ],
1363
+ "+",
1364
+ [5, "0.5"]
1365
+ ],
1366
+ "/",
1367
+ [
1368
+ 6,
1369
+ [
1370
+ 7,
1371
+ "d",
1372
+ "f32"
1373
+ ],
1374
+ ["N"]
1375
+ ]
1376
+ ]
1377
+ ],
1378
+ [
1379
+ 13,
1380
+ "cu",
1381
+ [
1382
+ 6,
1383
+ [
1384
+ 7,
1385
+ "std",
1386
+ "clamp"
1387
+ ],
1388
+ [
1389
+ [
1390
+ 1,
1391
+ [
1392
+ 1,
1393
+ [
1394
+ 1,
1395
+ "fx",
1396
+ "-",
1397
+ [5, "0.5"]
1398
+ ],
1399
+ "*",
1400
+ [
1401
+ 7,
1402
+ "p",
1403
+ "childMapX"
1404
+ ]
1405
+ ],
1406
+ "+",
1407
+ [5, "0.5"]
1408
+ ],
1409
+ [
1410
+ 6,
1411
+ [
1412
+ 7,
1413
+ "d",
1414
+ "f32"
1415
+ ],
1416
+ [[5, "0"]]
1417
+ ],
1418
+ [
1419
+ 6,
1420
+ [
1421
+ 7,
1422
+ "d",
1423
+ "f32"
1424
+ ],
1425
+ [[5, "1"]]
1426
+ ]
1427
+ ]
1428
+ ]
1429
+ ],
1430
+ [
1431
+ 13,
1432
+ "cv",
1433
+ [
1434
+ 6,
1435
+ [
1436
+ 7,
1437
+ "std",
1438
+ "clamp"
1439
+ ],
1440
+ [
1441
+ [
1442
+ 1,
1443
+ [
1444
+ 1,
1445
+ [
1446
+ 1,
1447
+ "fy",
1448
+ "-",
1449
+ [5, "0.5"]
1450
+ ],
1451
+ "*",
1452
+ [
1453
+ 7,
1454
+ "p",
1455
+ "childMapY"
1456
+ ]
1457
+ ],
1458
+ "+",
1459
+ [5, "0.5"]
1460
+ ],
1461
+ [
1462
+ 6,
1463
+ [
1464
+ 7,
1465
+ "d",
1466
+ "f32"
1467
+ ],
1468
+ [[5, "0"]]
1469
+ ],
1470
+ [
1471
+ 6,
1472
+ [
1473
+ 7,
1474
+ "d",
1475
+ "f32"
1476
+ ],
1477
+ [[5, "1"]]
1478
+ ]
1479
+ ]
1480
+ ]
1481
+ ],
1482
+ [
1483
+ 13,
1484
+ "px",
1485
+ [
1486
+ 6,
1487
+ [
1488
+ 7,
1489
+ "d",
1490
+ "u32"
1491
+ ],
1492
+ [[
1493
+ 6,
1494
+ [
1495
+ 7,
1496
+ "std",
1497
+ "min"
1498
+ ],
1499
+ [[
1500
+ 1,
1501
+ "cu",
1502
+ "*",
1503
+ "fw"
1504
+ ], [
1505
+ 1,
1506
+ "fw",
1507
+ "-",
1508
+ [5, "1"]
1509
+ ]]
1510
+ ]]
1511
+ ]
1512
+ ],
1513
+ [
1514
+ 13,
1515
+ "py",
1516
+ [
1517
+ 6,
1518
+ [
1519
+ 7,
1520
+ "d",
1521
+ "u32"
1522
+ ],
1523
+ [[
1524
+ 6,
1525
+ [
1526
+ 7,
1527
+ "std",
1528
+ "min"
1529
+ ],
1530
+ [[
1531
+ 1,
1532
+ "cv",
1533
+ "*",
1534
+ "fh"
1535
+ ], [
1536
+ 1,
1537
+ "fh",
1538
+ "-",
1539
+ [5, "1"]
1540
+ ]]
1541
+ ]]
1542
+ ]
1543
+ ],
1544
+ [
1545
+ 13,
1546
+ "texel",
1547
+ [
1548
+ 6,
1549
+ [
1550
+ 7,
1551
+ "std",
1552
+ "textureLoad"
1553
+ ],
1554
+ [
1555
+ [
1556
+ 7,
1557
+ [
1558
+ 7,
1559
+ "reactionChildLayout",
1560
+ "$"
1561
+ ],
1562
+ "childTex"
1563
+ ],
1564
+ [
1565
+ 6,
1566
+ [
1567
+ 7,
1568
+ "d",
1569
+ "vec2u"
1570
+ ],
1571
+ ["px", "py"]
1572
+ ],
1573
+ [5, "0"]
1574
+ ]
1575
+ ]
1576
+ ],
1577
+ [
1578
+ 13,
1579
+ "cov",
1580
+ [
1581
+ 6,
1582
+ [
1583
+ 7,
1584
+ "std",
1585
+ "clamp"
1586
+ ],
1587
+ [
1588
+ [
1589
+ 7,
1590
+ "texel",
1591
+ "w"
1592
+ ],
1593
+ [
1594
+ 6,
1595
+ [
1596
+ 7,
1597
+ "d",
1598
+ "f32"
1599
+ ],
1600
+ [[5, "0"]]
1601
+ ],
1602
+ [
1603
+ 6,
1604
+ [
1605
+ 7,
1606
+ "d",
1607
+ "f32"
1608
+ ],
1609
+ [[5, "1"]]
1610
+ ]
1611
+ ]
1612
+ ]
1613
+ ],
1614
+ [
1615
+ 13,
1616
+ "rgb",
1617
+ [
1618
+ 6,
1619
+ [
1620
+ 7,
1621
+ [
1622
+ 7,
1623
+ "texel",
1624
+ "xyz"
1625
+ ],
1626
+ "div"
1627
+ ],
1628
+ [[
1629
+ 6,
1630
+ [
1631
+ 7,
1632
+ "std",
1633
+ "max"
1634
+ ],
1635
+ [[
1636
+ 7,
1637
+ "texel",
1638
+ "w"
1639
+ ], [
1640
+ 6,
1641
+ [
1642
+ 7,
1643
+ "d",
1644
+ "f32"
1645
+ ],
1646
+ [[5, "0.001"]]
1647
+ ]]
1648
+ ]]
1649
+ ]
1650
+ ],
1651
+ [
1652
+ 13,
1653
+ "luma",
1654
+ [
1655
+ 6,
1656
+ [
1657
+ 7,
1658
+ "std",
1659
+ "dot"
1660
+ ],
1661
+ ["rgb", [
1662
+ 6,
1663
+ [
1664
+ 7,
1665
+ "d",
1666
+ "vec3f"
1667
+ ],
1668
+ [
1669
+ [5, "0.2126"],
1670
+ [5, "0.7152"],
1671
+ [5, "0.0722"]
1672
+ ]
1673
+ ]]
1674
+ ]
1675
+ ],
1676
+ [
1677
+ 13,
1678
+ "gain",
1679
+ [
1680
+ 1,
1681
+ [
1682
+ 6,
1683
+ [
1684
+ 7,
1685
+ "d",
1686
+ "f32"
1687
+ ],
1688
+ [[5, "1"]]
1689
+ ],
1690
+ "+",
1691
+ [
1692
+ 1,
1693
+ [
1694
+ 7,
1695
+ "p",
1696
+ "childContrast"
1697
+ ],
1698
+ "*",
1699
+ [
1700
+ 6,
1701
+ [
1702
+ 7,
1703
+ "d",
1704
+ "f32"
1705
+ ],
1706
+ ["CHILD_CONTRAST_MAX"]
1707
+ ]
1708
+ ]
1709
+ ]
1710
+ ],
1711
+ [
1712
+ 13,
1713
+ "shaped",
1714
+ [
1715
+ 6,
1716
+ [
1717
+ 7,
1718
+ "std",
1719
+ "clamp"
1720
+ ],
1721
+ [
1722
+ [
1723
+ 1,
1724
+ [
1725
+ 1,
1726
+ [
1727
+ 1,
1728
+ "luma",
1729
+ "-",
1730
+ [
1731
+ 7,
1732
+ "p",
1733
+ "childThreshold"
1734
+ ]
1735
+ ],
1736
+ "*",
1737
+ "gain"
1738
+ ],
1739
+ "+",
1740
+ [5, "0.5"]
1741
+ ],
1742
+ [
1743
+ 6,
1744
+ [
1745
+ 7,
1746
+ "d",
1747
+ "f32"
1748
+ ],
1749
+ [[5, "0"]]
1750
+ ],
1751
+ [
1752
+ 6,
1753
+ [
1754
+ 7,
1755
+ "d",
1756
+ "f32"
1757
+ ],
1758
+ [[5, "1"]]
1759
+ ]
1760
+ ]
1761
+ ]
1762
+ ],
1763
+ [
1764
+ 12,
1765
+ "signed",
1766
+ [
1767
+ 1,
1768
+ [
1769
+ 1,
1770
+ "shaped",
1771
+ "-",
1772
+ [5, "0.5"]
1773
+ ],
1774
+ "*",
1775
+ [5, "2"]
1776
+ ]
1777
+ ],
1778
+ [
1779
+ 2,
1780
+ "signed",
1781
+ "=",
1782
+ [
1783
+ 6,
1784
+ [
1785
+ 7,
1786
+ "std",
1787
+ "select"
1788
+ ],
1789
+ [
1790
+ "signed",
1791
+ [
1792
+ 1,
1793
+ "signed",
1794
+ "*",
1795
+ [
1796
+ 4,
1797
+ "-",
1798
+ [5, "1"]
1799
+ ]
1800
+ ],
1801
+ [
1802
+ 1,
1803
+ [
1804
+ 7,
1805
+ "p",
1806
+ "childInvert"
1807
+ ],
1808
+ ">",
1809
+ [5, "0.5"]
1810
+ ]
1811
+ ]
1812
+ ]
1813
+ ],
1814
+ [10, [
1815
+ 1,
1816
+ "signed",
1817
+ "*",
1818
+ "cov"
1819
+ ]]
1820
+ ]],
1821
+ "externalNames": [
1822
+ "reactionChildLayout",
1823
+ "std",
1824
+ "d",
1825
+ "N",
1826
+ "CHILD_CONTRAST_MAX"
1827
+ ]
1828
+ },
1829
+ externals: () => ({
1830
+ reactionChildLayout,
1831
+ std,
1832
+ d,
1833
+ N,
1834
+ CHILD_CONTRAST_MAX
1835
+ })
1836
+ }) && $.f)({})).$name("reactionDiffusionChildDrive");
1837
+ const reactionKernelChild = tgpu.fn([d.u32, d.u32])(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
1838
+ "use gpu";
1839
+ const p = reactionChildLayout.$.params;
1840
+ const idx = __tsover_add(__tsover_mul(cy, d.u32(N)), cx);
1841
+ const self = reactionChildLayout.$.readBuf[idx];
1842
+ const ii = d.i32(cy);
1843
+ const ji = d.i32(cx);
1844
+ const L = nbrStateChild(ii, ji, 0, -1);
1845
+ const R = nbrStateChild(ii, ji, 0, 1);
1846
+ const T = nbrStateChild(ii, ji, -1, 0);
1847
+ const B = nbrStateChild(ii, ji, 1, 0);
1848
+ const TL = nbrStateChild(ii, ji, -1, -1);
1849
+ const TR = nbrStateChild(ii, ji, -1, 1);
1850
+ const BL = nbrStateChild(ii, ji, 1, -1);
1851
+ const BR = nbrStateChild(ii, ji, 1, 1);
1852
+ const lapU = __tsover_sub(__tsover_add(__tsover_mul(__tsover_add(__tsover_add(__tsover_add(L.x, R.x), T.x), B.x), .2), __tsover_mul(__tsover_add(__tsover_add(__tsover_add(TL.x, TR.x), BL.x), BR.x), .05)), self.x);
1853
+ const lapV = __tsover_sub(__tsover_add(__tsover_mul(__tsover_add(__tsover_add(__tsover_add(L.y, R.y), T.y), B.y), .2), __tsover_mul(__tsover_add(__tsover_add(__tsover_add(TL.y, TR.y), BL.y), BR.y), .05)), self.y);
1854
+ const mod = __tsover_mul(rdChildDrive(cx, cy), p.childInfluence);
1855
+ const feedCell = std.clamp(__tsover_add(p.feed, __tsover_mul(mod, d.f32(CHILD_DFEED))), d.f32(CHILD_FEED_MIN), d.f32(CHILD_FEED_MAX));
1856
+ const killCell = std.clamp(__tsover_sub(p.kill, __tsover_mul(mod, d.f32(CHILD_DKILL))), d.f32(CHILD_KILL_MIN), d.f32(CHILD_KILL_MAX));
1857
+ const U = self.x;
1858
+ const V = self.y;
1859
+ const uvv = __tsover_mul(__tsover_mul(U, V), V);
1860
+ let newU = __tsover_add(U, __tsover_add(__tsover_sub(lapU, uvv), __tsover_mul(feedCell, __tsover_sub(1, U))));
1861
+ let newV = __tsover_add(V, __tsover_sub(__tsover_add(__tsover_mul(p.dv, lapV), uvv), __tsover_mul(__tsover_add(feedCell, killCell), V)));
1862
+ if (p.cursorActive > 0) {
1863
+ const cellX = __tsover_add(d.f32(cx), .5);
1864
+ const cellY = __tsover_add(d.f32(cy), .5);
1865
+ const dxp = __tsover_sub(cellX, p.cursorX);
1866
+ const dyp = __tsover_sub(cellY, p.cursorY);
1867
+ const distSq = __tsover_add(__tsover_mul(dxp, dxp), __tsover_mul(dyp, dyp));
1868
+ const inf = __tsover_mul(std.exp(__tsover_mul(__tsover_div(distSq, std.max(p.brushRadSq, d.f32(1))), -1)), p.cursorActive);
1869
+ newV = std.min(__tsover_add(newV, __tsover_mul(inf, p.brushStrength)), d.f32(1));
1870
+ }
1871
+ newU = std.clamp(newU, 0, 1);
1872
+ newV = std.clamp(newV, 0, 1);
1873
+ reactionChildLayout.$.writeBuf[idx] = d.vec2f(newU, newV);
1874
+ }), {
1875
+ v: 1,
1876
+ name: void 0,
1877
+ ast: {
1878
+ "params": [{
1879
+ "type": "i",
1880
+ "name": "cx"
1881
+ }, {
1882
+ "type": "i",
1883
+ "name": "cy"
1884
+ }],
1885
+ "body": [0, [
1886
+ [
1887
+ 13,
1888
+ "p",
1889
+ [
1890
+ 7,
1891
+ [
1892
+ 7,
1893
+ "reactionChildLayout",
1894
+ "$"
1895
+ ],
1896
+ "params"
1897
+ ]
1898
+ ],
1899
+ [
1900
+ 13,
1901
+ "idx",
1902
+ [
1903
+ 1,
1904
+ [
1905
+ 1,
1906
+ "cy",
1907
+ "*",
1908
+ [
1909
+ 6,
1910
+ [
1911
+ 7,
1912
+ "d",
1913
+ "u32"
1914
+ ],
1915
+ ["N"]
1916
+ ]
1917
+ ],
1918
+ "+",
1919
+ "cx"
1920
+ ]
1921
+ ],
1922
+ [
1923
+ 13,
1924
+ "self",
1925
+ [
1926
+ 8,
1927
+ [
1928
+ 7,
1929
+ [
1930
+ 7,
1931
+ "reactionChildLayout",
1932
+ "$"
1933
+ ],
1934
+ "readBuf"
1935
+ ],
1936
+ "idx"
1937
+ ]
1938
+ ],
1939
+ [
1940
+ 13,
1941
+ "ii",
1942
+ [
1943
+ 6,
1944
+ [
1945
+ 7,
1946
+ "d",
1947
+ "i32"
1948
+ ],
1949
+ ["cy"]
1950
+ ]
1951
+ ],
1952
+ [
1953
+ 13,
1954
+ "ji",
1955
+ [
1956
+ 6,
1957
+ [
1958
+ 7,
1959
+ "d",
1960
+ "i32"
1961
+ ],
1962
+ ["cx"]
1963
+ ]
1964
+ ],
1965
+ [
1966
+ 13,
1967
+ "L",
1968
+ [
1969
+ 6,
1970
+ "nbrStateChild",
1971
+ [
1972
+ "ii",
1973
+ "ji",
1974
+ [5, "0"],
1975
+ [
1976
+ 4,
1977
+ "-",
1978
+ [5, "1"]
1979
+ ]
1980
+ ]
1981
+ ]
1982
+ ],
1983
+ [
1984
+ 13,
1985
+ "R",
1986
+ [
1987
+ 6,
1988
+ "nbrStateChild",
1989
+ [
1990
+ "ii",
1991
+ "ji",
1992
+ [5, "0"],
1993
+ [5, "1"]
1994
+ ]
1995
+ ]
1996
+ ],
1997
+ [
1998
+ 13,
1999
+ "T",
2000
+ [
2001
+ 6,
2002
+ "nbrStateChild",
2003
+ [
2004
+ "ii",
2005
+ "ji",
2006
+ [
2007
+ 4,
2008
+ "-",
2009
+ [5, "1"]
2010
+ ],
2011
+ [5, "0"]
2012
+ ]
2013
+ ]
2014
+ ],
2015
+ [
2016
+ 13,
2017
+ "B",
2018
+ [
2019
+ 6,
2020
+ "nbrStateChild",
2021
+ [
2022
+ "ii",
2023
+ "ji",
2024
+ [5, "1"],
2025
+ [5, "0"]
2026
+ ]
2027
+ ]
2028
+ ],
2029
+ [
2030
+ 13,
2031
+ "TL",
2032
+ [
2033
+ 6,
2034
+ "nbrStateChild",
2035
+ [
2036
+ "ii",
2037
+ "ji",
2038
+ [
2039
+ 4,
2040
+ "-",
2041
+ [5, "1"]
2042
+ ],
2043
+ [
2044
+ 4,
2045
+ "-",
2046
+ [5, "1"]
2047
+ ]
2048
+ ]
2049
+ ]
2050
+ ],
2051
+ [
2052
+ 13,
2053
+ "TR",
2054
+ [
2055
+ 6,
2056
+ "nbrStateChild",
2057
+ [
2058
+ "ii",
2059
+ "ji",
2060
+ [
2061
+ 4,
2062
+ "-",
2063
+ [5, "1"]
2064
+ ],
2065
+ [5, "1"]
2066
+ ]
2067
+ ]
2068
+ ],
2069
+ [
2070
+ 13,
2071
+ "BL",
2072
+ [
2073
+ 6,
2074
+ "nbrStateChild",
2075
+ [
2076
+ "ii",
2077
+ "ji",
2078
+ [5, "1"],
2079
+ [
2080
+ 4,
2081
+ "-",
2082
+ [5, "1"]
2083
+ ]
2084
+ ]
2085
+ ]
2086
+ ],
2087
+ [
2088
+ 13,
2089
+ "BR",
2090
+ [
2091
+ 6,
2092
+ "nbrStateChild",
2093
+ [
2094
+ "ii",
2095
+ "ji",
2096
+ [5, "1"],
2097
+ [5, "1"]
2098
+ ]
2099
+ ]
2100
+ ],
2101
+ [
2102
+ 13,
2103
+ "lapU",
2104
+ [
2105
+ 1,
2106
+ [
2107
+ 1,
2108
+ [
2109
+ 1,
2110
+ [
2111
+ 1,
2112
+ [
2113
+ 1,
2114
+ [
2115
+ 1,
2116
+ [
2117
+ 7,
2118
+ "L",
2119
+ "x"
2120
+ ],
2121
+ "+",
2122
+ [
2123
+ 7,
2124
+ "R",
2125
+ "x"
2126
+ ]
2127
+ ],
2128
+ "+",
2129
+ [
2130
+ 7,
2131
+ "T",
2132
+ "x"
2133
+ ]
2134
+ ],
2135
+ "+",
2136
+ [
2137
+ 7,
2138
+ "B",
2139
+ "x"
2140
+ ]
2141
+ ],
2142
+ "*",
2143
+ [5, "0.2"]
2144
+ ],
2145
+ "+",
2146
+ [
2147
+ 1,
2148
+ [
2149
+ 1,
2150
+ [
2151
+ 1,
2152
+ [
2153
+ 1,
2154
+ [
2155
+ 7,
2156
+ "TL",
2157
+ "x"
2158
+ ],
2159
+ "+",
2160
+ [
2161
+ 7,
2162
+ "TR",
2163
+ "x"
2164
+ ]
2165
+ ],
2166
+ "+",
2167
+ [
2168
+ 7,
2169
+ "BL",
2170
+ "x"
2171
+ ]
2172
+ ],
2173
+ "+",
2174
+ [
2175
+ 7,
2176
+ "BR",
2177
+ "x"
2178
+ ]
2179
+ ],
2180
+ "*",
2181
+ [5, "0.05"]
2182
+ ]
2183
+ ],
2184
+ "-",
2185
+ [
2186
+ 7,
2187
+ "self",
2188
+ "x"
2189
+ ]
2190
+ ]
2191
+ ],
2192
+ [
2193
+ 13,
2194
+ "lapV",
2195
+ [
2196
+ 1,
2197
+ [
2198
+ 1,
2199
+ [
2200
+ 1,
2201
+ [
2202
+ 1,
2203
+ [
2204
+ 1,
2205
+ [
2206
+ 1,
2207
+ [
2208
+ 7,
2209
+ "L",
2210
+ "y"
2211
+ ],
2212
+ "+",
2213
+ [
2214
+ 7,
2215
+ "R",
2216
+ "y"
2217
+ ]
2218
+ ],
2219
+ "+",
2220
+ [
2221
+ 7,
2222
+ "T",
2223
+ "y"
2224
+ ]
2225
+ ],
2226
+ "+",
2227
+ [
2228
+ 7,
2229
+ "B",
2230
+ "y"
2231
+ ]
2232
+ ],
2233
+ "*",
2234
+ [5, "0.2"]
2235
+ ],
2236
+ "+",
2237
+ [
2238
+ 1,
2239
+ [
2240
+ 1,
2241
+ [
2242
+ 1,
2243
+ [
2244
+ 1,
2245
+ [
2246
+ 7,
2247
+ "TL",
2248
+ "y"
2249
+ ],
2250
+ "+",
2251
+ [
2252
+ 7,
2253
+ "TR",
2254
+ "y"
2255
+ ]
2256
+ ],
2257
+ "+",
2258
+ [
2259
+ 7,
2260
+ "BL",
2261
+ "y"
2262
+ ]
2263
+ ],
2264
+ "+",
2265
+ [
2266
+ 7,
2267
+ "BR",
2268
+ "y"
2269
+ ]
2270
+ ],
2271
+ "*",
2272
+ [5, "0.05"]
2273
+ ]
2274
+ ],
2275
+ "-",
2276
+ [
2277
+ 7,
2278
+ "self",
2279
+ "y"
2280
+ ]
2281
+ ]
2282
+ ],
2283
+ [
2284
+ 13,
2285
+ "mod",
2286
+ [
2287
+ 1,
2288
+ [
2289
+ 6,
2290
+ "rdChildDrive",
2291
+ ["cx", "cy"]
2292
+ ],
2293
+ "*",
2294
+ [
2295
+ 7,
2296
+ "p",
2297
+ "childInfluence"
2298
+ ]
2299
+ ]
2300
+ ],
2301
+ [
2302
+ 13,
2303
+ "feedCell",
2304
+ [
2305
+ 6,
2306
+ [
2307
+ 7,
2308
+ "std",
2309
+ "clamp"
2310
+ ],
2311
+ [
2312
+ [
2313
+ 1,
2314
+ [
2315
+ 7,
2316
+ "p",
2317
+ "feed"
2318
+ ],
2319
+ "+",
2320
+ [
2321
+ 1,
2322
+ "mod",
2323
+ "*",
2324
+ [
2325
+ 6,
2326
+ [
2327
+ 7,
2328
+ "d",
2329
+ "f32"
2330
+ ],
2331
+ ["CHILD_DFEED"]
2332
+ ]
2333
+ ]
2334
+ ],
2335
+ [
2336
+ 6,
2337
+ [
2338
+ 7,
2339
+ "d",
2340
+ "f32"
2341
+ ],
2342
+ ["CHILD_FEED_MIN"]
2343
+ ],
2344
+ [
2345
+ 6,
2346
+ [
2347
+ 7,
2348
+ "d",
2349
+ "f32"
2350
+ ],
2351
+ ["CHILD_FEED_MAX"]
2352
+ ]
2353
+ ]
2354
+ ]
2355
+ ],
2356
+ [
2357
+ 13,
2358
+ "killCell",
2359
+ [
2360
+ 6,
2361
+ [
2362
+ 7,
2363
+ "std",
2364
+ "clamp"
2365
+ ],
2366
+ [
2367
+ [
2368
+ 1,
2369
+ [
2370
+ 7,
2371
+ "p",
2372
+ "kill"
2373
+ ],
2374
+ "-",
2375
+ [
2376
+ 1,
2377
+ "mod",
2378
+ "*",
2379
+ [
2380
+ 6,
2381
+ [
2382
+ 7,
2383
+ "d",
2384
+ "f32"
2385
+ ],
2386
+ ["CHILD_DKILL"]
2387
+ ]
2388
+ ]
2389
+ ],
2390
+ [
2391
+ 6,
2392
+ [
2393
+ 7,
2394
+ "d",
2395
+ "f32"
2396
+ ],
2397
+ ["CHILD_KILL_MIN"]
2398
+ ],
2399
+ [
2400
+ 6,
2401
+ [
2402
+ 7,
2403
+ "d",
2404
+ "f32"
2405
+ ],
2406
+ ["CHILD_KILL_MAX"]
2407
+ ]
2408
+ ]
2409
+ ]
2410
+ ],
2411
+ [
2412
+ 13,
2413
+ "U",
2414
+ [
2415
+ 7,
2416
+ "self",
2417
+ "x"
2418
+ ]
2419
+ ],
2420
+ [
2421
+ 13,
2422
+ "V",
2423
+ [
2424
+ 7,
2425
+ "self",
2426
+ "y"
2427
+ ]
2428
+ ],
2429
+ [
2430
+ 13,
2431
+ "uvv",
2432
+ [
2433
+ 1,
2434
+ [
2435
+ 1,
2436
+ "U",
2437
+ "*",
2438
+ "V"
2439
+ ],
2440
+ "*",
2441
+ "V"
2442
+ ]
2443
+ ],
2444
+ [
2445
+ 12,
2446
+ "newU",
2447
+ [
2448
+ 1,
2449
+ "U",
2450
+ "+",
2451
+ [
2452
+ 1,
2453
+ [
2454
+ 1,
2455
+ "lapU",
2456
+ "-",
2457
+ "uvv"
2458
+ ],
2459
+ "+",
2460
+ [
2461
+ 1,
2462
+ "feedCell",
2463
+ "*",
2464
+ [
2465
+ 1,
2466
+ [5, "1"],
2467
+ "-",
2468
+ "U"
2469
+ ]
2470
+ ]
2471
+ ]
2472
+ ]
2473
+ ],
2474
+ [
2475
+ 12,
2476
+ "newV",
2477
+ [
2478
+ 1,
2479
+ "V",
2480
+ "+",
2481
+ [
2482
+ 1,
2483
+ [
2484
+ 1,
2485
+ [
2486
+ 1,
2487
+ [
2488
+ 7,
2489
+ "p",
2490
+ "dv"
2491
+ ],
2492
+ "*",
2493
+ "lapV"
2494
+ ],
2495
+ "+",
2496
+ "uvv"
2497
+ ],
2498
+ "-",
2499
+ [
2500
+ 1,
2501
+ [
2502
+ 1,
2503
+ "feedCell",
2504
+ "+",
2505
+ "killCell"
2506
+ ],
2507
+ "*",
2508
+ "V"
2509
+ ]
2510
+ ]
2511
+ ]
2512
+ ],
2513
+ [
2514
+ 11,
2515
+ [
2516
+ 1,
2517
+ [
2518
+ 7,
2519
+ "p",
2520
+ "cursorActive"
2521
+ ],
2522
+ ">",
2523
+ [5, "0"]
2524
+ ],
2525
+ [0, [
2526
+ [
2527
+ 13,
2528
+ "cellX",
2529
+ [
2530
+ 1,
2531
+ [
2532
+ 6,
2533
+ [
2534
+ 7,
2535
+ "d",
2536
+ "f32"
2537
+ ],
2538
+ ["cx"]
2539
+ ],
2540
+ "+",
2541
+ [5, "0.5"]
2542
+ ]
2543
+ ],
2544
+ [
2545
+ 13,
2546
+ "cellY",
2547
+ [
2548
+ 1,
2549
+ [
2550
+ 6,
2551
+ [
2552
+ 7,
2553
+ "d",
2554
+ "f32"
2555
+ ],
2556
+ ["cy"]
2557
+ ],
2558
+ "+",
2559
+ [5, "0.5"]
2560
+ ]
2561
+ ],
2562
+ [
2563
+ 13,
2564
+ "dxp",
2565
+ [
2566
+ 1,
2567
+ "cellX",
2568
+ "-",
2569
+ [
2570
+ 7,
2571
+ "p",
2572
+ "cursorX"
2573
+ ]
2574
+ ]
2575
+ ],
2576
+ [
2577
+ 13,
2578
+ "dyp",
2579
+ [
2580
+ 1,
2581
+ "cellY",
2582
+ "-",
2583
+ [
2584
+ 7,
2585
+ "p",
2586
+ "cursorY"
2587
+ ]
2588
+ ]
2589
+ ],
2590
+ [
2591
+ 13,
2592
+ "distSq",
2593
+ [
2594
+ 1,
2595
+ [
2596
+ 1,
2597
+ "dxp",
2598
+ "*",
2599
+ "dxp"
2600
+ ],
2601
+ "+",
2602
+ [
2603
+ 1,
2604
+ "dyp",
2605
+ "*",
2606
+ "dyp"
2607
+ ]
2608
+ ]
2609
+ ],
2610
+ [
2611
+ 13,
2612
+ "inf",
2613
+ [
2614
+ 1,
2615
+ [
2616
+ 6,
2617
+ [
2618
+ 7,
2619
+ "std",
2620
+ "exp"
2621
+ ],
2622
+ [[
2623
+ 1,
2624
+ [
2625
+ 1,
2626
+ "distSq",
2627
+ "/",
2628
+ [
2629
+ 6,
2630
+ [
2631
+ 7,
2632
+ "std",
2633
+ "max"
2634
+ ],
2635
+ [[
2636
+ 7,
2637
+ "p",
2638
+ "brushRadSq"
2639
+ ], [
2640
+ 6,
2641
+ [
2642
+ 7,
2643
+ "d",
2644
+ "f32"
2645
+ ],
2646
+ [[5, "1"]]
2647
+ ]]
2648
+ ]
2649
+ ],
2650
+ "*",
2651
+ [
2652
+ 4,
2653
+ "-",
2654
+ [5, "1"]
2655
+ ]
2656
+ ]]
2657
+ ],
2658
+ "*",
2659
+ [
2660
+ 7,
2661
+ "p",
2662
+ "cursorActive"
2663
+ ]
2664
+ ]
2665
+ ],
2666
+ [
2667
+ 2,
2668
+ "newV",
2669
+ "=",
2670
+ [
2671
+ 6,
2672
+ [
2673
+ 7,
2674
+ "std",
2675
+ "min"
2676
+ ],
2677
+ [[
2678
+ 1,
2679
+ "newV",
2680
+ "+",
2681
+ [
2682
+ 1,
2683
+ "inf",
2684
+ "*",
2685
+ [
2686
+ 7,
2687
+ "p",
2688
+ "brushStrength"
2689
+ ]
2690
+ ]
2691
+ ], [
2692
+ 6,
2693
+ [
2694
+ 7,
2695
+ "d",
2696
+ "f32"
2697
+ ],
2698
+ [[5, "1"]]
2699
+ ]]
2700
+ ]
2701
+ ]
2702
+ ]]
2703
+ ],
2704
+ [
2705
+ 2,
2706
+ "newU",
2707
+ "=",
2708
+ [
2709
+ 6,
2710
+ [
2711
+ 7,
2712
+ "std",
2713
+ "clamp"
2714
+ ],
2715
+ [
2716
+ "newU",
2717
+ [5, "0"],
2718
+ [5, "1"]
2719
+ ]
2720
+ ]
2721
+ ],
2722
+ [
2723
+ 2,
2724
+ "newV",
2725
+ "=",
2726
+ [
2727
+ 6,
2728
+ [
2729
+ 7,
2730
+ "std",
2731
+ "clamp"
2732
+ ],
2733
+ [
2734
+ "newV",
2735
+ [5, "0"],
2736
+ [5, "1"]
2737
+ ]
2738
+ ]
2739
+ ],
2740
+ [
2741
+ 2,
2742
+ [
2743
+ 8,
2744
+ [
2745
+ 7,
2746
+ [
2747
+ 7,
2748
+ "reactionChildLayout",
2749
+ "$"
2750
+ ],
2751
+ "writeBuf"
2752
+ ],
2753
+ "idx"
2754
+ ],
2755
+ "=",
2756
+ [
2757
+ 6,
2758
+ [
2759
+ 7,
2760
+ "d",
2761
+ "vec2f"
2762
+ ],
2763
+ ["newU", "newV"]
2764
+ ]
2765
+ ]
2766
+ ]],
2767
+ "externalNames": [
2768
+ "reactionChildLayout",
2769
+ "d",
2770
+ "N",
2771
+ "nbrStateChild",
2772
+ "rdChildDrive",
2773
+ "std",
2774
+ "CHILD_DFEED",
2775
+ "CHILD_FEED_MIN",
2776
+ "CHILD_FEED_MAX",
2777
+ "CHILD_DKILL",
2778
+ "CHILD_KILL_MIN",
2779
+ "CHILD_KILL_MAX"
2780
+ ]
2781
+ },
2782
+ externals: () => ({
2783
+ reactionChildLayout,
2784
+ d,
2785
+ N,
2786
+ nbrStateChild,
2787
+ rdChildDrive,
2788
+ std,
2789
+ CHILD_DFEED,
2790
+ CHILD_FEED_MIN,
2791
+ CHILD_FEED_MAX,
2792
+ CHILD_DKILL,
2793
+ CHILD_KILL_MIN,
2794
+ CHILD_KILL_MAX
2795
+ })
2796
+ }) && $.f)({})).$name("reactionDiffusionReactChild");
2797
+ const seedKernel = tgpu.fn([d.u32, d.u32])(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
2798
+ "use gpu";
2799
+ const idx = __tsover_add(__tsover_mul(cy, d.u32(N)), cx);
2800
+ const s = __tsover_mul(std.sin(__tsover_add(__tsover_mul(d.f32(cx), 12.9898), __tsover_mul(d.f32(cy), 78.233))), 43758.5453);
2801
+ const h = __tsover_sub(s, std.floor(s));
2802
+ const vSeed = std.select(d.f32(0), d.f32(1), h < SEED_DENSITY);
2803
+ seedLayout.$.stateBuf[idx] = d.vec2f(1, vSeed);
2804
+ }), {
2805
+ v: 1,
2806
+ name: void 0,
2807
+ ast: {
2808
+ "params": [{
2809
+ "type": "i",
2810
+ "name": "cx"
2811
+ }, {
2812
+ "type": "i",
2813
+ "name": "cy"
2814
+ }],
2815
+ "body": [0, [
2816
+ [
2817
+ 13,
2818
+ "idx",
2819
+ [
2820
+ 1,
2821
+ [
2822
+ 1,
2823
+ "cy",
2824
+ "*",
2825
+ [
2826
+ 6,
2827
+ [
2828
+ 7,
2829
+ "d",
2830
+ "u32"
2831
+ ],
2832
+ ["N"]
2833
+ ]
2834
+ ],
2835
+ "+",
2836
+ "cx"
2837
+ ]
2838
+ ],
2839
+ [
2840
+ 13,
2841
+ "s",
2842
+ [
2843
+ 1,
2844
+ [
2845
+ 6,
2846
+ [
2847
+ 7,
2848
+ "std",
2849
+ "sin"
2850
+ ],
2851
+ [[
2852
+ 1,
2853
+ [
2854
+ 1,
2855
+ [
2856
+ 6,
2857
+ [
2858
+ 7,
2859
+ "d",
2860
+ "f32"
2861
+ ],
2862
+ ["cx"]
2863
+ ],
2864
+ "*",
2865
+ [5, "12.9898"]
2866
+ ],
2867
+ "+",
2868
+ [
2869
+ 1,
2870
+ [
2871
+ 6,
2872
+ [
2873
+ 7,
2874
+ "d",
2875
+ "f32"
2876
+ ],
2877
+ ["cy"]
2878
+ ],
2879
+ "*",
2880
+ [5, "78.233"]
2881
+ ]
2882
+ ]]
2883
+ ],
2884
+ "*",
2885
+ [5, "43758.5453"]
2886
+ ]
2887
+ ],
2888
+ [
2889
+ 13,
2890
+ "h",
2891
+ [
2892
+ 1,
2893
+ "s",
2894
+ "-",
2895
+ [
2896
+ 6,
2897
+ [
2898
+ 7,
2899
+ "std",
2900
+ "floor"
2901
+ ],
2902
+ ["s"]
2903
+ ]
2904
+ ]
2905
+ ],
2906
+ [
2907
+ 13,
2908
+ "vSeed",
2909
+ [
2910
+ 6,
2911
+ [
2912
+ 7,
2913
+ "std",
2914
+ "select"
2915
+ ],
2916
+ [
2917
+ [
2918
+ 6,
2919
+ [
2920
+ 7,
2921
+ "d",
2922
+ "f32"
2923
+ ],
2924
+ [[5, "0"]]
2925
+ ],
2926
+ [
2927
+ 6,
2928
+ [
2929
+ 7,
2930
+ "d",
2931
+ "f32"
2932
+ ],
2933
+ [[5, "1"]]
2934
+ ],
2935
+ [
2936
+ 1,
2937
+ "h",
2938
+ "<",
2939
+ "SEED_DENSITY"
2940
+ ]
2941
+ ]
2942
+ ]
2943
+ ],
2944
+ [
2945
+ 2,
2946
+ [
2947
+ 8,
2948
+ [
2949
+ 7,
2950
+ [
2951
+ 7,
2952
+ "seedLayout",
2953
+ "$"
2954
+ ],
2955
+ "stateBuf"
2956
+ ],
2957
+ "idx"
2958
+ ],
2959
+ "=",
2960
+ [
2961
+ 6,
2962
+ [
2963
+ 7,
2964
+ "d",
2965
+ "vec2f"
2966
+ ],
2967
+ [[5, "1"], "vSeed"]
2968
+ ]
2969
+ ]
2970
+ ]],
2971
+ "externalNames": [
2972
+ "d",
2973
+ "N",
2974
+ "std",
2975
+ "SEED_DENSITY",
2976
+ "seedLayout"
2977
+ ]
2978
+ },
2979
+ externals: () => ({
2980
+ d,
2981
+ N,
2982
+ std,
2983
+ SEED_DENSITY,
2984
+ seedLayout
2985
+ })
2986
+ }) && $.f)({})).$name("reactionDiffusionSeed");
2987
+ const outputKernel = tgpu.fn([d.u32, d.u32])(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
2988
+ "use gpu";
2989
+ const idx = __tsover_add(__tsover_mul(cy, d.u32(N)), cx);
2990
+ const s = outputLayout.$.srcBuf[idx];
2991
+ std.textureStore(outputLayout.$.outTex, d.vec2u(cx, cy), d.vec4f(s.x, s.y, 0, 0));
2992
+ }), {
2993
+ v: 1,
2994
+ name: void 0,
2995
+ ast: {
2996
+ "params": [{
2997
+ "type": "i",
2998
+ "name": "cx"
2999
+ }, {
3000
+ "type": "i",
3001
+ "name": "cy"
3002
+ }],
3003
+ "body": [0, [
3004
+ [
3005
+ 13,
3006
+ "idx",
3007
+ [
3008
+ 1,
3009
+ [
3010
+ 1,
3011
+ "cy",
3012
+ "*",
3013
+ [
3014
+ 6,
3015
+ [
3016
+ 7,
3017
+ "d",
3018
+ "u32"
3019
+ ],
3020
+ ["N"]
3021
+ ]
3022
+ ],
3023
+ "+",
3024
+ "cx"
3025
+ ]
3026
+ ],
3027
+ [
3028
+ 13,
3029
+ "s",
3030
+ [
3031
+ 8,
3032
+ [
3033
+ 7,
3034
+ [
3035
+ 7,
3036
+ "outputLayout",
3037
+ "$"
3038
+ ],
3039
+ "srcBuf"
3040
+ ],
3041
+ "idx"
3042
+ ]
3043
+ ],
3044
+ [
3045
+ 6,
3046
+ [
3047
+ 7,
3048
+ "std",
3049
+ "textureStore"
3050
+ ],
3051
+ [
3052
+ [
3053
+ 7,
3054
+ [
3055
+ 7,
3056
+ "outputLayout",
3057
+ "$"
3058
+ ],
3059
+ "outTex"
3060
+ ],
3061
+ [
3062
+ 6,
3063
+ [
3064
+ 7,
3065
+ "d",
3066
+ "vec2u"
3067
+ ],
3068
+ ["cx", "cy"]
3069
+ ],
3070
+ [
3071
+ 6,
3072
+ [
3073
+ 7,
3074
+ "d",
3075
+ "vec4f"
3076
+ ],
3077
+ [
3078
+ [
3079
+ 7,
3080
+ "s",
3081
+ "x"
3082
+ ],
3083
+ [
3084
+ 7,
3085
+ "s",
3086
+ "y"
3087
+ ],
3088
+ [5, "0"],
3089
+ [5, "0"]
3090
+ ]
3091
+ ]
3092
+ ]
3093
+ ]
3094
+ ]],
3095
+ "externalNames": [
3096
+ "d",
3097
+ "N",
3098
+ "outputLayout",
3099
+ "std"
3100
+ ]
3101
+ },
3102
+ externals: () => ({
3103
+ d,
3104
+ N,
3105
+ outputLayout,
3106
+ std
3107
+ })
3108
+ }) && $.f)({})).$name("reactionDiffusionOutput");
3109
+ const rdSampleUV = tgpu.fn([
3110
+ d.vec2f,
3111
+ d.f32,
3112
+ d.f32
3113
+ ], d.vec2f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((uv, aspect, featureSize) => {
3114
+ "use gpu";
3115
+ const view = __tsover_div(1, featureSize);
3116
+ const sx = std.min(aspect, 1);
3117
+ const sy = std.min(__tsover_div(1, aspect), 1);
3118
+ const fx = __tsover_add(__tsover_mul(__tsover_mul(__tsover_sub(uv.x, .5), sx), view), .5);
3119
+ const fy = __tsover_add(__tsover_mul(__tsover_mul(__tsover_sub(uv.y, .5), sy), view), .5);
3120
+ return d.vec2f(fx, fy);
3121
+ }), {
3122
+ v: 1,
3123
+ name: void 0,
3124
+ ast: {
3125
+ "params": [
3126
+ {
3127
+ "type": "i",
3128
+ "name": "uv"
3129
+ },
3130
+ {
3131
+ "type": "i",
3132
+ "name": "aspect"
3133
+ },
3134
+ {
3135
+ "type": "i",
3136
+ "name": "featureSize"
3137
+ }
3138
+ ],
3139
+ "body": [0, [
3140
+ [
3141
+ 13,
3142
+ "view",
3143
+ [
3144
+ 1,
3145
+ [5, "1"],
3146
+ "/",
3147
+ "featureSize"
3148
+ ]
3149
+ ],
3150
+ [
3151
+ 13,
3152
+ "sx",
3153
+ [
3154
+ 6,
3155
+ [
3156
+ 7,
3157
+ "std",
3158
+ "min"
3159
+ ],
3160
+ ["aspect", [5, "1"]]
3161
+ ]
3162
+ ],
3163
+ [
3164
+ 13,
3165
+ "sy",
3166
+ [
3167
+ 6,
3168
+ [
3169
+ 7,
3170
+ "std",
3171
+ "min"
3172
+ ],
3173
+ [[
3174
+ 1,
3175
+ [5, "1"],
3176
+ "/",
3177
+ "aspect"
3178
+ ], [5, "1"]]
3179
+ ]
3180
+ ],
3181
+ [
3182
+ 13,
3183
+ "fx",
3184
+ [
3185
+ 1,
3186
+ [
3187
+ 1,
3188
+ [
3189
+ 1,
3190
+ [
3191
+ 1,
3192
+ [
3193
+ 7,
3194
+ "uv",
3195
+ "x"
3196
+ ],
3197
+ "-",
3198
+ [5, "0.5"]
3199
+ ],
3200
+ "*",
3201
+ "sx"
3202
+ ],
3203
+ "*",
3204
+ "view"
3205
+ ],
3206
+ "+",
3207
+ [5, "0.5"]
3208
+ ]
3209
+ ],
3210
+ [
3211
+ 13,
3212
+ "fy",
3213
+ [
3214
+ 1,
3215
+ [
3216
+ 1,
3217
+ [
3218
+ 1,
3219
+ [
3220
+ 1,
3221
+ [
3222
+ 7,
3223
+ "uv",
3224
+ "y"
3225
+ ],
3226
+ "-",
3227
+ [5, "0.5"]
3228
+ ],
3229
+ "*",
3230
+ "sy"
3231
+ ],
3232
+ "*",
3233
+ "view"
3234
+ ],
3235
+ "+",
3236
+ [5, "0.5"]
3237
+ ]
3238
+ ],
3239
+ [10, [
3240
+ 6,
3241
+ [
3242
+ 7,
3243
+ "d",
3244
+ "vec2f"
3245
+ ],
3246
+ ["fx", "fy"]
3247
+ ]]
3248
+ ]],
3249
+ "externalNames": ["std", "d"]
3250
+ },
3251
+ externals: () => ({
3252
+ std,
3253
+ d
3254
+ })
3255
+ }) && $.f)({})).$name("reactionDiffusionSampleUV");
3256
+ const rdRampT = tgpu.fn([
3257
+ d.f32,
3258
+ d.f32,
3259
+ d.f32
3260
+ ], d.f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((v, contrast, threshold) => {
3261
+ "use gpu";
3262
+ const w = std.max(__tsover_sub(.6, __tsover_mul(contrast, .55)), .02);
3263
+ return std.smoothstep(__tsover_sub(threshold, w), __tsover_add(threshold, w), v);
3264
+ }), {
3265
+ v: 1,
3266
+ name: void 0,
3267
+ ast: {
3268
+ "params": [
3269
+ {
3270
+ "type": "i",
3271
+ "name": "v"
3272
+ },
3273
+ {
3274
+ "type": "i",
3275
+ "name": "contrast"
3276
+ },
3277
+ {
3278
+ "type": "i",
3279
+ "name": "threshold"
3280
+ }
3281
+ ],
3282
+ "body": [0, [[
3283
+ 13,
3284
+ "w",
3285
+ [
3286
+ 6,
3287
+ [
3288
+ 7,
3289
+ "std",
3290
+ "max"
3291
+ ],
3292
+ [[
3293
+ 1,
3294
+ [5, "0.6"],
3295
+ "-",
3296
+ [
3297
+ 1,
3298
+ "contrast",
3299
+ "*",
3300
+ [5, "0.55"]
3301
+ ]
3302
+ ], [5, "0.02"]]
3303
+ ]
3304
+ ], [10, [
3305
+ 6,
3306
+ [
3307
+ 7,
3308
+ "std",
3309
+ "smoothstep"
3310
+ ],
3311
+ [
3312
+ [
3313
+ 1,
3314
+ "threshold",
3315
+ "-",
3316
+ "w"
3317
+ ],
3318
+ [
3319
+ 1,
3320
+ "threshold",
3321
+ "+",
3322
+ "w"
3323
+ ],
3324
+ "v"
3325
+ ]
3326
+ ]]]],
3327
+ "externalNames": ["std"]
3328
+ },
3329
+ externals: () => ({ std })
3330
+ }) && $.f)({}));
3331
+ const rdSeg = tgpu.fn([d.f32, d.f32], d.f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((t, offset) => {
3332
+ "use gpu";
3333
+ return std.clamp(__tsover_sub(__tsover_mul(t, 2), offset), 0, 1);
3334
+ }), {
3335
+ v: 1,
3336
+ name: void 0,
3337
+ ast: {
3338
+ "params": [{
3339
+ "type": "i",
3340
+ "name": "t"
3341
+ }, {
3342
+ "type": "i",
3343
+ "name": "offset"
3344
+ }],
3345
+ "body": [0, [[10, [
3346
+ 6,
3347
+ [
3348
+ 7,
3349
+ "std",
3350
+ "clamp"
3351
+ ],
3352
+ [
3353
+ [
3354
+ 1,
3355
+ [
3356
+ 1,
3357
+ "t",
3358
+ "*",
3359
+ [5, "2"]
3360
+ ],
3361
+ "-",
3362
+ "offset"
3363
+ ],
3364
+ [5, "0"],
3365
+ [5, "1"]
3366
+ ]
3367
+ ]]]],
3368
+ "externalNames": ["std"]
3369
+ },
3370
+ externals: () => ({ std })
3371
+ }) && $.f)({}));
3372
+ const rdPickSeg = tgpu.fn([
3373
+ d.vec4f,
3374
+ d.vec4f,
3375
+ d.f32
3376
+ ], d.vec4f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((lo, hi, t) => {
3377
+ "use gpu";
3378
+ const useHi = t > .5;
3379
+ return d.vec4f(std.select(lo.x, hi.x, useHi), std.select(lo.y, hi.y, useHi), std.select(lo.z, hi.z, useHi), std.select(lo.w, hi.w, useHi));
3380
+ }), {
3381
+ v: 1,
3382
+ name: void 0,
3383
+ ast: {
3384
+ "params": [
3385
+ {
3386
+ "type": "i",
3387
+ "name": "lo"
3388
+ },
3389
+ {
3390
+ "type": "i",
3391
+ "name": "hi"
3392
+ },
3393
+ {
3394
+ "type": "i",
3395
+ "name": "t"
3396
+ }
3397
+ ],
3398
+ "body": [0, [[
3399
+ 13,
3400
+ "useHi",
3401
+ [
3402
+ 1,
3403
+ "t",
3404
+ ">",
3405
+ [5, "0.5"]
3406
+ ]
3407
+ ], [10, [
3408
+ 6,
3409
+ [
3410
+ 7,
3411
+ "d",
3412
+ "vec4f"
3413
+ ],
3414
+ [
3415
+ [
3416
+ 6,
3417
+ [
3418
+ 7,
3419
+ "std",
3420
+ "select"
3421
+ ],
3422
+ [
3423
+ [
3424
+ 7,
3425
+ "lo",
3426
+ "x"
3427
+ ],
3428
+ [
3429
+ 7,
3430
+ "hi",
3431
+ "x"
3432
+ ],
3433
+ "useHi"
3434
+ ]
3435
+ ],
3436
+ [
3437
+ 6,
3438
+ [
3439
+ 7,
3440
+ "std",
3441
+ "select"
3442
+ ],
3443
+ [
3444
+ [
3445
+ 7,
3446
+ "lo",
3447
+ "y"
3448
+ ],
3449
+ [
3450
+ 7,
3451
+ "hi",
3452
+ "y"
3453
+ ],
3454
+ "useHi"
3455
+ ]
3456
+ ],
3457
+ [
3458
+ 6,
3459
+ [
3460
+ 7,
3461
+ "std",
3462
+ "select"
3463
+ ],
3464
+ [
3465
+ [
3466
+ 7,
3467
+ "lo",
3468
+ "z"
3469
+ ],
3470
+ [
3471
+ 7,
3472
+ "hi",
3473
+ "z"
3474
+ ],
3475
+ "useHi"
3476
+ ]
3477
+ ],
3478
+ [
3479
+ 6,
3480
+ [
3481
+ 7,
3482
+ "std",
3483
+ "select"
3484
+ ],
3485
+ [
3486
+ [
3487
+ 7,
3488
+ "lo",
3489
+ "w"
3490
+ ],
3491
+ [
3492
+ 7,
3493
+ "hi",
3494
+ "w"
3495
+ ],
3496
+ "useHi"
3497
+ ]
3498
+ ]
3499
+ ]
3500
+ ]]]],
3501
+ "externalNames": ["d", "std"]
3502
+ },
3503
+ externals: () => ({
3504
+ d,
3505
+ std
3506
+ })
3507
+ }) && $.f)({}));
3508
+ const rdShiftUV = tgpu.fn([
3509
+ d.vec2f,
3510
+ d.f32,
3511
+ d.f32
3512
+ ], d.vec2f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((uv, ox, oy) => {
3513
+ "use gpu";
3514
+ return d.vec2f(__tsover_add(uv.x, ox), __tsover_add(uv.y, oy));
3515
+ }), {
3516
+ v: 1,
3517
+ name: void 0,
3518
+ ast: {
3519
+ "params": [
3520
+ {
3521
+ "type": "i",
3522
+ "name": "uv"
3523
+ },
3524
+ {
3525
+ "type": "i",
3526
+ "name": "ox"
3527
+ },
3528
+ {
3529
+ "type": "i",
3530
+ "name": "oy"
3531
+ }
3532
+ ],
3533
+ "body": [0, [[10, [
3534
+ 6,
3535
+ [
3536
+ 7,
3537
+ "d",
3538
+ "vec2f"
3539
+ ],
3540
+ [[
3541
+ 1,
3542
+ [
3543
+ 7,
3544
+ "uv",
3545
+ "x"
3546
+ ],
3547
+ "+",
3548
+ "ox"
3549
+ ], [
3550
+ 1,
3551
+ [
3552
+ 7,
3553
+ "uv",
3554
+ "y"
3555
+ ],
3556
+ "+",
3557
+ "oy"
3558
+ ]]
3559
+ ]]]],
3560
+ "externalNames": ["d"]
3561
+ },
3562
+ externals: () => ({ d })
3563
+ }) && $.f)({})).$name("reactionDiffusionShiftUV");
3564
+ const rdShade = tgpu.fn([
3565
+ d.vec4f,
3566
+ d.f32,
3567
+ d.f32,
3568
+ d.f32,
3569
+ d.f32,
3570
+ d.f32,
3571
+ d.f32
3572
+ ], d.vec4f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((base, vL, vR, vT, vB, relief, lightAngle) => {
3573
+ "use gpu";
3574
+ const gx = __tsover_mul(__tsover_sub(vR, vL), d.f32(RELIEF_STRENGTH));
3575
+ const gy = __tsover_mul(__tsover_sub(vB, vT), d.f32(RELIEF_STRENGTH));
3576
+ const n = std.normalize(d.vec3f(-gx, -gy, d.f32(1)));
3577
+ const ang = __tsover_mul(lightAngle, DEG2RAD);
3578
+ const lightDir = std.normalize(d.vec3f(__tsover_mul(std.cos(ang), RELIEF_LIGHT_XY), __tsover_mul(std.sin(ang), RELIEF_LIGHT_XY), RELIEF_LIGHT_Z));
3579
+ const diff = std.clamp(std.dot(n, lightDir), d.f32(0), d.f32(1));
3580
+ const shade = __tsover_add(RELIEF_AMBIENT, __tsover_mul(__tsover_sub(d.f32(1), RELIEF_AMBIENT), diff));
3581
+ const halfVec = std.normalize(lightDir.add(d.vec3f(d.f32(0), d.f32(0), d.f32(1))));
3582
+ const spec = __tsover_mul(std.pow(std.clamp(std.dot(n, halfVec), d.f32(0), d.f32(1)), d.f32(RELIEF_SHININESS)), RELIEF_SPEC);
3583
+ const litRgb = base.xyz.mul(shade).add(d.vec3f(spec, spec, spec));
3584
+ const outRgb = std.mix(base.xyz, litRgb, relief);
3585
+ return d.vec4f(outRgb.x, outRgb.y, outRgb.z, base.w);
3586
+ }), {
3587
+ v: 1,
3588
+ name: void 0,
3589
+ ast: {
3590
+ "params": [
3591
+ {
3592
+ "type": "i",
3593
+ "name": "base"
3594
+ },
3595
+ {
3596
+ "type": "i",
3597
+ "name": "vL"
3598
+ },
3599
+ {
3600
+ "type": "i",
3601
+ "name": "vR"
3602
+ },
3603
+ {
3604
+ "type": "i",
3605
+ "name": "vT"
3606
+ },
3607
+ {
3608
+ "type": "i",
3609
+ "name": "vB"
3610
+ },
3611
+ {
3612
+ "type": "i",
3613
+ "name": "relief"
3614
+ },
3615
+ {
3616
+ "type": "i",
3617
+ "name": "lightAngle"
3618
+ }
3619
+ ],
3620
+ "body": [0, [
3621
+ [
3622
+ 13,
3623
+ "gx",
3624
+ [
3625
+ 1,
3626
+ [
3627
+ 1,
3628
+ "vR",
3629
+ "-",
3630
+ "vL"
3631
+ ],
3632
+ "*",
3633
+ [
3634
+ 6,
3635
+ [
3636
+ 7,
3637
+ "d",
3638
+ "f32"
3639
+ ],
3640
+ ["RELIEF_STRENGTH"]
3641
+ ]
3642
+ ]
3643
+ ],
3644
+ [
3645
+ 13,
3646
+ "gy",
3647
+ [
3648
+ 1,
3649
+ [
3650
+ 1,
3651
+ "vB",
3652
+ "-",
3653
+ "vT"
3654
+ ],
3655
+ "*",
3656
+ [
3657
+ 6,
3658
+ [
3659
+ 7,
3660
+ "d",
3661
+ "f32"
3662
+ ],
3663
+ ["RELIEF_STRENGTH"]
3664
+ ]
3665
+ ]
3666
+ ],
3667
+ [
3668
+ 13,
3669
+ "n",
3670
+ [
3671
+ 6,
3672
+ [
3673
+ 7,
3674
+ "std",
3675
+ "normalize"
3676
+ ],
3677
+ [[
3678
+ 6,
3679
+ [
3680
+ 7,
3681
+ "d",
3682
+ "vec3f"
3683
+ ],
3684
+ [
3685
+ [
3686
+ 4,
3687
+ "-",
3688
+ "gx"
3689
+ ],
3690
+ [
3691
+ 4,
3692
+ "-",
3693
+ "gy"
3694
+ ],
3695
+ [
3696
+ 6,
3697
+ [
3698
+ 7,
3699
+ "d",
3700
+ "f32"
3701
+ ],
3702
+ [[5, "1"]]
3703
+ ]
3704
+ ]
3705
+ ]]
3706
+ ]
3707
+ ],
3708
+ [
3709
+ 13,
3710
+ "ang",
3711
+ [
3712
+ 1,
3713
+ "lightAngle",
3714
+ "*",
3715
+ "DEG2RAD"
3716
+ ]
3717
+ ],
3718
+ [
3719
+ 13,
3720
+ "lightDir",
3721
+ [
3722
+ 6,
3723
+ [
3724
+ 7,
3725
+ "std",
3726
+ "normalize"
3727
+ ],
3728
+ [[
3729
+ 6,
3730
+ [
3731
+ 7,
3732
+ "d",
3733
+ "vec3f"
3734
+ ],
3735
+ [
3736
+ [
3737
+ 1,
3738
+ [
3739
+ 6,
3740
+ [
3741
+ 7,
3742
+ "std",
3743
+ "cos"
3744
+ ],
3745
+ ["ang"]
3746
+ ],
3747
+ "*",
3748
+ "RELIEF_LIGHT_XY"
3749
+ ],
3750
+ [
3751
+ 1,
3752
+ [
3753
+ 6,
3754
+ [
3755
+ 7,
3756
+ "std",
3757
+ "sin"
3758
+ ],
3759
+ ["ang"]
3760
+ ],
3761
+ "*",
3762
+ "RELIEF_LIGHT_XY"
3763
+ ],
3764
+ "RELIEF_LIGHT_Z"
3765
+ ]
3766
+ ]]
3767
+ ]
3768
+ ],
3769
+ [
3770
+ 13,
3771
+ "diff",
3772
+ [
3773
+ 6,
3774
+ [
3775
+ 7,
3776
+ "std",
3777
+ "clamp"
3778
+ ],
3779
+ [
3780
+ [
3781
+ 6,
3782
+ [
3783
+ 7,
3784
+ "std",
3785
+ "dot"
3786
+ ],
3787
+ ["n", "lightDir"]
3788
+ ],
3789
+ [
3790
+ 6,
3791
+ [
3792
+ 7,
3793
+ "d",
3794
+ "f32"
3795
+ ],
3796
+ [[5, "0"]]
3797
+ ],
3798
+ [
3799
+ 6,
3800
+ [
3801
+ 7,
3802
+ "d",
3803
+ "f32"
3804
+ ],
3805
+ [[5, "1"]]
3806
+ ]
3807
+ ]
3808
+ ]
3809
+ ],
3810
+ [
3811
+ 13,
3812
+ "shade",
3813
+ [
3814
+ 1,
3815
+ "RELIEF_AMBIENT",
3816
+ "+",
3817
+ [
3818
+ 1,
3819
+ [
3820
+ 1,
3821
+ [
3822
+ 6,
3823
+ [
3824
+ 7,
3825
+ "d",
3826
+ "f32"
3827
+ ],
3828
+ [[5, "1"]]
3829
+ ],
3830
+ "-",
3831
+ "RELIEF_AMBIENT"
3832
+ ],
3833
+ "*",
3834
+ "diff"
3835
+ ]
3836
+ ]
3837
+ ],
3838
+ [
3839
+ 13,
3840
+ "halfVec",
3841
+ [
3842
+ 6,
3843
+ [
3844
+ 7,
3845
+ "std",
3846
+ "normalize"
3847
+ ],
3848
+ [[
3849
+ 6,
3850
+ [
3851
+ 7,
3852
+ "lightDir",
3853
+ "add"
3854
+ ],
3855
+ [[
3856
+ 6,
3857
+ [
3858
+ 7,
3859
+ "d",
3860
+ "vec3f"
3861
+ ],
3862
+ [
3863
+ [
3864
+ 6,
3865
+ [
3866
+ 7,
3867
+ "d",
3868
+ "f32"
3869
+ ],
3870
+ [[5, "0"]]
3871
+ ],
3872
+ [
3873
+ 6,
3874
+ [
3875
+ 7,
3876
+ "d",
3877
+ "f32"
3878
+ ],
3879
+ [[5, "0"]]
3880
+ ],
3881
+ [
3882
+ 6,
3883
+ [
3884
+ 7,
3885
+ "d",
3886
+ "f32"
3887
+ ],
3888
+ [[5, "1"]]
3889
+ ]
3890
+ ]
3891
+ ]]
3892
+ ]]
3893
+ ]
3894
+ ],
3895
+ [
3896
+ 13,
3897
+ "spec",
3898
+ [
3899
+ 1,
3900
+ [
3901
+ 6,
3902
+ [
3903
+ 7,
3904
+ "std",
3905
+ "pow"
3906
+ ],
3907
+ [[
3908
+ 6,
3909
+ [
3910
+ 7,
3911
+ "std",
3912
+ "clamp"
3913
+ ],
3914
+ [
3915
+ [
3916
+ 6,
3917
+ [
3918
+ 7,
3919
+ "std",
3920
+ "dot"
3921
+ ],
3922
+ ["n", "halfVec"]
3923
+ ],
3924
+ [
3925
+ 6,
3926
+ [
3927
+ 7,
3928
+ "d",
3929
+ "f32"
3930
+ ],
3931
+ [[5, "0"]]
3932
+ ],
3933
+ [
3934
+ 6,
3935
+ [
3936
+ 7,
3937
+ "d",
3938
+ "f32"
3939
+ ],
3940
+ [[5, "1"]]
3941
+ ]
3942
+ ]
3943
+ ], [
3944
+ 6,
3945
+ [
3946
+ 7,
3947
+ "d",
3948
+ "f32"
3949
+ ],
3950
+ ["RELIEF_SHININESS"]
3951
+ ]]
3952
+ ],
3953
+ "*",
3954
+ "RELIEF_SPEC"
3955
+ ]
3956
+ ],
3957
+ [
3958
+ 13,
3959
+ "litRgb",
3960
+ [
3961
+ 6,
3962
+ [
3963
+ 7,
3964
+ [
3965
+ 6,
3966
+ [
3967
+ 7,
3968
+ [
3969
+ 7,
3970
+ "base",
3971
+ "xyz"
3972
+ ],
3973
+ "mul"
3974
+ ],
3975
+ ["shade"]
3976
+ ],
3977
+ "add"
3978
+ ],
3979
+ [[
3980
+ 6,
3981
+ [
3982
+ 7,
3983
+ "d",
3984
+ "vec3f"
3985
+ ],
3986
+ [
3987
+ "spec",
3988
+ "spec",
3989
+ "spec"
3990
+ ]
3991
+ ]]
3992
+ ]
3993
+ ],
3994
+ [
3995
+ 13,
3996
+ "outRgb",
3997
+ [
3998
+ 6,
3999
+ [
4000
+ 7,
4001
+ "std",
4002
+ "mix"
4003
+ ],
4004
+ [
4005
+ [
4006
+ 7,
4007
+ "base",
4008
+ "xyz"
4009
+ ],
4010
+ "litRgb",
4011
+ "relief"
4012
+ ]
4013
+ ]
4014
+ ],
4015
+ [10, [
4016
+ 6,
4017
+ [
4018
+ 7,
4019
+ "d",
4020
+ "vec4f"
4021
+ ],
4022
+ [
4023
+ [
4024
+ 7,
4025
+ "outRgb",
4026
+ "x"
4027
+ ],
4028
+ [
4029
+ 7,
4030
+ "outRgb",
4031
+ "y"
4032
+ ],
4033
+ [
4034
+ 7,
4035
+ "outRgb",
4036
+ "z"
4037
+ ],
4038
+ [
4039
+ 7,
4040
+ "base",
4041
+ "w"
4042
+ ]
4043
+ ]
4044
+ ]]
4045
+ ]],
4046
+ "externalNames": [
4047
+ "d",
4048
+ "RELIEF_STRENGTH",
4049
+ "std",
4050
+ "DEG2RAD",
4051
+ "RELIEF_LIGHT_XY",
4052
+ "RELIEF_LIGHT_Z",
4053
+ "RELIEF_AMBIENT",
4054
+ "RELIEF_SHININESS",
4055
+ "RELIEF_SPEC"
4056
+ ]
4057
+ },
4058
+ externals: () => ({
4059
+ d,
4060
+ RELIEF_STRENGTH,
4061
+ std,
4062
+ DEG2RAD,
4063
+ RELIEF_LIGHT_XY,
4064
+ RELIEF_LIGHT_Z,
4065
+ RELIEF_AMBIENT,
4066
+ RELIEF_SHININESS,
4067
+ RELIEF_SPEC
4068
+ })
4069
+ }) && $.f)({})).$name("reactionDiffusionShade");
4070
+ const componentDefinition = {
4071
+ name: "ReactionDiffusion",
4072
+ boundingBoxDeclaration: { aspectRatio: null },
4073
+ category: "Interactive",
4074
+ description: "A living Gray-Scott reaction-diffusion pattern that fills the layer and blooms wherever you drag the cursor",
4075
+ requiresRTT: false,
4076
+ requiresChild: false,
4077
+ acceptsOptionalChild: true,
4078
+ usesPointer: true,
4079
+ props: {
4080
+ preset: {
4081
+ default: "coral",
4082
+ description: "Named Gray-Scott regime — drives the feed & kill rates for a whole family of patterns. Choose Custom to dial feed & kill by hand",
4083
+ ui: {
4084
+ type: "select",
4085
+ options: [
4086
+ {
4087
+ label: "Coral",
4088
+ value: "coral"
4089
+ },
4090
+ {
4091
+ label: "Mitosis",
4092
+ value: "mitosis"
4093
+ },
4094
+ {
4095
+ label: "Spots",
4096
+ value: "spots"
4097
+ },
4098
+ {
4099
+ label: "Maze",
4100
+ value: "maze"
4101
+ },
4102
+ {
4103
+ label: "Worms",
4104
+ value: "worms"
4105
+ },
4106
+ {
4107
+ label: "Fingerprints",
4108
+ value: "fingerprints"
4109
+ },
4110
+ {
4111
+ label: "Holes",
4112
+ value: "holes"
4113
+ },
4114
+ {
4115
+ label: "Solitons",
4116
+ value: "solitons"
4117
+ },
4118
+ {
4119
+ label: "Bubbles",
4120
+ value: "bubbles"
4121
+ },
4122
+ {
4123
+ label: "Waves",
4124
+ value: "waves"
4125
+ },
4126
+ {
4127
+ label: "Flowers",
4128
+ value: "flowers"
4129
+ },
4130
+ {
4131
+ label: "Custom",
4132
+ value: "custom"
4133
+ }
4134
+ ],
4135
+ label: "Pattern",
4136
+ group: "Pattern"
4137
+ }
4138
+ },
4139
+ feed: {
4140
+ default: .0545,
4141
+ description: "Feed rate — how fast chemical U is replenished (used when Pattern = Custom)",
4142
+ ui: {
4143
+ type: "range",
4144
+ min: .01,
4145
+ max: .1,
4146
+ step: .001,
4147
+ label: "Feed",
4148
+ group: "Pattern",
4149
+ condition: { preset: "custom" }
4150
+ }
4151
+ },
4152
+ kill: {
4153
+ default: .062,
4154
+ description: "Kill rate — how fast chemical V is removed (used when Pattern = Custom)",
4155
+ ui: {
4156
+ type: "range",
4157
+ min: .03,
4158
+ max: .07,
4159
+ step: .001,
4160
+ label: "Kill",
4161
+ group: "Pattern",
4162
+ condition: { preset: "custom" }
4163
+ }
4164
+ },
4165
+ diffusionRatio: {
4166
+ default: .5,
4167
+ description: "Ratio of the two chemicals' diffusion rates — shifts the pattern character (lower = tighter, more filament-like)",
4168
+ ui: {
4169
+ type: "range",
4170
+ min: .2,
4171
+ max: .9,
4172
+ step: .01,
4173
+ label: "Diffusion Ratio",
4174
+ group: "Pattern"
4175
+ }
4176
+ },
4177
+ featureSize: {
4178
+ default: 3,
4179
+ description: "Size of the pattern features — lower shows finer, smaller cells; higher magnifies them into larger cells",
4180
+ ui: {
4181
+ type: "range",
4182
+ min: 1,
4183
+ max: 6,
4184
+ step: .1,
4185
+ label: "Feature Size",
4186
+ group: "Pattern"
4187
+ }
4188
+ },
4189
+ speed: {
4190
+ default: 6,
4191
+ description: "Simulation steps per frame — higher evolves the pattern faster",
4192
+ ui: {
4193
+ type: "range",
4194
+ min: 1,
4195
+ max: MAX_ITERATIONS,
4196
+ step: 1,
4197
+ label: "Speed",
4198
+ group: "Pattern"
4199
+ }
4200
+ },
4201
+ brushSize: {
4202
+ default: .04,
4203
+ description: "Radius of the cursor brush that seeds new reagent as you drag",
4204
+ ui: {
4205
+ type: "range",
4206
+ min: .01,
4207
+ max: .3,
4208
+ step: .01,
4209
+ label: "Brush Size",
4210
+ group: "Interaction"
4211
+ }
4212
+ },
4213
+ brushStrength: {
4214
+ default: .6,
4215
+ description: "How much reagent the cursor injects while dragging",
4216
+ ui: {
4217
+ type: "range",
4218
+ min: 0,
4219
+ max: 1,
4220
+ step: .01,
4221
+ label: "Brush Strength",
4222
+ group: "Interaction"
4223
+ }
4224
+ },
4225
+ colorA: {
4226
+ default: "transparent",
4227
+ transform: transformColor,
4228
+ description: "Background color (empty regions between cells)",
4229
+ ui: {
4230
+ type: "color",
4231
+ label: "Background",
4232
+ group: "Colors"
4233
+ }
4234
+ },
4235
+ colorC: {
4236
+ default: "#38bdf8",
4237
+ transform: transformColor,
4238
+ description: "Accent color at the cell walls (mid pattern values)",
4239
+ ui: {
4240
+ type: "color",
4241
+ label: "Wall Color",
4242
+ group: "Colors"
4243
+ }
4244
+ },
4245
+ colorB: {
4246
+ default: "#e2f5ff",
4247
+ transform: transformColor,
4248
+ description: "Color of the dense cell interiors (high pattern values)",
4249
+ ui: {
4250
+ type: "color",
4251
+ label: "Cell Color",
4252
+ group: "Colors"
4253
+ }
4254
+ },
4255
+ contrast: {
4256
+ default: .5,
4257
+ description: "Sharpness of the cell walls — higher gives crisper, more graphic edges",
4258
+ ui: {
4259
+ type: ["range", "map"],
4260
+ min: 0,
4261
+ max: 1,
4262
+ step: .01,
4263
+ label: "Contrast",
4264
+ group: "Colors"
4265
+ }
4266
+ },
4267
+ threshold: {
4268
+ default: .28,
4269
+ description: "Pattern level the colors are centered on — shifts the balance of background vs. cells",
4270
+ ui: {
4271
+ type: ["range", "map"],
4272
+ min: .05,
4273
+ max: .6,
4274
+ step: .01,
4275
+ label: "Threshold",
4276
+ group: "Colors"
4277
+ }
4278
+ },
4279
+ colorSpace: {
4280
+ default: "oklch",
4281
+ transform: transformColorSpace,
4282
+ compileTime: true,
4283
+ description: "Color space for color interpolation",
4284
+ ui: {
4285
+ type: "select",
4286
+ options: colorSpaceOptions,
4287
+ label: "Color Space",
4288
+ group: "Colors"
4289
+ }
4290
+ },
4291
+ relief: {
4292
+ default: .4,
4293
+ description: "Treats the pattern as a raised surface and shades it with a light — higher gives a more sculpted, three-dimensional look (0 for a flat, graphic look)",
4294
+ ui: {
4295
+ type: ["range", "map"],
4296
+ min: 0,
4297
+ max: 1,
4298
+ step: .01,
4299
+ label: "Relief",
4300
+ group: "Lighting"
4301
+ }
4302
+ },
4303
+ lightAngle: {
4304
+ default: 135,
4305
+ description: "Direction the surface light comes from, in degrees",
4306
+ ui: {
4307
+ type: ["range", "map"],
4308
+ min: 0,
4309
+ max: 360,
4310
+ step: 1,
4311
+ label: "Light Angle",
4312
+ group: "Lighting"
4313
+ }
4314
+ },
4315
+ childInfluence: {
4316
+ default: .6,
4317
+ description: "When a child layer is nested, how strongly its brightness biases the pattern — the preset sets the character, the child steers where it grows dense vs. sparse (0 ignores the child)",
4318
+ ui: {
4319
+ type: ["range", "map"],
4320
+ min: 0,
4321
+ max: 1,
4322
+ step: .01,
4323
+ label: "Influence",
4324
+ group: "Child"
4325
+ }
4326
+ },
4327
+ childContrast: {
4328
+ default: .5,
4329
+ description: "Contrast applied to the child's brightness before it drives the pattern — higher pushes toward a crisp two-tone split (edges), lower keeps smooth tonal shading",
4330
+ ui: {
4331
+ type: ["range", "map"],
4332
+ min: 0,
4333
+ max: 1,
4334
+ step: .01,
4335
+ label: "Contrast",
4336
+ group: "Child"
4337
+ }
4338
+ },
4339
+ childThreshold: {
4340
+ default: .5,
4341
+ description: "Brightness level of the child that reads as neutral — shifts which tones grow the pattern vs. clear it",
4342
+ ui: {
4343
+ type: ["range", "map"],
4344
+ min: 0,
4345
+ max: 1,
4346
+ step: .01,
4347
+ label: "Threshold",
4348
+ group: "Child"
4349
+ }
4350
+ },
4351
+ childInvert: {
4352
+ default: false,
4353
+ transform: transformBoolean,
4354
+ description: "Flip which tones of the child grow the pattern (bright vs. dark areas)",
4355
+ ui: {
4356
+ type: "checkbox",
4357
+ label: "Invert",
4358
+ group: "Child"
4359
+ }
4360
+ }
4361
+ },
4362
+ compute: (params) => {
4363
+ const { gpu, getCpuValue, registerComputeTexture, onCleanup, childNode, convertToTexture } = params;
4364
+ const root = gpu?.root;
4365
+ if (!root) return null;
4366
+ const hasChild = !!childNode;
4367
+ const childTexture = hasChild && convertToTexture ? convertToTexture(childNode) : null;
4368
+ const bufferA = createStateBuffer(root, d.vec2f, COUNT);
4369
+ const bufferB = createStateBuffer(root, d.vec2f, COUNT);
4370
+ const outTex = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(root.createTexture({
4371
+ size: [N, N],
4372
+ format: STATE_FORMAT
4373
+ }).$usage("storage", "sampled"), "outTex");
4374
+ onCleanup(() => outTex.destroy());
4375
+ const rdTexture = registerComputeTexture(outTex);
4376
+ const paramsU = /* @__PURE__ */ (globalThis.__TYPEGPU_AUTONAME__ ?? ((a) => a))(root.createUniform(RDParams), "paramsU");
4377
+ const size = [N, N];
4378
+ const output = createGuardedCompute(root, /* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
4379
+ "use gpu";
4380
+ outputKernel(cx, cy);
4381
+ }), {
4382
+ v: 1,
4383
+ name: void 0,
4384
+ ast: {
4385
+ "params": [{
4386
+ "type": "i",
4387
+ "name": "cx"
4388
+ }, {
4389
+ "type": "i",
4390
+ "name": "cy"
4391
+ }],
4392
+ "body": [0, [[
4393
+ 6,
4394
+ "outputKernel",
4395
+ ["cx", "cy"]
4396
+ ]]],
4397
+ "externalNames": ["outputKernel"]
4398
+ },
4399
+ externals: () => ({ outputKernel })
4400
+ }) && $.f)({}), { size });
4401
+ const outFromA = output.with(root.createBindGroup(outputLayout, {
4402
+ srcBuf: bufferA,
4403
+ outTex
4404
+ }));
4405
+ const outFromB = output.with(root.createBindGroup(outputLayout, {
4406
+ srcBuf: bufferB,
4407
+ outTex
4408
+ }));
4409
+ const seed = createGuardedCompute(root, /* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
4410
+ "use gpu";
4411
+ seedKernel(cx, cy);
4412
+ }), {
4413
+ v: 1,
4414
+ name: void 0,
4415
+ ast: {
4416
+ "params": [{
4417
+ "type": "i",
4418
+ "name": "cx"
4419
+ }, {
4420
+ "type": "i",
4421
+ "name": "cy"
4422
+ }],
4423
+ "body": [0, [[
4424
+ 6,
4425
+ "seedKernel",
4426
+ ["cx", "cy"]
4427
+ ]]],
4428
+ "externalNames": ["seedKernel"]
4429
+ },
4430
+ externals: () => ({ seedKernel })
4431
+ }) && $.f)({}), {
4432
+ size,
4433
+ bindGroup: root.createBindGroup(seedLayout, { stateBuf: bufferA })
4434
+ });
4435
+ let reactAB = null;
4436
+ let reactBA = null;
4437
+ let reactionChild = null;
4438
+ if (hasChild) reactionChild = createGuardedCompute(root, /* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
4439
+ "use gpu";
4440
+ reactionKernelChild(cx, cy);
4441
+ }), {
4442
+ v: 1,
4443
+ name: void 0,
4444
+ ast: {
4445
+ "params": [{
4446
+ "type": "i",
4447
+ "name": "cx"
4448
+ }, {
4449
+ "type": "i",
4450
+ "name": "cy"
4451
+ }],
4452
+ "body": [0, [[
4453
+ 6,
4454
+ "reactionKernelChild",
4455
+ ["cx", "cy"]
4456
+ ]]],
4457
+ "externalNames": ["reactionKernelChild"]
4458
+ },
4459
+ externals: () => ({ reactionKernelChild })
4460
+ }) && $.f)({}), { size });
4461
+ else {
4462
+ const reaction = createGuardedCompute(root, /* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((cx, cy) => {
4463
+ "use gpu";
4464
+ reactionKernel(cx, cy);
4465
+ }), {
4466
+ v: 1,
4467
+ name: void 0,
4468
+ ast: {
4469
+ "params": [{
4470
+ "type": "i",
4471
+ "name": "cx"
4472
+ }, {
4473
+ "type": "i",
4474
+ "name": "cy"
4475
+ }],
4476
+ "body": [0, [[
4477
+ 6,
4478
+ "reactionKernel",
4479
+ ["cx", "cy"]
4480
+ ]]],
4481
+ "externalNames": ["reactionKernel"]
4482
+ },
4483
+ externals: () => ({ reactionKernel })
4484
+ }) && $.f)({}), { size });
4485
+ reactAB = reaction.with(root.createBindGroup(reactionLayout, {
4486
+ readBuf: bufferA,
4487
+ writeBuf: bufferB,
4488
+ params: paramsU.buffer
4489
+ }));
4490
+ reactBA = reaction.with(root.createBindGroup(reactionLayout, {
4491
+ readBuf: bufferB,
4492
+ writeBuf: bufferA,
4493
+ params: paramsU.buffer
4494
+ }));
4495
+ }
4496
+ let curIsA = true;
4497
+ let needsSeed = true;
4498
+ let lastPreset = "";
4499
+ let prevMx = .5;
4500
+ let prevMy = .5;
4501
+ return {
4502
+ outputs: { rdTexture },
4503
+ ...hasChild ? { bindInputs: (resolve) => {
4504
+ const src = childTexture ? resolve(childTexture.key) : void 0;
4505
+ if (!src || !reactionChild) return;
4506
+ reactAB = reactionChild.with(root.createBindGroup(reactionChildLayout, {
4507
+ readBuf: bufferA,
4508
+ writeBuf: bufferB,
4509
+ params: paramsU.buffer,
4510
+ childTex: src.texture
4511
+ }));
4512
+ reactBA = reactionChild.with(root.createBindGroup(reactionChildLayout, {
4513
+ readBuf: bufferB,
4514
+ writeBuf: bufferA,
4515
+ params: paramsU.buffer,
4516
+ childTex: src.texture
4517
+ }));
4518
+ } } : {},
4519
+ getComputeNodes: (frameParams) => {
4520
+ if (hasChild && (!reactAB || !reactBA)) return null;
4521
+ const fp = frameParams;
4522
+ const g = (key, fallback) => {
4523
+ const v = getCpuValue(key);
4524
+ return typeof v === "number" ? v : fallback;
4525
+ };
4526
+ const hgt = fp.dimensions?.height ?? 0;
4527
+ const aspect = hgt > 0 ? (fp.dimensions?.width ?? 0) / hgt : 1;
4528
+ const preset = getCpuValue("preset") || "coral";
4529
+ if (preset !== lastPreset) {
4530
+ lastPreset = preset;
4531
+ needsSeed = true;
4532
+ }
4533
+ const pk = PRESETS[preset];
4534
+ const feed = pk ? pk.feed : g("feed", .055);
4535
+ const kill = pk ? pk.kill : g("kill", .062);
4536
+ const view = 1 / Math.max(g("featureSize", 3), 1e-4);
4537
+ const sx = Math.min(aspect, 1);
4538
+ const sy = Math.min(1 / aspect, 1);
4539
+ const mx = fp.pointer?.x ?? prevMx;
4540
+ const my = fp.pointer?.y ?? prevMy;
4541
+ const fieldX = (mx - .5) * sx * view + .5;
4542
+ const fieldY = (my - .5) * sy * view + .5;
4543
+ const cursorSpeed = Math.sqrt((mx - prevMx) * (mx - prevMx) + (my - prevMy) * (my - prevMy));
4544
+ prevMx = mx;
4545
+ prevMy = my;
4546
+ const velScale = cursorSpeed > 5e-4 && g("brushStrength", .6) > 0 ? Math.min(cursorSpeed / .02, 1) : 0;
4547
+ const brushRadGrid = g("brushSize", .04) * N * view;
4548
+ const invRaw = getCpuValue("childInvert");
4549
+ paramsU.write({
4550
+ feed,
4551
+ kill,
4552
+ dv: g("diffusionRatio", .5),
4553
+ brushRadSq: brushRadGrid * brushRadGrid,
4554
+ brushStrength: g("brushStrength", .6),
4555
+ cursorX: fieldX * N,
4556
+ cursorY: fieldY * N,
4557
+ cursorActive: velScale,
4558
+ childInfluence: g("childInfluence", .6),
4559
+ childContrast: g("childContrast", .5),
4560
+ childThreshold: g("childThreshold", .5),
4561
+ childInvert: invRaw === true || invRaw === 1 ? 1 : 0,
4562
+ childMapX: 1 / (sx * view),
4563
+ childMapY: 1 / (sy * view),
4564
+ _pad0: 0,
4565
+ _pad1: 0
4566
+ });
4567
+ const nodes = [];
4568
+ if (needsSeed) {
4569
+ needsSeed = false;
4570
+ curIsA = true;
4571
+ nodes.push(seed);
4572
+ }
4573
+ const iters = Math.min(MAX_ITERATIONS, Math.max(1, Math.round(g("speed", 6))));
4574
+ for (let i = 0; i < iters; i++) {
4575
+ nodes.push(curIsA ? reactAB : reactBA);
4576
+ curIsA = !curIsA;
4577
+ }
4578
+ nodes.push(curIsA ? outFromA : outFromB);
4579
+ return nodes;
4580
+ }
4581
+ };
4582
+ },
4583
+ fragment: (params) => {
4584
+ const { ctx, computeOutputs, propValues, uniforms } = params;
4585
+ const rdField = computeOutputs?.rdTexture;
4586
+ if (!rdField) return ZERO;
4587
+ const sampleUV = call(rdSampleUV, "rdSampleUV", [
4588
+ ctx.uv,
4589
+ ctx.aspect,
4590
+ uniforms.featureSize
4591
+ ]);
4592
+ const t = call(rdRampT, "rdRampT", [
4593
+ rdField.sample(sampleUV, "linearClamp").member("y"),
4594
+ uniforms.contrast,
4595
+ uniforms.threshold
4596
+ ]);
4597
+ const colorSpaceMode = propValues.colorSpace ?? 0;
4598
+ const variant = cm.mixColorsVariants[colorSpaceMode] ?? cm.mixColorsLinear;
4599
+ const lit = call(rdShade, "rdShade", [
4600
+ call(rdPickSeg, "rdPickSeg", [
4601
+ call(variant, "mixColors", [
4602
+ uniforms.colorA,
4603
+ uniforms.colorC,
4604
+ call(rdSeg, "rdSeg", [t, floatE(0)])
4605
+ ]),
4606
+ call(variant, "mixColors", [
4607
+ uniforms.colorC,
4608
+ uniforms.colorB,
4609
+ call(rdSeg, "rdSeg", [t, floatE(1)])
4610
+ ]),
4611
+ t
4612
+ ]),
4613
+ rdField.sample(call(rdShiftUV, "rdShiftL", [
4614
+ sampleUV,
4615
+ floatE(-RELIEF_EPS),
4616
+ floatE(0)
4617
+ ]), "linearClamp").member("y"),
4618
+ rdField.sample(call(rdShiftUV, "rdShiftR", [
4619
+ sampleUV,
4620
+ floatE(RELIEF_EPS),
4621
+ floatE(0)
4622
+ ]), "linearClamp").member("y"),
4623
+ rdField.sample(call(rdShiftUV, "rdShiftT", [
4624
+ sampleUV,
4625
+ floatE(0),
4626
+ floatE(-RELIEF_EPS)
4627
+ ]), "linearClamp").member("y"),
4628
+ rdField.sample(call(rdShiftUV, "rdShiftB", [
4629
+ sampleUV,
4630
+ floatE(0),
4631
+ floatE(RELIEF_EPS)
4632
+ ]), "linearClamp").member("y"),
4633
+ uniforms.relief,
4634
+ uniforms.lightAngle
4635
+ ]);
4636
+ return vec4(lit.member("rgb"), lit.member("a"));
4637
+ }
4638
+ };
4639
+ var ReactionDiffusion_default = componentDefinition;
4640
+ export { rdPickSeg as a, rdSeg as c, reactionKernel as d, reactionKernelChild as f, rdChildDrive as i, rdShade as l, componentDefinition as n, rdRampT as o, seedKernel as p, outputKernel as r, rdSampleUV as s, ReactionDiffusion_default as t, rdShiftUV as u };