shaders 3.0.453 → 3.1.455
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/dist/cli.js +2 -2
- package/dist/core/{AngularBlur-B0m-LKoD.js → AngularBlur-CIw_xeFr.js} +25 -31
- package/dist/core/Arc-Dh0gjBrJ.js +183 -0
- package/dist/core/{Ascii-BiFuRRQ1.js → Ascii-CUk527uY.js} +34 -46
- package/dist/core/{Aurora-B35I8qRz.js → Aurora-CTWNhlNr.js} +14 -15
- package/dist/core/{BarShift-C_waFkRO.js → BarShift-BrOamln6.js} +24 -122
- package/dist/core/BarnDoors-D_lVAMPJ.js +170 -0
- package/dist/core/{Beam-BPBmQMGD.js → Beam-CgpfMTUq.js} +45 -461
- package/dist/core/{Bend-Bq1Qlhq4.js → Bend-CRuu6NuH.js} +13 -57
- package/dist/core/{Blob-BtInePsq.js → Blob-1mhEIcv5.js} +3 -3
- package/dist/core/BlockDissolve-DwWPjla0.js +178 -0
- package/dist/core/{BlockNoise-BfDNfyBP.js → BlockNoise-BMt760_p.js} +36 -113
- package/dist/core/{BlueNoise-CNLIGPMW.js → BlueNoise-Cfo_HthN.js} +24 -46
- package/dist/core/Blur-Bc8evwsz.js +428 -0
- package/dist/core/{Boids-D51ZdvH0.js → Boids-CtvT1VsV.js} +105 -427
- package/dist/core/{BokehBlur-DO4V8nZ-.js → BokehBlur-CWQm00ut.js} +37 -214
- package/dist/core/{BrickPattern-D21Nqxcj.js → BrickPattern-DomddM0C.js} +89 -335
- package/dist/core/{BrightnessContrast-QxVeVMih.js → BrightnessContrast-Bs8AV0he.js} +16 -15
- package/dist/core/{BrushedMetal-Xq4jMVz1.js → BrushedMetal-BAgNgeo1.js} +342 -1001
- package/dist/core/{Bulge-CdCqTfrp.js → Bulge-CdhRTWSH.js} +13 -71
- package/dist/core/{CRTScreen-D7WSk5fJ.js → CRTScreen-BxnPxDw9.js} +1 -1
- package/dist/core/{CarbonFiber-Dg-XleHg.js → CarbonFiber-mK6eHIpy.js} +281 -935
- package/dist/core/{Chalkboard-B_YRavSR.js → Chalkboard-BizZEHlC.js} +2 -2
- package/dist/core/{ChannelBlur-BmEILWdn.js → ChannelBlur-Oz40DKPZ.js} +15 -39
- package/dist/core/{CheckerWipe-Dbt7TTDK.js → CheckerWipe-yv4dK6n5.js} +83 -211
- package/dist/core/Checkerboard-Ynfnt3oJ.js +158 -0
- package/dist/core/{Chevron-DsJK3THV.js → Chevron-CEwNP2vt.js} +46 -117
- package/dist/core/{ChromaFlow-Bj4rfeWl.js → ChromaFlow-BXw1jQkn.js} +3 -3
- package/dist/core/{ChromaticAberration-C2UtSgN3.js → ChromaticAberration-CWhYEGDU.js} +2 -2
- package/dist/core/{Chrome-CSrC5yk_.js → Chrome-DoPYr4Kd.js} +97 -351
- package/dist/core/Circle-DGvP0Svo.js +267 -0
- package/dist/core/{ColorWheel-C_YLOL93.js → ColorWheel-BCReEdLZ.js} +48 -63
- package/dist/core/{CompressionArtifacts-BXto-pLr.js → CompressionArtifacts-Cm0iOzys.js} +2 -2
- package/dist/core/{ConcentricSpin-1tArUXYX.js → ConcentricSpin-B3GHzoS1.js} +37 -146
- package/dist/core/{ConicGradient-Tw-pg593.js → ConicGradient-C3zzgyV4.js} +25 -143
- package/dist/core/{ContourLines-CBFm0hjl.js → ContourLines-DDzxvg9k.js} +5 -66
- package/dist/core/{CornerPin-BNgPHIHY.js → CornerPin-VFPI_Jzq.js} +9 -54
- package/dist/core/Crescent-DL6EeZZp.js +187 -0
- package/dist/core/Cross-DQIgZt-C.js +188 -0
- package/dist/core/{Crystal-DN2WgBrm.js → Crystal-B9DIgDD7.js} +81 -262
- package/dist/core/{CurlNoise-RsATuC8w.js → CurlNoise-D6kSV8PJ.js} +40 -98
- package/dist/core/{CursorRipples-DbtJtDDl.js → CursorRipples-C1hLNWzZ.js} +63 -60
- package/dist/core/{CursorTrail-yoPFtwk9.js → CursorTrail-CPW8orHG.js} +66 -52
- package/dist/core/{DataMosh-DabFQ-B5.js → DataMosh-CjVK_gxL.js} +23 -56
- package/dist/core/{DiamondGradient-DbaUt2tC.js → DiamondGradient-BkrLPdAd.js} +43 -186
- package/dist/core/{DiamondWipe-Jth0vS7V.js → DiamondWipe-Cscn7Dyy.js} +45 -205
- package/dist/core/{DiffuseBlur-BZxj-iAt.js → DiffuseBlur-DUBfHpUN.js} +8 -11
- package/dist/core/{DisplacementMap-31H7QPQl.js → DisplacementMap-B-cVoGbC.js} +4 -3
- package/dist/core/{Dither-BN-zSZ0l.js → Dither-B4lhnNLA.js} +9 -12
- package/dist/core/{DotGrid-BRDFAkBz.js → DotGrid-CJJXTOk6.js} +78 -355
- package/dist/core/{DropShadow-_lFvglPh.js → DropShadow-B4msUftn.js} +31 -32
- package/dist/core/{Duotone-BhxXqh0S.js → Duotone-DF3dn0kC.js} +11 -8
- package/dist/core/Ellipse-WuGsM7Gr.js +168 -0
- package/dist/core/{Emboss--yOZdnyf.js → Emboss-D5RYAc-U.js} +14 -35
- package/dist/core/{Engraving-B26NgnCE.js → Engraving-DNNHKvIr.js} +12 -12
- package/dist/core/{ErosionNoise-_uC5Hx2q.js → ErosionNoise-w1aTuwY4.js} +35 -98
- package/dist/core/{Exposure-BM3eE3ol.js → Exposure-BSsbosYN.js} +15 -11
- package/dist/core/{FallingLines-BuczyepF.js → FallingLines-C1YT49dj.js} +13 -14
- package/dist/core/{FilmGrain-Dyy76ena.js → FilmGrain-BeZQzxdU.js} +21 -15
- package/dist/core/{FilmStock-mi-H3Ul9.js → FilmStock-Bgn9OyQY.js} +9 -734
- package/dist/core/{Flip-rZzkYscj.js → Flip-DJuox9qR.js} +11 -25
- package/dist/core/{FloatingParticles-BbbTJldX.js → FloatingParticles-Ch5OJjCc.js} +128 -447
- package/dist/core/{FlowField-u0qYoqV2.js → FlowField-Cime_Fqy.js} +6 -5
- package/dist/core/Flower--1qeeCuA.js +187 -0
- package/dist/core/{FlowingGradient-_zyM9KQn.js → FlowingGradient-DL1e3OKu.js} +12 -17
- package/dist/core/{FlutedGlass-C9-K6UQ7.js → FlutedGlass-CqSVa4kd.js} +5 -4
- package/dist/core/Fog-DvOvVKbF.js +2261 -0
- package/dist/core/{Form3D-Dmvpcqp1.js → Form3D-CabM27VZ.js} +152 -838
- package/dist/core/{FractalNoise-C8uudMNt.js → FractalNoise-Bu8FbMYX.js} +57 -321
- package/dist/core/{Frost-DV2zJSAL.js → Frost-BnE3EI6s.js} +77 -170
- package/dist/core/{GaborNoise-Bty1hWmn.js → GaborNoise-BZFyQbDr.js} +36 -99
- package/dist/core/{Glass-CYmFGP1b.js → Glass-DPa3OWjZ.js} +15 -27
- package/dist/core/{GlassTiles-B3vyGos-.js → GlassTiles-B4Y8x78X.js} +3 -2
- package/dist/core/{Glitch-DcjdwJep.js → Glitch-nokyLk8Q.js} +1 -1
- package/dist/core/Glow-C3VfGUb6.js +198 -0
- package/dist/core/{Godrays-lPn_O_W-.js → Godrays-fglKeS0z.js} +37 -72
- package/dist/core/{Goo-DxEB8kMF.js → Goo-BPaUKk1S.js} +13 -42
- package/dist/core/{GradientMap-7G6EOwy8.js → GradientMap-DQ4IbzIx.js} +23 -17
- package/dist/core/{Grayscale-BJz0olll.js → Grayscale-Bpp1Q2KT.js} +9 -11
- package/dist/core/Grid-BneV9T3T.js +684 -0
- package/dist/core/{GridDistortion-CSBRousF.js → GridDistortion-CAKSKhII.js} +8 -53
- package/dist/core/{Group-BSg6a8Ro.js → Group-UvbIuzy-.js} +1 -1
- package/dist/core/{HTMLInCanvas-DnQ0ZY38.js → HTMLInCanvas-CMxSuq5H.js} +16 -27
- package/dist/core/{Halftone-B2C55h6_.js → Halftone-SiFx0wAg.js} +4 -3
- package/dist/core/Heart-DLQnxsbQ.js +144 -0
- package/dist/core/{Heatmap-BdExXQBU.js → Heatmap-Bp0wi8r1.js} +14 -31
- package/dist/core/{HexGrid-B6UygS6q.js → HexGrid-LGx240mZ.js} +82 -486
- package/dist/core/{Hologram-D_eqqb8P.js → Hologram-B-090nzV.js} +14 -48
- package/dist/core/{Holographic-Ctrsya3k.js → Holographic-CSIQUm1_.js} +90 -298
- package/dist/core/{HueShift-CFXxhPpm.js → HueShift-B7l4vcZP.js} +17 -14
- package/dist/core/ImageTexture-D41xKACO.js +58 -0
- package/dist/core/InkFlow-Bd4RXQmm.js +1159 -0
- package/dist/core/{Invert-Bya7lBpK.js → Invert-CEfJB0WN.js} +9 -11
- package/dist/core/IrisWipe-O6dc-Aq2.js +163 -0
- package/dist/core/{IsometricCubes-CC-l8cnR.js → IsometricCubes-BQFwe-5s.js} +106 -473
- package/dist/core/{Kaleidoscope-DhvQTJdp.js → Kaleidoscope-DQFV4-lX.js} +15 -71
- package/dist/core/{KeyFrames-ZTsc7rtN.js → KeyFrames-BjH6gHSf.js} +32 -67
- package/dist/core/{LensDistortion-KiZJXFKC.js → LensDistortion-BcodYk7_.js} +3 -3
- package/dist/core/{LensFlare-D5fr8RPA.js → LensFlare-B4F0dq7O.js} +106 -348
- package/dist/core/{LightEdge-D0NOWDh7.js → LightEdge-l2zPIeMQ.js} +14 -31
- package/dist/core/{LightLeak-DdaidQ1D.js → LightLeak-BSy19CB6.js} +49 -333
- package/dist/core/{Line-B5DIIWBz.js → Line-CRGYWOyW.js} +2 -2
- package/dist/core/{LinearBlur-CyQxSLS2.js → LinearBlur-DGfbbIWb.js} +20 -31
- package/dist/core/{LinearGradient-B8tyawJy.js → LinearGradient-DOWwm0bP.js} +59 -110
- package/dist/core/LinearWipe-0nTDgTcZ.js +162 -0
- package/dist/core/{LiquidMetal-vARkyRL2.js → LiquidMetal-BbyxqZoO.js} +90 -446
- package/dist/core/{Liquify-Djnk6ryT.js → Liquify-Bg2tEc64.js} +10 -54
- package/dist/core/{MagneticFilings-BfTe8-Jn.js → MagneticFilings-5NVqpsrW.js} +123 -416
- package/dist/core/{Marble-3s7VS-tT.js → Marble-CzoJcXvo.js} +14 -15
- package/dist/core/{Mirror-Ck4Hzdd8.js → Mirror-B_2eQT6d.js} +11 -67
- package/dist/core/{MultiPointGradient-CdzqMTN9.js → MultiPointGradient-NJZfFGVb.js} +27 -140
- package/dist/core/{Neon-B8iSfL5s.js → Neon-m8PtEGdE.js} +14 -33
- package/dist/core/{NoiseDissolve-Df70NgHI.js → NoiseDissolve-DxvqR71w.js} +21 -129
- package/dist/core/{ObjectTracker-CFpotAyg.js → ObjectTracker-DlVNN9LJ.js} +41 -51
- package/dist/core/{PagePeel-Bmc4hBhO.js → PagePeel-BZOvdHFV.js} +3 -2
- package/dist/core/{Paper-af7JgKOt.js → Paper-Bn3DETI2.js} +2 -2
- package/dist/core/Parallelogram-a6zB6mY9.js +187 -0
- package/dist/core/{ParticleField-FPUBkJmo.js → ParticleField-CUtlCqxz.js} +172 -385
- package/dist/core/{ParticleFlow-DfdDvN-j.js → ParticleFlow-Ck5Ta_Rj.js} +250 -2572
- package/dist/core/{Particles-DZaTzOZP.js → Particles-rnTAu4Mr.js} +366 -475
- package/dist/core/{PerlinNoise-DPaPG55C.js → PerlinNoise-BUbmE_JA.js} +36 -113
- package/dist/core/{Perspective-DBzb7DC9.js → Perspective-S94umCQn.js} +17 -71
- package/dist/core/{PixelSort-sqoLBmqR.js → PixelSort-CF0-TpU7.js} +2 -2
- package/dist/core/{PixelThrow-arRYRlCO.js → PixelThrow-2WPijuDY.js} +17 -652
- package/dist/core/{Pixelate-Ba_iNPwv.js → Pixelate-BLdO8qAT.js} +1 -1
- package/dist/core/Plasma-DOH9gxWt.js +355 -0
- package/dist/core/{Plastic-C-NBXCG-.js → Plastic-CQNoTl22.js} +86 -271
- package/dist/core/{PolarCoordinates-CjV_EFpN.js → PolarCoordinates-DZNOyHmN.js} +15 -72
- package/dist/core/Polygon-BM3xGxOC.js +231 -0
- package/dist/core/{Posterize-BUt2MAqY.js → Posterize-BJl7Irml.js} +51 -18
- package/dist/core/{Prism-BBSdqnRm.js → Prism-CaJyExNA.js} +3 -3
- package/dist/core/{ProgressiveBlur-CQhyaOwl.js → ProgressiveBlur-B1Ur87dm.js} +56 -368
- package/dist/core/{RadialGradient-BXLBHnCC.js → RadialGradient-C1Fb8TaL.js} +44 -185
- package/dist/core/RadialWipe-CA5xWWPN.js +222 -0
- package/dist/core/RandomBars-B7ZwitL3.js +238 -0
- package/dist/core/{ReactionDiffusion-r1qHYWoB.js → ReactionDiffusion--54drNkY.js} +403 -1270
- package/dist/core/{RectangularCoordinates-CFGiELUv.js → RectangularCoordinates-BEOFurXt.js} +14 -70
- package/dist/core/{ReflectivePlane-BbKUjtUs.js → ReflectivePlane-wERmyiKx.js} +12 -77
- package/dist/core/{Repeater-DZhhgwMr.js → Repeater-Cy8up7cj.js} +2 -2
- package/dist/core/{Ring-DFxV0XzX.js → Ring-Cogdtn-0.js} +19 -134
- package/dist/core/{RippleWipe-DFh-8SmT.js → RippleWipe-fJwyE4vj.js} +24 -273
- package/dist/core/{Ripples-BG24IcNH.js → Ripples-BSHfhVG1.js} +3 -3
- package/dist/core/RoundedRect-D3intNNI.js +188 -0
- package/dist/core/{Saturation-DKbtxVNf.js → Saturation-D42Bfc5P.js} +14 -12
- package/dist/core/{Scratches-C40D6A1_.js → Scratches-Ih3Kx_UW.js} +5 -5
- package/dist/core/{Sharpness-DygCiVsY.js → Sharpness-Dyh6312-.js} +11 -11
- package/dist/core/{Shatter-eVP3Mt9W.js → Shatter-Qc5aMkWj.js} +3 -4
- package/dist/core/{SimplexNoise-HorjLzId.js → SimplexNoise-E7ssgWPN.js} +37 -179
- package/dist/core/{SineWave-CTIhqhO-.js → SineWave-CnPtZLSs.js} +6 -5
- package/dist/core/{SliceWipe-D3yX3CAm.js → SliceWipe-Byb46V6I.js} +15 -25
- package/dist/core/Smoke-5x6IAk2_.js +1265 -0
- package/dist/core/SmokeFill-DOQpTlCv.js +3192 -0
- package/dist/core/SmokeFlow-B4fdM2M-.js +903 -0
- package/dist/core/{Solarize-wvgIpPSb.js → Solarize-BB0bXhP0.js} +15 -15
- package/dist/core/{SolidColor-CQ9bQ-k6.js → SolidColor-D-6N9JmI.js} +1 -1
- package/dist/core/{Spherize-N33ACzeM.js → Spherize-aWpru70e.js} +2 -2
- package/dist/core/{Spiral-NeLWfZ6k.js → Spiral-Dbm2j7mM.js} +5 -4
- package/dist/core/Star-XtB9FBhQ.js +187 -0
- package/dist/core/{Stone-mVzuC5SK.js → Stone-i7v3RIb9.js} +2 -2
- package/dist/core/{Strands-C19HsqO_.js → Strands-BFaZBnNo.js} +6 -5
- package/dist/core/{Stretch-CAGlZjVf.js → Stretch-BKg0gjm4.js} +15 -72
- package/dist/core/{Stripes-DH9wZV3F.js → Stripes-B_SkTR2m.js} +83 -378
- package/dist/core/{StudioBackground-DPsj_N10.js → StudioBackground-CUsUWJ2L.js} +14 -133
- package/dist/core/{SunBurst-D5p0QAnh.js → SunBurst-DiqSzz5A.js} +34 -52
- package/dist/core/{Surface3D-HSAAGomd.js → Surface3D-DxzfMHn2.js} +15 -21
- package/dist/core/{Swirl-C1lH2gAk.js → Swirl-DBxZ6Wud.js} +3 -3
- package/dist/core/Teardrop-CnhwMyQx.js +168 -0
- package/dist/core/{Text-DPjLa6Eh.js → Text-Cb6QJNWo.js} +51 -70
- package/dist/core/{ThinFilm-DhpK-SoR.js → ThinFilm-B7CTONK1.js} +28 -176
- package/dist/core/{TiltShift-e57KIilk.js → TiltShift-DqEFOoJG.js} +62 -368
- package/dist/core/{TimeTrail-CYofyeeE.js → TimeTrail-G_JamlY8.js} +28 -73
- package/dist/core/{Tint-DBM82OkZ.js → Tint-Dj1rSoJ0.js} +14 -21
- package/dist/core/{Trapezoid-DaIBhsop.js → Trapezoid-D2PMU9G3.js} +40 -160
- package/dist/core/{TriangularGrid-CBOVJOcR.js → TriangularGrid-C3DBCmaj.js} +69 -349
- package/dist/core/{Tritone-D6Dur2eo.js → Tritone-DfULv51I.js} +11 -8
- package/dist/core/{Truchet-sunCQd_E.js → Truchet-yjZm8xe3.js} +73 -172
- package/dist/core/{Twirl-D3-3HSuS.js → Twirl-DfRsql00.js} +11 -67
- package/dist/core/{VHS-DtyeGxi8.js → VHS-Z23X9XD6.js} +1 -1
- package/dist/core/VenetianBlinds-CCucT73e.js +188 -0
- package/dist/core/Vesica-BIGpXjWv.js +168 -0
- package/dist/core/{Vibrance-B8gBhQS7.js → Vibrance-CtlvCONz.js} +15 -11
- package/dist/core/VideoTexture-DW6bQduh.js +58 -0
- package/dist/core/{Vignette-yIXlpfCE.js → Vignette-Dz3pPnPR.js} +24 -21
- package/dist/core/Voronoi-5QA-0zme.js +363 -0
- package/dist/core/{Water-uLbQQrt-.js → Water-DlvNrnrU.js} +84 -269
- package/dist/core/{Watercolor-CcZ0fVEu.js → Watercolor-BWx4xdwk.js} +3 -3
- package/dist/core/{WaveDistortion-DasSsVxv.js → WaveDistortion-CRQzZDLP.js} +18 -66
- package/dist/core/{WaveletNoise-DpRWc5Qw.js → WaveletNoise-CZS67VBU.js} +36 -99
- package/dist/core/{Weave-CLGYIcmf.js → Weave-DpwAU5Rn.js} +77 -254
- package/dist/core/WebcamTexture-DauLQjCl.js +130 -0
- package/dist/core/{Wool-uy61uieK.js → Wool-CEaWGZB1.js} +2 -2
- package/dist/core/WorleyNoise-CjRMr7xP.js +558 -0
- package/dist/core/{ZoomBlur-OQP2jw3F.js → ZoomBlur-DgG9JA7a.js} +18 -29
- package/dist/core/aa-C8WSqiNB.js +1094 -0
- package/dist/core/{agents-BVhq_Z2T.js → agents-C_kohsYu.js} +1 -1
- package/dist/core/{bevel-BGAb1fb2.js → bevel-ogqjoZKV.js} +1 -1
- package/dist/core/{blur-cLcFzL4x.js → blur-CZuIxzX6.js} +1782 -3
- package/dist/core/canvasRaster-BB2bNhS7.js +80 -0
- package/dist/core/cells-CM9mfnTr.js +1042 -0
- package/dist/core/cellular-qYnxKdPx.js +1593 -0
- package/dist/core/constants-DoOzbl5b.js +9 -0
- package/dist/core/{sdf-B8rPE1PG.js → device-B0ZwBfOg.js} +107 -6
- package/dist/core/{edges-B7Yet3LV.js → edges-CD7gCAto.js} +665 -1
- package/dist/core/fields-CC0756V2.js +1311 -0
- package/dist/core/geom-90G-d_hc.js +1036 -0
- package/dist/core/{glass-CNFJB2On.js → glass-D8xs_kIG.js} +1 -1
- package/dist/core/gpu/compute.d.ts +80 -9
- package/dist/core/gpu/compute.d.ts.map +1 -1
- package/dist/core/gpu/contract.d.ts +22 -1
- package/dist/core/gpu/contract.d.ts.map +1 -1
- package/dist/core/gpu/index.d.ts.map +1 -1
- package/dist/core/gpu/kit/aa.d.ts +111 -0
- package/dist/core/gpu/kit/aa.d.ts.map +1 -0
- package/dist/core/gpu/kit/blur.d.ts +288 -9
- package/dist/core/gpu/kit/blur.d.ts.map +1 -1
- package/dist/core/gpu/kit/cells.d.ts +136 -0
- package/dist/core/gpu/kit/cells.d.ts.map +1 -0
- package/dist/core/gpu/kit/cellular.d.ts +102 -0
- package/dist/core/gpu/kit/cellular.d.ts.map +1 -0
- package/dist/core/gpu/kit/constants.d.ts +52 -0
- package/dist/core/gpu/kit/constants.d.ts.map +1 -0
- package/dist/core/gpu/kit/effects/index.d.ts +2 -3
- package/dist/core/gpu/kit/effects/index.d.ts.map +1 -1
- package/dist/core/gpu/kit/effects/raymarch3d.d.ts +17 -34
- package/dist/core/gpu/kit/effects/raymarch3d.d.ts.map +1 -1
- package/dist/core/gpu/kit/effects/thinFilm.d.ts +3 -1
- package/dist/core/gpu/kit/effects/thinFilm.d.ts.map +1 -1
- package/dist/core/gpu/kit/fields.d.ts +143 -0
- package/dist/core/gpu/kit/fields.d.ts.map +1 -0
- package/dist/core/gpu/kit/geom.d.ts +129 -0
- package/dist/core/gpu/kit/geom.d.ts.map +1 -0
- package/dist/core/gpu/kit/host/canvasRaster.d.ts +104 -0
- package/dist/core/gpu/kit/host/canvasRaster.d.ts.map +1 -0
- package/dist/core/gpu/kit/host/mediaLifecycle.d.ts +173 -0
- package/dist/core/gpu/kit/host/mediaLifecycle.d.ts.map +1 -0
- package/dist/core/gpu/kit/host/pointer.d.ts +155 -0
- package/dist/core/gpu/kit/host/pointer.d.ts.map +1 -0
- package/dist/core/gpu/kit/index.d.ts +10 -0
- package/dist/core/gpu/kit/index.d.ts.map +1 -1
- package/dist/core/gpu/kit/lightfields.d.ts +114 -0
- package/dist/core/gpu/kit/lightfields.d.ts.map +1 -0
- package/dist/core/gpu/kit/lighting.d.ts +115 -0
- package/dist/core/gpu/kit/lighting.d.ts.map +1 -0
- package/dist/core/gpu/kit/media.d.ts +44 -0
- package/dist/core/gpu/kit/media.d.ts.map +1 -1
- package/dist/core/gpu/kit/noiseColor.d.ts +19 -4
- package/dist/core/gpu/kit/noiseColor.d.ts.map +1 -1
- package/dist/core/gpu/kit/reveal.d.ts +75 -0
- package/dist/core/gpu/kit/reveal.d.ts.map +1 -0
- package/dist/core/gpu/kit/sampling.d.ts +43 -0
- package/dist/core/gpu/kit/sampling.d.ts.map +1 -1
- package/dist/core/gpu/kit/sdf.d.ts +23 -0
- package/dist/core/gpu/kit/sdf.d.ts.map +1 -1
- package/dist/core/gpu/kit/sdf3d.d.ts +54 -1
- package/dist/core/gpu/kit/sdf3d.d.ts.map +1 -1
- package/dist/core/gpu/kit/tone.d.ts +100 -0
- package/dist/core/gpu/kit/tone.d.ts.map +1 -0
- package/dist/core/gpu/porters.d.ts +11 -1
- package/dist/core/gpu/porters.d.ts.map +1 -1
- package/dist/core/gpu/scaffolds/agentSystem.d.ts +244 -0
- package/dist/core/gpu/scaffolds/agentSystem.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/feedbackSim.d.ts +102 -0
- package/dist/core/gpu/scaffolds/feedbackSim.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/fluids.d.ts +170 -0
- package/dist/core/gpu/scaffolds/fluids.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/lateBoundChild.d.ts +51 -0
- package/dist/core/gpu/scaffolds/lateBoundChild.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/pointwiseFilter.d.ts +77 -0
- package/dist/core/gpu/scaffolds/pointwiseFilter.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/rttFilter.d.ts +35 -0
- package/dist/core/gpu/scaffolds/rttFilter.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/sdfShape.d.ts +98 -0
- package/dist/core/gpu/scaffolds/sdfShape.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/shared.d.ts +16 -0
- package/dist/core/gpu/scaffolds/shared.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/simShared.d.ts +61 -0
- package/dist/core/gpu/scaffolds/simShared.d.ts.map +1 -0
- package/dist/core/gpu/scaffolds/uvRemapShader.d.ts +134 -0
- package/dist/core/gpu/scaffolds/uvRemapShader.d.ts.map +1 -0
- package/dist/core/index.js +230 -217
- package/dist/core/lightfields-ffHoLyJn.js +1550 -0
- package/dist/core/lighting-D3jc6qOc.js +1270 -0
- package/dist/core/{media-Y-WxQcQD.js → media-fQMXfvXd.js} +31 -2
- package/dist/core/mediaLifecycle-yHZ8w5aj.js +314 -0
- package/dist/core/{noise-B-PI7JUx.js → noise-Bd6IGS0W.js} +1 -1
- package/dist/core/{noiseColor-Cgx-FS2o.js → noiseColor-DRDY44sf.js} +2 -2
- package/dist/core/noiseColor-DYhX5Js1.js +28 -0
- package/dist/core/{noiseStylize-BN5zji1E.js → noiseStylize-CkeVSB9C.js} +2 -2
- package/dist/core/pointer-DGDGF-yO.js +88 -0
- package/dist/core/porters-DUtQounc.js +12220 -0
- package/dist/core/presetRenderer.d.ts.map +1 -1
- package/dist/core/propConfigs-k3hs8KYL.js +190 -0
- package/dist/core/registry.js +222 -212
- package/dist/core/reveal-DhktaT1C.js +1071 -0
- package/dist/core/{shapeEffectBounds-Svfd_R5a.js → sdf3d-CP87OlsQ.js} +18752 -18710
- package/dist/core/shaderRegistry-DLSuwWtO.js +431 -0
- package/dist/core/shaders/AngularBlur/index.d.ts +8 -4
- package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/AngularBlur/index.js +7 -5
- package/dist/core/shaders/Arc/index.d.ts +0 -65
- package/dist/core/shaders/Arc/index.d.ts.map +1 -1
- package/dist/core/shaders/Arc/index.js +6 -7
- package/dist/core/shaders/Ascii/index.d.ts.map +1 -1
- package/dist/core/shaders/Ascii/index.js +8 -5
- package/dist/core/shaders/Aurora/index.d.ts.map +1 -1
- package/dist/core/shaders/Aurora/index.js +9 -6
- package/dist/core/shaders/BarShift/index.d.ts +1 -7
- package/dist/core/shaders/BarShift/index.d.ts.map +1 -1
- package/dist/core/shaders/BarShift/index.js +8 -6
- package/dist/core/shaders/BarnDoors/index.d.ts.map +1 -1
- package/dist/core/shaders/BarnDoors/index.js +8 -5
- package/dist/core/shaders/Beam/index.d.ts.map +1 -1
- package/dist/core/shaders/Beam/index.js +9 -5
- package/dist/core/shaders/Bend/index.d.ts +0 -6
- package/dist/core/shaders/Bend/index.d.ts.map +1 -1
- package/dist/core/shaders/Bend/index.js +7 -5
- package/dist/core/shaders/Blob/index.js +6 -5
- package/dist/core/shaders/BlockDissolve/index.d.ts.map +1 -1
- package/dist/core/shaders/BlockDissolve/index.js +9 -6
- package/dist/core/shaders/BlockNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/BlockNoise/index.js +13 -8
- package/dist/core/shaders/BlueNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/BlueNoise/index.js +13 -8
- package/dist/core/shaders/Blur/index.d.ts +6 -6
- package/dist/core/shaders/Blur/index.d.ts.map +1 -1
- package/dist/core/shaders/Blur/index.js +7 -6
- package/dist/core/shaders/Boids/index.d.ts.map +1 -1
- package/dist/core/shaders/Boids/index.js +9 -8
- package/dist/core/shaders/BokehBlur/index.d.ts +16 -16
- package/dist/core/shaders/BokehBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/BokehBlur/index.js +8 -6
- package/dist/core/shaders/BrickPattern/index.d.ts.map +1 -1
- package/dist/core/shaders/BrickPattern/index.js +10 -5
- package/dist/core/shaders/BrightnessContrast/index.d.ts.map +1 -1
- package/dist/core/shaders/BrightnessContrast/index.js +6 -5
- package/dist/core/shaders/BrushedMetal/index.d.ts.map +1 -1
- package/dist/core/shaders/BrushedMetal/index.js +12 -12
- package/dist/core/shaders/Bulge/index.d.ts +2 -16
- package/dist/core/shaders/Bulge/index.d.ts.map +1 -1
- package/dist/core/shaders/Bulge/index.js +6 -5
- package/dist/core/shaders/CRTScreen/index.js +6 -5
- package/dist/core/shaders/CarbonFiber/index.d.ts.map +1 -1
- package/dist/core/shaders/CarbonFiber/index.js +12 -12
- package/dist/core/shaders/Chalkboard/index.js +6 -5
- package/dist/core/shaders/ChannelBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ChannelBlur/index.js +7 -6
- package/dist/core/shaders/CheckerWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/CheckerWipe/index.js +8 -5
- package/dist/core/shaders/Checkerboard/index.d.ts +0 -2
- package/dist/core/shaders/Checkerboard/index.d.ts.map +1 -1
- package/dist/core/shaders/Checkerboard/index.js +9 -6
- package/dist/core/shaders/Chevron/index.d.ts.map +1 -1
- package/dist/core/shaders/Chevron/index.js +8 -5
- package/dist/core/shaders/ChromaFlow/index.js +6 -6
- package/dist/core/shaders/ChromaticAberration/index.js +6 -5
- package/dist/core/shaders/Chrome/index.d.ts.map +1 -1
- package/dist/core/shaders/Chrome/index.js +12 -12
- package/dist/core/shaders/Circle/index.d.ts +0 -50
- package/dist/core/shaders/Circle/index.d.ts.map +1 -1
- package/dist/core/shaders/Circle/index.js +6 -7
- package/dist/core/shaders/ColorWheel/index.d.ts.map +1 -1
- package/dist/core/shaders/ColorWheel/index.js +8 -5
- package/dist/core/shaders/CompressionArtifacts/index.js +6 -5
- package/dist/core/shaders/ConcentricSpin/index.d.ts +3 -17
- package/dist/core/shaders/ConcentricSpin/index.d.ts.map +1 -1
- package/dist/core/shaders/ConcentricSpin/index.js +8 -6
- package/dist/core/shaders/ConicGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/ConicGradient/index.js +10 -5
- package/dist/core/shaders/ContourLines/index.d.ts +1 -1
- package/dist/core/shaders/ContourLines/index.d.ts.map +1 -1
- package/dist/core/shaders/ContourLines/index.js +7 -5
- package/dist/core/shaders/CornerPin/index.d.ts +0 -6
- package/dist/core/shaders/CornerPin/index.d.ts.map +1 -1
- package/dist/core/shaders/CornerPin/index.js +6 -5
- package/dist/core/shaders/Crescent/index.d.ts +0 -71
- package/dist/core/shaders/Crescent/index.d.ts.map +1 -1
- package/dist/core/shaders/Crescent/index.js +6 -7
- package/dist/core/shaders/Cross/index.d.ts +0 -71
- package/dist/core/shaders/Cross/index.d.ts.map +1 -1
- package/dist/core/shaders/Cross/index.js +6 -7
- package/dist/core/shaders/Crystal/index.d.ts.map +1 -1
- package/dist/core/shaders/Crystal/index.js +11 -11
- package/dist/core/shaders/CurlNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/CurlNoise/index.js +13 -8
- package/dist/core/shaders/CursorRipples/index.d.ts.map +1 -1
- package/dist/core/shaders/CursorRipples/index.js +7 -5
- package/dist/core/shaders/CursorTrail/index.d.ts.map +1 -1
- package/dist/core/shaders/CursorTrail/index.js +7 -5
- package/dist/core/shaders/DataMosh/index.d.ts.map +1 -1
- package/dist/core/shaders/DataMosh/index.js +6 -5
- package/dist/core/shaders/DiamondGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/DiamondGradient/index.js +10 -5
- package/dist/core/shaders/DiamondWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/DiamondWipe/index.js +8 -5
- package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/DiffuseBlur/index.js +6 -5
- package/dist/core/shaders/DisplacementMap/index.d.ts.map +1 -1
- package/dist/core/shaders/DisplacementMap/index.js +7 -5
- package/dist/core/shaders/Dither/index.d.ts.map +1 -1
- package/dist/core/shaders/Dither/index.js +6 -5
- package/dist/core/shaders/DotGrid/index.d.ts +0 -1
- package/dist/core/shaders/DotGrid/index.d.ts.map +1 -1
- package/dist/core/shaders/DotGrid/index.js +11 -6
- package/dist/core/shaders/DropShadow/index.d.ts.map +1 -1
- package/dist/core/shaders/DropShadow/index.js +8 -5
- package/dist/core/shaders/Duotone/index.d.ts.map +1 -1
- package/dist/core/shaders/Duotone/index.js +6 -5
- package/dist/core/shaders/Ellipse/index.d.ts +0 -65
- package/dist/core/shaders/Ellipse/index.d.ts.map +1 -1
- package/dist/core/shaders/Ellipse/index.js +6 -7
- package/dist/core/shaders/Emboss/index.d.ts.map +1 -1
- package/dist/core/shaders/Emboss/index.js +8 -10
- package/dist/core/shaders/Engraving/index.d.ts.map +1 -1
- package/dist/core/shaders/Engraving/index.js +8 -6
- package/dist/core/shaders/ErosionNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/ErosionNoise/index.js +13 -8
- package/dist/core/shaders/Exposure/index.d.ts.map +1 -1
- package/dist/core/shaders/Exposure/index.js +6 -5
- package/dist/core/shaders/FallingLines/index.d.ts.map +1 -1
- package/dist/core/shaders/FallingLines/index.js +8 -5
- package/dist/core/shaders/FilmGrain/index.d.ts.map +1 -1
- package/dist/core/shaders/FilmGrain/index.js +6 -5
- package/dist/core/shaders/FilmStock/index.d.ts +9 -10
- package/dist/core/shaders/FilmStock/index.d.ts.map +1 -1
- package/dist/core/shaders/FilmStock/index.js +7 -6
- package/dist/core/shaders/Flip/index.d.ts.map +1 -1
- package/dist/core/shaders/Flip/index.js +6 -5
- package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
- package/dist/core/shaders/FloatingParticles/index.js +9 -8
- package/dist/core/shaders/FlowField/index.d.ts.map +1 -1
- package/dist/core/shaders/FlowField/index.js +8 -6
- package/dist/core/shaders/Flower/index.d.ts +0 -71
- package/dist/core/shaders/Flower/index.d.ts.map +1 -1
- package/dist/core/shaders/Flower/index.js +6 -7
- package/dist/core/shaders/FlowingGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/FlowingGradient/index.js +8 -6
- package/dist/core/shaders/FlutedGlass/index.d.ts.map +1 -1
- package/dist/core/shaders/FlutedGlass/index.js +7 -5
- package/dist/core/shaders/Fog/index.d.ts +1 -9
- package/dist/core/shaders/Fog/index.d.ts.map +1 -1
- package/dist/core/shaders/Fog/index.js +8 -5
- package/dist/core/shaders/Form3D/index.d.ts.map +1 -1
- package/dist/core/shaders/Form3D/index.js +7 -5
- package/dist/core/shaders/FractalNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/FractalNoise/index.js +12 -7
- package/dist/core/shaders/Frost/index.d.ts.map +1 -1
- package/dist/core/shaders/Frost/index.js +11 -11
- package/dist/core/shaders/GaborNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/GaborNoise/index.js +13 -8
- package/dist/core/shaders/Glass/index.d.ts.map +1 -1
- package/dist/core/shaders/Glass/index.js +9 -11
- package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
- package/dist/core/shaders/GlassTiles/index.js +7 -5
- package/dist/core/shaders/Glitch/index.js +6 -5
- package/dist/core/shaders/Glow/index.d.ts +22 -26
- package/dist/core/shaders/Glow/index.d.ts.map +1 -1
- package/dist/core/shaders/Glow/index.js +7 -6
- package/dist/core/shaders/Godrays/index.d.ts.map +1 -1
- package/dist/core/shaders/Godrays/index.js +9 -5
- package/dist/core/shaders/Goo/index.d.ts.map +1 -1
- package/dist/core/shaders/Goo/index.js +9 -10
- package/dist/core/shaders/GradientMap/index.d.ts.map +1 -1
- package/dist/core/shaders/GradientMap/index.js +7 -5
- package/dist/core/shaders/Grayscale/index.d.ts.map +1 -1
- package/dist/core/shaders/Grayscale/index.js +6 -5
- package/dist/core/shaders/Grid/index.d.ts +0 -1
- package/dist/core/shaders/Grid/index.d.ts.map +1 -1
- package/dist/core/shaders/Grid/index.js +11 -6
- package/dist/core/shaders/GridDistortion/index.d.ts +0 -6
- package/dist/core/shaders/GridDistortion/index.d.ts.map +1 -1
- package/dist/core/shaders/GridDistortion/index.js +6 -5
- package/dist/core/shaders/Group/index.js +6 -5
- package/dist/core/shaders/HTMLInCanvas/index.d.ts.map +1 -1
- package/dist/core/shaders/HTMLInCanvas/index.js +7 -5
- package/dist/core/shaders/Halftone/index.d.ts.map +1 -1
- package/dist/core/shaders/Halftone/index.js +7 -5
- package/dist/core/shaders/Heart/index.d.ts +0 -59
- package/dist/core/shaders/Heart/index.d.ts.map +1 -1
- package/dist/core/shaders/Heart/index.js +6 -7
- package/dist/core/shaders/Heatmap/index.d.ts.map +1 -1
- package/dist/core/shaders/Heatmap/index.js +10 -11
- package/dist/core/shaders/HexGrid/index.d.ts.map +1 -1
- package/dist/core/shaders/HexGrid/index.js +10 -5
- package/dist/core/shaders/Hologram/index.d.ts.map +1 -1
- package/dist/core/shaders/Hologram/index.js +10 -11
- package/dist/core/shaders/Holographic/index.d.ts.map +1 -1
- package/dist/core/shaders/Holographic/index.js +11 -11
- package/dist/core/shaders/HueShift/index.d.ts.map +1 -1
- package/dist/core/shaders/HueShift/index.js +7 -5
- package/dist/core/shaders/ImageTexture/index.d.ts +0 -6
- package/dist/core/shaders/ImageTexture/index.d.ts.map +1 -1
- package/dist/core/shaders/ImageTexture/index.js +6 -7
- package/dist/core/shaders/InkFlow/index.d.ts +1 -9
- package/dist/core/shaders/InkFlow/index.d.ts.map +1 -1
- package/dist/core/shaders/InkFlow/index.js +7 -5
- package/dist/core/shaders/Invert/index.d.ts.map +1 -1
- package/dist/core/shaders/Invert/index.js +6 -5
- package/dist/core/shaders/IrisWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/IrisWipe/index.js +8 -5
- package/dist/core/shaders/IsometricCubes/index.d.ts.map +1 -1
- package/dist/core/shaders/IsometricCubes/index.js +10 -5
- package/dist/core/shaders/Kaleidoscope/index.d.ts +2 -16
- package/dist/core/shaders/Kaleidoscope/index.d.ts.map +1 -1
- package/dist/core/shaders/Kaleidoscope/index.js +7 -5
- package/dist/core/shaders/KeyFrames/index.d.ts.map +1 -1
- package/dist/core/shaders/KeyFrames/index.js +7 -5
- package/dist/core/shaders/LensDistortion/index.js +6 -6
- package/dist/core/shaders/LensFlare/index.d.ts.map +1 -1
- package/dist/core/shaders/LensFlare/index.js +10 -5
- package/dist/core/shaders/LightEdge/index.d.ts.map +1 -1
- package/dist/core/shaders/LightEdge/index.js +10 -11
- package/dist/core/shaders/LightLeak/index.d.ts.map +1 -1
- package/dist/core/shaders/LightLeak/index.js +10 -6
- package/dist/core/shaders/Line/index.js +6 -5
- package/dist/core/shaders/LinearBlur/index.d.ts +2 -1
- package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/LinearBlur/index.js +8 -5
- package/dist/core/shaders/LinearGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/LinearGradient/index.js +8 -5
- package/dist/core/shaders/LinearWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/LinearWipe/index.js +8 -5
- package/dist/core/shaders/LiquidMetal/index.d.ts.map +1 -1
- package/dist/core/shaders/LiquidMetal/index.js +12 -12
- package/dist/core/shaders/Liquify/index.d.ts +0 -6
- package/dist/core/shaders/Liquify/index.d.ts.map +1 -1
- package/dist/core/shaders/Liquify/index.js +6 -5
- package/dist/core/shaders/MagneticFilings/index.d.ts.map +1 -1
- package/dist/core/shaders/MagneticFilings/index.js +9 -8
- package/dist/core/shaders/Marble/index.d.ts.map +1 -1
- package/dist/core/shaders/Marble/index.js +9 -6
- package/dist/core/shaders/Mirror/index.d.ts +2 -16
- package/dist/core/shaders/Mirror/index.d.ts.map +1 -1
- package/dist/core/shaders/Mirror/index.js +7 -5
- package/dist/core/shaders/MultiPointGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/MultiPointGradient/index.js +7 -5
- package/dist/core/shaders/Neon/index.d.ts.map +1 -1
- package/dist/core/shaders/Neon/index.js +6 -9
- package/dist/core/shaders/NoiseDissolve/index.d.ts.map +1 -1
- package/dist/core/shaders/NoiseDissolve/index.js +9 -6
- package/dist/core/shaders/ObjectTracker/index.d.ts.map +1 -1
- package/dist/core/shaders/ObjectTracker/index.js +9 -6
- package/dist/core/shaders/PagePeel/index.d.ts.map +1 -1
- package/dist/core/shaders/PagePeel/index.js +7 -5
- package/dist/core/shaders/Paper/index.js +7 -6
- package/dist/core/shaders/Parallelogram/index.d.ts +0 -71
- package/dist/core/shaders/Parallelogram/index.d.ts.map +1 -1
- package/dist/core/shaders/Parallelogram/index.js +6 -7
- package/dist/core/shaders/ParticleField/index.d.ts.map +1 -1
- package/dist/core/shaders/ParticleField/index.js +9 -8
- package/dist/core/shaders/ParticleFlow/index.d.ts +1 -6
- package/dist/core/shaders/ParticleFlow/index.d.ts.map +1 -1
- package/dist/core/shaders/ParticleFlow/index.js +9 -8
- package/dist/core/shaders/Particles/index.d.ts.map +1 -1
- package/dist/core/shaders/Particles/index.js +10 -11
- package/dist/core/shaders/PerlinNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/PerlinNoise/index.js +13 -8
- package/dist/core/shaders/Perspective/index.d.ts +0 -12
- package/dist/core/shaders/Perspective/index.d.ts.map +1 -1
- package/dist/core/shaders/Perspective/index.js +7 -5
- package/dist/core/shaders/PixelSort/index.js +6 -5
- package/dist/core/shaders/PixelThrow/index.d.ts +8 -9
- package/dist/core/shaders/PixelThrow/index.d.ts.map +1 -1
- package/dist/core/shaders/PixelThrow/index.js +6 -6
- package/dist/core/shaders/Pixelate/index.js +6 -5
- package/dist/core/shaders/Plasma/index.d.ts +2 -2
- package/dist/core/shaders/Plasma/index.d.ts.map +1 -1
- package/dist/core/shaders/Plasma/index.js +12 -6
- package/dist/core/shaders/Plastic/index.d.ts.map +1 -1
- package/dist/core/shaders/Plastic/index.js +11 -11
- package/dist/core/shaders/PolarCoordinates/index.d.ts +2 -16
- package/dist/core/shaders/PolarCoordinates/index.d.ts.map +1 -1
- package/dist/core/shaders/PolarCoordinates/index.js +7 -5
- package/dist/core/shaders/Polygon/index.d.ts +0 -71
- package/dist/core/shaders/Polygon/index.d.ts.map +1 -1
- package/dist/core/shaders/Polygon/index.js +6 -7
- package/dist/core/shaders/Posterize/index.d.ts.map +1 -1
- package/dist/core/shaders/Posterize/index.js +6 -5
- package/dist/core/shaders/Prism/index.d.ts +2 -1
- package/dist/core/shaders/Prism/index.d.ts.map +1 -1
- package/dist/core/shaders/Prism/index.js +6 -5
- package/dist/core/shaders/ProgressiveBlur/index.d.ts +16 -16
- package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ProgressiveBlur/index.js +8 -6
- package/dist/core/shaders/RadialGradient/index.d.ts.map +1 -1
- package/dist/core/shaders/RadialGradient/index.js +10 -5
- package/dist/core/shaders/RadialWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/RadialWipe/index.js +8 -5
- package/dist/core/shaders/RandomBars/index.d.ts.map +1 -1
- package/dist/core/shaders/RandomBars/index.js +9 -6
- package/dist/core/shaders/ReactionDiffusion/index.d.ts.map +1 -1
- package/dist/core/shaders/ReactionDiffusion/index.js +8 -5
- package/dist/core/shaders/RectangularCoordinates/index.d.ts +2 -16
- package/dist/core/shaders/RectangularCoordinates/index.d.ts.map +1 -1
- package/dist/core/shaders/RectangularCoordinates/index.js +7 -5
- package/dist/core/shaders/ReflectivePlane/index.d.ts.map +1 -1
- package/dist/core/shaders/ReflectivePlane/index.js +7 -6
- package/dist/core/shaders/Repeater/index.js +6 -5
- package/dist/core/shaders/Ring/index.d.ts +0 -59
- package/dist/core/shaders/Ring/index.d.ts.map +1 -1
- package/dist/core/shaders/Ring/index.js +6 -7
- package/dist/core/shaders/RippleWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/RippleWipe/index.js +8 -5
- package/dist/core/shaders/Ripples/index.js +6 -5
- package/dist/core/shaders/RoundedRect/index.d.ts +0 -71
- package/dist/core/shaders/RoundedRect/index.d.ts.map +1 -1
- package/dist/core/shaders/RoundedRect/index.js +6 -7
- package/dist/core/shaders/Saturation/index.d.ts.map +1 -1
- package/dist/core/shaders/Saturation/index.js +6 -5
- package/dist/core/shaders/Scratches/index.js +10 -8
- package/dist/core/shaders/Sharpness/index.d.ts.map +1 -1
- package/dist/core/shaders/Sharpness/index.js +6 -5
- package/dist/core/shaders/Shatter/index.js +6 -6
- package/dist/core/shaders/SimplexNoise/index.d.ts +0 -18
- package/dist/core/shaders/SimplexNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/SimplexNoise/index.js +13 -7
- package/dist/core/shaders/SineWave/index.d.ts.map +1 -1
- package/dist/core/shaders/SineWave/index.js +7 -5
- package/dist/core/shaders/SliceWipe/index.d.ts.map +1 -1
- package/dist/core/shaders/SliceWipe/index.js +7 -5
- package/dist/core/shaders/Smoke/index.d.ts +1 -9
- package/dist/core/shaders/Smoke/index.d.ts.map +1 -1
- package/dist/core/shaders/Smoke/index.js +7 -5
- package/dist/core/shaders/SmokeFill/index.d.ts +1 -9
- package/dist/core/shaders/SmokeFill/index.d.ts.map +1 -1
- package/dist/core/shaders/SmokeFill/index.js +9 -10
- package/dist/core/shaders/SmokeFlow/index.d.ts +1 -9
- package/dist/core/shaders/SmokeFlow/index.d.ts.map +1 -1
- package/dist/core/shaders/SmokeFlow/index.js +7 -5
- package/dist/core/shaders/Solarize/index.d.ts.map +1 -1
- package/dist/core/shaders/Solarize/index.js +6 -5
- package/dist/core/shaders/SolidColor/index.js +2 -2
- package/dist/core/shaders/Spherize/index.js +6 -5
- package/dist/core/shaders/Spiral/index.d.ts.map +1 -1
- package/dist/core/shaders/Spiral/index.js +7 -5
- package/dist/core/shaders/Star/index.d.ts +0 -71
- package/dist/core/shaders/Star/index.d.ts.map +1 -1
- package/dist/core/shaders/Star/index.js +6 -7
- package/dist/core/shaders/Stone/index.js +4 -4
- package/dist/core/shaders/Strands/index.d.ts.map +1 -1
- package/dist/core/shaders/Strands/index.js +7 -5
- package/dist/core/shaders/Stretch/index.d.ts +2 -16
- package/dist/core/shaders/Stretch/index.d.ts.map +1 -1
- package/dist/core/shaders/Stretch/index.js +7 -5
- package/dist/core/shaders/Stripes/index.d.ts +0 -1
- package/dist/core/shaders/Stripes/index.d.ts.map +1 -1
- package/dist/core/shaders/Stripes/index.js +10 -6
- package/dist/core/shaders/StudioBackground/index.d.ts.map +1 -1
- package/dist/core/shaders/StudioBackground/index.js +9 -5
- package/dist/core/shaders/SunBurst/index.d.ts.map +1 -1
- package/dist/core/shaders/SunBurst/index.js +9 -5
- package/dist/core/shaders/Surface3D/index.d.ts.map +1 -1
- package/dist/core/shaders/Surface3D/index.js +8 -7
- package/dist/core/shaders/Swirl/index.js +6 -5
- package/dist/core/shaders/Teardrop/index.d.ts +0 -65
- package/dist/core/shaders/Teardrop/index.d.ts.map +1 -1
- package/dist/core/shaders/Teardrop/index.js +6 -7
- package/dist/core/shaders/Text/index.d.ts.map +1 -1
- package/dist/core/shaders/Text/index.js +10 -6
- package/dist/core/shaders/ThinFilm/index.d.ts.map +1 -1
- package/dist/core/shaders/ThinFilm/index.js +8 -9
- package/dist/core/shaders/TiltShift/index.d.ts +16 -16
- package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
- package/dist/core/shaders/TiltShift/index.js +8 -6
- package/dist/core/shaders/TimeTrail/index.d.ts.map +1 -1
- package/dist/core/shaders/TimeTrail/index.js +6 -6
- package/dist/core/shaders/Tint/index.d.ts.map +1 -1
- package/dist/core/shaders/Tint/index.js +6 -5
- package/dist/core/shaders/Trapezoid/index.d.ts +0 -71
- package/dist/core/shaders/Trapezoid/index.d.ts.map +1 -1
- package/dist/core/shaders/Trapezoid/index.js +6 -7
- package/dist/core/shaders/TriangularGrid/index.d.ts.map +1 -1
- package/dist/core/shaders/TriangularGrid/index.js +10 -5
- package/dist/core/shaders/Tritone/index.d.ts.map +1 -1
- package/dist/core/shaders/Tritone/index.js +6 -5
- package/dist/core/shaders/Truchet/index.d.ts.map +1 -1
- package/dist/core/shaders/Truchet/index.js +10 -5
- package/dist/core/shaders/Twirl/index.d.ts +2 -16
- package/dist/core/shaders/Twirl/index.d.ts.map +1 -1
- package/dist/core/shaders/Twirl/index.js +6 -5
- package/dist/core/shaders/VHS/index.js +6 -5
- package/dist/core/shaders/VenetianBlinds/index.d.ts.map +1 -1
- package/dist/core/shaders/VenetianBlinds/index.js +8 -5
- package/dist/core/shaders/Vesica/index.d.ts +0 -65
- package/dist/core/shaders/Vesica/index.d.ts.map +1 -1
- package/dist/core/shaders/Vesica/index.js +6 -7
- package/dist/core/shaders/Vibrance/index.d.ts.map +1 -1
- package/dist/core/shaders/Vibrance/index.js +6 -5
- package/dist/core/shaders/VideoTexture/index.d.ts +0 -25
- package/dist/core/shaders/VideoTexture/index.d.ts.map +1 -1
- package/dist/core/shaders/VideoTexture/index.js +7 -7
- package/dist/core/shaders/Vignette/index.d.ts.map +1 -1
- package/dist/core/shaders/Vignette/index.js +6 -5
- package/dist/core/shaders/Voronoi/index.d.ts.map +1 -1
- package/dist/core/shaders/Voronoi/index.js +11 -5
- package/dist/core/shaders/Water/index.d.ts.map +1 -1
- package/dist/core/shaders/Water/index.js +11 -11
- package/dist/core/shaders/Watercolor/index.js +7 -6
- package/dist/core/shaders/WaveDistortion/index.d.ts +0 -6
- package/dist/core/shaders/WaveDistortion/index.d.ts.map +1 -1
- package/dist/core/shaders/WaveDistortion/index.js +7 -5
- package/dist/core/shaders/WaveletNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/WaveletNoise/index.js +13 -8
- package/dist/core/shaders/Weave/index.d.ts.map +1 -1
- package/dist/core/shaders/Weave/index.js +10 -5
- package/dist/core/shaders/WebcamTexture/index.d.ts +0 -6
- package/dist/core/shaders/WebcamTexture/index.d.ts.map +1 -1
- package/dist/core/shaders/WebcamTexture/index.js +8 -7
- package/dist/core/shaders/Wool/index.js +4 -4
- package/dist/core/shaders/WorleyNoise/index.d.ts +2 -2
- package/dist/core/shaders/WorleyNoise/index.d.ts.map +1 -1
- package/dist/core/shaders/WorleyNoise/index.js +12 -5
- package/dist/core/shaders/ZoomBlur/index.d.ts +2 -1
- package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
- package/dist/core/shaders/ZoomBlur/index.js +7 -5
- package/dist/core/tone-DPUvX6X0.js +705 -0
- package/dist/core/utilities/halfUvProps.d.ts +35 -0
- package/dist/core/utilities/halfUvProps.d.ts.map +1 -0
- package/dist/core/utilities/measure.d.ts.map +1 -1
- package/dist/core/utilities/propConfigs.d.ts +106 -0
- package/dist/core/utilities/propConfigs.d.ts.map +1 -0
- package/dist/core/utilities/transformations/index.js +1 -1
- package/dist/js/bundle.js +176 -176
- package/dist/js/createShader.js +1 -1
- package/dist/react/Shader.js +1 -1
- package/dist/react/bundle.js +176 -176
- package/dist/registry.js +99 -90
- package/dist/solid/engine/Shader.js +1 -1
- package/dist/svelte/index.js +1 -1
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/package.json +1 -1
- package/dist/core/Arc-DhhcsMqr.js +0 -331
- package/dist/core/BarnDoors-Cnyfsla8.js +0 -447
- package/dist/core/BlockDissolve-i8V6gmZw.js +0 -365
- package/dist/core/Blur-B8NcZJdr.js +0 -701
- package/dist/core/Checkerboard-BnWdSZLM.js +0 -709
- package/dist/core/Circle-CJ4IbgBH.js +0 -358
- package/dist/core/Crescent-BKcpTzwd.js +0 -335
- package/dist/core/Cross-CDUSIOgx.js +0 -335
- package/dist/core/Ellipse-NdZQjjl7.js +0 -316
- package/dist/core/Flower--rN6c2HY.js +0 -335
- package/dist/core/Fog-2iNe3zZl.js +0 -5667
- package/dist/core/Glow-D_nSsYo1.js +0 -2051
- package/dist/core/Grid-D8ewrixy.js +0 -1346
- package/dist/core/Heart-0eDZ50ZK.js +0 -297
- package/dist/core/ImageTexture-B5oPuXeI.js +0 -183
- package/dist/core/InkFlow-C7l_qlaJ.js +0 -4983
- package/dist/core/IrisWipe-Dg9iiTjF.js +0 -418
- package/dist/core/LinearWipe-D5UkI1cK.js +0 -423
- package/dist/core/Parallelogram-D7bW1gMV.js +0 -335
- package/dist/core/Plasma-zC1y0At6.js +0 -715
- package/dist/core/Polygon-0kVtkdec.js +0 -379
- package/dist/core/RadialWipe-DfJ3dL7p.js +0 -528
- package/dist/core/RandomBars-B-EaAz9c.js +0 -490
- package/dist/core/RoundedRect-B2EDoIqT.js +0 -336
- package/dist/core/Smoke-CFr-A3JD.js +0 -5003
- package/dist/core/SmokeFill-DglhxF4x.js +0 -7118
- package/dist/core/SmokeFlow-CC1tfLRh.js +0 -4610
- package/dist/core/Star-DqkPHXlP.js +0 -335
- package/dist/core/Teardrop-b8XQR6NO.js +0 -316
- package/dist/core/VenetianBlinds-H8OVGxhT.js +0 -459
- package/dist/core/Vesica-C8MrL_up.js +0 -316
- package/dist/core/VideoTexture--U8aiyP1.js +0 -927
- package/dist/core/Voronoi-BW4RE3MQ.js +0 -935
- package/dist/core/WebcamTexture--GTVU-Bm.js +0 -220
- package/dist/core/WorleyNoise-i7i0azT8.js +0 -1667
- package/dist/core/compute-Ax-p6Ubc.js +0 -31
- package/dist/core/dataEncoding-CEmpiitu.js +0 -24
- package/dist/core/device-BODv_4aH.js +0 -10
- package/dist/core/gpu/kit/effects/prism.d.ts +0 -111
- package/dist/core/gpu/kit/effects/prism.d.ts.map +0 -1
- package/dist/core/naturalSize-BPCi_I-Z.js +0 -24
- package/dist/core/noiseColor-BQAO-Rjk.js +0 -103
- package/dist/core/porters-D_xmIPz2.js +0 -991
- package/dist/core/shaderRegistry-DFRVhoj2.js +0 -431
- /package/dist/core/{fonts-DxVn9e-I.js → fonts-ScBvKolx.js} +0 -0
- /package/dist/core/{transformations-C7gn_5rF.js → transformations-B-zNWNdd.js} +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { GpuFragmentParams, KitTexture } from '../../contract';
|
|
2
|
+
|
|
3
|
+
export interface SwappableMediaTextureOptions {
|
|
4
|
+
/** Texture label (shows up in WebGPU error messages / the texture manager's accounting). */
|
|
5
|
+
label: string;
|
|
6
|
+
/**
|
|
7
|
+
* Size of the initial placeholder. Default 1×1 — a transparent texel, so the pass always has
|
|
8
|
+
* something valid to bind and the layer renders transparent until content lands. Text and
|
|
9
|
+
* HTMLInCanvas start larger only because their first write is imminent.
|
|
10
|
+
*/
|
|
11
|
+
initial?: {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
};
|
|
15
|
+
/** Base format, forwarded to `createMediaTexture`. Default `rgba8unorm`. */
|
|
16
|
+
format?: GPUTextureFormat;
|
|
17
|
+
}
|
|
18
|
+
export interface SwappableMediaTexture {
|
|
19
|
+
/** The registered `KitTexture` for the fragment builder. Follows swaps — register it ONCE. */
|
|
20
|
+
readonly kit: KitTexture;
|
|
21
|
+
/**
|
|
22
|
+
* Ensure the backing texture is exactly `width`×`height` (each floored at 1), allocating and
|
|
23
|
+
* swapping when it is not. Destroying the old texture is safe: WebGPU keeps it alive for frames
|
|
24
|
+
* already submitted. No-op after cleanup.
|
|
25
|
+
*/
|
|
26
|
+
ensureSize(width: number, height: number): void;
|
|
27
|
+
/** Upload pixel content (ImageBitmap / HTMLCanvasElement / ImageData / TypedArray). */
|
|
28
|
+
write(source: unknown): void;
|
|
29
|
+
/** The raw `GPUTexture`, for `queue.copyElementImageToTexture` (HTMLInCanvas). */
|
|
30
|
+
unwrap(): GPUTexture;
|
|
31
|
+
readonly width: number;
|
|
32
|
+
readonly height: number;
|
|
33
|
+
/** True once the shader has been cleaned up — check it after an await before writing. */
|
|
34
|
+
readonly disposed: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A media texture that can change size: allocate → swap the getter → destroy the previous one, with
|
|
38
|
+
* the placeholder and the cleanup wired up.
|
|
39
|
+
*
|
|
40
|
+
* Media textures are STATIC-sized, so a new image at its native resolution, a re-rastered text run
|
|
41
|
+
* or a resized DOM capture means a NEW texture. The pass manager notices the backing texture's
|
|
42
|
+
* identity changed and rebuilds only the sampling pass's bind group — no recompose, no pipeline
|
|
43
|
+
* rebuild. Shaders whose texture never changes size (Ascii's and ObjectTracker's glyph atlases) use
|
|
44
|
+
* this too and simply never call `ensureSize`; they get the dispose-guarded `write` for free.
|
|
45
|
+
*/
|
|
46
|
+
export declare function createSwappableMediaTexture(params: GpuFragmentParams, opts: SwappableMediaTextureOptions): SwappableMediaTexture;
|
|
47
|
+
/** What a `load` callback is handed alongside the URL. */
|
|
48
|
+
export interface UrlLoadContext {
|
|
49
|
+
/**
|
|
50
|
+
* True once the shader has been cleaned up. Check it after EVERY await and bail — the textures
|
|
51
|
+
* the load would write into are gone.
|
|
52
|
+
*/
|
|
53
|
+
isDisposed(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Mark this URL as loaded, which stops the per-frame watch from re-requesting it. Call it after
|
|
56
|
+
* the last await that could fail, so a failed load stays retryable (see the module note).
|
|
57
|
+
*/
|
|
58
|
+
commit(): void;
|
|
59
|
+
}
|
|
60
|
+
export interface UrlSourceLoaderOptions {
|
|
61
|
+
/** Name of the URL prop, read live via `getCpuValue`. */
|
|
62
|
+
prop: string;
|
|
63
|
+
/** Do the load. Owns its own decode/apply; the loader owns only the state machine. */
|
|
64
|
+
load(url: string, ctx: UrlLoadContext): Promise<void>;
|
|
65
|
+
/** Reported for anything `load` throws. Error TAXONOMY stays per-shader by design. */
|
|
66
|
+
onError?(error: unknown, url: string): void;
|
|
67
|
+
}
|
|
68
|
+
export interface UrlSourceLoader {
|
|
69
|
+
/** The URL currently loaded (empty until the first `commit`). */
|
|
70
|
+
currentUrl(): string;
|
|
71
|
+
/** A load is in flight — the per-frame watch stands down while it is. */
|
|
72
|
+
isLoading(): boolean;
|
|
73
|
+
/** Force a load of `url` now, bypassing the per-frame watch. Used by the kickoff and by tests. */
|
|
74
|
+
request(url: string): void;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The URL-prop state machine: kick off the initial load, watch the prop for changes each frame, and
|
|
78
|
+
* keep exactly one load in flight.
|
|
79
|
+
*
|
|
80
|
+
* NOTE the `setTimeout(…, 0)` kickoff: the load must not start until the node's uniforms are
|
|
81
|
+
* populated, because `getCpuValue` reads the live handle. Deferring by a macrotask is the workaround,
|
|
82
|
+
* not the fix — the fix is an `onUniformsReady` hook on `GpuFragmentParams` (PRIMITIVES_PLAN.md
|
|
83
|
+
* Phase 12 item 3), at which point this function is the single site that changes.
|
|
84
|
+
*/
|
|
85
|
+
export declare function createUrlSourceLoader(params: GpuFragmentParams, opts: UrlSourceLoaderOptions): UrlSourceLoader;
|
|
86
|
+
/**
|
|
87
|
+
* A decoded image ready to upload. The two size pairs are NOT interchangeable:
|
|
88
|
+
*
|
|
89
|
+
* - `width`/`height` are the RASTER size — what the GPU texture must be.
|
|
90
|
+
* - `naturalWidth`/`naturalHeight` are the INTRINSIC size — the layout-facing "how big is this
|
|
91
|
+
* element" answer that goes to the natural-size registry. For a bitmap they are the same; for an
|
|
92
|
+
* SVG they differ, and conflating them makes a 32px logo slot at 2048px in a layout column.
|
|
93
|
+
*/
|
|
94
|
+
export interface DecodedImageSource {
|
|
95
|
+
source: ImageBitmap | HTMLCanvasElement;
|
|
96
|
+
width: number;
|
|
97
|
+
height: number;
|
|
98
|
+
naturalWidth: number;
|
|
99
|
+
naturalHeight: number;
|
|
100
|
+
/** Release transient decode resources (closes an `ImageBitmap`). Safe to call twice. */
|
|
101
|
+
close(): void;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Fetch + decode an image URL to something uploadable. SVGs go through a canvas rasterization (with
|
|
105
|
+
* the intrinsic/raster split above); everything else is a CORS fetch → blob → `createImageBitmap`.
|
|
106
|
+
*/
|
|
107
|
+
export declare function decodeImageSource(url: string): Promise<DecodedImageSource>;
|
|
108
|
+
/** Where the video frames come from. */
|
|
109
|
+
export type VideoSourceSpec = {
|
|
110
|
+
kind: 'url';
|
|
111
|
+
prop: string;
|
|
112
|
+
} | {
|
|
113
|
+
kind: 'webcam';
|
|
114
|
+
constraints?: MediaStreamConstraints;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Which step failed, so a shader's `onError` can keep its own message taxonomy. `'acquire'` covers
|
|
118
|
+
* everything up to and including metadata (a bad URL, a load timeout, a denied camera) and is
|
|
119
|
+
* reported ONCE per attempt; `'autoplay'` is the browser refusing to start playback, which is not
|
|
120
|
+
* necessarily fatal — see `autoplayRequired`.
|
|
121
|
+
*/
|
|
122
|
+
export type VideoLoadStage = 'acquire' | 'autoplay';
|
|
123
|
+
export interface VideoElementSourceOptions {
|
|
124
|
+
source: VideoSourceSpec;
|
|
125
|
+
/**
|
|
126
|
+
* Keep `video.loop` synced to a boolean prop each frame (URL sources only). The prop packs to an
|
|
127
|
+
* f32 field (1 = true), and an UNSET value reads as true — both current consumers default their
|
|
128
|
+
* loop prop to true.
|
|
129
|
+
*/
|
|
130
|
+
loop?: {
|
|
131
|
+
prop: string;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Key the source's pixel dimensions are published under in the natural-size registry. Defaults
|
|
135
|
+
* to the URL for a URL source; a webcam has no URL and must pass its own fixed key.
|
|
136
|
+
*/
|
|
137
|
+
naturalSizeKey?: string;
|
|
138
|
+
/**
|
|
139
|
+
* Milliseconds to wait for `loadedmetadata` before giving up. Default 0 = wait indefinitely
|
|
140
|
+
* (the webcam's behaviour — a permission prompt can legitimately take a while).
|
|
141
|
+
*/
|
|
142
|
+
metadataTimeoutMs?: number;
|
|
143
|
+
/**
|
|
144
|
+
* Whether a rejected `play()` aborts the load. False (VideoTexture) reports it and keeps the
|
|
145
|
+
* element, since a browser autoplay block still leaves a decodable first frame; true
|
|
146
|
+
* (WebcamTexture) discards it. The two consumers genuinely differ here, so there is no default
|
|
147
|
+
* winner beyond the more forgiving one.
|
|
148
|
+
*/
|
|
149
|
+
autoplayRequired?: boolean;
|
|
150
|
+
onError?(error: unknown, info: {
|
|
151
|
+
url: string | null;
|
|
152
|
+
stage: VideoLoadStage;
|
|
153
|
+
}): void;
|
|
154
|
+
}
|
|
155
|
+
export interface VideoElementSource {
|
|
156
|
+
/**
|
|
157
|
+
* The readiness-gated getter to hand `registerExternalTexture`. Returns the element only when it
|
|
158
|
+
* has a decodable frame; the pass manager skips the pass for a frame where it is null.
|
|
159
|
+
*/
|
|
160
|
+
getSource(): HTMLVideoElement | null;
|
|
161
|
+
/** The live element, or null before the first successful load. */
|
|
162
|
+
element(): HTMLVideoElement | null;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* The video-element half of VideoTexture and WebcamTexture: acquire a source (a URL or
|
|
166
|
+
* `getUserMedia`), wait for metadata, start playback, publish the frame size for layout, and gate
|
|
167
|
+
* the element behind a readiness check so the renderer never imports an undecodable frame.
|
|
168
|
+
*
|
|
169
|
+
* The GPU side is identical for both consumers — a per-frame zero-copy `importExternalTexture` — so
|
|
170
|
+
* only the acquisition differs, and both paths live here rather than in the two shaders.
|
|
171
|
+
*/
|
|
172
|
+
export declare function createVideoElementSource(params: GpuFragmentParams, opts: VideoElementSourceOptions): VideoElementSource;
|
|
173
|
+
//# sourceMappingURL=mediaLifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaLifecycle.d.ts","sourceRoot":"","sources":["../../../../src/gpu/kit/host/mediaLifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { ComputeStep } from '../../compute';
|
|
2
|
+
|
|
3
|
+
/** What a pointer looks like in the per-frame params the renderer hands a compute hook. */
|
|
4
|
+
export interface PointerLike {
|
|
5
|
+
x?: number;
|
|
6
|
+
y?: number;
|
|
7
|
+
}
|
|
8
|
+
/** One frame of resolved pointer motion. All positions are in [0, 1] viewport UV. */
|
|
9
|
+
export interface PointerFrame {
|
|
10
|
+
/** Current position (the previous position when the renderer reports no pointer). */
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
/** Position at the previous update. */
|
|
14
|
+
prevX: number;
|
|
15
|
+
prevY: number;
|
|
16
|
+
/** Per-frame delta, ZEROED on a teleport frame so downstream forces see no impulse. */
|
|
17
|
+
dx: number;
|
|
18
|
+
dy: number;
|
|
19
|
+
/** `|delta|` — the RAW distance, reported even on a teleport frame. */
|
|
20
|
+
dragDist: number;
|
|
21
|
+
/** Delta per second (`dx / dt`), zeroed on a teleport frame. */
|
|
22
|
+
velX: number;
|
|
23
|
+
velY: number;
|
|
24
|
+
/** Exponentially smoothed `velX`/`velY`. A teleport frame decays it rather than spiking it. */
|
|
25
|
+
smoothVelX: number;
|
|
26
|
+
smoothVelY: number;
|
|
27
|
+
/** `|smoothVel|`. */
|
|
28
|
+
smoothSpeed: number;
|
|
29
|
+
/** The drag jumped further than `teleportGuard` in one frame — treat it as a discontinuity. */
|
|
30
|
+
teleport: boolean;
|
|
31
|
+
/** A real stroke this frame: moved more than `minDrag` and did not teleport. */
|
|
32
|
+
moving: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface PointerVelocityTrackerOptions {
|
|
35
|
+
/** Blend factor for the smoothed velocity, per frame. Default 0.2 (SmokeFlow's value). */
|
|
36
|
+
smoothing?: number;
|
|
37
|
+
/**
|
|
38
|
+
* A one-frame jump beyond this UV distance is a pointer teleport — the cursor entering the
|
|
39
|
+
* canvas, a tab switch, a window focus change — not a stroke. Without the guard the sim receives
|
|
40
|
+
* a single enormous impulse and lays a splat ribbon or a force wake clean across the field.
|
|
41
|
+
* Default 0.25 (a quarter of the viewport), ParticleFlow's original value.
|
|
42
|
+
*/
|
|
43
|
+
teleportGuard?: number;
|
|
44
|
+
/** Below this per-frame UV distance, `moving` stays false. Default 0.0006 (InkFlow's value). */
|
|
45
|
+
minDrag?: number;
|
|
46
|
+
/** Initial pointer position, used until the renderer reports one. Default centre. */
|
|
47
|
+
initialX?: number;
|
|
48
|
+
initialY?: number;
|
|
49
|
+
}
|
|
50
|
+
export interface PointerVelocityTracker {
|
|
51
|
+
/** Advance the tracker one frame. `dt` is in seconds and is floored at 1 ms for the divide. */
|
|
52
|
+
update(pointer: PointerLike | undefined, dt: number): PointerFrame;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Track pointer position, per-frame delta, per-second velocity and a smoothed velocity, with the
|
|
56
|
+
* teleport guard applied.
|
|
57
|
+
*
|
|
58
|
+
* Structural vs runtime does not apply here (this is all CPU), but note the guard's semantics: on a
|
|
59
|
+
* teleport frame the tracker still ADVANCES its previous position — the jump is absorbed, not
|
|
60
|
+
* deferred — and reports zero motion. The next frame therefore measures from where the pointer
|
|
61
|
+
* actually is.
|
|
62
|
+
*/
|
|
63
|
+
export declare function createPointerVelocityTracker(opts?: PointerVelocityTrackerOptions): PointerVelocityTracker;
|
|
64
|
+
export interface IdleGateOptions {
|
|
65
|
+
/**
|
|
66
|
+
* How many frames must have been dispatched (counted via `tickFrame`) before the gate is allowed
|
|
67
|
+
* to report a skip. A sim whose first frames initialize state and let it settle must not freeze
|
|
68
|
+
* mid-warm-up, or it freezes on garbage. Default 0 — no warm-up requirement.
|
|
69
|
+
*/
|
|
70
|
+
warmupFrames?: number;
|
|
71
|
+
}
|
|
72
|
+
export interface IdleGate {
|
|
73
|
+
/**
|
|
74
|
+
* Record that something is driving the sim right now. `now` is a MILLISECOND timestamp on the same
|
|
75
|
+
* clock the caller passes to {@link IdleGate.shouldSkip} (`performance.now()` in practice), and
|
|
76
|
+
* `0` is a legitimate value — the gate tracks never-active separately.
|
|
77
|
+
*/
|
|
78
|
+
markActive(now: number): void;
|
|
79
|
+
/** Count one dispatched frame toward the warm-up. Call it once the frame is committed. */
|
|
80
|
+
tickFrame(): void;
|
|
81
|
+
/** Nothing has ever driven the sim — there is no state worth advancing. */
|
|
82
|
+
readonly neverActive: boolean;
|
|
83
|
+
/** The warm-up has elapsed (always true when `warmupFrames` is 0). */
|
|
84
|
+
readonly warmedUp: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Whether this frame can be skipped entirely: nothing is driving the sim AND either it has never
|
|
87
|
+
* been driven or the last input is older than `fadeSeconds`.
|
|
88
|
+
*
|
|
89
|
+
* `driving` is the caller's own "something wants this frame" signal (a stroke in progress, an
|
|
90
|
+
* ambient force, a pending init). Pass `false` when the only driver is the pointer.
|
|
91
|
+
*/
|
|
92
|
+
shouldSkip(now: number, fadeSeconds: number, driving?: boolean): boolean;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The "settle then freeze" gate: once the last input is far enough in the past that the field has
|
|
96
|
+
* decayed to invisibility, stop dispatching. The previously rendered texture persists on screen, so
|
|
97
|
+
* a settled sim costs zero GPU time.
|
|
98
|
+
*
|
|
99
|
+
* TimeTrail's reasoning is worth restating because it is the trap here: pointer *speed* being zero is
|
|
100
|
+
* NOT a valid skip condition. A stationary cursor over a field that is still evolving must keep
|
|
101
|
+
* dispatching — the gate is about elapsed time since the last input, never about instantaneous
|
|
102
|
+
* speed.
|
|
103
|
+
*/
|
|
104
|
+
export declare function createIdleGate(opts?: IdleGateOptions): IdleGate;
|
|
105
|
+
/**
|
|
106
|
+
* Seconds for an exponentially decaying field to fall by a factor of `ratio` at `rate` per second —
|
|
107
|
+
* `ln(ratio) / max(rate, minRate)`. The floor keeps a near-zero dissipation rate from producing an
|
|
108
|
+
* infinite (or negative) fade window.
|
|
109
|
+
*
|
|
110
|
+
* `ratio` is the visibility budget: 255 means "wait until the field is 1/255 of its peak" (below one
|
|
111
|
+
* 8-bit level), 64 is a coarser, cheaper choice.
|
|
112
|
+
*/
|
|
113
|
+
export declare function decayFadeSeconds(ratio: number, rate: number, minRate?: number): number;
|
|
114
|
+
export interface PathStampRibbonOptions<T> {
|
|
115
|
+
/** Stroke start, in the same units as `dx`/`dy` (viewport UV for every current consumer). */
|
|
116
|
+
fromX: number;
|
|
117
|
+
fromY: number;
|
|
118
|
+
/** Stroke delta for this frame. */
|
|
119
|
+
dx: number;
|
|
120
|
+
dy: number;
|
|
121
|
+
/** `|delta|`, in the same units as `stepSize`. */
|
|
122
|
+
dragDist: number;
|
|
123
|
+
/** Spacing between stamps. Typically a fraction of the brush radius. */
|
|
124
|
+
stepSize: number;
|
|
125
|
+
/** Hard cap on stamps per frame, so a huge flick cannot blow out the dispatch count. */
|
|
126
|
+
maxSteps: number;
|
|
127
|
+
/** Multiplier applied to the interpolated position before it reaches `write`. Default 1. */
|
|
128
|
+
scale?: number;
|
|
129
|
+
/**
|
|
130
|
+
* Optional per-stamp state resolved at BUILD time, in stamp order. Use this for anything that
|
|
131
|
+
* must advance once per stamp regardless of dispatch (InkFlow's colour cycle).
|
|
132
|
+
*/
|
|
133
|
+
prepare?: (t: number) => T;
|
|
134
|
+
/**
|
|
135
|
+
* Write the stamp's uniform. Runs inside a thunk at DISPATCH time — the pass manager runs the
|
|
136
|
+
* thunk then the dispatch in `device.queue` order, which is what lets a single uniform buffer
|
|
137
|
+
* carry a different value per stamp.
|
|
138
|
+
*/
|
|
139
|
+
write: (posX: number, posY: number, t: number, prepared: T) => void;
|
|
140
|
+
/** The splat/force pass dispatched after each write. */
|
|
141
|
+
pass: ComputeStep;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Append an interpolated ribbon of stamps along this frame's drag path to `nodes`, as alternating
|
|
145
|
+
* write-thunk / dispatch pairs.
|
|
146
|
+
*
|
|
147
|
+
* A fast flick covers a lot of ground in one frame; stamping only at the current pointer position
|
|
148
|
+
* leaves dotted gaps. Interpolating along the path at `stepSize` spacing lays a continuous ribbon.
|
|
149
|
+
* Stamps are placed at cell centres (`t = (s + 0.5) / n`) so a one-stamp frame lands mid-stroke
|
|
150
|
+
* rather than at either end.
|
|
151
|
+
*
|
|
152
|
+
* Returns the number of stamps appended.
|
|
153
|
+
*/
|
|
154
|
+
export declare function pathStampRibbon<T = undefined>(nodes: ComputeStep[], opts: PathStampRibbonOptions<T>): number;
|
|
155
|
+
//# sourceMappingURL=pointer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../../src/gpu/kit/host/pointer.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,14 @@ export declare function select<T extends AnyVecInstance>(cond: boolean | AnyVecI
|
|
|
26
26
|
* magnitudes.
|
|
27
27
|
*/
|
|
28
28
|
export declare function lengthSq(v: AnyVecInstance): number;
|
|
29
|
+
export * as constants from './constants';
|
|
30
|
+
export * as tone from './tone';
|
|
31
|
+
export * as geom from './geom';
|
|
32
|
+
export * as cells from './cells';
|
|
33
|
+
export * as aa from './aa';
|
|
34
|
+
export * as fields from './fields';
|
|
35
|
+
export * as cellular from './cellular';
|
|
36
|
+
export * as lightfields from './lightfields';
|
|
29
37
|
export * as blend from './blend';
|
|
30
38
|
export * as mask from './mask';
|
|
31
39
|
export * as colorMixing from './colorMixing';
|
|
@@ -40,6 +48,8 @@ export * as noise from './noise';
|
|
|
40
48
|
export * as noiseColor from './noiseColor';
|
|
41
49
|
export * as noiseStylize from './noiseStylize';
|
|
42
50
|
export * as blur from './blur';
|
|
51
|
+
export * as reveal from './reveal';
|
|
52
|
+
export * as lighting from './lighting';
|
|
43
53
|
export * as sdf from './sdf';
|
|
44
54
|
export * as sdf3d from './sdf3d';
|
|
45
55
|
export { toHalfFloat } from './dataEncoding';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gpu/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,cAAc,CAAA;AAK7D,OAAO,EAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAC,CAAA;AAErB;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAE3D;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;AAC3C,wBAAgB,QAAQ,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;AAM3D;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAA;AACjF,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;AAC9E,wBAAgB,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;AAM1G;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAGlD;AAMD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAC9B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,QAAQ,CAAA;AACjC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAC9B,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA;AAC5B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAGhC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gpu/kit/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,cAAc,CAAA;AAK7D,OAAO,EAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAC,CAAA;AAErB;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAE3D;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;AAC3C,wBAAgB,QAAQ,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;AAM3D;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAA;AACjF,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;AAC9E,wBAAgB,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;AAM1G;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAGlD;AAMD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAC9B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAC9B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,EAAE,MAAM,MAAM,CAAA;AAC1B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAC9B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,QAAQ,CAAA;AACjC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAC9B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA;AAC5B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAGhC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { d } from './index';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Gaussian radial falloff: `exp(-(dist² · sharpness))`. 1 at the centre, decaying smoothly with no
|
|
5
|
+
* hard cutoff — the shape of a glare, a bloom core, or a soft light pool.
|
|
6
|
+
*
|
|
7
|
+
* `sharpness` is an inverse squared radius, not a radius: larger is TIGHTER. A light whose size is
|
|
8
|
+
* authored as a radius should pass `1 / (r² + ε)`, which is why the callers that expose a size
|
|
9
|
+
* slider compute their sharpness rather than passing the slider through.
|
|
10
|
+
*/
|
|
11
|
+
export declare const radialGaussianFalloff: import('typegpu').TgpuFn<(dist: d.F32, sharpness: d.F32) => d.F32>;
|
|
12
|
+
/**
|
|
13
|
+
* Gaussian falloff over an already-normalized 2D offset: `exp((du² + dv²) · -sharpness)`.
|
|
14
|
+
*
|
|
15
|
+
* "Normalized" means each axis has been divided by its own radius before the call, which is what
|
|
16
|
+
* makes the spot ELLIPTICAL — pass `u/su, v/sv` with different radii and the falloff stretches along
|
|
17
|
+
* the wider axis. Callers layering several spots at different sharpnesses over the same `du, dv`
|
|
18
|
+
* (a core plus a wide shoulder) get the anisotropy for free.
|
|
19
|
+
*/
|
|
20
|
+
export declare const anisotropicGaussianSpot: import('typegpu').TgpuFn<(du: d.F32, dv: d.F32, sharpness: d.F32) => d.F32>;
|
|
21
|
+
/**
|
|
22
|
+
* A round glow at a point in aspect-corrected UV space: `exp(-0.5 · dist² / sizeSq)`.
|
|
23
|
+
*
|
|
24
|
+
* Takes the light position as loose scalars and `sizeSq` as a SQUARED radius because the callers
|
|
25
|
+
* that place several of these per frame compute the positions and radii on the CPU (they are
|
|
26
|
+
* pixel-invariant) and pass them in packed vec4 extraFields — squaring on the GPU would be per-pixel
|
|
27
|
+
* work for a per-frame value.
|
|
28
|
+
*/
|
|
29
|
+
export declare const radialGaussianGlow: import('typegpu').TgpuFn<(uv: d.Vec2f, aspect: d.F32, lx: d.F32, ly: d.F32, sizeSq: d.F32) => d.F32>;
|
|
30
|
+
/**
|
|
31
|
+
* Rotating sine lobes around an angle: `pow(sin(angle · count + phase) · 0.5 + 0.5, sharpness)`.
|
|
32
|
+
*
|
|
33
|
+
* The `·0.5 + 0.5` before the `pow` is what makes this read as rays rather than alternating bands:
|
|
34
|
+
* the sine's negative half becomes the gap between lobes, and raising the whole [0,1] wave to a
|
|
35
|
+
* power narrows the bright part without moving the lobe centres. `sharpness` below 1 widens.
|
|
36
|
+
*
|
|
37
|
+
* `phase` is signed time in practice — NEGATE the accumulated time to rotate clockwise.
|
|
38
|
+
*/
|
|
39
|
+
export declare const angularSineLobes: import('typegpu').TgpuFn<(angle: d.F32, count: d.F32, phase: d.F32, sharpness: d.F32) => d.F32>;
|
|
40
|
+
/**
|
|
41
|
+
* Diffraction-style spikes around an angle: `pow(abs(cos(angle · halfCount)), power)`.
|
|
42
|
+
*
|
|
43
|
+
* `abs` (rather than the `·0.5 + 0.5` of {@link angularSineLobes}) is why this gives 2·halfCount
|
|
44
|
+
* spikes with hard nulls between them, the signature of an aperture's blade count — pass
|
|
45
|
+
* `blades / 2`. High `power` (3–8) is what makes them thin. Layering two calls at different powers
|
|
46
|
+
* and a small angular offset is the standard way to get a primary/secondary spike pattern.
|
|
47
|
+
*/
|
|
48
|
+
export declare const angularCosineSpikes: import('typegpu').TgpuFn<(angle: d.F32, halfCount: d.F32, power: d.F32) => d.F32>;
|
|
49
|
+
/**
|
|
50
|
+
* Seam-free angular coordinates for a radial field, returned as
|
|
51
|
+
* `vec3(angle, angleWrapped, blend)`.
|
|
52
|
+
*
|
|
53
|
+
* THE PROBLEM THIS SOLVES: `atan2` returns [−π, π], so any pattern periodic in the angle has a
|
|
54
|
+
* discontinuity along the −x axis where the value jumps by 2π. Wrapping the angle into [0, 2π)
|
|
55
|
+
* moves the seam but does not remove it. The fix is to evaluate the pattern TWICE — once on each
|
|
56
|
+
* branch — and cross-fade between them across the seam, using a blend that is 0/1 well away from it.
|
|
57
|
+
* A conditional branch instead of a blend puts the seam back.
|
|
58
|
+
*
|
|
59
|
+
* Callers evaluate their pattern at `.x` and `.y` and `mix(atWrapped, atAngle, .z)`. Both
|
|
60
|
+
* evaluations must stay unconditional.
|
|
61
|
+
*/
|
|
62
|
+
export declare const seamlessAngularField: import('typegpu').TgpuFn<(delta: d.Vec2f) => d.Vec3f>;
|
|
63
|
+
/**
|
|
64
|
+
* Three concentric ring bands at radii `center + spread`, `center`, `center − spread`, returned as
|
|
65
|
+
* an RGB triple — the prismatic edge of a lens element or a dispersed halo.
|
|
66
|
+
*
|
|
67
|
+
* Each channel is `1 − smoothstep(0, width, abs(dist − r))`, i.e. a band peaking ON its radius. The
|
|
68
|
+
* red channel takes the OUTER radius by convention (longer wavelength refracts less), so a positive
|
|
69
|
+
* `spread` gives the physically-expected red-outside/blue-inside fringe; pass a negative spread to
|
|
70
|
+
* invert it.
|
|
71
|
+
*
|
|
72
|
+
* `width` is floored at 1e-4 because callers derive it from a size slider (LensFlare's ring width is
|
|
73
|
+
* `size · 0.10`), and a zero width makes `smoothstep(0, 0, ·)` undefined.
|
|
74
|
+
*/
|
|
75
|
+
export declare const chromaticRingBand: import('typegpu').TgpuFn<(dist: d.F32, center: d.F32, spread: d.F32, width: d.F32) => d.Vec3f>;
|
|
76
|
+
/**
|
|
77
|
+
* Project a point onto a segment: returns `vec2(t, distance)` where `t` ∈ [0,1] is the clamped
|
|
78
|
+
* parameter of the closest point along `a → b`.
|
|
79
|
+
*
|
|
80
|
+
* Returning BOTH values is the point — a tapered beam needs the parameter to interpolate its
|
|
81
|
+
* thickness and the distance to shade its cross-section, and recomputing either costs the same as
|
|
82
|
+
* the whole projection. The `max(lengthSq, 1e-4)` guard keeps a degenerate (zero-length) segment
|
|
83
|
+
* finite rather than NaN, which matters because a UI lets both endpoints sit on the same pixel.
|
|
84
|
+
*/
|
|
85
|
+
export declare const pointToSegment: import('typegpu').TgpuFn<(p: d.Vec2f, a: d.Vec2f, b: d.Vec2f) => d.Vec2f>;
|
|
86
|
+
/**
|
|
87
|
+
* The glow cross-section of a tapered beam: given the perpendicular `dist` and the along-beam
|
|
88
|
+
* parameter `t` from {@link pointToSegment}, interpolate thickness and softness end-to-end and
|
|
89
|
+
* return `vec2(colorT, alpha)`.
|
|
90
|
+
*
|
|
91
|
+
* `alpha` is a smoothstep shoulder from the beam edge outward, raised to `1 + softness · 1.5` so a
|
|
92
|
+
* soft beam does not merely get wider but also fades non-linearly — a linear ramp reads as a flat
|
|
93
|
+
* band with a visible outer edge. `colorT` is the inside→outside colour parameter over the same
|
|
94
|
+
* transition zone, so a caller can shade the core and the falloff differently.
|
|
95
|
+
*
|
|
96
|
+
* The interpolated softness is floored at 1e-4 for the same reason `thickness` is: the softness props
|
|
97
|
+
* bottom out at 0 (Beam's do), and a zero softness collapses both transition zones to
|
|
98
|
+
* `smoothstep(1, 1, ·)`, which is undefined.
|
|
99
|
+
*/
|
|
100
|
+
export declare const taperedSegmentGlow: import('typegpu').TgpuFn<(dist: d.F32, t: d.F32, startThickness: d.F32, endThickness: d.F32, startSoftness: d.F32, endSoftness: d.F32) => d.Vec2f>;
|
|
101
|
+
/**
|
|
102
|
+
* The local frame of a beam anchored at a point and aimed at the canvas centre: returns
|
|
103
|
+
* `vec2(u, v)` — distance ALONG the beam and LATERAL offset from it, in aspect-corrected space.
|
|
104
|
+
*
|
|
105
|
+
* `anchorRaw` is a TRANSFORMED position prop (`transformPosition` stores `1 − y`), so this recovers
|
|
106
|
+
* the authored y itself. The direction degenerates when the anchor sits at the centre; below a 0.02
|
|
107
|
+
* length it falls back to +x rather than normalizing near-zero, which would make the frame spin
|
|
108
|
+
* wildly as the anchor crosses the middle.
|
|
109
|
+
*
|
|
110
|
+
* Everything downstream (bloom, streak bands, falloff) is authored in this frame, which is what lets
|
|
111
|
+
* a light leak be dragged anywhere on the canvas and still point inward.
|
|
112
|
+
*/
|
|
113
|
+
export declare const beamLocalFrame: import('typegpu').TgpuFn<(uv: d.Vec2f, aspect: d.F32, anchorRaw: d.Vec2f) => d.Vec2f>;
|
|
114
|
+
//# sourceMappingURL=lightfields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightfields.d.ts","sourceRoot":"","sources":["../../../src/gpu/kit/lightfields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAO,CAAC,EAAM,MAAM,SAAS,CAAA;AAKpC;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,oEAGhC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,6EAGlC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,sGAOzB,CAAA;AAIN;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,iGAKvB,CAAA;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,mFAG9B,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,uDAO/B,CAAA;AAIF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,gGAQxB,CAAA;AAIN;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,2EAUzB,CAAA;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,oJAmBzB,CAAA;AAEN;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,uFAWzB,CAAA"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { d } from './index';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The in-plane SDF gradient from the `.x` channel by forward difference:
|
|
5
|
+
* `((surfX.x − surf0.x)/eps, (surfY.x − surf0.x)/eps)`. Points OUTWARD (distance grows outward),
|
|
6
|
+
* with magnitude ≈ 1 for a true 2D distance field and ≫ 1 across a volumetric chord discontinuity —
|
|
7
|
+
* callers that build a direction from it must normalize with a guarded length. Pure.
|
|
8
|
+
*/
|
|
9
|
+
export declare const fieldGradient: import('typegpu').TgpuFn<(surf0: d.Vec4f, surfX: d.Vec4f, surfY: d.Vec4f, eps: d.F32) => d.Vec2f>;
|
|
10
|
+
/**
|
|
11
|
+
* Surface normal of a VOLUMETRIC field: the marched depth in `.w` differentiated by forward
|
|
12
|
+
* difference and clamped, with `z = −1` (the renderer's view direction) before normalizing.
|
|
13
|
+
*
|
|
14
|
+
* `gradClamp` is the per-shader slope bound and is load-bearing, not decorative. A chord field is
|
|
15
|
+
* discontinuous where one lobe occludes another, so an unclamped slope spikes for a texel or two at
|
|
16
|
+
* every overlap and the normal there points nearly sideways — which reads as a bright seam. Tighter
|
|
17
|
+
* bounds give flatter, calmer surfaces; the fleet's current values are ±5 (LiquidMetal, Chrome,
|
|
18
|
+
* Water, BrushedMetal, CarbonFiber), ±4 (Plastic, Frost, Crystal) and ±6 (Goo). Pure.
|
|
19
|
+
*/
|
|
20
|
+
export declare const volumetricNormal: import('typegpu').TgpuFn<(surf0: d.Vec4f, surfX: d.Vec4f, surfY: d.Vec4f, eps: d.F32, gradClamp: d.F32) => d.Vec3f>;
|
|
21
|
+
/**
|
|
22
|
+
* Flat-path normal for a bevelled 2D shape: tilt away from the face along the in-plane field
|
|
23
|
+
* gradient by `sinTilt` (the sine of the tilt angle, from a bevel profile such as
|
|
24
|
+
* `effects.bevel.bevelSin`), then complete the unit vector with `z = −cos`.
|
|
25
|
+
*
|
|
26
|
+
* `sinTilt` is CLAMPED to ≤ 0.9995 here — at exactly 1 the `z` term is 0 and the normal lies in the
|
|
27
|
+
* plane, which makes the reflected ray graze to infinity. Pure.
|
|
28
|
+
*/
|
|
29
|
+
export declare const bevelledFlatNormal: import('typegpu').TgpuFn<(grad: d.Vec2f, sinTilt: d.F32) => d.Vec3f>;
|
|
30
|
+
/**
|
|
31
|
+
* Shape-local pattern coordinates: `sdfUV − 0.5` on the flat path, the sampler's surface-locked
|
|
32
|
+
* `.g/.b` coords on the volumetric path. This is what makes a surface pattern (molten relief,
|
|
33
|
+
* brush grain, weave, foil crinkle) STICK to a 3D shape instead of sliding across it in screen
|
|
34
|
+
* space. `volumetric` is the runtime 0/1 flag. Pure.
|
|
35
|
+
*/
|
|
36
|
+
export declare const patternCoords: import('typegpu').TgpuFn<(sdfUV: d.Vec2f, surf0: d.Vec4f, volumetric: d.F32) => d.Vec2f>;
|
|
37
|
+
/**
|
|
38
|
+
* `true` when the fragment is outside the shape by more than two device pixels — the early-exit
|
|
39
|
+
* test at the top of a shape-effect composite body (`if (outsideShape(sdf, pxH)) return vec4(0)`).
|
|
40
|
+
* The two-pixel slack keeps the anti-aliased edge inside the shaded region. Pure.
|
|
41
|
+
*/
|
|
42
|
+
export declare const outsideShape: import('typegpu').TgpuFn<(sdf: d.F32, pxH: d.F32) => d.Bool>;
|
|
43
|
+
/**
|
|
44
|
+
* The inside coverage mask: `clamp(−sdf / w, 0, 1)` over a transition width `w` derived from the
|
|
45
|
+
* shader's `sharpEdge` (`max(edgeSoftness · 0.5, 0.001)`) as `sharpEdge / 32`.
|
|
46
|
+
*
|
|
47
|
+
* The width is CLAMPED to at least `minPixels` device pixels. That clamp is the point of this fn:
|
|
48
|
+
* without it, `edgeSoftness → 0` collapses the transition below a pixel and the silhouette resolves
|
|
49
|
+
* as a raw aliased step. At the house value of 1.5 px the edge is anti-aliased and the extra half
|
|
50
|
+
* pixel also hides sub-pixel contour noise from the field's texel lattice (`glassComposite` set the
|
|
51
|
+
* precedent; D-7 propagated it to the metals). Pure.
|
|
52
|
+
*/
|
|
53
|
+
export declare const insideMask: import('typegpu').TgpuFn<(sdf: d.F32, sharpEdge: d.F32, pxH: d.F32, minPixels: d.F32) => d.F32>;
|
|
54
|
+
/**
|
|
55
|
+
* The perspective view ray through a screen UV, pointing INTO the scene (`+z`), aspect-corrected
|
|
56
|
+
* and normalized. `fov` scales the off-axis spread: the fleet uses 0.6 (LiquidMetal, BrushedMetal,
|
|
57
|
+
* CarbonFiber, Water) and 0.55 (Chrome). A perspective ray is what lets a flat face sweep the
|
|
58
|
+
* environment across the canvas instead of reflecting one constant direction. Pure.
|
|
59
|
+
*/
|
|
60
|
+
export declare const perspectiveViewRay: import('typegpu').TgpuFn<(uv: d.Vec2f, aspect: d.F32, fov: d.F32) => d.Vec3f>;
|
|
61
|
+
/** An orthonormal surface frame: `tangent` projected into the plane of `normal`, plus their cross
|
|
62
|
+
* product. The basis anisotropic shading needs. */
|
|
63
|
+
export declare const TangentFrame: d.WgslStruct<{
|
|
64
|
+
tangent: d.Vec3f;
|
|
65
|
+
bitangent: d.Vec3f;
|
|
66
|
+
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Gram–Schmidt an arbitrary direction into the surface plane and complete the frame:
|
|
69
|
+
* `T = normalize(dir − n·(n·dir))`, `B = n × T`. `dir` supplies the anisotropy axis — the brush
|
|
70
|
+
* direction, or the per-cell tow direction of a weave. Pure.
|
|
71
|
+
*/
|
|
72
|
+
export declare const orthonormalTangentFrame: import('typegpu').TgpuFn<(normal: d.Vec3f, dir: d.Vec3f) => d.WgslStruct<{
|
|
73
|
+
tangent: d.Vec3f;
|
|
74
|
+
bitangent: d.Vec3f;
|
|
75
|
+
}>>;
|
|
76
|
+
/** Inputs to {@link wardAnisotropicSpecular} — a struct per C1 (six values). `view` points INTO
|
|
77
|
+
* the scene (the `perspectiveViewRay` convention), `light` points at the light. */
|
|
78
|
+
export declare const WardSpecularInput: d.WgslStruct<{
|
|
79
|
+
normal: d.Vec3f;
|
|
80
|
+
/** The anisotropy axis (brush / tow direction). Need not lie in the surface plane. */
|
|
81
|
+
tangent: d.Vec3f;
|
|
82
|
+
light: d.Vec3f;
|
|
83
|
+
view: d.Vec3f;
|
|
84
|
+
/** Roughness along the tangent. Larger → the highlight smears further along the grain. */
|
|
85
|
+
alphaAlong: d.F32;
|
|
86
|
+
/** Roughness across the tangent. Smaller → a tighter streak. */
|
|
87
|
+
alphaAcross: d.F32;
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Ward anisotropic specular lobe, unit gain: `exp(−((h·T/αT)² + (h·B/αB)²) / ((h·N + 1)/2))` for
|
|
91
|
+
* the half-vector `h = normalize(L − V)`. Multiply by the material's specular gain at the call
|
|
92
|
+
* site. This is the streak that runs ALONG a brushed grain or a carbon tow — an isotropic
|
|
93
|
+
* Blinn–Phong lobe cannot produce it. Pure. */
|
|
94
|
+
export declare const wardAnisotropicSpecular: import('typegpu').TgpuFn<(p: d.WgslStruct<{
|
|
95
|
+
normal: d.Vec3f;
|
|
96
|
+
/** The anisotropy axis (brush / tow direction). Need not lie in the surface plane. */
|
|
97
|
+
tangent: d.Vec3f;
|
|
98
|
+
light: d.Vec3f;
|
|
99
|
+
view: d.Vec3f;
|
|
100
|
+
/** Roughness along the tangent. Larger → the highlight smears further along the grain. */
|
|
101
|
+
alphaAlong: d.F32;
|
|
102
|
+
/** Roughness across the tangent. Smaller → a tighter streak. */
|
|
103
|
+
alphaAcross: d.F32;
|
|
104
|
+
}>) => d.F32>;
|
|
105
|
+
/**
|
|
106
|
+
* IQ cosine palette: `cos((t + phase)·2π)·0.5 + 0.5` per channel. The smooth spectral cycle behind
|
|
107
|
+
* every diffraction look in the library (holographic foil, thin-film iridescence). `t` wraps every
|
|
108
|
+
* 1.0.
|
|
109
|
+
*
|
|
110
|
+
* The phases are ARGUMENTS rather than baked thirds because the fleet's copies disagree in the 4th
|
|
111
|
+
* decimal (`1/3, 2/3` in Holographic vs `0.3333, 0.6667` in thinFilm). Unifying them would be a
|
|
112
|
+
* pixel change; passing each caller's current values keeps adoption pixel-neutral. Pure.
|
|
113
|
+
*/
|
|
114
|
+
export declare const cosinePalette: import('typegpu').TgpuFn<(t: d.F32, phaseR: d.F32, phaseG: d.F32, phaseB: d.F32) => d.Vec3f>;
|
|
115
|
+
//# sourceMappingURL=lighting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lighting.d.ts","sourceRoot":"","sources":["../../../src/gpu/kit/lighting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAO,CAAC,EAAM,MAAM,SAAS,CAAA;AAKpC;;;;;GAKG;AACH,eAAO,MAAM,aAAa,mGAGxB,CAAA;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,qHAMvB,CAAA;AAEN;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,sEAK7B,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,0FAMxB,CAAA;AAIF;;;;GAIG;AACH,eAAO,MAAM,YAAY,8DAGvB,CAAA;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,iGAIrB,CAAA;AAIF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,+EAG7B,CAAA;AAIF;oDACoD;AACpD,eAAO,MAAM,YAAY;;;EAAmD,CAAA;AAE5E;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;GASlC,CAAA;AAEF;oFACoF;AACpF,eAAO,MAAM,iBAAiB;;IAE1B,sFAAsF;;;;IAItF,0FAA0F;;IAE1F,gEAAgE;;EAElE,CAAA;AAEF;;;;+CAI+C;AAC/C,eAAO,MAAM,uBAAuB;;IAfhC,sFAAsF;;;;IAItF,0FAA0F;;IAE1F,gEAAgE;;aAsBlE,CAAA;AAIF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,8FAOxB,CAAA"}
|