shaders 3.2.475 → 4.0.0
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.
- package/LICENSE +21 -142
- package/README.md +192 -19
- package/dist/cli.js +2 -2
- package/dist/core/{AngularBlur-Cx1HVeYk.js → AngularBlur-BEBs-lRR.js} +2 -3
- package/dist/core/{Arc-D3FuqnDL.js → Arc-D-WnjM7T.js} +1 -3
- package/dist/core/{Ascii-Dhn0H0LB.js → Ascii-BGPIwMc3.js} +2 -5
- package/dist/core/{Aurora-BUfyvIyq.js → Aurora-DqJBPdMQ.js} +2 -11
- package/dist/core/{BarShift-v3D-9Lx4.js → BarShift-BcCOweUh.js} +2 -3
- package/dist/core/{BarnDoors-C5g6Sbze.js → BarnDoors-B9B-AmCV.js} +2 -3
- package/dist/core/{Beam-CV5g8m92.js → Beam-QG_9OS8I.js} +2 -3
- package/dist/core/{Bend-BFWQSHF7.js → Bend-Cy9VAowL.js} +1 -2
- package/dist/core/{Blob-CLvqov4O.js → Blob-C3txJeW0.js} +2 -10
- package/dist/core/{BlockDissolve-DER9y4PE.js → BlockDissolve-C1SFUys7.js} +2 -3
- package/dist/core/{BlockNoise-DpXWJkDL.js → BlockNoise-Cm3y8hce.js} +2 -4
- package/dist/core/{BlueNoise-CSQPDpkm.js → BlueNoise-BCLObOMm.js} +2 -4
- package/dist/core/{Blur-B-Tg7Sfr.js → Blur-Dg29SnXd.js} +1 -2
- package/dist/core/{Boids-BZo85-QR.js → Boids-rsGsPN5h.js} +2 -5
- package/dist/core/{BokehBlur-B1tY-T6q.js → BokehBlur-rFSFEnb0.js} +2 -3
- package/dist/core/{BrickPattern-DVhe3RgK.js → BrickPattern-DqN6JKEN.js} +2 -3
- package/dist/core/{BrightnessContrast-DBLjHzyE.js → BrightnessContrast-J9fCSBiC.js} +1 -3
- package/dist/core/{BrushedMetal-CpXTd3nZ.js → BrushedMetal-74wSZKjG.js} +3 -8
- package/dist/core/{Bulge-CHcE-9Oo.js → Bulge-BIk0oq8j.js} +1 -2
- package/dist/core/{CRTScreen-CyBtBJS4.js → CRTScreen-hEH-JNRd.js} +2 -3
- package/dist/core/{CarbonFiber-DK-0jUEs.js → CarbonFiber-CZdUDvRU.js} +3 -7
- package/dist/core/{Chalkboard-PmgH_OhS.js → Chalkboard-CClJHqvs.js} +2 -3
- package/dist/core/{ChannelBlur-J3MHHcGy.js → ChannelBlur-BEuEwQOC.js} +1 -2
- package/dist/core/{CheckerWipe-Dj2kjjDA.js → CheckerWipe-KuAWj2qg.js} +2 -3
- package/dist/core/{Checkerboard-eFWETR1S.js → Checkerboard-Rq9ze1W3.js} +2 -3
- package/dist/core/{Chevron-ColsT0Fy.js → Chevron-C1j6X2Ye.js} +2 -3
- package/dist/core/{ChromaFlow-DrdCgPGz.js → ChromaFlow-BgsCUYIl.js} +2 -5
- package/dist/core/{ChromaticAberration-C_It6mLf.js → ChromaticAberration-2_4tjQ0u.js} +2 -4
- package/dist/core/{Chrome-2WZpUHiT.js → Chrome-Be3z6C5i.js} +4 -10
- package/dist/core/{Circle-C-AKxSw4.js → Circle-e_qQI3tU.js} +1 -3
- package/dist/core/{ColorWheel-DfF0tqXE.js → ColorWheel-s5ep1H7d.js} +2 -3
- package/dist/core/{CompressionArtifacts-Zvwlutd7.js → CompressionArtifacts-OE9U9Qrq.js} +1 -3
- package/dist/core/{ConcentricSpin-tC8mylMA.js → ConcentricSpin-CLE_5yCJ.js} +1 -2
- package/dist/core/{ConicGradient-CNYvyjSs.js → ConicGradient-Cji2SgVO.js} +2 -4
- package/dist/core/{ContourLines-C4642NJd.js → ContourLines-wpPK00cF.js} +2 -3
- package/dist/core/{CornerPin-BF5gFRv9.js → CornerPin-gYU0Uf2m.js} +2 -3
- package/dist/core/{Crescent-wC0IwPjx.js → Crescent-viNc7Unp.js} +1 -2
- package/dist/core/{Cross-BO7JQKSq.js → Cross-DyQSsw_k.js} +1 -2
- package/dist/core/{Crystal-BK3ifbmV.js → Crystal-Vjj8azWg.js} +4 -9
- package/dist/core/{CurlNoise-UbI-Zda_.js → CurlNoise-C7PHjDht.js} +2 -4
- package/dist/core/{CursorRipples-rJlfKhyh.js → CursorRipples-BzPPNkA3.js} +3 -39
- package/dist/core/{CursorTrail-BuyQdFKJ.js → CursorTrail-cBj0AuQA.js} +2 -4
- package/dist/core/{DataMosh-C_ZI55Qq.js → DataMosh-5Yr9TyVx.js} +1 -3
- package/dist/core/{DiamondGradient-CPhUCUoq.js → DiamondGradient-DZM7HwF5.js} +2 -4
- package/dist/core/{DiamondWipe-y6uIpJM4.js → DiamondWipe-CqeT7lCt.js} +2 -3
- package/dist/core/{DiffuseBlur-BNxowfOL.js → DiffuseBlur-Y5hSDTZF.js} +2 -3
- package/dist/core/{DisplacementMap-BuM2b1nC.js → DisplacementMap-FobRx5Ie.js} +2 -3
- package/dist/core/{Dither-Bt1qdRag.js → Dither-50rqHpt9.js} +2 -3
- package/dist/core/{DotGrid-DJFnwMVS.js → DotGrid-B6AGLUbR.js} +3 -4
- package/dist/core/{DropShadow-C-IfgfyH.js → DropShadow-CEPpgatB.js} +2 -3
- package/dist/core/{Duotone-DML_9JhJ.js → Duotone-D76Kp7Pb.js} +2 -3
- package/dist/core/{Ellipse-BuNUnN8D.js → Ellipse-BGod1LeG.js} +1 -2
- package/dist/core/{Emboss-DvKk4zwp.js → Emboss-DMNFb_ww.js} +3 -6
- package/dist/core/{Engraving-DPFVnIjD.js → Engraving-Dj7bCATQ.js} +2 -3
- package/dist/core/{ErosionNoise-j_b7a5cl.js → ErosionNoise-4O68wJQZ.js} +2 -4
- package/dist/core/{Exposure-DALA5K55.js → Exposure-h-vapOpj.js} +1 -3
- package/dist/core/{FallingLines-CeMOKpxK.js → FallingLines-Dzop_89k.js} +2 -3
- package/dist/core/{FilmGrain-DsDYCjjs.js → FilmGrain-Bs8PCfdf.js} +1 -3
- package/dist/core/{FilmStock-DtDMkwF6.js → FilmStock-DBjVo6rL.js} +1 -4
- package/dist/core/{Flip-B9Av9MVn.js → Flip-CfrS4KfZ.js} +2 -3
- package/dist/core/{FloatingParticles-BcMOBX1m.js → FloatingParticles-D1R2tD2J.js} +2 -5
- package/dist/core/{FlowField-BunLIU80.js → FlowField-Slirm5AI.js} +2 -3
- package/dist/core/{Flower-CvqBYUCU.js → Flower-Ddlut7QZ.js} +1 -2
- package/dist/core/{FlowingGradient-DQ284uMb.js → FlowingGradient-CwIgTtbj.js} +2 -7
- package/dist/core/{FlutedGlass-BP7av96Y.js → FlutedGlass-CMMy2GJ5.js} +2 -4
- package/dist/core/{Fog-DyyljY9e.js → Fog-DjjUkcTZ.js} +2 -4
- package/dist/core/{Form3D-x-G-Lz4z.js → Form3D-DQDOHWpC.js} +2 -4
- package/dist/core/{FractalNoise-DTgEv-Hq.js → FractalNoise-BjI3IOIj.js} +2 -4
- package/dist/core/{Frost-BhMELsXw.js → Frost-CK12HnL1.js} +3 -8
- package/dist/core/{GaborNoise-B7kmxcRZ.js → GaborNoise-DKEIvvRJ.js} +3 -5
- package/dist/core/{Glass-BMCOKCUL.js → Glass-CzcOVD5Y.js} +3 -8
- package/dist/core/{GlassTiles-DgVooh8h.js → GlassTiles-gjhc563g.js} +1 -2
- package/dist/core/{Glitch-D0pvMdGd.js → Glitch-C_XAWltC.js} +1 -2
- package/dist/core/{Glow-CJ3i0al6.js → Glow-CrYCanBI.js} +1 -3
- package/dist/core/{Godrays-DOV1VQ9x.js → Godrays-BBTMOVLP.js} +2 -3
- package/dist/core/{Goo-sMwsU21Y.js → Goo-Brhjk8aS.js} +3 -8
- package/dist/core/{GradientMap-CCuimQDS.js → GradientMap-C5325QWw.js} +2 -4
- package/dist/core/{Grayscale-DR1xnpde.js → Grayscale-dPjs-wvf.js} +1 -2
- package/dist/core/{Grid-CCUodqje.js → Grid-UjEd3O76.js} +3 -4
- package/dist/core/{GridDistortion-DUnC2Z_Y.js → GridDistortion-vVgYya1U.js} +1 -5
- package/dist/core/{Group--MS8ZNKg.js → Group-KVdmAi5g.js} +1 -1
- package/dist/core/{HTMLInCanvas-D_Rc6bs1.js → HTMLInCanvas-CKr2u76R.js} +1 -2
- package/dist/core/{Halftone-CG1LNQkk.js → Halftone-pRV3TRUW.js} +2 -3
- package/dist/core/{Heart-qPxh2CWp.js → Heart-CX7MvvHZ.js} +1 -2
- package/dist/core/{Heatmap-BZDfR2vC.js → Heatmap-Dn6qyd2e.js} +3 -8
- package/dist/core/{HexGrid-DquaiXLF.js → HexGrid-BIfYhkfV.js} +3 -4
- package/dist/core/{Hologram-JAXPZFx0.js → Hologram-ou27baPQ.js} +3 -7
- package/dist/core/{Holographic-BBHJp93D.js → Holographic-CiHdBSMg.js} +3 -7
- package/dist/core/{HueShift-a1Hl7gFy.js → HueShift-CG7pcXfg.js} +1 -3
- package/dist/core/{ImageTexture-CLW3uX1b.js → ImageTexture-BiZuU58C.js} +1 -2
- package/dist/core/{InkFlow-Dfd_5vYf.js → InkFlow-D9_L7opB.js} +2 -5
- package/dist/core/{Invert-DBEURmcL.js → Invert-CHEaiQZO.js} +1 -2
- package/dist/core/{IrisWipe-DTlGb8v-.js → IrisWipe-x22vOQHm.js} +2 -3
- package/dist/core/Irradiance-7yq2K87_.js +389 -0
- package/dist/core/{IsometricCubes-BgmQXJXU.js → IsometricCubes-CkPGWr7M.js} +2 -3
- package/dist/core/{Kaleidoscope-0adfaQ5F.js → Kaleidoscope-CEC5m1Ww.js} +1 -2
- package/dist/core/{KeyFrames-BqANGVzW.js → KeyFrames-BMGEZsAZ.js} +2 -3
- package/dist/core/{LensDistortion-DVRKCZv8.js → LensDistortion-DKo8PiO5.js} +2 -3
- package/dist/core/{LensFlare-C41jY4jH.js → LensFlare-DMS-NUtK.js} +2 -3
- package/dist/core/LightEdge-DxmnCRls.js +315 -0
- package/dist/core/{LightLeak-GWrDFcI_.js → LightLeak-yoEsZtYg.js} +2 -4
- package/dist/core/{Line-DuV7dLdM.js → Line-D17XDUjO.js} +2 -3
- package/dist/core/{LinearBlur-Bft2CjmO.js → LinearBlur-CiyjPTUH.js} +2 -3
- package/dist/core/{LinearGradient-BzIE4ReW.js → LinearGradient-DfjKG70q.js} +2 -4
- package/dist/core/{LinearWipe-ArRG9OCp.js → LinearWipe-D9CtBg6S.js} +2 -3
- package/dist/core/{LiquidMetal-BgvfhyiQ.js → LiquidMetal-8EG6DwV6.js} +3 -8
- package/dist/core/{Liquify-B6EigQqP.js → Liquify-BySXF1OB.js} +1 -4
- package/dist/core/{MagneticFilings-Dj35dlIq.js → MagneticFilings-DNESH3Zs.js} +2 -5
- package/dist/core/{Marble-0kfSSCDj.js → Marble-C9WvdxrP.js} +2 -7
- package/dist/core/{MeshGradient-DY_rUhFv.js → MeshGradient-d9--RXOU.js} +2 -10
- package/dist/core/{Mirror-C1AIyKmb.js → Mirror-1V2FF2kD.js} +1 -2
- package/dist/core/{MultiPointGradient-B9z1J-d8.js → MultiPointGradient-cRA9ytgL.js} +2 -3
- package/dist/core/{Nebula-mZDwq-yl.js → Nebula-BRV-q74y.js} +4 -87
- package/dist/core/{Neon-CyQE26dS.js → Neon-4PemK9Rj.js} +3 -6
- package/dist/core/{NoiseDissolve-DQbBbxlP.js → NoiseDissolve-B7LgD46G.js} +2 -3
- package/dist/core/{ObjectTracker-CZd20LeZ.js → ObjectTracker-CdzDxhpy.js} +2 -3
- package/dist/core/{Obsidian-CjKezopV.js → Obsidian-2J1eX9kT.js} +3 -9
- package/dist/core/{PagePeel-ulnjqZzc.js → PagePeel-D-ziraOm.js} +1 -2
- package/dist/core/{Paper-c_1INiUk.js → Paper-BxzCLyzB.js} +1 -2
- package/dist/core/{Parallelogram-CnjzV4-0.js → Parallelogram-D4OflTwn.js} +1 -2
- package/dist/core/{ParticleField-yJztI6Ts.js → ParticleField-tWNicEDO.js} +1 -4
- package/dist/core/{ParticleFlow-DJYrNrb8.js → ParticleFlow-BiEYFyWR.js} +2 -6
- package/dist/core/{Particles-kT-8Aj5V.js → Particles-B7W4yWgo.js} +3 -7
- package/dist/core/{PerlinNoise-C_Pczp28.js → PerlinNoise-C-irUxp9.js} +3 -5
- package/dist/core/{Perspective-BrbfuYVk.js → Perspective-DlnAW-pe.js} +2 -3
- package/dist/core/{PixelSort-DoTMcLz4.js → PixelSort-BBOTYuOE.js} +1 -4
- package/dist/core/{PixelThrow-B8pxI6sI.js → PixelThrow-DCJb9Lxd.js} +2 -4
- package/dist/core/{Pixelate-DCU9U9Wb.js → Pixelate-CZdwB--K.js} +1 -2
- package/dist/core/{Plasma-Xe1I1Mmb.js → Plasma-CTOQJeqy.js} +2 -4
- package/dist/core/{Plastic-Ce9dVqPq.js → Plastic-DvyH9x-4.js} +3 -8
- package/dist/core/{PolarCoordinates-mtOsxdGf.js → PolarCoordinates-XhdDAOD0.js} +1 -2
- package/dist/core/{Polygon-Cv63keGU.js → Polygon-CLohB-Ly.js} +2 -4
- package/dist/core/{Posterize-QhGDzUuf.js → Posterize-BAQfnvmK.js} +1 -2
- package/dist/core/{Prism-DOXMcTrS.js → Prism-DJVCVAXX.js} +2 -6
- package/dist/core/{ProgressiveBlur-sSQrxqcr.js → ProgressiveBlur-Dirva1on.js} +2 -3
- package/dist/core/{RadialGradient-DWTDAQnq.js → RadialGradient-DuSKR8Ds.js} +2 -4
- package/dist/core/{RadialWipe-HfofRhY0.js → RadialWipe-n8tON7x2.js} +2 -3
- package/dist/core/{RandomBars-DspX9Utc.js → RandomBars-BYouiIgQ.js} +2 -3
- package/dist/core/{ReactionDiffusion-GsRfnqUY.js → ReactionDiffusion-CHDd3y2q.js} +2 -5
- package/dist/core/{RectangularCoordinates-DhPRrTPT.js → RectangularCoordinates-CYFfCawa.js} +1 -2
- package/dist/core/{ReflectivePlane-ej7XTkZ-.js → ReflectivePlane-DFTl5U9q.js} +2 -3
- package/dist/core/Repeater-CnbzXuAe.js +473 -0
- package/dist/core/{Ring-CC1LC05E.js → Ring-CGkHVSVd.js} +1 -2
- package/dist/core/{RippleWipe-CmmIx59a.js → RippleWipe-DLjPzY6u.js} +2 -3
- package/dist/core/{Ripples-ColS9_ej.js → Ripples-C2tITU62.js} +2 -3
- package/dist/core/{RoundedRect-BCL_4FLA.js → RoundedRect-sfNTUaCY.js} +1 -2
- package/dist/core/{Saturation-E77lSl0T.js → Saturation-BRkifYWj.js} +1 -3
- package/dist/core/{Scratches-ZHohp7K4.js → Scratches-D87O5C2K.js} +2 -4
- package/dist/core/{Sharpness-CgNxIvCA.js → Sharpness-BGv613Zw.js} +1 -3
- package/dist/core/Shatter-DuyCFU1f.js +328 -0
- package/dist/core/{SimplexNoise-CZf812YP.js → SimplexNoise-CQJvmqd-.js} +2 -4
- package/dist/core/{SineWave-CVHPlsdX.js → SineWave-BfOgSGMP.js} +2 -3
- package/dist/core/{SliceWipe-4Y_DLO0N.js → SliceWipe-CD_D99sl.js} +1 -2
- package/dist/core/{Smoke-CzjvGgBl.js → Smoke-BDQYKRP1.js} +2 -4
- package/dist/core/{SmokeFill-DkMjXE-D.js → SmokeFill-CPnzQtQv.js} +3 -8
- package/dist/core/{SmokeFlow-DQMNHV2s.js → SmokeFlow-BkPMjZq8.js} +2 -4
- package/dist/core/{Solarize-DmhOkKoO.js → Solarize-DSiS32QS.js} +1 -3
- package/dist/core/{SolidColor-CyYoqgG3.js → SolidColor-DEKpgy1c.js} +2 -3
- package/dist/core/Sparkle-BZur6gPW.js +178 -0
- package/dist/core/{Spherize-D2gNetxE.js → Spherize-D9Yg4n6O.js} +2 -3
- package/dist/core/{Spiral-BCO6OJXU.js → Spiral-BCacfEpT.js} +2 -3
- package/dist/core/{Star-9JERbdHT.js → Star-Dnw1ihk7.js} +1 -2
- package/dist/core/{Stone-92McvPwz.js → Stone-Cje-_vAg.js} +1 -3
- package/dist/core/{Strands-B6NfRExJ.js → Strands-CFRxS1G_.js} +2 -4
- package/dist/core/{Stretch-DbUOkCav.js → Stretch-DXVhfIqO.js} +1 -2
- package/dist/core/{Stripes-BG2zbwGV.js → Stripes-CCADWwyq.js} +2 -3
- package/dist/core/{StudioBackground-tpZpD080.js → StudioBackground-BlzYNAsu.js} +2 -6
- package/dist/core/{SunBurst-BMH4MKRL.js → SunBurst-CmWbI18r.js} +2 -3
- package/dist/core/{Surface3D-DUZMTBel.js → Surface3D-Dmh98-0V.js} +2 -6
- package/dist/core/{Swirl-CzOPAKx8.js → Swirl-CzI1qSVc.js} +2 -4
- package/dist/core/{Teardrop-aOr2VYQI.js → Teardrop-D24uulL0.js} +1 -2
- package/dist/core/{Text-CV3Lr3m0.js → Text-CrZKvBw6.js} +2 -6
- package/dist/core/{ThinFilm-CYOodpsx.js → ThinFilm-D7R2dt1O.js} +3 -6
- package/dist/core/{TiltShift-Cv80ZHW3.js → TiltShift-AMMDZBvf.js} +2 -3
- package/dist/core/{TimeTrail-fvJO2a1q.js → TimeTrail-BCYDP2ep.js} +2 -6
- package/dist/core/{Tint-D4m85tFF.js → Tint-DHb5wBN5.js} +2 -3
- package/dist/core/{Trapezoid-B-PkXCCJ.js → Trapezoid-CL5Fxvq7.js} +1 -2
- package/dist/core/{TriangularGrid-hMfK10up.js → TriangularGrid-Bp-SJS-H.js} +2 -3
- package/dist/core/{Tritone-n1wNQ1dI.js → Tritone-C0nx7OdC.js} +2 -3
- package/dist/core/{Truchet-BhmcbIE9.js → Truchet-DCetyDaq.js} +2 -3
- package/dist/core/{Twirl-D8gALHXr.js → Twirl-D_mv9KEi.js} +1 -2
- package/dist/core/{VHS-CaqSB2Op.js → VHS-Cp9aDjti.js} +1 -2
- package/dist/core/{VenetianBlinds-B1-WjIeY.js → VenetianBlinds-DUyvaT5w.js} +2 -3
- package/dist/core/{Vesica-Gh1CMA7n.js → Vesica-BpzrTPTA.js} +1 -2
- package/dist/core/{Vibrance-ixBSdj4B.js → Vibrance-DW3J-pvW.js} +1 -3
- package/dist/core/{VideoTexture-DVQ1YsW2.js → VideoTexture-zoKsSrex.js} +1 -2
- package/dist/core/{Vignette-B9v8l0So.js → Vignette-KKbP3qdZ.js} +2 -5
- package/dist/core/{Voronoi-CIHogO9V.js → Voronoi-Bp2-U6lm.js} +2 -5
- package/dist/core/Voxels-B3e3LHH5.js +469 -0
- package/dist/core/{Water-Dh4UB4UF.js → Water-CoYwvqKx.js} +3 -8
- package/dist/core/{Watercolor-C70_K8Lv.js → Watercolor-DUNjSIN1.js} +2 -4
- package/dist/core/{WaveDistortion-BCKxUa-p.js → WaveDistortion-Dp8ws0z1.js} +1 -2
- package/dist/core/{Waveform-BKMFhH8R.js → Waveform-DDBLB6zu.js} +2 -9
- package/dist/core/{WaveletNoise-CFpncHiR.js → WaveletNoise-CpBkzfRT.js} +2 -4
- package/dist/core/{Weave-CYgbepeB.js → Weave-cWkvSEAy.js} +2 -3
- package/dist/core/{WebcamTexture-B0vkMk_l.js → WebcamTexture-D484SXSE.js} +1 -2
- package/dist/core/{Wool-CLkJUMng.js → Wool-C9L7O9fD.js} +1 -3
- package/dist/core/{WorleyNoise-BxznxOxV.js → WorleyNoise-B5j5lDQZ.js} +2 -3
- package/dist/core/{ZoomBlur-DtujxMsW.js → ZoomBlur-bPC1dBu2.js} +2 -3
- package/dist/core/customShaders.d.ts +71 -0
- package/dist/core/customShaders.d.ts.map +1 -0
- package/dist/core/docs-manifest.json +29177 -0
- package/dist/core/gpu/composer.d.ts +2 -0
- package/dist/core/gpu/composer.d.ts.map +1 -1
- package/dist/core/gpu/contract.d.ts +15 -0
- package/dist/core/gpu/contract.d.ts.map +1 -1
- package/dist/core/gpu/frame.d.ts +5 -2
- package/dist/core/gpu/frame.d.ts.map +1 -1
- package/dist/core/gpu/index.d.ts.map +1 -1
- package/dist/core/gpu/kit/waves.d.ts +6 -0
- package/dist/core/gpu/kit/waves.d.ts.map +1 -1
- package/dist/core/gpu/scaffolds/sdfShape.d.ts +1 -1
- package/dist/core/gpu/scaffolds/sdfShape.d.ts.map +1 -1
- package/dist/core/gpu/support.d.ts +12 -0
- package/dist/core/gpu/support.d.ts.map +1 -1
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +238 -255
- package/dist/core/llms.txt +1558 -0
- package/dist/core/{noiseColor-_P7nIu_L.js → noiseColor-D_bPhJ4m.js} +2 -2
- package/dist/core/presetRenderer.d.ts +4 -0
- package/dist/core/presetRenderer.d.ts.map +1 -1
- package/dist/core/registry.js +204 -248
- package/dist/core/shaderRegistry-BaozBFyh.js +445 -0
- package/dist/core/shaderRegistry.d.ts.map +1 -1
- package/dist/core/shaders/AngularBlur/index.d.ts +1 -1
- package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/AngularBlur/index.js +4 -10
- package/dist/core/shaders/Arc/index.js +4 -6
- package/dist/core/shaders/Ascii/index.d.ts +1 -1
- package/dist/core/shaders/Ascii/index.d.ts.map +1 -1
- package/dist/core/shaders/Ascii/index.js +4 -11
- package/dist/core/shaders/Aurora/index.js +4 -21
- package/dist/core/shaders/BarShift/index.js +4 -8
- package/dist/core/shaders/BarnDoors/index.js +4 -7
- package/dist/core/shaders/Beam/index.js +4 -11
- package/dist/core/shaders/Bend/index.js +4 -8
- package/dist/core/shaders/Blob/index.js +4 -18
- package/dist/core/shaders/BlockDissolve/index.js +4 -7
- package/dist/core/shaders/BlockNoise/index.d.ts +1 -1
- package/dist/core/shaders/BlockNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/BlockNoise/index.js +5 -14
- package/dist/core/shaders/BlueNoise/index.d.ts +1 -1
- package/dist/core/shaders/BlueNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/BlueNoise/index.js +5 -14
- package/dist/core/shaders/Blur/index.d.ts +1 -1
- package/dist/core/shaders/Blur/index.d.ts.map +1 -1
- package/dist/core/shaders/Blur/index.js +4 -10
- package/dist/core/shaders/Boids/index.js +4 -9
- package/dist/core/shaders/BokehBlur/index.js +4 -10
- package/dist/core/shaders/BrickPattern/index.d.ts +1 -1
- package/dist/core/shaders/BrickPattern/index.d.ts.map +1 -1
- package/dist/core/shaders/BrickPattern/index.js +4 -13
- package/dist/core/shaders/BrightnessContrast/index.js +4 -7
- package/dist/core/shaders/BrushedMetal/index.js +4 -11
- package/dist/core/shaders/Bulge/index.js +4 -8
- package/dist/core/shaders/CRTScreen/index.d.ts +2 -2
- package/dist/core/shaders/CRTScreen/index.d.ts.map +1 -1
- package/dist/core/shaders/CRTScreen/index.js +4 -10
- package/dist/core/shaders/CarbonFiber/index.js +4 -11
- package/dist/core/shaders/Chalkboard/index.d.ts +1 -1
- package/dist/core/shaders/Chalkboard/index.d.ts.map +1 -1
- package/dist/core/shaders/Chalkboard/index.js +4 -9
- package/dist/core/shaders/ChannelBlur/index.d.ts +1 -1
- package/dist/core/shaders/ChannelBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ChannelBlur/index.js +4 -10
- package/dist/core/shaders/CheckerWipe/index.js +4 -7
- package/dist/core/shaders/Checkerboard/index.d.ts +1 -1
- package/dist/core/shaders/Checkerboard/index.d.ts.map +1 -1
- package/dist/core/shaders/Checkerboard/index.js +4 -13
- package/dist/core/shaders/Chevron/index.d.ts +1 -1
- package/dist/core/shaders/Chevron/index.d.ts.map +1 -1
- package/dist/core/shaders/Chevron/index.js +4 -13
- package/dist/core/shaders/ChromaFlow/index.js +4 -8
- package/dist/core/shaders/ChromaticAberration/index.js +4 -11
- package/dist/core/shaders/Chrome/index.js +4 -10
- package/dist/core/shaders/Circle/index.js +4 -6
- package/dist/core/shaders/ColorWheel/index.js +4 -11
- package/dist/core/shaders/CompressionArtifacts/index.js +4 -7
- package/dist/core/shaders/ConcentricSpin/index.js +4 -8
- package/dist/core/shaders/ConicGradient/index.js +4 -11
- package/dist/core/shaders/ContourLines/index.js +4 -6
- package/dist/core/shaders/CornerPin/index.js +4 -8
- package/dist/core/shaders/Crescent/index.js +4 -5
- package/dist/core/shaders/Cross/index.js +4 -5
- package/dist/core/shaders/Crystal/index.js +4 -11
- package/dist/core/shaders/CurlNoise/index.d.ts +1 -1
- package/dist/core/shaders/CurlNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/CurlNoise/index.js +5 -14
- package/dist/core/shaders/CursorRipples/index.js +4 -7
- package/dist/core/shaders/CursorTrail/index.js +4 -7
- package/dist/core/shaders/DataMosh/index.js +4 -7
- package/dist/core/shaders/DiamondGradient/index.js +4 -11
- package/dist/core/shaders/DiamondWipe/index.js +4 -7
- package/dist/core/shaders/DiffuseBlur/index.d.ts +1 -1
- package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/DiffuseBlur/index.js +4 -10
- package/dist/core/shaders/DisplacementMap/index.js +4 -8
- package/dist/core/shaders/Dither/index.d.ts +1 -1
- package/dist/core/shaders/Dither/index.d.ts.map +1 -1
- package/dist/core/shaders/Dither/index.js +4 -13
- package/dist/core/shaders/DotGrid/index.d.ts +2 -2
- package/dist/core/shaders/DotGrid/index.d.ts.map +1 -1
- package/dist/core/shaders/DotGrid/index.js +4 -13
- package/dist/core/shaders/DropShadow/index.d.ts +1 -1
- package/dist/core/shaders/DropShadow/index.d.ts.map +1 -1
- package/dist/core/shaders/DropShadow/index.js +4 -10
- package/dist/core/shaders/Duotone/index.js +4 -6
- package/dist/core/shaders/Ellipse/index.js +4 -5
- package/dist/core/shaders/Emboss/index.js +4 -9
- package/dist/core/shaders/Engraving/index.js +4 -9
- package/dist/core/shaders/ErosionNoise/index.d.ts +1 -1
- package/dist/core/shaders/ErosionNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/ErosionNoise/index.js +5 -14
- package/dist/core/shaders/Exposure/index.js +4 -7
- package/dist/core/shaders/FallingLines/index.d.ts +1 -1
- package/dist/core/shaders/FallingLines/index.d.ts.map +1 -1
- package/dist/core/shaders/FallingLines/index.js +4 -13
- package/dist/core/shaders/FilmGrain/index.js +4 -7
- package/dist/core/shaders/FilmStock/index.js +4 -13
- package/dist/core/shaders/Flip/index.js +4 -8
- package/dist/core/shaders/FloatingParticles/index.d.ts +1 -1
- package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
- package/dist/core/shaders/FloatingParticles/index.js +4 -9
- package/dist/core/shaders/FlowField/index.js +4 -8
- package/dist/core/shaders/Flower/index.js +4 -5
- package/dist/core/shaders/FlowingGradient/index.js +4 -15
- package/dist/core/shaders/FlutedGlass/index.js +4 -11
- package/dist/core/shaders/Fog/index.js +4 -7
- package/dist/core/shaders/Form3D/index.js +4 -7
- package/dist/core/shaders/FractalNoise/index.d.ts +1 -1
- package/dist/core/shaders/FractalNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/FractalNoise/index.js +4 -13
- package/dist/core/shaders/Frost/index.js +4 -11
- package/dist/core/shaders/GaborNoise/index.d.ts +2 -2
- package/dist/core/shaders/GaborNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/GaborNoise/index.js +5 -14
- package/dist/core/shaders/Glass/index.js +4 -11
- package/dist/core/shaders/GlassTiles/index.d.ts +1 -1
- package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
- package/dist/core/shaders/GlassTiles/index.js +4 -8
- package/dist/core/shaders/Glitch/index.d.ts +1 -1
- package/dist/core/shaders/Glitch/index.d.ts.map +1 -1
- package/dist/core/shaders/Glitch/index.js +4 -10
- package/dist/core/shaders/Glow/index.d.ts +1 -1
- package/dist/core/shaders/Glow/index.d.ts.map +1 -1
- package/dist/core/shaders/Glow/index.js +4 -11
- package/dist/core/shaders/Godrays/index.js +4 -12
- package/dist/core/shaders/Goo/index.js +4 -11
- package/dist/core/shaders/GradientMap/index.js +4 -7
- package/dist/core/shaders/Grayscale/index.js +4 -6
- package/dist/core/shaders/Grid/index.d.ts +2 -2
- package/dist/core/shaders/Grid/index.d.ts.map +1 -1
- package/dist/core/shaders/Grid/index.js +4 -13
- package/dist/core/shaders/GridDistortion/index.js +4 -11
- package/dist/core/shaders/Group/index.js +4 -6
- package/dist/core/shaders/HTMLInCanvas/index.js +4 -7
- package/dist/core/shaders/Halftone/index.d.ts +1 -1
- package/dist/core/shaders/Halftone/index.d.ts.map +1 -1
- package/dist/core/shaders/Halftone/index.js +4 -13
- package/dist/core/shaders/Heart/index.js +4 -5
- package/dist/core/shaders/Heatmap/index.js +4 -11
- package/dist/core/shaders/HexGrid/index.d.ts +2 -2
- package/dist/core/shaders/HexGrid/index.d.ts.map +1 -1
- package/dist/core/shaders/HexGrid/index.js +4 -13
- package/dist/core/shaders/Hologram/index.js +4 -10
- package/dist/core/shaders/Holographic/index.js +4 -10
- package/dist/core/shaders/HueShift/index.js +4 -7
- package/dist/core/shaders/ImageTexture/index.js +4 -6
- package/dist/core/shaders/InkFlow/index.js +4 -8
- package/dist/core/shaders/Invert/index.js +4 -6
- package/dist/core/shaders/IrisWipe/index.js +4 -7
- package/dist/core/shaders/Irradiance/index.js +4 -13
- package/dist/core/shaders/IsometricCubes/index.d.ts +1 -1
- package/dist/core/shaders/IsometricCubes/index.d.ts.map +1 -1
- package/dist/core/shaders/IsometricCubes/index.js +4 -13
- package/dist/core/shaders/Kaleidoscope/index.js +4 -8
- package/dist/core/shaders/KeyFrames/index.js +4 -10
- package/dist/core/shaders/LensDistortion/index.js +4 -6
- package/dist/core/shaders/LensFlare/index.d.ts +1 -1
- package/dist/core/shaders/LensFlare/index.d.ts.map +1 -1
- package/dist/core/shaders/LensFlare/index.js +4 -12
- package/dist/core/shaders/LightEdge/index.js +4 -10
- package/dist/core/shaders/LightLeak/index.js +4 -12
- package/dist/core/shaders/Line/index.js +4 -10
- package/dist/core/shaders/LinearBlur/index.d.ts +1 -1
- package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/LinearBlur/index.js +4 -10
- package/dist/core/shaders/LinearGradient/index.js +4 -11
- package/dist/core/shaders/LinearWipe/index.js +4 -7
- package/dist/core/shaders/LiquidMetal/index.js +4 -11
- package/dist/core/shaders/Liquify/index.js +4 -10
- package/dist/core/shaders/MagneticFilings/index.js +4 -9
- package/dist/core/shaders/Marble/index.d.ts +1 -1
- package/dist/core/shaders/Marble/index.d.ts.map +1 -1
- package/dist/core/shaders/Marble/index.js +4 -15
- package/dist/core/shaders/MeshGradient/index.js +4 -17
- package/dist/core/shaders/Mirror/index.js +4 -8
- package/dist/core/shaders/MultiPointGradient/index.js +4 -11
- package/dist/core/shaders/Nebula/index.js +4 -13
- package/dist/core/shaders/Neon/index.js +4 -9
- package/dist/core/shaders/NoiseDissolve/index.js +4 -7
- package/dist/core/shaders/ObjectTracker/index.js +4 -10
- package/dist/core/shaders/Obsidian/index.js +4 -15
- package/dist/core/shaders/PagePeel/index.js +4 -10
- package/dist/core/shaders/Paper/index.d.ts +1 -1
- package/dist/core/shaders/Paper/index.d.ts.map +1 -1
- package/dist/core/shaders/Paper/index.js +4 -8
- package/dist/core/shaders/Parallelogram/index.js +4 -5
- package/dist/core/shaders/ParticleField/index.js +4 -9
- package/dist/core/shaders/ParticleFlow/index.js +4 -10
- package/dist/core/shaders/Particles/index.js +4 -9
- package/dist/core/shaders/PerlinNoise/index.d.ts +2 -2
- package/dist/core/shaders/PerlinNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/PerlinNoise/index.js +5 -14
- package/dist/core/shaders/Perspective/index.js +4 -8
- package/dist/core/shaders/PixelSort/index.js +4 -8
- package/dist/core/shaders/PixelThrow/index.js +4 -8
- package/dist/core/shaders/Pixelate/index.d.ts +1 -1
- package/dist/core/shaders/Pixelate/index.d.ts.map +1 -1
- package/dist/core/shaders/Pixelate/index.js +4 -10
- package/dist/core/shaders/Plasma/index.js +4 -11
- package/dist/core/shaders/Plastic/index.js +4 -11
- package/dist/core/shaders/PolarCoordinates/index.js +4 -8
- package/dist/core/shaders/Polygon/index.js +4 -6
- package/dist/core/shaders/Posterize/index.js +4 -6
- package/dist/core/shaders/Prism/index.js +4 -12
- package/dist/core/shaders/ProgressiveBlur/index.d.ts +1 -1
- package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ProgressiveBlur/index.js +4 -10
- package/dist/core/shaders/RadialGradient/index.js +4 -11
- package/dist/core/shaders/RadialWipe/index.js +4 -7
- package/dist/core/shaders/RandomBars/index.js +4 -7
- package/dist/core/shaders/ReactionDiffusion/index.js +4 -8
- package/dist/core/shaders/RectangularCoordinates/index.js +4 -8
- package/dist/core/shaders/ReflectivePlane/index.js +4 -10
- package/dist/core/shaders/Repeater/index.js +4 -5
- package/dist/core/shaders/Ring/index.js +4 -5
- package/dist/core/shaders/RippleWipe/index.js +4 -7
- package/dist/core/shaders/Ripples/index.d.ts +1 -1
- package/dist/core/shaders/Ripples/index.d.ts.map +1 -1
- package/dist/core/shaders/Ripples/index.js +4 -13
- package/dist/core/shaders/RoundedRect/index.js +4 -5
- package/dist/core/shaders/Saturation/index.js +4 -7
- package/dist/core/shaders/Scratches/index.d.ts +1 -1
- package/dist/core/shaders/Scratches/index.d.ts.map +1 -1
- package/dist/core/shaders/Scratches/index.js +5 -14
- package/dist/core/shaders/Sharpness/index.d.ts +1 -1
- package/dist/core/shaders/Sharpness/index.d.ts.map +1 -1
- package/dist/core/shaders/Sharpness/index.js +4 -11
- package/dist/core/shaders/Shatter/index.js +4 -6
- package/dist/core/shaders/SimplexNoise/index.d.ts +1 -1
- package/dist/core/shaders/SimplexNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/SimplexNoise/index.js +5 -14
- package/dist/core/shaders/SineWave/index.js +4 -10
- package/dist/core/shaders/SliceWipe/index.js +4 -8
- package/dist/core/shaders/Smoke/index.js +4 -7
- package/dist/core/shaders/SmokeFill/index.js +4 -10
- package/dist/core/shaders/SmokeFlow/index.js +4 -7
- package/dist/core/shaders/Solarize/index.js +4 -7
- package/dist/core/shaders/SolidColor/index.js +4 -11
- package/dist/core/shaders/Sparkle/index.d.ts +57 -0
- package/dist/core/shaders/Sparkle/index.d.ts.map +1 -0
- package/dist/core/shaders/Sparkle/index.js +5 -0
- package/dist/core/shaders/Spherize/index.d.ts +1 -1
- package/dist/core/shaders/Spherize/index.d.ts.map +1 -1
- package/dist/core/shaders/Spherize/index.js +4 -10
- package/dist/core/shaders/Spiral/index.js +4 -11
- package/dist/core/shaders/Star/index.js +4 -5
- package/dist/core/shaders/Stone/index.d.ts +1 -1
- package/dist/core/shaders/Stone/index.d.ts.map +1 -1
- package/dist/core/shaders/Stone/index.js +4 -14
- package/dist/core/shaders/Strands/index.d.ts +1 -1
- package/dist/core/shaders/Strands/index.d.ts.map +1 -1
- package/dist/core/shaders/Strands/index.js +4 -13
- package/dist/core/shaders/Stretch/index.js +4 -8
- package/dist/core/shaders/Stripes/index.d.ts +1 -1
- package/dist/core/shaders/Stripes/index.d.ts.map +1 -1
- package/dist/core/shaders/Stripes/index.js +4 -13
- package/dist/core/shaders/StudioBackground/index.js +4 -14
- package/dist/core/shaders/SunBurst/index.js +4 -12
- package/dist/core/shaders/Surface3D/index.js +4 -8
- package/dist/core/shaders/Swirl/index.js +4 -11
- package/dist/core/shaders/Teardrop/index.js +4 -5
- package/dist/core/shaders/Text/index.js +4 -12
- package/dist/core/shaders/ThinFilm/index.js +4 -9
- package/dist/core/shaders/TiltShift/index.d.ts +1 -1
- package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
- package/dist/core/shaders/TiltShift/index.js +4 -10
- package/dist/core/shaders/TimeTrail/index.js +4 -8
- package/dist/core/shaders/Tint/index.js +4 -6
- package/dist/core/shaders/Trapezoid/index.js +4 -5
- package/dist/core/shaders/TriangularGrid/index.d.ts +1 -1
- package/dist/core/shaders/TriangularGrid/index.d.ts.map +1 -1
- package/dist/core/shaders/TriangularGrid/index.js +4 -13
- package/dist/core/shaders/Tritone/index.js +4 -6
- package/dist/core/shaders/Truchet/index.d.ts +1 -1
- package/dist/core/shaders/Truchet/index.d.ts.map +1 -1
- package/dist/core/shaders/Truchet/index.js +4 -13
- package/dist/core/shaders/Twirl/index.js +4 -8
- package/dist/core/shaders/VHS/index.d.ts +1 -1
- package/dist/core/shaders/VHS/index.d.ts.map +1 -1
- package/dist/core/shaders/VHS/index.js +4 -10
- package/dist/core/shaders/VenetianBlinds/index.js +4 -7
- package/dist/core/shaders/Vesica/index.js +4 -5
- package/dist/core/shaders/Vibrance/index.js +4 -7
- package/dist/core/shaders/VideoTexture/index.js +4 -6
- package/dist/core/shaders/Vignette/index.js +4 -8
- package/dist/core/shaders/Voronoi/index.d.ts +1 -1
- package/dist/core/shaders/Voronoi/index.d.ts.map +1 -1
- package/dist/core/shaders/Voronoi/index.js +4 -13
- package/dist/core/shaders/Voxels/index.js +4 -14
- package/dist/core/shaders/Water/index.js +4 -11
- package/dist/core/shaders/Watercolor/index.d.ts +1 -1
- package/dist/core/shaders/Watercolor/index.d.ts.map +1 -1
- package/dist/core/shaders/Watercolor/index.js +4 -10
- package/dist/core/shaders/WaveDistortion/index.js +4 -8
- package/dist/core/shaders/Waveform/index.js +4 -16
- package/dist/core/shaders/WaveletNoise/index.d.ts +1 -1
- package/dist/core/shaders/WaveletNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/WaveletNoise/index.js +5 -14
- package/dist/core/shaders/Weave/index.d.ts +1 -1
- package/dist/core/shaders/Weave/index.d.ts.map +1 -1
- package/dist/core/shaders/Weave/index.js +4 -13
- package/dist/core/shaders/WebcamTexture/index.js +4 -6
- package/dist/core/shaders/Wool/index.d.ts +1 -1
- package/dist/core/shaders/Wool/index.d.ts.map +1 -1
- package/dist/core/shaders/Wool/index.js +4 -14
- package/dist/core/shaders/WorleyNoise/index.d.ts +1 -1
- package/dist/core/shaders/WorleyNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/WorleyNoise/index.js +4 -13
- package/dist/core/shaders/ZoomBlur/index.d.ts +1 -1
- package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ZoomBlur/index.js +4 -10
- package/dist/core/std/effects/blurs.d.ts +656 -138
- package/dist/core/std/effects/blurs.d.ts.map +1 -1
- package/dist/core/std/effects/color.d.ts +209 -32
- package/dist/core/std/effects/color.d.ts.map +1 -1
- package/dist/core/std/effects/edgeGlow.d.ts +86 -17
- package/dist/core/std/effects/edgeGlow.d.ts.map +1 -1
- package/dist/core/std/effects/fracture.d.ts +72 -8
- package/dist/core/std/effects/fracture.d.ts.map +1 -1
- package/dist/core/std/effects/index.d.ts +15 -0
- package/dist/core/std/effects/index.d.ts.map +1 -0
- package/dist/core/std/effects/instances.d.ts +87 -8
- package/dist/core/std/effects/instances.d.ts.map +1 -1
- package/dist/core/std/effects/lens.d.ts +48 -12
- package/dist/core/std/effects/lens.d.ts.map +1 -1
- package/dist/core/std/effects/overlay.d.ts +63 -22
- package/dist/core/std/effects/overlay.d.ts.map +1 -1
- package/dist/core/std/effects/pointerFields.d.ts +45 -20
- package/dist/core/std/effects/pointerFields.d.ts.map +1 -1
- package/dist/core/std/effects/reveal.d.ts +118 -40
- package/dist/core/std/effects/reveal.d.ts.map +1 -1
- package/dist/core/std/effects/stylize.d.ts +139 -70
- package/dist/core/std/effects/stylize.d.ts.map +1 -1
- package/dist/core/std/filter.d.ts +72 -12
- package/dist/core/std/filter.d.ts.map +1 -1
- package/dist/core/std/frames.d.ts +91 -24
- package/dist/core/std/frames.d.ts.map +1 -1
- package/dist/core/std/index.d.ts +46 -8
- package/dist/core/std/index.d.ts.map +1 -1
- package/dist/core/std/index.js +4 -0
- package/dist/core/std/invoke.d.ts +107 -12
- package/dist/core/std/invoke.d.ts.map +1 -1
- package/dist/core/std/lists.d.ts +40 -10
- package/dist/core/std/lists.d.ts.map +1 -1
- package/dist/core/std/lower.d.ts +73 -1
- package/dist/core/std/lower.d.ts.map +1 -1
- package/dist/core/std/mask.d.ts +60 -17
- package/dist/core/std/mask.d.ts.map +1 -1
- package/dist/core/std/math.d.ts +484 -9
- package/dist/core/std/math.d.ts.map +1 -1
- package/dist/core/std/motion.d.ts +130 -10
- package/dist/core/std/motion.d.ts.map +1 -1
- package/dist/core/std/paint/compose.d.ts +57 -16
- package/dist/core/std/paint/compose.d.ts.map +1 -1
- package/dist/core/std/paint/fields.d.ts +376 -93
- package/dist/core/std/paint/fields.d.ts.map +1 -1
- package/dist/core/std/paint/figures.d.ts +32 -17
- package/dist/core/std/paint/figures.d.ts.map +1 -1
- package/dist/core/std/paint/gradients.d.ts +58 -25
- package/dist/core/std/paint/gradients.d.ts.map +1 -1
- package/dist/core/std/paint/light.d.ts +501 -77
- package/dist/core/std/paint/light.d.ts.map +1 -1
- package/dist/core/std/paint/materials.d.ts +678 -151
- package/dist/core/std/paint/materials.d.ts.map +1 -1
- package/dist/core/std/paint/media.d.ts +47 -32
- package/dist/core/std/paint/media.d.ts.map +1 -1
- package/dist/core/std/paint/noise.d.ts +436 -87
- package/dist/core/std/paint/noise.d.ts.map +1 -1
- package/dist/core/std/paint/patterns.d.ts +473 -91
- package/dist/core/std/paint/patterns.d.ts.map +1 -1
- package/dist/core/std/paint/radiance.d.ts +75 -29
- package/dist/core/std/paint/radiance.d.ts.map +1 -1
- package/dist/core/std/paint/volume.d.ts +68 -27
- package/dist/core/std/paint/volume.d.ts.map +1 -1
- package/dist/core/std/paint/voxels.d.ts +46 -26
- package/dist/core/std/paint/voxels.d.ts.map +1 -1
- package/dist/core/std/shape.d.ts +195 -1
- package/dist/core/std/shape.d.ts.map +1 -1
- package/dist/core/std/signal.d.ts +55 -15
- package/dist/core/std/signal.d.ts.map +1 -1
- package/dist/core/std/sim/agentForces.d.ts +441 -99
- package/dist/core/std/sim/agentForces.d.ts.map +1 -1
- package/dist/core/std/sim/agentFrame.d.ts +94 -20
- package/dist/core/std/sim/agentFrame.d.ts.map +1 -1
- package/dist/core/std/sim/agentRender.d.ts +187 -60
- package/dist/core/std/sim/agentRender.d.ts.map +1 -1
- package/dist/core/std/sim/agents.d.ts +99 -28
- package/dist/core/std/sim/agents.d.ts.map +1 -1
- package/dist/core/std/sim/feedback.d.ts +40 -19
- package/dist/core/std/sim/feedback.d.ts.map +1 -1
- package/dist/core/std/sim/fluids.d.ts +127 -63
- package/dist/core/std/sim/fluids.d.ts.map +1 -1
- package/dist/core/std/sim/grids.d.ts +200 -48
- package/dist/core/std/sim/grids.d.ts.map +1 -1
- package/dist/core/std/sim/index.d.ts +14 -0
- package/dist/core/std/sim/index.d.ts.map +1 -0
- package/dist/core/std/sim/shapeFields.d.ts +56 -0
- package/dist/core/std/sim/shapeFields.d.ts.map +1 -1
- package/dist/core/std/sim.d.ts +112 -10
- package/dist/core/std/sim.d.ts.map +1 -1
- package/dist/core/std/slots.d.ts +72 -6
- package/dist/core/std/slots.d.ts.map +1 -1
- package/dist/core/std/types.d.ts +97 -60
- package/dist/core/std/types.d.ts.map +1 -1
- package/dist/core/std/values.d.ts +33 -14
- package/dist/core/std/values.d.ts.map +1 -1
- package/dist/core/std/warps.d.ts +221 -76
- package/dist/core/std/warps.d.ts.map +1 -1
- package/dist/core/std/wgsl.d.ts +115 -0
- package/dist/core/std/wgsl.d.ts.map +1 -0
- package/dist/core/std-ClftfWpF.js +218889 -0
- package/dist/core/{support-GJphyuEe.js → support-D3W86vgR.js} +11 -1
- package/dist/core/telemetry/index.js +1 -1
- package/dist/core/utilities/transformations/index.js +1 -1
- package/dist/js/bundle.js +182 -180
- package/dist/js/createShader.d.ts.map +1 -1
- package/dist/js/createShader.js +4 -3
- package/dist/js/types.d.ts +5 -0
- package/dist/js/types.d.ts.map +1 -1
- package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/js/utils/generatePresetCode.js +35 -22
- package/dist/react/CustomShader.js +178 -0
- package/dist/react/Preview.js +1 -0
- package/dist/react/Shader.js +1 -1
- package/dist/react/Sparkle.js +226 -0
- package/dist/react/bundle.js +178 -176
- package/dist/react/components/Sparkle.d.ts +41 -0
- package/dist/react/components/Sparkle.d.ts.map +1 -0
- package/dist/react/engine/CustomShader.d.ts +37 -0
- package/dist/react/engine/CustomShader.d.ts.map +1 -0
- package/dist/react/engine/Preview.d.ts.map +1 -1
- package/dist/react/index.d.ts +5 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +4 -2
- package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/react/utils/generatePresetCode.js +35 -22
- package/dist/registry.js +310 -58
- package/dist/solid/components/Sparkle.d.ts +38 -0
- package/dist/solid/components/Sparkle.d.ts.map +1 -0
- package/dist/solid/components/Sparkle.js +232 -0
- package/dist/solid/engine/CustomShader.d.ts +35 -0
- package/dist/solid/engine/CustomShader.d.ts.map +1 -0
- package/dist/solid/engine/CustomShader.js +160 -0
- package/dist/solid/engine/Preview.d.ts.map +1 -1
- package/dist/solid/engine/Preview.js +319 -317
- package/dist/solid/engine/Shader.js +1 -1
- package/dist/solid/index.d.ts +5 -0
- package/dist/solid/index.d.ts.map +1 -1
- package/dist/solid/index.js +95 -86
- package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/solid/utils/generatePresetCode.js +35 -22
- package/dist/svelte/components/Sparkle.svelte.d.ts +28 -0
- package/dist/svelte/engine/CustomShader.svelte.d.ts +40 -0
- package/dist/svelte/index.d.ts +4 -0
- package/dist/svelte/index.js +1237 -877
- package/dist/svelte/source/components/Sparkle.svelte +352 -0
- package/dist/svelte/source/engine/CustomShader.svelte +216 -0
- package/dist/svelte/source/engine/Preview.svelte +5 -3
- package/dist/svelte/source/index.js +4 -0
- package/dist/svelte/utils/generatePresetCode.js +35 -22
- package/dist/vue/CustomShader.js +3 -0
- package/dist/vue/CustomShader.vue_vue_type_script_setup_true_lang.js +173 -0
- package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/vue/Sparkle.js +3 -0
- package/dist/vue/Sparkle.vue_vue_type_script_setup_true_lang.js +233 -0
- package/dist/vue/components/Sparkle.vue.d.ts +63 -0
- package/dist/vue/components/Sparkle.vue.d.ts.map +1 -0
- package/dist/vue/index.d.ts +4 -0
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/index.js +4 -2
- package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/vue/utils/generatePresetCode.js +35 -22
- package/package.json +27 -2
- package/dist/core/Irradiance-DtC4tqNu.js +0 -4191
- package/dist/core/LightEdge-BV9bO8YB.js +0 -2339
- package/dist/core/Repeater-DU_EhoxD.js +0 -762
- package/dist/core/Shatter-DYKKCVD8.js +0 -1479
- package/dist/core/Voxels-LEG0c9YC.js +0 -8547
- package/dist/core/agents-CdLlm-5E.js +0 -5357
- package/dist/core/agents-DZaZ4n9_.js +0 -15709
- package/dist/core/blur-CrEChFnm.js +0 -8015
- package/dist/core/blurs-D5a6ad3o.js +0 -1751
- package/dist/core/canvasRaster-DDBkrdY8.js +0 -80
- package/dist/core/color-CY5teMWa.js +0 -3619
- package/dist/core/compose-DNU_Ut36.js +0 -46
- package/dist/core/device-m0ud8-Fn.js +0 -10
- package/dist/core/feedback-yfT0pT6A.js +0 -46
- package/dist/core/fields-CXwmEUsd.js +0 -475
- package/dist/core/figures-BRYcB-p2.js +0 -48
- package/dist/core/filter-BrhpSs3Z.js +0 -23
- package/dist/core/fluids-CBhAiGAx.js +0 -226
- package/dist/core/fonts-BUXTd9qb.js +0 -59
- package/dist/core/frames-Clw8-BpA.js +0 -78
- package/dist/core/glass-DIEus1UY.js +0 -2532
- package/dist/core/gradientPaints-Cx2bT20T.js +0 -6564
- package/dist/core/gradients-C15o7_xy.js +0 -159
- package/dist/core/grids-Cv99xcJg.js +0 -151
- package/dist/core/lens-ChO_HVpe.js +0 -352
- package/dist/core/light-Bba_Pie_.js +0 -271
- package/dist/core/lightfields-D120ZvMt.js +0 -2255
- package/dist/core/lower-DtoDQ7hV.js +0 -49452
- package/dist/core/mask-6rnSCir2.js +0 -28
- package/dist/core/materials-BjsiWqS0.js +0 -2944
- package/dist/core/math-7PlusTFx.js +0 -56
- package/dist/core/media-CgWmWvGq.js +0 -832
- package/dist/core/mediaLifecycle-BTPb5i1-.js +0 -320
- package/dist/core/motionBlur-DzaHMq9p.js +0 -6766
- package/dist/core/noise-G7a5U0ar.js +0 -546
- package/dist/core/noisePaints-B_axPpuv.js +0 -3619
- package/dist/core/noiseStylize-CUrW_HiC.js +0 -65
- package/dist/core/overlay-W4DAsSzP.js +0 -4712
- package/dist/core/patterns-RTt6Fek8.js +0 -9723
- package/dist/core/pointerFields-Ch_-cbCV.js +0 -2339
- package/dist/core/porters-CQwDd2t4.js +0 -30201
- package/dist/core/reveal-dbBiS7gE.js +0 -1688
- package/dist/core/sdf3d-BMqCSSPB.js +0 -21082
- package/dist/core/shaderRegistry-Bs0XOv9A.js +0 -443
- package/dist/core/shape-B2CoDi6l.js +0 -20
- package/dist/core/shapePaints-7HrXeLYX.js +0 -3354
- package/dist/core/signal-emJuvOI3.js +0 -34
- package/dist/core/slots-BqIef2iV.js +0 -32
- package/dist/core/stylize-CiN0ZaMu.js +0 -4541
- package/dist/core/tone-CsRho9qb.js +0 -763
- package/dist/core/warpMaps-Dbuleg2M.js +0 -10773
- package/dist/core/warps-gIr3RmZV.js +0 -276
- /package/dist/core/{transformations-CzFmhZww.js → transformations-P50Uo_Ju.js} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { d } from '../../gpu/kit/index';
|
|
2
2
|
|
|
3
3
|
type AtomicU32 = d.atomicU32;
|
|
4
|
-
/** A
|
|
4
|
+
/** A per-agent buffer of four numbers each (`agents`, `pos`, `vel`, …). */
|
|
5
5
|
export type Vec4StateArray = d.v4f[];
|
|
6
|
-
/** A
|
|
6
|
+
/** A push on a 3D agent, from its position, velocity and per-agent seed. */
|
|
7
7
|
export type AgentForce3 = (pos: d.v3f, vel: d.v3f, seed: number) => d.v3f;
|
|
8
|
-
/**
|
|
8
|
+
/** The signed distance to a shape's surface at a shape-local 3D point, negative inside. Build one with `shapeField`. */
|
|
9
9
|
export type ShapeField3 = (pos: d.v3f) => number;
|
|
10
10
|
interface VolumeParamsView {
|
|
11
11
|
readonly dt: number;
|
|
@@ -27,7 +27,7 @@ interface VolumeParamsView {
|
|
|
27
27
|
readonly gridOffY: number;
|
|
28
28
|
readonly gridOffZ: number;
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
30
|
+
/** What a 3D swarm's layout must name: `pos`, `vel`, the `dens` grid and the `params` values. */
|
|
31
31
|
export interface VolumeSwarmLayout {
|
|
32
32
|
readonly $: {
|
|
33
33
|
readonly pos: Vec4StateArray;
|
|
@@ -36,23 +36,23 @@ export interface VolumeSwarmLayout {
|
|
|
36
36
|
readonly params: VolumeParamsView;
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
/** What `force.pressure` returns: the force
|
|
39
|
+
/** What `force.pressure` returns: the force, plus the two density-grid steps and the grid's cell count for the program. */
|
|
40
40
|
export interface PressureForce {
|
|
41
41
|
force: AgentForce3;
|
|
42
|
-
/**
|
|
42
|
+
/** Clears the density grid. Dispatch it `fixed` over `cells`, first in the program. */
|
|
43
43
|
clearKernel: (i: number) => void;
|
|
44
|
-
/**
|
|
44
|
+
/** Adds each agent to the density grid. Dispatch it over `agents`, before the update. */
|
|
45
45
|
splatKernel: (i: number) => void;
|
|
46
46
|
/** The density grid's cell count (the clear dispatch size). */
|
|
47
47
|
cells: number;
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* from `
|
|
55
|
-
*
|
|
50
|
+
* A push away from crowding, so a swarm fills its shape evenly. Agents are counted into a
|
|
51
|
+
* coarse 3D grid every frame and slide down its density.
|
|
52
|
+
*
|
|
53
|
+
* `gridDim` is the grid's side in cells, `domain` the half-width it covers in shape-local
|
|
54
|
+
* units. Strength comes from `params.spread`. Put `clearKernel` and `splatKernel` in the
|
|
55
|
+
* program before the update step.
|
|
56
56
|
*/
|
|
57
57
|
declare function pressure(layout: VolumeSwarmLayout, cfg: {
|
|
58
58
|
gridDim: number;
|
|
@@ -64,50 +64,50 @@ declare function pressure(layout: VolumeSwarmLayout, cfg: {
|
|
|
64
64
|
};
|
|
65
65
|
}): PressureForce;
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
67
|
+
* Everything that keeps a swarm inside its shape, as one force: a spring wall at the surface,
|
|
68
|
+
* a pull back from far away, a pull toward the middle where the surface is ambiguous, and a
|
|
69
|
+
* drag that carries agents along when the shape rotates.
|
|
70
|
+
*
|
|
71
|
+
* `field` is the shape's distance function (see `shapeField`). Distances and feathers are in
|
|
72
|
+
* shape-local units, where the shape spans −0.5 to 0.5.
|
|
71
73
|
*/
|
|
72
74
|
declare function containment(layout: VolumeSwarmLayout, cfg: {
|
|
73
75
|
field: ShapeField3;
|
|
74
|
-
/**
|
|
76
|
+
/** How far apart the two samples of the field's slope are taken. 0.02 is typical. */
|
|
75
77
|
gradEps: number;
|
|
76
|
-
/**
|
|
77
|
-
* outside term — strong outside, diffuse inside (a sharp feather packs a coherent shell). */
|
|
78
|
+
/** The spring at the surface: fades in from `featherFrom` to `featherTo` (signed distance), `base` push plus `springK` per unit outside. */
|
|
78
79
|
wall: {
|
|
79
80
|
featherFrom: number;
|
|
80
81
|
featherTo: number;
|
|
81
82
|
base: number;
|
|
82
83
|
springK: number;
|
|
83
84
|
};
|
|
84
|
-
/**
|
|
85
|
+
/** The pull home once an agent is `from`..`to` from the origin, with strength `k`. */
|
|
85
86
|
recall: {
|
|
86
87
|
from: number;
|
|
87
88
|
to: number;
|
|
88
89
|
k: number;
|
|
89
90
|
};
|
|
90
|
-
/**
|
|
91
|
+
/** The pull toward the middle where the signed distance is `from`..`to`, with strength `k`. */
|
|
91
92
|
homing: {
|
|
92
93
|
from: number;
|
|
93
94
|
to: number;
|
|
94
95
|
k: number;
|
|
95
96
|
};
|
|
96
|
-
/**
|
|
97
|
+
/** How wide a band around the surface the rotation drag fades over. */
|
|
97
98
|
entrainment: {
|
|
98
99
|
featherHalf: number;
|
|
99
100
|
};
|
|
100
101
|
}): AgentForce3;
|
|
101
|
-
/** The cursor magnet
|
|
102
|
-
* shared kit force field. Layout needs `params.{cursorX, cursorY, cursorForce, cursorRadSq}`. */
|
|
102
|
+
/** The cursor as a magnet on a 3D swarm: a push away from the pointer (or a pull, when `params.cursorForce` is negative) within `params.cursorRadSq`. */
|
|
103
103
|
declare function cursorXY(layout: VolumeSwarmLayout): AgentForce3;
|
|
104
|
-
/**
|
|
104
|
+
/** A constant pull in the direction of `params.gravX, gravY`, already rotated into the shape's space on the CPU. */
|
|
105
105
|
declare function gravity(layout: VolumeSwarmLayout): AgentForce3;
|
|
106
106
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
107
|
+
* A random jitter per agent that keeps a swarm alive, scaled by `params.agitation`.
|
|
108
|
+
*
|
|
109
|
+
* Keep the scale constants large. Small ones make the noise smooth and the whole swarm drifts
|
|
110
|
+
* in lockstep.
|
|
111
111
|
*/
|
|
112
112
|
declare function turbulence(layout: VolumeSwarmLayout, cfg: {
|
|
113
113
|
posScale: number;
|
|
@@ -116,12 +116,13 @@ declare function turbulence(layout: VolumeSwarmLayout, cfg: {
|
|
|
116
116
|
seedScale: number;
|
|
117
117
|
gain: number;
|
|
118
118
|
}): AgentForce3;
|
|
119
|
-
/** Fold a declared 3D force list into one part, preserving the declared sum order. */
|
|
119
|
+
/** @internal Fold a declared 3D force list into one part, preserving the declared sum order. The integrator does this for you. */
|
|
120
120
|
export declare function composeForces3(parts: AgentForce3[]): AgentForce3;
|
|
121
121
|
/**
|
|
122
|
-
* The
|
|
123
|
-
*
|
|
124
|
-
*
|
|
122
|
+
* The update step for a 3D swarm: sum the forces, apply drag (`params.dragMul`) and a speed
|
|
123
|
+
* limit, move, and never let an agent past `posClamp` from the origin.
|
|
124
|
+
*
|
|
125
|
+
* Velocity's fourth value is the speed, which the volume render reads for its color ramp.
|
|
125
126
|
*/
|
|
126
127
|
declare function forces3d(layout: VolumeSwarmLayout, cfg: {
|
|
127
128
|
forces: AgentForce3[];
|
|
@@ -129,7 +130,7 @@ declare function forces3d(layout: VolumeSwarmLayout, cfg: {
|
|
|
129
130
|
posClamp: number;
|
|
130
131
|
name: string;
|
|
131
132
|
}): (i: number) => void;
|
|
132
|
-
/** A steering
|
|
133
|
+
/** A steering push on a 2D agent, from its position, velocity and its own top speed. */
|
|
133
134
|
export type AgentSteer2 = (pos: d.v2f, vel: d.v2f, maxSpeedI: number) => d.v2f;
|
|
134
135
|
interface SteeringParamsView {
|
|
135
136
|
readonly count: number;
|
|
@@ -151,7 +152,7 @@ interface SteeringParamsView {
|
|
|
151
152
|
readonly margin: number;
|
|
152
153
|
readonly turnForce: number;
|
|
153
154
|
}
|
|
154
|
-
/**
|
|
155
|
+
/** What a flock's layout must name: `agents`, the `agit` excitement buffer and the `params` values. */
|
|
155
156
|
export interface SteeringLayout {
|
|
156
157
|
readonly $: {
|
|
157
158
|
readonly agents: Vec4StateArray;
|
|
@@ -160,52 +161,64 @@ export interface SteeringLayout {
|
|
|
160
161
|
};
|
|
161
162
|
}
|
|
162
163
|
/**
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
164
|
+
* Flocking: each agent keeps its distance from close neighbours, matches the heading of the
|
|
165
|
+
* ones it can see, and drifts toward their centre.
|
|
166
|
+
*
|
|
167
|
+
* Weights and radii are live values: `params.sepW`, `aliW`, `cohW`, `perceptionSq`,
|
|
168
|
+
* `sepRadiusSq`. `maxAgents` is the buffer size. Distances are in canvas heights.
|
|
167
169
|
*/
|
|
168
170
|
declare function flocking(layout: SteeringLayout, cfg: {
|
|
169
171
|
maxAgents: number;
|
|
170
172
|
}): AgentSteer2;
|
|
171
|
-
/**
|
|
173
|
+
/** The cursor on a flock: `params.cursorMode` 1 attracts, 2 scatters like a predator, 0 does nothing, fading to zero at `params.cursorRadius`. */
|
|
172
174
|
declare function cursorSteer(layout: SteeringLayout): AgentSteer2;
|
|
173
|
-
/**
|
|
174
|
-
* (At most one x and one y term is nonzero, so the per-axis sums are exact.) */
|
|
175
|
+
/** A gentle turn back toward the canvas within `params.margin` of an edge, so the flock arcs away instead of bouncing. */
|
|
175
176
|
declare function wallTurn(layout: SteeringLayout): AgentSteer2;
|
|
176
|
-
/** Fold a declared steering list into one part, preserving the declared sum order. */
|
|
177
|
+
/** @internal Fold a declared steering list into one part, preserving the declared sum order. The integrator does this for you. */
|
|
177
178
|
export declare function composeSteer2(parts: AgentSteer2[]): AgentSteer2;
|
|
178
179
|
/**
|
|
179
|
-
* The
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
180
|
+
* The update step for a flock: sum the steering, keep every agent cruising between
|
|
181
|
+
* `cruiseFloor` and its own top speed, and bounce off the canvas edges as a last resort.
|
|
182
|
+
*
|
|
183
|
+
* It also keeps an excitement value per agent that jumps when an agent steers hard and cools
|
|
184
|
+
* over time, which the oriented render turns into the rest-to-excited color.
|
|
183
185
|
*/
|
|
184
186
|
declare function steering2d(layout: SteeringLayout, cfg: {
|
|
185
187
|
forces: AgentSteer2[];
|
|
188
|
+
/** Excitement: effort above `rest` (in max-force units) charges by `gain`, and cools at `cool` per second. */
|
|
186
189
|
agitation: {
|
|
187
190
|
rest: number;
|
|
188
191
|
gain: number;
|
|
189
192
|
cool: number;
|
|
190
193
|
};
|
|
191
|
-
/**
|
|
194
|
+
/** Slowest cruise, as a fraction of each agent's top speed. */
|
|
192
195
|
cruiseFloor: number;
|
|
193
|
-
/**
|
|
196
|
+
/** Speed kept when an agent bounces off an edge (0–1). */
|
|
194
197
|
wallRestitution: number;
|
|
195
198
|
name: string;
|
|
196
199
|
}): (i: number) => void;
|
|
197
|
-
/**
|
|
200
|
+
/**
|
|
201
|
+
* What a field sample carries: the direction away from the source (`rhat`), the `strength`,
|
|
202
|
+
* and the line angle `phi` in radians. Build one when writing your own `AgentFieldAt`.
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```ts
|
|
206
|
+
* return FieldSample({rhat, strength: fieldStr, phi: std.atan2(B.y, B.x)})
|
|
207
|
+
* ```
|
|
208
|
+
* @see field.dipoleOrRadial, torque
|
|
209
|
+
*/
|
|
198
210
|
export declare const FieldSample: d.WgslStruct<{
|
|
199
211
|
rhat: d.Vec2f;
|
|
200
212
|
strength: d.F32;
|
|
201
213
|
phi: d.F32;
|
|
202
214
|
}>;
|
|
215
|
+
/** A field sample's value: `rhat`, `strength`, `phi`. */
|
|
203
216
|
export type FieldSampleValue = d.Infer<typeof FieldSample>;
|
|
204
|
-
/** A
|
|
217
|
+
/** A turn on a turning agent, from the field at its position, its angle and its index. */
|
|
205
218
|
export type AgentTorque = (fld: FieldSampleValue, theta: number, fi: number) => number;
|
|
206
|
-
/** A field
|
|
219
|
+
/** A sample of a field at a 2D position. */
|
|
207
220
|
export type AgentFieldAt = (pos: d.v2f) => FieldSampleValue;
|
|
208
|
-
/**
|
|
221
|
+
/** An agent's resting position, from its index. */
|
|
209
222
|
export type AgentHome2 = (fi: number) => d.v2f;
|
|
210
223
|
interface OrientationParamsView {
|
|
211
224
|
readonly dt: number;
|
|
@@ -229,7 +242,7 @@ interface OrientationParamsView {
|
|
|
229
242
|
readonly cellH: number;
|
|
230
243
|
readonly jitter: number;
|
|
231
244
|
}
|
|
232
|
-
/**
|
|
245
|
+
/** What a turning-agent layout must name: `agents`, the `agit` excitement buffer and the `params` values. */
|
|
233
246
|
export interface OrientationLayout {
|
|
234
247
|
readonly $: {
|
|
235
248
|
readonly agents: Vec4StateArray;
|
|
@@ -238,33 +251,33 @@ export interface OrientationLayout {
|
|
|
238
251
|
};
|
|
239
252
|
}
|
|
240
253
|
/**
|
|
241
|
-
* The
|
|
242
|
-
*
|
|
243
|
-
* distance (`params.{strength, reachSq}`). The dipole axis is the CPU-smoothed cursor motion
|
|
244
|
-
* (`params.{axisX, axisY}` — see `agentFrame.createMotionAxis`).
|
|
254
|
+
* The field of a magnet at the cursor: a bar magnet along the pointer's travel direction
|
|
255
|
+
* (`params.fieldType` 0) or a single pole (1), fading with distance by `params.reachSq`.
|
|
245
256
|
*/
|
|
246
257
|
declare function dipoleOrRadial(layout: OrientationLayout): AgentFieldAt;
|
|
247
|
-
/** Each agent's rest orientation (radians): random per agent (mode 0), horizontal (1),
|
|
248
|
-
* vertical (2) — `restMode` is a runtime uniform. */
|
|
258
|
+
/** @internal Each agent's rest orientation (radians): random per agent (mode 0), horizontal (1), vertical (2). Used by `torque.rest`. */
|
|
249
259
|
export declare const restOrientationAngle: import('typegpu').TgpuFn<(fi: d.F32, restMode: d.F32) => d.F32>;
|
|
250
|
-
/**
|
|
260
|
+
/** A turn onto the field's line, like a compass needle, with strength `params.alignK` times the field's strength. */
|
|
251
261
|
declare function alignToField(layout: OrientationLayout): AgentTorque;
|
|
252
|
-
/**
|
|
262
|
+
/** A weak turn back to each agent's rest angle (`params.restMode`: 0 random, 1 horizontal, 2 vertical), felt only where the field is faint. */
|
|
253
263
|
declare function restTorque(layout: OrientationLayout): AgentTorque;
|
|
254
|
-
/** Fold a declared torque list into one part, preserving the declared sum order. */
|
|
264
|
+
/** @internal Fold a declared torque list into one part, preserving the declared sum order. The integrator does this for you. */
|
|
255
265
|
export declare function composeTorques(parts: AgentTorque[]): AgentTorque;
|
|
256
266
|
/**
|
|
257
|
-
*
|
|
258
|
-
*
|
|
267
|
+
* A resting position for each agent on a jittered grid that runs `overscan` past the canvas
|
|
268
|
+
* on every side, so agents pulled inward are backfilled from off screen.
|
|
269
|
+
*
|
|
270
|
+
* Reads `params.gridCols`, `cellW`, `cellH` (from `agentFrame.fitJitteredGrid`) and `jitter`.
|
|
259
271
|
*/
|
|
260
272
|
declare function jitteredGridHome(layout: OrientationLayout, cfg: {
|
|
261
273
|
overscan: number;
|
|
262
274
|
}): AgentHome2;
|
|
263
275
|
/**
|
|
264
|
-
* The
|
|
265
|
-
* torques with angular drag (
|
|
266
|
-
*
|
|
267
|
-
*
|
|
276
|
+
* The update step for agents that turn in place: sample the field once at each agent's home,
|
|
277
|
+
* sum the torques, spin with angular drag (`params.damping`), and let the agent drift a little
|
|
278
|
+
* toward the field and spring back home, never more than `maxOffset` away.
|
|
279
|
+
*
|
|
280
|
+
* Fast spinning charges the excitement value the oriented render colors by.
|
|
268
281
|
*/
|
|
269
282
|
declare function orientation2d(layout: OrientationLayout, cfg: {
|
|
270
283
|
home: AgentHome2;
|
|
@@ -282,14 +295,14 @@ interface DriftParamsView {
|
|
|
282
295
|
readonly cursorRadSq: number;
|
|
283
296
|
readonly cursorForce: number;
|
|
284
297
|
}
|
|
285
|
-
/**
|
|
298
|
+
/** What a drifting-mote layout must name: `agents` and the `params` values. */
|
|
286
299
|
export interface DriftLayout {
|
|
287
300
|
readonly $: {
|
|
288
301
|
readonly agents: Vec4StateArray;
|
|
289
302
|
readonly params: DriftParamsView;
|
|
290
303
|
};
|
|
291
304
|
}
|
|
292
|
-
/** A
|
|
305
|
+
/** A built-in velocity for an agent, from its index alone. */
|
|
293
306
|
export type AgentDrift = (fi: number) => d.v2f;
|
|
294
307
|
/** Params view for the varied-heading drift part. */
|
|
295
308
|
interface HeadingDriftParamsView {
|
|
@@ -299,23 +312,20 @@ interface HeadingDriftParamsView {
|
|
|
299
312
|
readonly angleVarRad: number;
|
|
300
313
|
}
|
|
301
314
|
/**
|
|
302
|
-
*
|
|
303
|
-
* `params.
|
|
304
|
-
*
|
|
305
|
-
* `params.{driftBase, angleRad, speedVar, angleVarRad}`.
|
|
315
|
+
* A shared drift with per-agent variety: every mote moves along `params.angleRad` at
|
|
316
|
+
* `params.driftBase`, each varied by its own hashed amount up to `params.angleVarRad`
|
|
317
|
+
* (radians, ± half the range) and `params.speedVar` (± half).
|
|
306
318
|
*/
|
|
307
319
|
declare function variedHeading(layout: {
|
|
308
320
|
readonly $: {
|
|
309
321
|
readonly params: HeadingDriftParamsView;
|
|
310
322
|
};
|
|
311
323
|
}): AgentDrift;
|
|
312
|
-
/**
|
|
313
|
-
* force slider sits at 0 (a uniform-valued branch — fully coherent). */
|
|
324
|
+
/** A puff from the cursor on drifting motes: a push within `params.cursorRadSq` scaled by `params.cursorForce`, nothing at all while the force is 0. */
|
|
314
325
|
declare function cursorGust(layout: DriftLayout): (pos: d.v2f) => d.v2f;
|
|
315
326
|
/**
|
|
316
|
-
* The
|
|
317
|
-
*
|
|
318
|
-
* handles any overshoot in one step).
|
|
327
|
+
* The update step for drifting motes: add the gust, let it fade by `params.dragMul`, move by
|
|
328
|
+
* the drift plus the gust, and wrap around the canvas edges so coverage stays even.
|
|
319
329
|
*/
|
|
320
330
|
declare function drift2d(layout: DriftLayout, cfg: {
|
|
321
331
|
drift: AgentDrift;
|
|
@@ -342,7 +352,7 @@ interface ReliefParamsView {
|
|
|
342
352
|
readonly cursorZForce: number;
|
|
343
353
|
readonly cursorRadSq: number;
|
|
344
354
|
}
|
|
345
|
-
/**
|
|
355
|
+
/** What an image-relief layout must name: `pos`, `vel`, `col`, the child picture `src` and the `params` values. */
|
|
346
356
|
export interface ReliefLayout {
|
|
347
357
|
readonly $: {
|
|
348
358
|
readonly pos: Vec4StateArray;
|
|
@@ -352,41 +362,116 @@ export interface ReliefLayout {
|
|
|
352
362
|
readonly params: ReliefParamsView;
|
|
353
363
|
};
|
|
354
364
|
}
|
|
355
|
-
/**
|
|
365
|
+
/** One number in 0–1 read out of a color and its alpha: a brightness, a channel, a saturation. */
|
|
356
366
|
export type AgentChannel = (rgb: d.v3f, a: number) => number;
|
|
357
|
-
/**
|
|
367
|
+
/**
|
|
368
|
+
* Which part of the child's color drives a particle: `luminance`, `luminanceInverted`, `red`,
|
|
369
|
+
* `green`, `blue`, `saturation` or `alpha`, each a number in 0–1. `byMode` maps a select
|
|
370
|
+
* prop's number (0 luminance … 6 alpha) to the same functions.
|
|
371
|
+
*
|
|
372
|
+
* @example
|
|
373
|
+
* ```ts
|
|
374
|
+
* integrator.relief(fieldLayout, {channel: channel.byMode[channelMode] ?? channel.luminance, cursor: force.cursorInView(fieldLayout, {perspK: 0.9}), stiffness: 18, maxSpeed: 4, minAlpha: 0.02, name: 'reliefUpdate'})
|
|
375
|
+
* ```
|
|
376
|
+
* @see integrator
|
|
377
|
+
*/
|
|
358
378
|
export declare const channel: {
|
|
379
|
+
/**
|
|
380
|
+
* The color's brightness, 0 black to 1 white.
|
|
381
|
+
*
|
|
382
|
+
* @example
|
|
383
|
+
* ```ts
|
|
384
|
+
* channel: channel.luminance
|
|
385
|
+
* ```
|
|
386
|
+
*/
|
|
359
387
|
readonly luminance: AgentChannel;
|
|
388
|
+
/**
|
|
389
|
+
* One minus the brightness, so dark areas rise.
|
|
390
|
+
*
|
|
391
|
+
* @example
|
|
392
|
+
* ```ts
|
|
393
|
+
* channel: channel.luminanceInverted
|
|
394
|
+
* ```
|
|
395
|
+
*/
|
|
360
396
|
readonly luminanceInverted: AgentChannel;
|
|
397
|
+
/**
|
|
398
|
+
* The red channel.
|
|
399
|
+
*
|
|
400
|
+
* @example
|
|
401
|
+
* ```ts
|
|
402
|
+
* channel: channel.red
|
|
403
|
+
* ```
|
|
404
|
+
*/
|
|
361
405
|
readonly red: AgentChannel;
|
|
406
|
+
/**
|
|
407
|
+
* The green channel.
|
|
408
|
+
*
|
|
409
|
+
* @example
|
|
410
|
+
* ```ts
|
|
411
|
+
* channel: channel.green
|
|
412
|
+
* ```
|
|
413
|
+
*/
|
|
362
414
|
readonly green: AgentChannel;
|
|
415
|
+
/**
|
|
416
|
+
* The blue channel.
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* ```ts
|
|
420
|
+
* channel: channel.blue
|
|
421
|
+
* ```
|
|
422
|
+
*/
|
|
363
423
|
readonly blue: AgentChannel;
|
|
424
|
+
/**
|
|
425
|
+
* How colorful the pixel is, 0 grey to 1 pure.
|
|
426
|
+
*
|
|
427
|
+
* @example
|
|
428
|
+
* ```ts
|
|
429
|
+
* channel: channel.saturation
|
|
430
|
+
* ```
|
|
431
|
+
*/
|
|
364
432
|
readonly saturation: AgentChannel;
|
|
433
|
+
/**
|
|
434
|
+
* The pixel's alpha.
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* ```ts
|
|
438
|
+
* channel: channel.alpha
|
|
439
|
+
* ```
|
|
440
|
+
*/
|
|
365
441
|
readonly alpha: AgentChannel;
|
|
442
|
+
/**
|
|
443
|
+
* The same seven by a select prop's number: 0 luminance, 1 inverted, 2 red, 3 green,
|
|
444
|
+
* 4 blue, 5 saturation, 6 alpha.
|
|
445
|
+
*
|
|
446
|
+
* @example
|
|
447
|
+
* ```ts
|
|
448
|
+
* channel: channel.byMode[channelMode] ?? channel.luminance
|
|
449
|
+
* ```
|
|
450
|
+
*/
|
|
366
451
|
readonly byMode: Record<number, AgentChannel>;
|
|
367
452
|
};
|
|
368
453
|
/**
|
|
369
|
-
* The
|
|
370
|
-
*
|
|
371
|
-
*
|
|
372
|
-
* (xy shove + z bulge), and rotate the force back into field space by Rᵀ.
|
|
454
|
+
* The cursor on an image relief seen through a camera: the push is worked out where the
|
|
455
|
+
* particle appears on screen, so the cursor moves what is actually under it at any camera
|
|
456
|
+
* angle. `perspK` is the projection strength, the same value the relief render uses.
|
|
373
457
|
*/
|
|
374
458
|
declare function cursorInView(layout: ReliefLayout, cfg: {
|
|
375
459
|
perspK: number;
|
|
376
460
|
}): (homeW: d.v2f, off: d.v2f, z: number) => d.v3f;
|
|
377
461
|
/**
|
|
378
|
-
* The
|
|
379
|
-
*
|
|
380
|
-
*
|
|
381
|
-
*
|
|
382
|
-
*
|
|
462
|
+
* The update step for particles standing on an image: each particle reads the child's color
|
|
463
|
+
* at its home, rises to a height given by `channel`, springs back toward home with
|
|
464
|
+
* `stiffness`, and answers the `cursor`. Dispatched over a 2D grid.
|
|
465
|
+
*
|
|
466
|
+
* A particle snaps straight to its target until it has seen real content, so nothing lurches
|
|
467
|
+
* on load.
|
|
383
468
|
*/
|
|
384
469
|
declare function relief(layout: ReliefLayout, cfg: {
|
|
385
470
|
channel: AgentChannel;
|
|
386
471
|
cursor: (homeW: d.v2f, off: d.v2f, z: number) => d.v3f;
|
|
387
472
|
stiffness: number;
|
|
388
473
|
maxSpeed: number;
|
|
389
|
-
/** Child alpha below which a particle is never latched
|
|
474
|
+
/** Child alpha below which a particle is never latched. Match the render's `minAlpha`. */
|
|
390
475
|
minAlpha: number;
|
|
391
476
|
name: string;
|
|
392
477
|
}): (x: number, y: number) => void;
|
|
@@ -395,7 +480,7 @@ interface AdvectParamsView {
|
|
|
395
480
|
readonly aspect: number;
|
|
396
481
|
readonly advect: number;
|
|
397
482
|
}
|
|
398
|
-
/**
|
|
483
|
+
/** What a fluid-carried layout must name: `agents`, the fluid's velocity texture `velTex` and the `params` values. */
|
|
399
484
|
export interface AdvectLayout {
|
|
400
485
|
readonly $: {
|
|
401
486
|
readonly agents: Vec4StateArray;
|
|
@@ -404,10 +489,12 @@ export interface AdvectLayout {
|
|
|
404
489
|
};
|
|
405
490
|
}
|
|
406
491
|
/**
|
|
407
|
-
* The
|
|
408
|
-
*
|
|
409
|
-
*
|
|
410
|
-
*
|
|
492
|
+
* The update step for particles carried by a fluid: read the fluid's velocity under each
|
|
493
|
+
* particle, ease toward it over about `1/inertiaRate` seconds, drift gently back to an even
|
|
494
|
+
* spread at `homeRate` once the flow dies, and stay inside the canvas.
|
|
495
|
+
*
|
|
496
|
+
* `gridN` is the fluid grid's side in cells. `params.advect` scales how strongly the fluid
|
|
497
|
+
* carries the particles.
|
|
411
498
|
*/
|
|
412
499
|
declare function advect2d(layout: AdvectLayout, cfg: {
|
|
413
500
|
gridN: number;
|
|
@@ -415,35 +502,290 @@ declare function advect2d(layout: AdvectLayout, cfg: {
|
|
|
415
502
|
homeRate: number;
|
|
416
503
|
name: string;
|
|
417
504
|
}): (i: number) => void;
|
|
505
|
+
/**
|
|
506
|
+
* The pushes an agent can feel. Each is built over your layout and returns a part the matching
|
|
507
|
+
* integrator folds in list order.
|
|
508
|
+
*
|
|
509
|
+
* For a 3D swarm (`integrator.forces3d`): `pressure` (spread out evenly), `containment` (stay
|
|
510
|
+
* inside the shape), `cursorXY`, `gravity`, `turbulence`. For a flock (`integrator.steering2d`):
|
|
511
|
+
* `flocking`, `cursorSteer`, `wallTurn`. For drifting motes (`integrator.drift2d`):
|
|
512
|
+
* `cursorGust`. For an image relief (`integrator.relief`): `cursorInView`.
|
|
513
|
+
*
|
|
514
|
+
* @example
|
|
515
|
+
* ```ts
|
|
516
|
+
* integrator.steering2d(simLayout, {forces: [force.flocking(simLayout, {maxAgents: 4096}), force.cursorSteer(simLayout), force.wallTurn(simLayout)], agitation: {rest: 1.5, gain: 0.45, cool: 1.3}, cruiseFloor: 0.35, wallRestitution: 0.6, name: 'boidsUpdate'})
|
|
517
|
+
* ```
|
|
518
|
+
* @tip Order matters only for readability. The forces are summed, so list them from the most important down.
|
|
519
|
+
* @see integrator, torque, shapeField, agentFrame
|
|
520
|
+
*/
|
|
418
521
|
export declare const force: {
|
|
522
|
+
/**
|
|
523
|
+
* Spread a 3D swarm evenly by pushing agents away from crowded cells of a density grid.
|
|
524
|
+
* Returns the force plus the two grid steps to put in the program before the update.
|
|
525
|
+
*
|
|
526
|
+
* @example
|
|
527
|
+
* ```ts
|
|
528
|
+
* const pressure = force.pressure(simLayout, {gridDim: 32, domain: 1, names: {clear: 'swarmClearDensity', splat: 'swarmDensity'}})
|
|
529
|
+
* ```
|
|
530
|
+
* @tip Register `pressure.clearKernel` as a `fixed` step over `pressure.cells` and `pressure.splatKernel` over `agents`, both before the update.
|
|
531
|
+
* @see containment, integrator.forces3d
|
|
532
|
+
*/
|
|
419
533
|
readonly pressure: typeof pressure;
|
|
534
|
+
/**
|
|
535
|
+
* Keep a 3D swarm inside a shape: a spring at the surface, a pull back from far away, and a
|
|
536
|
+
* drag when the shape rotates.
|
|
537
|
+
*
|
|
538
|
+
* @example
|
|
539
|
+
* ```ts
|
|
540
|
+
* forces: [pressure.force, force.containment(simLayout, {field: hexField, gradEps: 0.02, wall: {featherFrom: -0.1, featherTo: 0.01, base: 1.1, springK: 22}, recall: {from: 0.85, to: 1.1, k: 9}, homing: {from: 0.12, to: 0.45, k: 5}, entrainment: {featherHalf: 0.05}})]
|
|
541
|
+
* ```
|
|
542
|
+
* @see shapeField, pressure
|
|
543
|
+
*/
|
|
420
544
|
readonly containment: typeof containment;
|
|
545
|
+
/**
|
|
546
|
+
* The cursor as a magnet on a 3D swarm, pushing away (or pulling in when the force is
|
|
547
|
+
* negative).
|
|
548
|
+
*
|
|
549
|
+
* @example
|
|
550
|
+
* ```ts
|
|
551
|
+
* forces: [pressure.force, force.cursorXY(simLayout), force.gravity(simLayout)]
|
|
552
|
+
* ```
|
|
553
|
+
* @see gravity, turbulence
|
|
554
|
+
*/
|
|
421
555
|
readonly cursorXY: typeof cursorXY;
|
|
556
|
+
/**
|
|
557
|
+
* A constant pull on a 3D swarm in the direction of `params.gravX, gravY`.
|
|
558
|
+
*
|
|
559
|
+
* @example
|
|
560
|
+
* ```ts
|
|
561
|
+
* forces: [pressure.force, force.cursorXY(simLayout), force.gravity(simLayout)]
|
|
562
|
+
* ```
|
|
563
|
+
* @see cursorXY
|
|
564
|
+
*/
|
|
422
565
|
readonly gravity: typeof gravity;
|
|
566
|
+
/**
|
|
567
|
+
* A per-agent jitter that keeps a 3D swarm alive, scaled by `params.agitation`.
|
|
568
|
+
*
|
|
569
|
+
* @example
|
|
570
|
+
* ```ts
|
|
571
|
+
* forces: [pressure.force, force.turbulence(simLayout, {posScale: 193, timeX: 31.7, timeY: 27.3, seedScale: 997, gain: 5})]
|
|
572
|
+
* ```
|
|
573
|
+
* @tip Keep the scale constants large. Small ones make the noise smooth and the whole swarm drifts in step.
|
|
574
|
+
* @see cursorXY
|
|
575
|
+
*/
|
|
423
576
|
readonly turbulence: typeof turbulence;
|
|
577
|
+
/**
|
|
578
|
+
* Separation, alignment and cohesion for a flock, with live weights and radii.
|
|
579
|
+
*
|
|
580
|
+
* @example
|
|
581
|
+
* ```ts
|
|
582
|
+
* forces: [force.flocking(simLayout, {maxAgents: 4096}), force.cursorSteer(simLayout), force.wallTurn(simLayout)]
|
|
583
|
+
* ```
|
|
584
|
+
* @see cursorSteer, wallTurn, integrator.steering2d
|
|
585
|
+
*/
|
|
424
586
|
readonly flocking: typeof flocking;
|
|
587
|
+
/**
|
|
588
|
+
* The cursor on a flock: attract, scatter like a predator, or nothing.
|
|
589
|
+
*
|
|
590
|
+
* @example
|
|
591
|
+
* ```ts
|
|
592
|
+
* forces: [force.flocking(simLayout, {maxAgents: 4096}), force.cursorSteer(simLayout)]
|
|
593
|
+
* ```
|
|
594
|
+
* @see flocking
|
|
595
|
+
*/
|
|
425
596
|
readonly cursorSteer: typeof cursorSteer;
|
|
597
|
+
/**
|
|
598
|
+
* A soft turn back toward the canvas near an edge, so a flock arcs instead of bouncing.
|
|
599
|
+
*
|
|
600
|
+
* @example
|
|
601
|
+
* ```ts
|
|
602
|
+
* forces: [force.flocking(simLayout, {maxAgents: 4096}), force.wallTurn(simLayout)]
|
|
603
|
+
* ```
|
|
604
|
+
* @see flocking
|
|
605
|
+
*/
|
|
426
606
|
readonly wallTurn: typeof wallTurn;
|
|
607
|
+
/**
|
|
608
|
+
* A puff from the cursor on drifting motes, zero while the force slider sits at 0.
|
|
609
|
+
*
|
|
610
|
+
* @example
|
|
611
|
+
* ```ts
|
|
612
|
+
* integrator.drift2d(simLayout, {drift: drift.variedHeading(simLayout), gust: force.cursorGust(simLayout), name: 'motesUpdate'})
|
|
613
|
+
* ```
|
|
614
|
+
* @see drift.variedHeading, integrator.drift2d
|
|
615
|
+
*/
|
|
427
616
|
readonly cursorGust: typeof cursorGust;
|
|
617
|
+
/**
|
|
618
|
+
* The cursor on an image relief, applied where each particle appears on screen.
|
|
619
|
+
*
|
|
620
|
+
* @example
|
|
621
|
+
* ```ts
|
|
622
|
+
* integrator.relief(fieldLayout, {channel: channel.luminance, cursor: force.cursorInView(fieldLayout, {perspK: 0.9}), stiffness: 18, maxSpeed: 4, minAlpha: 0.02, name: 'reliefUpdate'})
|
|
623
|
+
* ```
|
|
624
|
+
* @see integrator.relief, channel
|
|
625
|
+
*/
|
|
428
626
|
readonly cursorInView: typeof cursorInView;
|
|
429
627
|
};
|
|
628
|
+
/**
|
|
629
|
+
* The turns an agent that spins in place can feel, for `integrator.orientation2d`.
|
|
630
|
+
*
|
|
631
|
+
* @example
|
|
632
|
+
* ```ts
|
|
633
|
+
* torques: [torque.alignToField(simLayout), torque.rest(simLayout)]
|
|
634
|
+
* ```
|
|
635
|
+
* @see field, integrator
|
|
636
|
+
*/
|
|
430
637
|
export declare const torque: {
|
|
638
|
+
/**
|
|
639
|
+
* Swing onto the field's line like a compass needle.
|
|
640
|
+
*
|
|
641
|
+
* @example
|
|
642
|
+
* ```ts
|
|
643
|
+
* torques: [torque.alignToField(simLayout), torque.rest(simLayout)]
|
|
644
|
+
* ```
|
|
645
|
+
* @see rest, field.dipoleOrRadial
|
|
646
|
+
*/
|
|
431
647
|
readonly alignToField: typeof alignToField;
|
|
648
|
+
/**
|
|
649
|
+
* A weak swing back to each agent's rest angle, felt only where the field is faint.
|
|
650
|
+
*
|
|
651
|
+
* @example
|
|
652
|
+
* ```ts
|
|
653
|
+
* torques: [torque.alignToField(simLayout), torque.rest(simLayout)]
|
|
654
|
+
* ```
|
|
655
|
+
* @see alignToField
|
|
656
|
+
*/
|
|
432
657
|
readonly rest: typeof restTorque;
|
|
433
658
|
};
|
|
659
|
+
/**
|
|
660
|
+
* What a turning agent samples at its position: the magnetic field at the cursor, and its
|
|
661
|
+
* resting place on a jittered grid.
|
|
662
|
+
*
|
|
663
|
+
* @example
|
|
664
|
+
* ```ts
|
|
665
|
+
* integrator.orientation2d(simLayout, {home: field.jitteredGridHome(simLayout, {overscan: 0.1}), fieldAt: field.dipoleOrRadial(simLayout), torques: [torque.alignToField(simLayout), torque.rest(simLayout)], maxOffset: 0.02, name: 'filingsUpdate'})
|
|
666
|
+
* ```
|
|
667
|
+
* @see torque, integrator, agentFrame
|
|
668
|
+
*/
|
|
434
669
|
export declare const field: {
|
|
670
|
+
/**
|
|
671
|
+
* The field of a magnet at the cursor: a bar magnet along its travel, or a single pole.
|
|
672
|
+
*
|
|
673
|
+
* @example
|
|
674
|
+
* ```ts
|
|
675
|
+
* integrator.orientation2d(simLayout, {home, fieldAt: field.dipoleOrRadial(simLayout), torques, maxOffset: 0.12, name: 'filingsUpdate'})
|
|
676
|
+
* ```
|
|
677
|
+
* @see jitteredGridHome, torque.alignToField
|
|
678
|
+
*/
|
|
435
679
|
readonly dipoleOrRadial: typeof dipoleOrRadial;
|
|
680
|
+
/**
|
|
681
|
+
* Each agent's resting position on a jittered grid that runs past the canvas edges.
|
|
682
|
+
*
|
|
683
|
+
* @example
|
|
684
|
+
* ```ts
|
|
685
|
+
* const home = field.jitteredGridHome(simLayout, {overscan: 0.14})
|
|
686
|
+
* ```
|
|
687
|
+
* @tip The same home part goes to `renderAgents.orientedWorld` as `home`, so agents are drawn where they rest.
|
|
688
|
+
* @see dipoleOrRadial
|
|
689
|
+
*/
|
|
436
690
|
readonly jitteredGridHome: typeof jitteredGridHome;
|
|
437
691
|
};
|
|
692
|
+
/**
|
|
693
|
+
* A built-in velocity for motes that glide, for `integrator.drift2d`.
|
|
694
|
+
*
|
|
695
|
+
* @example
|
|
696
|
+
* ```ts
|
|
697
|
+
* integrator.drift2d(simLayout, {drift: drift.variedHeading(simLayout), gust: force.cursorGust(simLayout), name: 'motesUpdate'})
|
|
698
|
+
* ```
|
|
699
|
+
* @see integrator
|
|
700
|
+
*/
|
|
438
701
|
export declare const drift: {
|
|
702
|
+
/**
|
|
703
|
+
* One shared heading and speed, each varied a little per mote.
|
|
704
|
+
*
|
|
705
|
+
* @example
|
|
706
|
+
* ```ts
|
|
707
|
+
* integrator.drift2d(simLayout, {drift: drift.variedHeading(simLayout), gust: force.cursorGust(simLayout), name: 'motesUpdate'})
|
|
708
|
+
* ```
|
|
709
|
+
* @see force.cursorGust, integrator.drift2d
|
|
710
|
+
*/
|
|
439
711
|
readonly variedHeading: typeof variedHeading;
|
|
440
712
|
};
|
|
713
|
+
/**
|
|
714
|
+
* The update step of an agent simulation: one per kind of agent. Each takes your layout and
|
|
715
|
+
* the parts, and returns the step to register as `update` in `bake`.
|
|
716
|
+
*
|
|
717
|
+
* `forces3d` moves a 3D swarm under summed forces with drag and a speed limit. `steering2d`
|
|
718
|
+
* moves a flock that keeps cruising and arcs off the edges. `orientation2d` turns agents in
|
|
719
|
+
* place under summed torques. `drift2d` glides motes and wraps them around the canvas.
|
|
720
|
+
* `relief` stands particles on the child's image. `advect2d` carries particles along a fluid.
|
|
721
|
+
*
|
|
722
|
+
* @example
|
|
723
|
+
* ```ts
|
|
724
|
+
* const update = integrator.forces3d(simLayout, {forces: [pressure.force, force.containment(simLayout, containmentCfg), force.cursorXY(simLayout), force.gravity(simLayout)], maxSpeed: 3, posClamp: 1.9, name: 'swarmUpdate'})
|
|
725
|
+
* ```
|
|
726
|
+
* @tip Drag arrives as a per-frame multiplier in `params.dragMul`. Compute it with `agentFrame.expDecay(rate, dt)` so it does not depend on frame rate.
|
|
727
|
+
* @see force, torque, drift, field, renderAgents, agentSim
|
|
728
|
+
*/
|
|
441
729
|
export declare const integrator: {
|
|
730
|
+
/**
|
|
731
|
+
* A 3D swarm under summed forces, with drag, a speed limit and a position clamp.
|
|
732
|
+
*
|
|
733
|
+
* @example
|
|
734
|
+
* ```ts
|
|
735
|
+
* integrator.forces3d(simLayout, {forces: [pressure.force, force.containment(simLayout, containmentCfg), force.cursorXY(simLayout), force.gravity(simLayout)], maxSpeed: 3, posClamp: 1.9, name: 'swarmUpdate'})
|
|
736
|
+
* ```
|
|
737
|
+
* @see force.pressure, force.containment
|
|
738
|
+
*/
|
|
442
739
|
readonly forces3d: typeof forces3d;
|
|
740
|
+
/**
|
|
741
|
+
* A flock under summed steering, kept cruising, arcing off the canvas edges.
|
|
742
|
+
*
|
|
743
|
+
* @example
|
|
744
|
+
* ```ts
|
|
745
|
+
* integrator.steering2d(simLayout, {forces: [force.flocking(simLayout, {maxAgents: 4096}), force.cursorSteer(simLayout), force.wallTurn(simLayout)], agitation: {rest: 1.5, gain: 0.45, cool: 1.3}, cruiseFloor: 0.35, wallRestitution: 0.6, name: 'boidsUpdate'})
|
|
746
|
+
* ```
|
|
747
|
+
* @see force.flocking
|
|
748
|
+
*/
|
|
443
749
|
readonly steering2d: typeof steering2d;
|
|
750
|
+
/**
|
|
751
|
+
* Agents that turn in place under summed torques and drift a little toward the field.
|
|
752
|
+
*
|
|
753
|
+
* @example
|
|
754
|
+
* ```ts
|
|
755
|
+
* integrator.orientation2d(simLayout, {home: field.jitteredGridHome(simLayout, {overscan: 0.14}), fieldAt: field.dipoleOrRadial(simLayout), torques: [torque.alignToField(simLayout), torque.rest(simLayout)], maxOffset: 0.12, name: 'filingsUpdate'})
|
|
756
|
+
* ```
|
|
757
|
+
* @see torque, field
|
|
758
|
+
*/
|
|
444
759
|
readonly orientation2d: typeof orientation2d;
|
|
760
|
+
/**
|
|
761
|
+
* Motes that glide on a built-in drift plus a fading gust, wrapping around the canvas.
|
|
762
|
+
*
|
|
763
|
+
* @example
|
|
764
|
+
* ```ts
|
|
765
|
+
* integrator.drift2d(simLayout, {drift: drift.variedHeading(simLayout), gust: force.cursorGust(simLayout), name: 'motesUpdate'})
|
|
766
|
+
* ```
|
|
767
|
+
* @see drift.variedHeading, force.cursorGust
|
|
768
|
+
*/
|
|
445
769
|
readonly drift2d: typeof drift2d;
|
|
770
|
+
/**
|
|
771
|
+
* Particles standing on the child's image, rising by a color channel, springing home.
|
|
772
|
+
*
|
|
773
|
+
* @example
|
|
774
|
+
* ```ts
|
|
775
|
+
* integrator.relief(fieldLayout, {channel: channel.luminance, cursor: force.cursorInView(fieldLayout, {perspK: 0.9}), stiffness: 18, maxSpeed: 4, minAlpha: 0.02, name: 'reliefUpdate'})
|
|
776
|
+
* ```
|
|
777
|
+
* @see channel, force.cursorInView
|
|
778
|
+
*/
|
|
446
779
|
readonly relief: typeof relief;
|
|
780
|
+
/**
|
|
781
|
+
* Particles carried by a fluid's velocity texture, easing back to an even spread.
|
|
782
|
+
*
|
|
783
|
+
* @example
|
|
784
|
+
* ```ts
|
|
785
|
+
* integrator.advect2d(pfLayout, {gridN: 256, inertiaRate: 6, homeRate: 0.6, name: 'particleFlowIntegrate'})
|
|
786
|
+
* ```
|
|
787
|
+
* @see fluidSim
|
|
788
|
+
*/
|
|
447
789
|
readonly advect2d: typeof advect2d;
|
|
448
790
|
};
|
|
449
791
|
export {};
|