shaders 3.2.464 → 3.2.465

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (605) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/{AngularBlur-BwCxKNcQ.js → AngularBlur-DIuqsh_g.js} +3 -3
  3. package/dist/core/{Arc-BdSzj8aT.js → Arc-Bj71OeVa.js} +3 -3
  4. package/dist/core/{Ascii-3XAIw2Bb.js → Ascii-B5Zg8nLu.js} +5 -5
  5. package/dist/core/Aurora-Bj7ZG2AI.js +304 -0
  6. package/dist/core/{BarShift-BfLFLroO.js → BarShift-DPThLZs_.js} +3 -3
  7. package/dist/core/{BarnDoors-Do1MN34d.js → BarnDoors-BRBbwW_m.js} +3 -3
  8. package/dist/core/{Beam-Crszqjl5.js → Beam-Hb_ert_g.js} +3 -3
  9. package/dist/core/{Bend-XAqsg_xj.js → Bend-DXsmc81z.js} +2 -2
  10. package/dist/core/{Blob-Sr5tPikb.js → Blob-BigqrVZv.js} +129 -23
  11. package/dist/core/{BlockDissolve-CtvDicJt.js → BlockDissolve-CdFU8h6C.js} +3 -3
  12. package/dist/core/{BlockNoise-BYCW1y2-.js → BlockNoise-CqPy-Ugl.js} +4 -4
  13. package/dist/core/{BlueNoise-DqZFPThf.js → BlueNoise-BAo4Aauw.js} +4 -4
  14. package/dist/core/{Blur-CbnGAsl9.js → Blur-DWRebKhd.js} +2 -2
  15. package/dist/core/{Boids-CnXob_HY.js → Boids-DmJhzUCH.js} +5 -5
  16. package/dist/core/{BokehBlur-DN1DMnaB.js → BokehBlur-CV3_ON_U.js} +3 -3
  17. package/dist/core/{BrickPattern-DxfaxjHT.js → BrickPattern-vu5nVCWG.js} +3 -3
  18. package/dist/core/{BrightnessContrast-DRSwp0yp.js → BrightnessContrast-CY9XAi43.js} +3 -3
  19. package/dist/core/{BrushedMetal-BlwYqKiC.js → BrushedMetal-DS2r5KNw.js} +7 -7
  20. package/dist/core/{Bulge-CWtv1aVG.js → Bulge-Deev-nna.js} +2 -2
  21. package/dist/core/{CRTScreen-CKNOV6IF.js → CRTScreen-UtLgwP9x.js} +2 -2
  22. package/dist/core/{CarbonFiber-0PowYOyE.js → CarbonFiber-DyjbFQoK.js} +6 -6
  23. package/dist/core/{Chalkboard-DNfYEUQN.js → Chalkboard-BmeKO6iA.js} +3 -3
  24. package/dist/core/{ChannelBlur-Bl5Slnhm.js → ChannelBlur-BCQbhip0.js} +2 -2
  25. package/dist/core/{CheckerWipe-D1Pn4tq3.js → CheckerWipe-B0AHd80A.js} +3 -3
  26. package/dist/core/{Checkerboard-DYNjSdWz.js → Checkerboard-BxPmaPzN.js} +3 -3
  27. package/dist/core/{Chevron-By9YDPlg.js → Chevron-DRRnVJv8.js} +3 -3
  28. package/dist/core/{ChromaFlow-BHgHfSHB.js → ChromaFlow-DvHs9Afa.js} +5 -5
  29. package/dist/core/{ChromaticAberration-CsekFO9W.js → ChromaticAberration-qZmFsW-9.js} +4 -4
  30. package/dist/core/{Chrome-wfGdzbP1.js → Chrome-CCiXGEIK.js} +6 -7
  31. package/dist/core/{Circle-CBP-iZmQ.js → Circle-C8oVlMm5.js} +3 -3
  32. package/dist/core/{ColorWheel-Bt8Yats6.js → ColorWheel-UiKMjGmo.js} +3 -3
  33. package/dist/core/{CompressionArtifacts-CN-aj4Cz.js → CompressionArtifacts-Bcy_oi6I.js} +3 -3
  34. package/dist/core/{ConcentricSpin-CyCJxLJL.js → ConcentricSpin-ChsvpM4g.js} +2 -2
  35. package/dist/core/{ConicGradient-ucJPMdRd.js → ConicGradient-biAKBzTF.js} +4 -4
  36. package/dist/core/{ContourLines-B_CtL8Vu.js → ContourLines-DSVY48D3.js} +3 -3
  37. package/dist/core/{CornerPin-C76LSuH_.js → CornerPin-Dlk-j8yj.js} +3 -3
  38. package/dist/core/{Crescent-D-gZU6vD.js → Crescent-CW1Jtj3p.js} +2 -2
  39. package/dist/core/{Cross-CPbK6WLW.js → Cross-BZJwBhka.js} +2 -2
  40. package/dist/core/{Crystal-BAVRri0F.js → Crystal-B9bRXJr3.js} +6 -6
  41. package/dist/core/{CurlNoise-B8V3FalE.js → CurlNoise-ChVPqfJM.js} +4 -4
  42. package/dist/core/{CursorRipples-Ce_kWhe1.js → CursorRipples-uyzFiPfj.js} +6 -18
  43. package/dist/core/{CursorTrail-Dza0OORy.js → CursorTrail-BljiaEok.js} +4 -4
  44. package/dist/core/{DataMosh-DrJYG80o.js → DataMosh-CrqYJIlZ.js} +3 -3
  45. package/dist/core/{DiamondGradient-Dq0DpQpR.js → DiamondGradient-DsJORW4q.js} +4 -4
  46. package/dist/core/{DiamondWipe-CcgeiQ3X.js → DiamondWipe-CZCAIz29.js} +3 -3
  47. package/dist/core/{DiffuseBlur-DUecWEvv.js → DiffuseBlur-D-ps8_Uv.js} +3 -3
  48. package/dist/core/{DisplacementMap-B-yc-a_8.js → DisplacementMap-BdTvPZ5i.js} +3 -3
  49. package/dist/core/{Dither-CFxqATIY.js → Dither-DZH2vlNW.js} +3 -3
  50. package/dist/core/{DotGrid-Br5gKbrO.js → DotGrid-DBBt-OS1.js} +3 -3
  51. package/dist/core/{DropShadow-CRe0s6MQ.js → DropShadow-CUzoBD7j.js} +3 -3
  52. package/dist/core/{Duotone-M-wa5I6y.js → Duotone-Bn5yWY27.js} +3 -3
  53. package/dist/core/{Ellipse-B8SC59iU.js → Ellipse-BtgtCRPq.js} +2 -2
  54. package/dist/core/{Emboss-Df9dLMp4.js → Emboss-DZ6Je6il.js} +5 -5
  55. package/dist/core/{Engraving-BCfdEBr_.js → Engraving-DzCC1mKj.js} +3 -3
  56. package/dist/core/{ErosionNoise-cwJc4FgN.js → ErosionNoise-Buor7ogt.js} +4 -4
  57. package/dist/core/{Exposure-ILGY3UKH.js → Exposure-CcM7JTiR.js} +3 -3
  58. package/dist/core/{FallingLines-wUWAGXtD.js → FallingLines-Cu1_3RSE.js} +3 -3
  59. package/dist/core/{FilmGrain-ablIumMy.js → FilmGrain-CDvRV776.js} +3 -3
  60. package/dist/core/{FilmStock-CmpGCyGm.js → FilmStock-CVEZ0MMq.js} +4 -4
  61. package/dist/core/{Flip-tLanxfrx.js → Flip-D4aYsHii.js} +3 -3
  62. package/dist/core/{FloatingParticles-Bi1Llmwz.js → FloatingParticles-DxG2b7KL.js} +5 -5
  63. package/dist/core/{FlowField-DDFjV4AF.js → FlowField-CBZ6AJjI.js} +3 -3
  64. package/dist/core/{Flower-CQgB1K5v.js → Flower-DQIHZ-bK.js} +2 -2
  65. package/dist/core/FlowingGradient-Dp7p0Z0-.js +201 -0
  66. package/dist/core/{FlutedGlass-B3Talps5.js → FlutedGlass-D0Eij6P1.js} +4 -4
  67. package/dist/core/{Fog-zIXi81Mr.js → Fog-CRkLRU9L.js} +4 -4
  68. package/dist/core/{Form3D-JvT_i-8s.js → Form3D-DPKVw7Uz.js} +4 -4
  69. package/dist/core/{FractalNoise-BclR0vM-.js → FractalNoise-CKerAjEP.js} +4 -4
  70. package/dist/core/{Frost-r3Cn37X0.js → Frost-BT2y1-78.js} +7 -8
  71. package/dist/core/{GaborNoise-DCcdB69a.js → GaborNoise-CBl3ObUD.js} +4 -4
  72. package/dist/core/{Glass-U4NJVg8d.js → Glass-DujSDEC3.js} +7 -7
  73. package/dist/core/{GlassTiles-CF1FpanH.js → GlassTiles-BrFjg8_U.js} +2 -2
  74. package/dist/core/{Glitch-DOnrgMPv.js → Glitch-BEj5IcEk.js} +2 -2
  75. package/dist/core/{Glow-C5Xwf4jz.js → Glow-BrLQEgGG.js} +3 -3
  76. package/dist/core/{Godrays-DFD0-QUO.js → Godrays-C-nFhT7J.js} +3 -3
  77. package/dist/core/{Goo-CXruf3Bc.js → Goo-BHDDGalk.js} +7 -7
  78. package/dist/core/{GradientMap-0btW-vE7.js → GradientMap-o2MPg2ow.js} +4 -4
  79. package/dist/core/{Grayscale-CQVfbvqS.js → Grayscale-C-la_L2j.js} +2 -2
  80. package/dist/core/{Grid-OAYnOEA9.js → Grid-B1VcFuc7.js} +3 -3
  81. package/dist/core/{GridDistortion-DeLoOUlh.js → GridDistortion-CCHiCvEG.js} +5 -5
  82. package/dist/core/{Group-UfbFIE6i.js → Group-AnGFDE0L.js} +1 -1
  83. package/dist/core/{HTMLInCanvas-DFZW7XjR.js → HTMLInCanvas-C_rqrYa1.js} +2 -2
  84. package/dist/core/{Halftone-BK7mr9rb.js → Halftone-CU42fH-5.js} +3 -3
  85. package/dist/core/{Heart-BdD0KoOX.js → Heart-07cEG1xh.js} +2 -2
  86. package/dist/core/{Heatmap-BubYsW6_.js → Heatmap-xBYZaTxw.js} +7 -7
  87. package/dist/core/{HexGrid-BVK5rrwR.js → HexGrid-3qTBLwQu.js} +3 -3
  88. package/dist/core/{Hologram-DE3lGk0F.js → Hologram-BMUHKIhP.js} +6 -6
  89. package/dist/core/{Holographic-DJqswtrS.js → Holographic-XrdyIsQ7.js} +6 -6
  90. package/dist/core/{HueShift-BfopB_hn.js → HueShift-DizW-T84.js} +3 -3
  91. package/dist/core/{ImageTexture-B5gNePC8.js → ImageTexture-C3Cn7rtL.js} +2 -2
  92. package/dist/core/{InkFlow-9Dy9cgIR.js → InkFlow-hFBLw4IG.js} +5 -5
  93. package/dist/core/{Invert-B5uKr4Bw.js → Invert-BFpiH_Fe.js} +2 -2
  94. package/dist/core/{IrisWipe-BunsTSPx.js → IrisWipe-DSr8gRmW.js} +3 -3
  95. package/dist/core/Irradiance-DT3bdyrR.js +4191 -0
  96. package/dist/core/{IsometricCubes-COoLKav-.js → IsometricCubes-BCRJuLb8.js} +3 -3
  97. package/dist/core/{Kaleidoscope-D2zB6f60.js → Kaleidoscope-BpOMiquv.js} +2 -2
  98. package/dist/core/{KeyFrames-QLmC6Sdn.js → KeyFrames-wKMZnI5V.js} +3 -3
  99. package/dist/core/{LensDistortion-CxLTKe5L.js → LensDistortion-DPn9dipa.js} +3 -3
  100. package/dist/core/{LensFlare-P1Cc_7_5.js → LensFlare-BrSUeEER.js} +3 -3
  101. package/dist/core/{LightEdge-B3HMbUyU.js → LightEdge-DMKtLk_r.js} +5 -6
  102. package/dist/core/{LightLeak-oEDfnsq5.js → LightLeak-D1d75-LU.js} +4 -4
  103. package/dist/core/{Line-BzGomKXR.js → Line-CJ1nmMq5.js} +3 -3
  104. package/dist/core/{LinearBlur-yhxdvssU.js → LinearBlur-1kNx5NeX.js} +3 -3
  105. package/dist/core/{LinearGradient-C15kSqLN.js → LinearGradient-BIg2PR9v.js} +4 -4
  106. package/dist/core/{LinearWipe-DHxvpnNg.js → LinearWipe-CfGDpMW3.js} +3 -3
  107. package/dist/core/{LiquidMetal-Cu2WeYH7.js → LiquidMetal-CnkraENV.js} +7 -7
  108. package/dist/core/{Liquify-DY1EfFNf.js → Liquify-2zml8B9N.js} +4 -4
  109. package/dist/core/{MagneticFilings-Bd6Pe_E0.js → MagneticFilings-Ddl4BEe7.js} +5 -5
  110. package/dist/core/{Marble-Bdc_FHzu.js → Marble-yskR3VxY.js} +26 -11
  111. package/dist/core/{MeshGradient-DRRMmZHE.js → MeshGradient-DzcW4S3J.js} +43 -13
  112. package/dist/core/{Mirror-5UQjt2Tf.js → Mirror-PoO2nzkL.js} +2 -2
  113. package/dist/core/{MultiPointGradient-DqdcS8e0.js → MultiPointGradient-b0b1o2Zp.js} +3 -3
  114. package/dist/core/{Nebula-BQuiaN-z.js → Nebula-yfdqoP2y.js} +8 -19
  115. package/dist/core/{Neon-BicLpgbo.js → Neon-BAsvBcVb.js} +5 -5
  116. package/dist/core/{NoiseDissolve-DGbFYpRH.js → NoiseDissolve-CFofypUT.js} +3 -3
  117. package/dist/core/{ObjectTracker-T8FCXWre.js → ObjectTracker-A8bkVn0T.js} +3 -3
  118. package/dist/core/Obsidian-ug1e4cqX.js +305 -0
  119. package/dist/core/{PagePeel-DilPJ9RZ.js → PagePeel-0gUH5Q-F.js} +2 -2
  120. package/dist/core/{Paper-l6RxJWBc.js → Paper-Cv-ENEnt.js} +2 -2
  121. package/dist/core/{Parallelogram-C95JWNsU.js → Parallelogram-CKri4Oxr.js} +2 -2
  122. package/dist/core/{ParticleField-aw2g8IBO.js → ParticleField-ImA96tiR.js} +4 -4
  123. package/dist/core/{ParticleFlow-DTrnGnOB.js → ParticleFlow-CvOwCV9k.js} +6 -6
  124. package/dist/core/{Particles-Jhwjq6OU.js → Particles-HiSrLK4u.js} +6 -6
  125. package/dist/core/{PerlinNoise-D6xOjr7j.js → PerlinNoise-DWzWZnfd.js} +4 -4
  126. package/dist/core/{Perspective-Bb-9hqX5.js → Perspective-CZsUpoMX.js} +3 -3
  127. package/dist/core/{PixelSort-INY2qe01.js → PixelSort-sFDbi0pD.js} +4 -4
  128. package/dist/core/{PixelThrow-BWWz7QQi.js → PixelThrow-jqMlr2Be.js} +4 -4
  129. package/dist/core/{Pixelate-C3aJ40yf.js → Pixelate-BM5zL6Ss.js} +2 -2
  130. package/dist/core/{Plasma-evU7RvjN.js → Plasma--XCLN3eI.js} +4 -4
  131. package/dist/core/{Plastic-CdenJzHE.js → Plastic-COIZ00DY.js} +7 -7
  132. package/dist/core/{PolarCoordinates-CgSPmcVa.js → PolarCoordinates-DvrVbOAL.js} +2 -2
  133. package/dist/core/{Polygon-CP182yxM.js → Polygon-C9joRqmN.js} +3 -3
  134. package/dist/core/{Posterize-g1VAiALB.js → Posterize-Ctj5u3WL.js} +2 -2
  135. package/dist/core/{Prism-ZUtkRwyw.js → Prism-DDbB5dVW.js} +6 -6
  136. package/dist/core/{ProgressiveBlur-wUfFxLuq.js → ProgressiveBlur-DtsGEfjw.js} +3 -3
  137. package/dist/core/{RadialGradient-BVplFboK.js → RadialGradient-X-zZCLXw.js} +4 -4
  138. package/dist/core/{RadialWipe-CEvgkBtN.js → RadialWipe-_fAAAe7h.js} +3 -3
  139. package/dist/core/{RandomBars-DznYc1cK.js → RandomBars-HijtROxW.js} +3 -3
  140. package/dist/core/{ReactionDiffusion-hEARMWb4.js → ReactionDiffusion-CS7NfQ4C.js} +5 -5
  141. package/dist/core/{RectangularCoordinates-BKOR8UVl.js → RectangularCoordinates-BqG9R6nC.js} +2 -2
  142. package/dist/core/{ReflectivePlane-DrJ1pxMa.js → ReflectivePlane-Cgxar0Vg.js} +3 -3
  143. package/dist/core/{Repeater-DTpCf9Lm.js → Repeater-Bja_7hpl.js} +3 -3
  144. package/dist/core/{Ring-DINywbbr.js → Ring-CjXxnr67.js} +2 -2
  145. package/dist/core/{RippleWipe-CwenaRYy.js → RippleWipe-pFLRAiMP.js} +3 -3
  146. package/dist/core/{Ripples-FuYdWcQW.js → Ripples-f1uD5ZHV.js} +3 -3
  147. package/dist/core/{RoundedRect-h_UJqq2W.js → RoundedRect-Nocfrish.js} +2 -2
  148. package/dist/core/{Saturation-DitLgecu.js → Saturation-Bk2_CdAM.js} +3 -3
  149. package/dist/core/{Scratches-4So8YZag.js → Scratches-BGjPBk-E.js} +4 -4
  150. package/dist/core/{Sharpness-CZ7h17-W.js → Sharpness-nMDZWmUh.js} +3 -3
  151. package/dist/core/{Shatter-DQ1i7GCD.js → Shatter-CNqHaYVM.js} +2 -2
  152. package/dist/core/{SimplexNoise-Cbhm8yTV.js → SimplexNoise-HdsHuat_.js} +4 -4
  153. package/dist/core/{SineWave-BULHKSth.js → SineWave-DtfHg2hB.js} +3 -3
  154. package/dist/core/{SliceWipe-CrxHLUSK.js → SliceWipe-Bp_riBms.js} +2 -2
  155. package/dist/core/{Smoke-C-0NUtDU.js → Smoke-C-lb8En_.js} +4 -4
  156. package/dist/core/{SmokeFill-D81FhHmB.js → SmokeFill-ChR8Pe8m.js} +7 -7
  157. package/dist/core/{SmokeFlow-DirP_Xti.js → SmokeFlow-Dx6_BTmh.js} +4 -4
  158. package/dist/core/{Solarize-DZP3UJ85.js → Solarize-CjleKYpq.js} +3 -3
  159. package/dist/core/{SolidColor-DvatFKwG.js → SolidColor-BgxBiv00.js} +3 -3
  160. package/dist/core/{Spherize-sLICbjrn.js → Spherize-B8aaXFYF.js} +3 -3
  161. package/dist/core/{Spiral-irgoeG4p.js → Spiral-CMHZAfrE.js} +3 -3
  162. package/dist/core/{Star-CKLN8zIt.js → Star-CCs7sc0U.js} +2 -2
  163. package/dist/core/{Stone-D5-LyXDX.js → Stone-DGW4Z0fk.js} +2 -2
  164. package/dist/core/{Strands-DhHb1DvF.js → Strands-CRqZn5yd.js} +5 -5
  165. package/dist/core/{Stretch-T57H17vt.js → Stretch-CcVH3bEx.js} +2 -2
  166. package/dist/core/{Stripes-DxWGkOif.js → Stripes-BZieDTLM.js} +3 -3
  167. package/dist/core/StudioBackground-Ba3yr_rk.js +399 -0
  168. package/dist/core/{SunBurst-DR13HThp.js → SunBurst-DcgLv7MO.js} +3 -3
  169. package/dist/core/{Surface3D-CpOF-rTd.js → Surface3D-CJCdvt2D.js} +6 -6
  170. package/dist/core/{Swirl-Cn9B5BXA.js → Swirl-DWcoxaOQ.js} +4 -4
  171. package/dist/core/{Teardrop-xVB2Rryt.js → Teardrop-CKptpnfu.js} +2 -2
  172. package/dist/core/{Text-Bzitt0Bc.js → Text-Cdu-4DM4.js} +6 -6
  173. package/dist/core/{ThinFilm-CrslR7Dx.js → ThinFilm-CEgkS1Gh.js} +5 -5
  174. package/dist/core/{TiltShift-DxfHWzYk.js → TiltShift-sU_nwYUs.js} +3 -3
  175. package/dist/core/{TimeTrail-CSy6Y7hh.js → TimeTrail-BPpKtbwU.js} +6 -6
  176. package/dist/core/{Tint-DOCp2b8s.js → Tint-DLMwqDc-.js} +3 -3
  177. package/dist/core/{Trapezoid-CtfXCYGA.js → Trapezoid-HmlCtO5F.js} +2 -2
  178. package/dist/core/{TriangularGrid-BmumLNDo.js → TriangularGrid-CyN-Xlpp.js} +3 -3
  179. package/dist/core/{Tritone-B93mcT36.js → Tritone-TxR-2WxY.js} +3 -3
  180. package/dist/core/{Truchet-CH6G5ozn.js → Truchet-Dz0_Wb6a.js} +3 -3
  181. package/dist/core/{Twirl-B9Z9dST8.js → Twirl-C2ZZbEqD.js} +2 -2
  182. package/dist/core/{VHS-BqFaXkMd.js → VHS-AzcydKoR.js} +2 -2
  183. package/dist/core/{VenetianBlinds-DAGlgwNE.js → VenetianBlinds-ByLVp-bI.js} +3 -3
  184. package/dist/core/{Vesica-D-8FK4C2.js → Vesica--m1hCd0S.js} +2 -2
  185. package/dist/core/{Vibrance-bJAZ4iks.js → Vibrance-C3W42RTW.js} +3 -3
  186. package/dist/core/{VideoTexture-LRpjvr-E.js → VideoTexture-CiONs3rJ.js} +2 -2
  187. package/dist/core/{Vignette-QPr1Cal2.js → Vignette-YXS49Qyf.js} +5 -12
  188. package/dist/core/{Voronoi-c4jiH9Rs.js → Voronoi-BwSw2fv2.js} +5 -5
  189. package/dist/core/{Water-D9HuYCj8.js → Water-Bsh_h3mJ.js} +7 -7
  190. package/dist/core/{Watercolor-DQUk4Fp6.js → Watercolor-CE1O6HQG.js} +4 -4
  191. package/dist/core/{WaveDistortion-7a_HwjyD.js → WaveDistortion-Bjr4PG5Q.js} +2 -2
  192. package/dist/core/Waveform-VAxURycO.js +427 -0
  193. package/dist/core/{WaveletNoise-B87y08nU.js → WaveletNoise-dNJGloeP.js} +4 -4
  194. package/dist/core/{Weave-BYnUiQAe.js → Weave-3Esy_ShT.js} +3 -3
  195. package/dist/core/{WebcamTexture-B7ldvLMJ.js → WebcamTexture-BPuazZWW.js} +2 -2
  196. package/dist/core/{Wool-BIVLEFAo.js → Wool-Crs8DCcs.js} +2 -2
  197. package/dist/core/{WorleyNoise-BzruBvh3.js → WorleyNoise-DHH2D7Mj.js} +3 -3
  198. package/dist/core/{ZoomBlur-Cg6vOxUb.js → ZoomBlur-EltMxju3.js} +3 -3
  199. package/dist/core/{agents-Ccxns43k.js → agents-CR8K0nq1.js} +4 -5
  200. package/dist/core/{agents-DbHmHbkU.js → agents-DcHmaB0C.js} +1 -2
  201. package/dist/core/{blur-CpGmUq81.js → blur-BwjlF0Uk.js} +1 -1
  202. package/dist/core/{blurs-O1YbZEVw.js → blurs-D1HfQTGP.js} +5 -5
  203. package/dist/core/{color-C9iR6boM.js → color-dbYyVLqf.js} +2 -3
  204. package/dist/core/compose-prsdG9f_.js +46 -0
  205. package/dist/core/{feedback-ZMsR_fKB.js → feedback-DvKOD0Oo.js} +1 -1
  206. package/dist/core/{fields-Cg5kOBDV.js → fields-Cv-wBDLP.js} +155 -7
  207. package/dist/core/figures-DdZ6A2i8.js +48 -0
  208. package/dist/core/{fluids-D76EnTFg.js → fluids-BPs3cdPe.js} +2 -2
  209. package/dist/core/{frames-BWC4dNMQ.js → frames-DIS73FmL.js} +23 -3
  210. package/dist/core/{glass-DxE2Cy6_.js → glass-CtWl8jzT.js} +1 -1
  211. package/dist/core/gpu/index.d.ts +4 -0
  212. package/dist/core/gpu/index.d.ts.map +1 -1
  213. package/dist/core/gpu/kit/colorStops.d.ts +6 -0
  214. package/dist/core/gpu/kit/colorStops.d.ts.map +1 -1
  215. package/dist/core/gpu/kit/fields.d.ts +29 -0
  216. package/dist/core/gpu/kit/fields.d.ts.map +1 -1
  217. package/dist/core/gpu/kit/gradientPaints.d.ts +9 -0
  218. package/dist/core/gpu/kit/gradientPaints.d.ts.map +1 -1
  219. package/dist/core/gpu/kit/index.d.ts +0 -1
  220. package/dist/core/gpu/kit/index.d.ts.map +1 -1
  221. package/dist/core/gpu/kit/noisePaints.d.ts +12 -22
  222. package/dist/core/gpu/kit/noisePaints.d.ts.map +1 -1
  223. package/dist/core/gpu/kit/patternPaints.d.ts +5 -0
  224. package/dist/core/gpu/kit/patternPaints.d.ts.map +1 -1
  225. package/dist/core/gpu/kit/sdf.d.ts +15 -0
  226. package/dist/core/gpu/kit/sdf.d.ts.map +1 -1
  227. package/dist/core/gpu/kit/shapePaints.d.ts +8 -21
  228. package/dist/core/gpu/kit/shapePaints.d.ts.map +1 -1
  229. package/dist/core/gpu/kit/tone.d.ts +5 -0
  230. package/dist/core/gpu/kit/tone.d.ts.map +1 -1
  231. package/dist/core/gpu/scaffolds/radiance.d.ts +347 -0
  232. package/dist/core/gpu/scaffolds/radiance.d.ts.map +1 -0
  233. package/dist/core/gpu/transforms.d.ts +2 -1
  234. package/dist/core/gpu/transforms.d.ts.map +1 -1
  235. package/dist/core/gpu/uniformBridge.d.ts +6 -0
  236. package/dist/core/gpu/uniformBridge.d.ts.map +1 -1
  237. package/dist/core/{gradientPaints-B6-PoDoK.js → gradientPaints-Du0XCNHB.js} +1287 -301
  238. package/dist/core/{gradients-CVEWcxw9.js → gradients-DT6nJTmW.js} +4 -4
  239. package/dist/core/index.js +300 -248
  240. package/dist/core/{lens-ChZyqXRf.js → lens-Dh_a0mZH.js} +2 -2
  241. package/dist/core/{light-CJ3dY0iH.js → light-CROZ7Zf1.js} +39 -6
  242. package/dist/core/{lightfields-BjzpZvFy.js → lightfields-D5lW4WSp.js} +2 -2
  243. package/dist/core/{lower-z2vuXP8M.js → lower-DSk_KxOY.js} +12186 -958
  244. package/dist/core/mask-AFtVwMNo.js +28 -0
  245. package/dist/core/{materials-D7QX3H4h.js → materials-Dhq8lDKb.js} +77 -28
  246. package/dist/core/{math-BF-GBlb4.js → math-DCQU6EQz.js} +9 -2
  247. package/dist/core/{media-By6o6a83.js → media-Bh5c_fVF.js} +2 -2
  248. package/dist/core/{mediaLifecycle-DQg13y-f.js → mediaLifecycle-BTPb5i1-.js} +1 -1
  249. package/dist/core/{motionBlur-BnthNfqm.js → motionBlur-CiNghKu6.js} +2 -3
  250. package/dist/core/{noise-DQWgxDEf.js → noise-DrbAbu3H.js} +54 -76
  251. package/dist/core/{noiseColor-XppoAmXi.js → noiseColor-DKo-P8T0.js} +2 -2
  252. package/dist/core/{noisePaints-Cs2Q1Xk9.js → noisePaints-DV5jKo1A.js} +464 -735
  253. package/dist/core/{overlay-Sye7-I6D.js → overlay-Dc6bKqEd.js} +5 -5
  254. package/dist/core/{patterns-CUWhLDh0.js → patterns-BAu9g0yn.js} +729 -433
  255. package/dist/core/{pointerFields-CaaXhvvu.js → pointerFields-yUe8811b.js} +2 -2
  256. package/dist/core/{porters-B1UjrM1y.js → porters-j4QbEOqj.js} +148 -7
  257. package/dist/core/presetRenderer.d.ts.map +1 -1
  258. package/dist/core/registry.js +246 -244
  259. package/dist/core/{reveal-xpOj9hSs.js → reveal-s6xWR757.js} +1 -2
  260. package/dist/core/{sdf3d-BD5m6HR6.js → sdf3d-DQ55w9nI.js} +3 -3
  261. package/dist/core/shaderRegistry-D6mNFoD5.js +441 -0
  262. package/dist/core/shaderRegistry.d.ts.map +1 -1
  263. package/dist/core/shaders/AngularBlur/index.js +10 -11
  264. package/dist/core/shaders/Arc/index.js +6 -6
  265. package/dist/core/shaders/Ascii/index.js +11 -12
  266. package/dist/core/shaders/Aurora/index.d.ts.map +1 -1
  267. package/dist/core/shaders/Aurora/index.js +21 -12
  268. package/dist/core/shaders/BarShift/index.js +8 -9
  269. package/dist/core/shaders/BarnDoors/index.js +7 -8
  270. package/dist/core/shaders/Beam/index.js +11 -12
  271. package/dist/core/shaders/Bend/index.js +8 -9
  272. package/dist/core/shaders/Blob/index.d.ts.map +1 -1
  273. package/dist/core/shaders/Blob/index.js +18 -12
  274. package/dist/core/shaders/BlockDissolve/index.js +7 -8
  275. package/dist/core/shaders/BlockNoise/index.js +14 -16
  276. package/dist/core/shaders/BlueNoise/index.js +14 -16
  277. package/dist/core/shaders/Blur/index.js +10 -11
  278. package/dist/core/shaders/Boids/index.js +9 -10
  279. package/dist/core/shaders/BokehBlur/index.js +10 -11
  280. package/dist/core/shaders/BrickPattern/index.js +13 -15
  281. package/dist/core/shaders/BrightnessContrast/index.js +7 -8
  282. package/dist/core/shaders/BrushedMetal/index.js +11 -12
  283. package/dist/core/shaders/Bulge/index.js +8 -9
  284. package/dist/core/shaders/CRTScreen/index.js +10 -11
  285. package/dist/core/shaders/CarbonFiber/index.js +11 -12
  286. package/dist/core/shaders/Chalkboard/index.js +9 -10
  287. package/dist/core/shaders/ChannelBlur/index.js +10 -11
  288. package/dist/core/shaders/CheckerWipe/index.js +7 -8
  289. package/dist/core/shaders/Checkerboard/index.js +13 -15
  290. package/dist/core/shaders/Chevron/index.js +13 -15
  291. package/dist/core/shaders/ChromaFlow/index.js +8 -9
  292. package/dist/core/shaders/ChromaticAberration/index.js +11 -12
  293. package/dist/core/shaders/Chrome/index.js +10 -11
  294. package/dist/core/shaders/Circle/index.js +6 -6
  295. package/dist/core/shaders/ColorWheel/index.js +11 -12
  296. package/dist/core/shaders/CompressionArtifacts/index.js +7 -8
  297. package/dist/core/shaders/ConcentricSpin/index.js +8 -9
  298. package/dist/core/shaders/ConicGradient/index.js +11 -12
  299. package/dist/core/shaders/ContourLines/index.js +6 -7
  300. package/dist/core/shaders/CornerPin/index.js +8 -9
  301. package/dist/core/shaders/Crescent/index.js +5 -5
  302. package/dist/core/shaders/Cross/index.js +5 -5
  303. package/dist/core/shaders/Crystal/index.js +11 -12
  304. package/dist/core/shaders/CurlNoise/index.js +14 -16
  305. package/dist/core/shaders/CursorRipples/index.js +7 -6
  306. package/dist/core/shaders/CursorTrail/index.js +7 -8
  307. package/dist/core/shaders/DataMosh/index.js +7 -8
  308. package/dist/core/shaders/DiamondGradient/index.js +11 -12
  309. package/dist/core/shaders/DiamondWipe/index.js +7 -8
  310. package/dist/core/shaders/DiffuseBlur/index.js +10 -11
  311. package/dist/core/shaders/DisplacementMap/index.js +8 -9
  312. package/dist/core/shaders/Dither/index.js +13 -15
  313. package/dist/core/shaders/DotGrid/index.js +13 -15
  314. package/dist/core/shaders/DropShadow/index.js +10 -11
  315. package/dist/core/shaders/Duotone/index.js +6 -7
  316. package/dist/core/shaders/Ellipse/index.js +5 -5
  317. package/dist/core/shaders/Emboss/index.js +9 -10
  318. package/dist/core/shaders/Engraving/index.js +9 -10
  319. package/dist/core/shaders/ErosionNoise/index.js +14 -16
  320. package/dist/core/shaders/Exposure/index.js +7 -8
  321. package/dist/core/shaders/FallingLines/index.js +13 -15
  322. package/dist/core/shaders/FilmGrain/index.js +7 -8
  323. package/dist/core/shaders/FilmStock/index.js +13 -14
  324. package/dist/core/shaders/Flip/index.js +8 -9
  325. package/dist/core/shaders/FloatingParticles/index.js +9 -10
  326. package/dist/core/shaders/FlowField/index.js +8 -9
  327. package/dist/core/shaders/Flower/index.js +5 -5
  328. package/dist/core/shaders/FlowingGradient/index.d.ts.map +1 -1
  329. package/dist/core/shaders/FlowingGradient/index.js +15 -12
  330. package/dist/core/shaders/FlutedGlass/index.js +11 -12
  331. package/dist/core/shaders/Fog/index.js +7 -8
  332. package/dist/core/shaders/Form3D/index.js +7 -8
  333. package/dist/core/shaders/FractalNoise/index.js +13 -15
  334. package/dist/core/shaders/Frost/index.js +11 -12
  335. package/dist/core/shaders/GaborNoise/index.js +14 -16
  336. package/dist/core/shaders/Glass/index.js +11 -12
  337. package/dist/core/shaders/GlassTiles/index.js +8 -9
  338. package/dist/core/shaders/Glitch/index.js +10 -11
  339. package/dist/core/shaders/Glow/index.js +11 -12
  340. package/dist/core/shaders/Godrays/index.js +12 -12
  341. package/dist/core/shaders/Goo/index.js +11 -12
  342. package/dist/core/shaders/GradientMap/index.js +7 -8
  343. package/dist/core/shaders/Grayscale/index.js +6 -7
  344. package/dist/core/shaders/Grid/index.js +13 -15
  345. package/dist/core/shaders/GridDistortion/index.js +11 -12
  346. package/dist/core/shaders/Group/index.js +6 -7
  347. package/dist/core/shaders/HTMLInCanvas/index.js +7 -8
  348. package/dist/core/shaders/Halftone/index.js +13 -15
  349. package/dist/core/shaders/Heart/index.js +5 -5
  350. package/dist/core/shaders/Heatmap/index.js +11 -12
  351. package/dist/core/shaders/HexGrid/index.js +13 -15
  352. package/dist/core/shaders/Hologram/index.js +10 -11
  353. package/dist/core/shaders/Holographic/index.js +10 -11
  354. package/dist/core/shaders/HueShift/index.js +7 -8
  355. package/dist/core/shaders/ImageTexture/index.js +6 -6
  356. package/dist/core/shaders/InkFlow/index.js +8 -9
  357. package/dist/core/shaders/Invert/index.js +6 -7
  358. package/dist/core/shaders/IrisWipe/index.js +7 -8
  359. package/dist/core/shaders/Irradiance/index.d.ts +127 -0
  360. package/dist/core/shaders/Irradiance/index.d.ts.map +1 -0
  361. package/dist/core/shaders/Irradiance/index.js +14 -0
  362. package/dist/core/shaders/IsometricCubes/index.js +13 -15
  363. package/dist/core/shaders/Kaleidoscope/index.js +8 -9
  364. package/dist/core/shaders/KeyFrames/index.js +10 -11
  365. package/dist/core/shaders/LensDistortion/index.js +6 -6
  366. package/dist/core/shaders/LensFlare/index.js +12 -12
  367. package/dist/core/shaders/LightEdge/index.js +10 -11
  368. package/dist/core/shaders/LightLeak/index.js +12 -12
  369. package/dist/core/shaders/Line/index.js +10 -12
  370. package/dist/core/shaders/LinearBlur/index.js +10 -11
  371. package/dist/core/shaders/LinearGradient/index.js +11 -12
  372. package/dist/core/shaders/LinearWipe/index.js +7 -8
  373. package/dist/core/shaders/LiquidMetal/index.js +11 -12
  374. package/dist/core/shaders/Liquify/index.js +10 -11
  375. package/dist/core/shaders/MagneticFilings/index.js +9 -10
  376. package/dist/core/shaders/Marble/index.d.ts +1 -1
  377. package/dist/core/shaders/Marble/index.d.ts.map +1 -1
  378. package/dist/core/shaders/Marble/index.js +15 -15
  379. package/dist/core/shaders/MeshGradient/index.d.ts.map +1 -1
  380. package/dist/core/shaders/MeshGradient/index.js +16 -12
  381. package/dist/core/shaders/Mirror/index.js +8 -9
  382. package/dist/core/shaders/MultiPointGradient/index.js +11 -12
  383. package/dist/core/shaders/Nebula/index.js +13 -12
  384. package/dist/core/shaders/Neon/index.js +9 -10
  385. package/dist/core/shaders/NoiseDissolve/index.js +7 -8
  386. package/dist/core/shaders/ObjectTracker/index.js +10 -11
  387. package/dist/core/shaders/Obsidian/index.d.ts +142 -0
  388. package/dist/core/shaders/Obsidian/index.d.ts.map +1 -0
  389. package/dist/core/shaders/Obsidian/index.js +16 -0
  390. package/dist/core/shaders/PagePeel/index.js +10 -11
  391. package/dist/core/shaders/Paper/index.js +8 -9
  392. package/dist/core/shaders/Parallelogram/index.js +5 -5
  393. package/dist/core/shaders/ParticleField/index.js +9 -10
  394. package/dist/core/shaders/ParticleFlow/index.js +10 -11
  395. package/dist/core/shaders/Particles/index.js +9 -10
  396. package/dist/core/shaders/PerlinNoise/index.js +14 -16
  397. package/dist/core/shaders/Perspective/index.js +8 -9
  398. package/dist/core/shaders/PixelSort/index.js +8 -9
  399. package/dist/core/shaders/PixelThrow/index.js +8 -9
  400. package/dist/core/shaders/Pixelate/index.js +10 -11
  401. package/dist/core/shaders/Plasma/index.js +11 -12
  402. package/dist/core/shaders/Plastic/index.js +11 -12
  403. package/dist/core/shaders/PolarCoordinates/index.js +8 -9
  404. package/dist/core/shaders/Polygon/index.js +6 -6
  405. package/dist/core/shaders/Posterize/index.js +6 -7
  406. package/dist/core/shaders/Prism/index.js +12 -13
  407. package/dist/core/shaders/ProgressiveBlur/index.js +10 -11
  408. package/dist/core/shaders/RadialGradient/index.js +11 -12
  409. package/dist/core/shaders/RadialWipe/index.js +7 -8
  410. package/dist/core/shaders/RandomBars/index.js +7 -8
  411. package/dist/core/shaders/ReactionDiffusion/index.js +8 -9
  412. package/dist/core/shaders/RectangularCoordinates/index.js +8 -9
  413. package/dist/core/shaders/ReflectivePlane/index.js +10 -11
  414. package/dist/core/shaders/Repeater/index.js +5 -5
  415. package/dist/core/shaders/Ring/index.js +5 -5
  416. package/dist/core/shaders/RippleWipe/index.js +7 -8
  417. package/dist/core/shaders/Ripples/index.js +13 -15
  418. package/dist/core/shaders/RoundedRect/index.js +5 -5
  419. package/dist/core/shaders/Saturation/index.js +7 -8
  420. package/dist/core/shaders/Scratches/index.js +14 -16
  421. package/dist/core/shaders/Sharpness/index.js +11 -12
  422. package/dist/core/shaders/Shatter/index.js +6 -7
  423. package/dist/core/shaders/SimplexNoise/index.js +14 -16
  424. package/dist/core/shaders/SineWave/index.js +10 -12
  425. package/dist/core/shaders/SliceWipe/index.js +8 -9
  426. package/dist/core/shaders/Smoke/index.js +7 -8
  427. package/dist/core/shaders/SmokeFill/index.js +10 -11
  428. package/dist/core/shaders/SmokeFlow/index.js +7 -8
  429. package/dist/core/shaders/Solarize/index.js +7 -8
  430. package/dist/core/shaders/SolidColor/index.js +11 -12
  431. package/dist/core/shaders/Spherize/index.js +10 -11
  432. package/dist/core/shaders/Spiral/index.js +11 -12
  433. package/dist/core/shaders/Star/index.js +5 -5
  434. package/dist/core/shaders/Stone/index.js +13 -15
  435. package/dist/core/shaders/Strands/index.js +13 -15
  436. package/dist/core/shaders/Stretch/index.js +8 -9
  437. package/dist/core/shaders/Stripes/index.js +13 -15
  438. package/dist/core/shaders/StudioBackground/index.d.ts.map +1 -1
  439. package/dist/core/shaders/StudioBackground/index.js +14 -15
  440. package/dist/core/shaders/SunBurst/index.js +12 -12
  441. package/dist/core/shaders/Surface3D/index.js +8 -9
  442. package/dist/core/shaders/Swirl/index.js +11 -12
  443. package/dist/core/shaders/Teardrop/index.js +5 -5
  444. package/dist/core/shaders/Text/index.js +12 -13
  445. package/dist/core/shaders/ThinFilm/index.js +9 -10
  446. package/dist/core/shaders/TiltShift/index.js +10 -11
  447. package/dist/core/shaders/TimeTrail/index.js +8 -9
  448. package/dist/core/shaders/Tint/index.js +6 -7
  449. package/dist/core/shaders/Trapezoid/index.js +5 -5
  450. package/dist/core/shaders/TriangularGrid/index.js +13 -15
  451. package/dist/core/shaders/Tritone/index.js +6 -7
  452. package/dist/core/shaders/Truchet/index.js +13 -15
  453. package/dist/core/shaders/Twirl/index.js +8 -9
  454. package/dist/core/shaders/VHS/index.js +10 -11
  455. package/dist/core/shaders/VenetianBlinds/index.js +7 -8
  456. package/dist/core/shaders/Vesica/index.js +5 -5
  457. package/dist/core/shaders/Vibrance/index.js +7 -8
  458. package/dist/core/shaders/VideoTexture/index.js +6 -6
  459. package/dist/core/shaders/Vignette/index.js +8 -7
  460. package/dist/core/shaders/Voronoi/index.js +13 -15
  461. package/dist/core/shaders/Water/index.js +11 -12
  462. package/dist/core/shaders/Watercolor/index.js +10 -11
  463. package/dist/core/shaders/WaveDistortion/index.js +8 -9
  464. package/dist/core/shaders/Waveform/index.d.ts +131 -0
  465. package/dist/core/shaders/Waveform/index.d.ts.map +1 -0
  466. package/dist/core/shaders/Waveform/index.js +17 -0
  467. package/dist/core/shaders/WaveletNoise/index.js +14 -16
  468. package/dist/core/shaders/Weave/index.js +13 -15
  469. package/dist/core/shaders/WebcamTexture/index.js +6 -6
  470. package/dist/core/shaders/Wool/index.js +13 -15
  471. package/dist/core/shaders/WorleyNoise/index.js +13 -15
  472. package/dist/core/shaders/ZoomBlur/index.js +10 -11
  473. package/dist/core/{shape-BMO1cLTt.js → shape-Dfa7_eQh.js} +1 -1
  474. package/dist/core/{shapePaints-G_Ap8xID.js → shapePaints-CRpPT5Z5.js} +792 -2038
  475. package/dist/core/signal-DuaxoxK4.js +34 -0
  476. package/dist/core/std/frames.d.ts +27 -0
  477. package/dist/core/std/frames.d.ts.map +1 -1
  478. package/dist/core/std/invoke.d.ts +9 -1
  479. package/dist/core/std/invoke.d.ts.map +1 -1
  480. package/dist/core/std/lists.d.ts +32 -0
  481. package/dist/core/std/lists.d.ts.map +1 -0
  482. package/dist/core/std/mask.d.ts +52 -0
  483. package/dist/core/std/mask.d.ts.map +1 -1
  484. package/dist/core/std/math.d.ts +14 -0
  485. package/dist/core/std/math.d.ts.map +1 -1
  486. package/dist/core/std/paint/compose.d.ts +29 -1
  487. package/dist/core/std/paint/compose.d.ts.map +1 -1
  488. package/dist/core/std/paint/fields.d.ts +91 -0
  489. package/dist/core/std/paint/fields.d.ts.map +1 -1
  490. package/dist/core/std/paint/figures.d.ts +0 -36
  491. package/dist/core/std/paint/figures.d.ts.map +1 -1
  492. package/dist/core/std/paint/light.d.ts +61 -0
  493. package/dist/core/std/paint/light.d.ts.map +1 -1
  494. package/dist/core/std/paint/materials.d.ts +84 -6
  495. package/dist/core/std/paint/materials.d.ts.map +1 -1
  496. package/dist/core/std/paint/noise.d.ts +72 -34
  497. package/dist/core/std/paint/noise.d.ts.map +1 -1
  498. package/dist/core/std/paint/patterns.d.ts +4 -3
  499. package/dist/core/std/paint/patterns.d.ts.map +1 -1
  500. package/dist/core/std/paint/radiance.d.ts +94 -0
  501. package/dist/core/std/paint/radiance.d.ts.map +1 -0
  502. package/dist/core/std/signal.d.ts +25 -0
  503. package/dist/core/std/signal.d.ts.map +1 -1
  504. package/dist/core/{stylize-DuY5wWZo.js → stylize-AZmEMszr.js} +2 -3
  505. package/dist/core/telemetry/index.js +1 -1
  506. package/dist/core/{tone-BA0D_veZ.js → tone-Ax72n2WU.js} +130 -2
  507. package/dist/core/types.d.ts +26 -1
  508. package/dist/core/types.d.ts.map +1 -1
  509. package/dist/core/utilities/listProps.d.ts +68 -0
  510. package/dist/core/utilities/listProps.d.ts.map +1 -0
  511. package/dist/core/utilities/transformations/index.js +1 -1
  512. package/dist/core/{warpMaps-CPjWFW4W.js → warpMaps-051QhmeG.js} +2 -3
  513. package/dist/core/{warps-B_sbWWsN.js → warps-B5j8H1vX.js} +3 -3
  514. package/dist/js/bundle.js +182 -180
  515. package/dist/js/createShader.js +1 -1
  516. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  517. package/dist/js/utils/generatePresetCode.js +119 -0
  518. package/dist/react/Irradiance.js +226 -0
  519. package/dist/react/Obsidian.js +226 -0
  520. package/dist/react/Preview.js +3 -0
  521. package/dist/react/Shader.js +1 -1
  522. package/dist/react/Waveform.js +226 -0
  523. package/dist/react/bundle.js +167 -165
  524. package/dist/react/components/Irradiance.d.ts +45 -0
  525. package/dist/react/components/Irradiance.d.ts.map +1 -0
  526. package/dist/react/components/Obsidian.d.ts +44 -0
  527. package/dist/react/components/Obsidian.d.ts.map +1 -0
  528. package/dist/react/components/Waveform.d.ts +46 -0
  529. package/dist/react/components/Waveform.d.ts.map +1 -0
  530. package/dist/react/engine/Preview.d.ts.map +1 -1
  531. package/dist/react/index.d.ts +3 -0
  532. package/dist/react/index.d.ts.map +1 -1
  533. package/dist/react/index.js +4 -1
  534. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  535. package/dist/react/utils/generatePresetCode.js +119 -0
  536. package/dist/registry.js +2549 -554
  537. package/dist/solid/components/Irradiance.d.ts +42 -0
  538. package/dist/solid/components/Irradiance.d.ts.map +1 -0
  539. package/dist/solid/components/Irradiance.js +232 -0
  540. package/dist/solid/components/Obsidian.d.ts +41 -0
  541. package/dist/solid/components/Obsidian.d.ts.map +1 -0
  542. package/dist/solid/components/Obsidian.js +232 -0
  543. package/dist/solid/components/Waveform.d.ts +43 -0
  544. package/dist/solid/components/Waveform.d.ts.map +1 -0
  545. package/dist/solid/components/Waveform.js +232 -0
  546. package/dist/solid/engine/Preview.d.ts.map +1 -1
  547. package/dist/solid/engine/Preview.js +383 -377
  548. package/dist/solid/engine/Shader.js +1 -1
  549. package/dist/solid/index.d.ts +3 -0
  550. package/dist/solid/index.d.ts.map +1 -1
  551. package/dist/solid/index.js +212 -206
  552. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  553. package/dist/solid/utils/generatePresetCode.js +122 -0
  554. package/dist/svelte/components/Irradiance.svelte.d.ts +32 -0
  555. package/dist/svelte/components/Obsidian.svelte.d.ts +31 -0
  556. package/dist/svelte/components/Waveform.svelte.d.ts +33 -0
  557. package/dist/svelte/index.d.ts +3 -0
  558. package/dist/svelte/index.js +1698 -1077
  559. package/dist/svelte/source/components/Irradiance.svelte +356 -0
  560. package/dist/svelte/source/components/Obsidian.svelte +355 -0
  561. package/dist/svelte/source/components/Waveform.svelte +357 -0
  562. package/dist/svelte/source/engine/Preview.svelte +6 -0
  563. package/dist/svelte/source/index.js +3 -0
  564. package/dist/svelte/utils/generatePresetCode.js +119 -0
  565. package/dist/vue/Irradiance.js +3 -0
  566. package/dist/vue/Irradiance.vue_vue_type_script_setup_true_lang.js +244 -0
  567. package/dist/vue/Obsidian.js +3 -0
  568. package/dist/vue/Obsidian.vue_vue_type_script_setup_true_lang.js +248 -0
  569. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +6 -0
  570. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  571. package/dist/vue/Waveform.js +3 -0
  572. package/dist/vue/Waveform.vue_vue_type_script_setup_true_lang.js +244 -0
  573. package/dist/vue/components/Irradiance.vue.d.ts +67 -0
  574. package/dist/vue/components/Irradiance.vue.d.ts.map +1 -0
  575. package/dist/vue/components/Obsidian.vue.d.ts +66 -0
  576. package/dist/vue/components/Obsidian.vue.d.ts.map +1 -0
  577. package/dist/vue/components/Waveform.vue.d.ts +68 -0
  578. package/dist/vue/components/Waveform.vue.d.ts.map +1 -0
  579. package/dist/vue/index.d.ts +3 -0
  580. package/dist/vue/index.d.ts.map +1 -1
  581. package/dist/vue/index.js +4 -1
  582. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  583. package/dist/vue/utils/generatePresetCode.js +119 -0
  584. package/package.json +25 -1
  585. package/dist/core/Aurora-aZQ7Sgpi.js +0 -189
  586. package/dist/core/FlowingGradient-DExZwWd-.js +0 -154
  587. package/dist/core/StudioBackground-CyNdOTtR.js +0 -294
  588. package/dist/core/aa-BfXCHL6-.js +0 -915
  589. package/dist/core/figures-Ca2qPDh7.js +0 -116
  590. package/dist/core/gpu/kit/scenicPaints.d.ts +0 -18
  591. package/dist/core/gpu/kit/scenicPaints.d.ts.map +0 -1
  592. package/dist/core/noise-B3Oq1k3_.js +0 -10320
  593. package/dist/core/noiseColor-CMKVWP1J.js +0 -20
  594. package/dist/core/scenic-CJSExiX2.js +0 -5738
  595. package/dist/core/shaderRegistry-Ch1r8XbD.js +0 -435
  596. package/dist/core/std/paint/scenic.d.ts +0 -111
  597. package/dist/core/std/paint/scenic.d.ts.map +0 -1
  598. /package/dist/core/{canvasRaster-Clio8jcl.js → canvasRaster-DDBkrdY8.js} +0 -0
  599. /package/dist/core/{device-DLKcFOd2.js → device-m0ud8-Fn.js} +0 -0
  600. /package/dist/core/{filter-Bw8Ogi4T.js → filter-VJlLs3Zs.js} +0 -0
  601. /package/dist/core/{fonts-Dyp7nl7T.js → fonts-BUXTd9qb.js} +0 -0
  602. /package/dist/core/{grids-BqY3o2yc.js → grids-C6sTUox5.js} +0 -0
  603. /package/dist/core/{slots-BqeQDVxy.js → slots-BuIG6s6W.js} +0 -0
  604. /package/dist/core/{support-ULZQgbko.js → support-GJphyuEe.js} +0 -0
  605. /package/dist/core/{transformations-CoIwF5JU.js → transformations-COlfAEsk.js} +0 -0
package/dist/registry.js CHANGED
@@ -25016,110 +25016,242 @@ export const shaderRegistry = [
25016
25016
  }
25017
25017
  },
25018
25018
  {
25019
- "name": "IsometricCubes",
25020
- "category": "Textures",
25021
- "description": "Isometric tumbling-blocks tiling — a 3D cube illusion (rhombille pattern)",
25022
- "fileName": "IsometricCubes",
25019
+ "name": "Irradiance",
25020
+ "category": "Shape Effects",
25021
+ "description": "Photorealistic light spilling around the edge of any 2D, SVG, or 3D shape any number of movable coloured point lights strike the silhouette and the lit edges irradiate their surroundings, gathered in a compute pass with real cast shadows, mixing where they meet and burning to white at the rim",
25022
+ "fileName": "Irradiance",
25023
25023
  "definition": {
25024
- "name": "IsometricCubes",
25024
+ "name": "Irradiance",
25025
25025
  "boundingBoxDeclaration": {
25026
- "aspectRatio": null,
25027
- "supportsResizeFit": true
25026
+ "propBindings": {
25027
+ "x": {
25028
+ "prop": "center",
25029
+ "as": "position-x"
25030
+ },
25031
+ "y": {
25032
+ "prop": "center",
25033
+ "as": "position-y"
25034
+ },
25035
+ "rotation": {
25036
+ "prop": "rotation",
25037
+ "as": "degrees"
25038
+ }
25039
+ }
25040
+ },
25041
+ "category": "Shape Effects",
25042
+ "description": "Photorealistic light spilling around the edge of any 2D, SVG, or 3D shape — any number of movable coloured point lights strike the silhouette and the lit edges irradiate their surroundings, gathered in a compute pass with real cast shadows, mixing where they meet and burning to white at the rim",
25043
+ "extraFields": {
25044
+ "_vfOriginX": {
25045
+ "initial": 0
25046
+ },
25047
+ "_vfOriginY": {
25048
+ "initial": 0
25049
+ },
25050
+ "_vfSpanX": {
25051
+ "initial": 1
25052
+ },
25053
+ "_vfSpanY": {
25054
+ "initial": 1
25055
+ },
25056
+ "_vfActiveRes": {
25057
+ "initial": 1
25058
+ },
25059
+ "_vfRBound": {
25060
+ "initial": 0.6
25061
+ },
25062
+ "_saRadius": {
25063
+ "initial": 0.35
25064
+ },
25065
+ "_saSides": {
25066
+ "initial": 6
25067
+ },
25068
+ "_saRounding": {
25069
+ "initial": 0
25070
+ },
25071
+ "_saInnerRatio": {
25072
+ "initial": 0.4
25073
+ },
25074
+ "_saRotation": {
25075
+ "initial": 0
25076
+ },
25077
+ "_saHeight": {
25078
+ "initial": 0.25
25079
+ },
25080
+ "_saOffset": {
25081
+ "initial": 0.2
25082
+ },
25083
+ "_saAperture": {
25084
+ "initial": 270
25085
+ }
25028
25086
  },
25029
- "category": "Textures",
25030
- "description": "Isometric tumbling-blocks tiling — a 3D cube illusion (rhombille pattern)",
25031
- "acceptsUVContext": true,
25032
25087
  "props": {
25033
- "colorA": {
25034
- "default": "#7c5cff",
25035
- "description": "Base cube color",
25088
+ "origin": {
25089
+ "default": "center",
25090
+ "description": "Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",
25036
25091
  "ui": {
25037
- "type": "color",
25038
- "label": "Color A",
25039
- "group": "Colors"
25092
+ "type": "origin",
25093
+ "label": "Origin",
25094
+ "group": "Position"
25040
25095
  }
25041
25096
  },
25042
- "colorB": {
25043
- "default": "#ff5c9d",
25044
- "description": "Second cube color, mixed in per-cube for variation",
25097
+ "center": {
25098
+ "default": {
25099
+ "x": 0.5,
25100
+ "y": 0.5
25101
+ },
25102
+ "description": "Center position of the shape",
25045
25103
  "ui": {
25046
- "type": "color",
25047
- "label": "Color B",
25048
- "group": "Colors"
25104
+ "type": "position",
25105
+ "label": "Center",
25106
+ "group": "Position",
25107
+ "units": [
25108
+ "%",
25109
+ "px"
25110
+ ]
25049
25111
  }
25050
25112
  },
25051
- "lineColor": {
25052
- "default": "#000000",
25053
- "description": "Color of the cube edge lines",
25113
+ "scale": {
25114
+ "default": 1,
25115
+ "description": "Scale of the shape (1 = default size)",
25054
25116
  "ui": {
25055
- "type": "color",
25056
- "label": "Edges",
25057
- "group": "Colors"
25117
+ "type": "range",
25118
+ "min": 0.1,
25119
+ "max": 3,
25120
+ "step": 0.01,
25121
+ "label": "Scale",
25122
+ "group": "Position"
25058
25123
  }
25059
25124
  },
25060
- "cells": {
25061
- "default": 6,
25062
- "description": "Number of cubes across the shortest canvas edge",
25125
+ "rotation": {
25126
+ "default": 0,
25127
+ "description": "Rotation of the shape in degrees",
25128
+ "ui": {
25129
+ "type": "range",
25130
+ "min": 0,
25131
+ "max": 360,
25132
+ "step": 1,
25133
+ "label": "Rotation",
25134
+ "group": "Position"
25135
+ }
25136
+ },
25137
+ "lights": {
25138
+ "default": [
25139
+ {
25140
+ "position": {
25141
+ "x": 0.3,
25142
+ "y": 0.3
25143
+ },
25144
+ "color": "#ffb347",
25145
+ "intensity": 3
25146
+ },
25147
+ {
25148
+ "position": {
25149
+ "x": 0.72,
25150
+ "y": 0.7
25151
+ },
25152
+ "color": "#7a5cff",
25153
+ "intensity": 2
25154
+ }
25155
+ ],
25156
+ "description": "The point lights striking the shape — each with its own position, colour and brightness",
25157
+ "ui": {
25158
+ "type": "list",
25159
+ "label": "Lights",
25160
+ "group": "Lights",
25161
+ "item": {
25162
+ "position": {
25163
+ "kind": "position",
25164
+ "default": {
25165
+ "x": 0.3,
25166
+ "y": 0.3
25167
+ },
25168
+ "label": "Position",
25169
+ "description": "Where this light sits — the edges facing it are struck and spill light outward. Map it to the mouse to carry the light around the shape."
25170
+ },
25171
+ "color": {
25172
+ "kind": "color",
25173
+ "default": "#ffb347",
25174
+ "label": "Color",
25175
+ "description": "The colour this light casts"
25176
+ },
25177
+ "intensity": {
25178
+ "kind": "number",
25179
+ "default": 3,
25180
+ "label": "Intensity",
25181
+ "min": 0,
25182
+ "max": 8,
25183
+ "step": 0.01,
25184
+ "description": "Brightness of this light — past ~2 the rim it strikes overexposes to white"
25185
+ }
25186
+ },
25187
+ "maxItems": 6,
25188
+ "minItems": 1,
25189
+ "itemLabel": "Light"
25190
+ }
25191
+ },
25192
+ "lightHeight": {
25193
+ "default": 0.5,
25194
+ "description": "Height of the lights above the shape plane, relative to the shape — low lights graze the body, high lights flood it evenly",
25063
25195
  "ui": {
25064
25196
  "type": [
25065
25197
  "range",
25066
25198
  "map"
25067
25199
  ],
25068
- "min": 1,
25069
- "max": 30,
25070
- "step": 1,
25071
- "label": "Cells",
25072
- "group": "Effect"
25200
+ "min": 0.05,
25201
+ "max": 3,
25202
+ "step": 0.01,
25203
+ "label": "Light Height",
25204
+ "group": "Light"
25073
25205
  }
25074
25206
  },
25075
- "thickness": {
25076
- "default": 1,
25077
- "description": "Thickness of the cube edge lines (0 = no edges)",
25207
+ "lightRange": {
25208
+ "default": 1.2,
25209
+ "description": "Reach of each light — the distance at which it has fallen to half strength, relative to the shape",
25078
25210
  "ui": {
25079
25211
  "type": [
25080
25212
  "range",
25081
25213
  "map"
25082
25214
  ],
25083
- "min": 0,
25084
- "max": 10,
25085
- "step": 0.1,
25086
- "label": "Thickness",
25087
- "group": "Effect"
25215
+ "min": 0.1,
25216
+ "max": 4,
25217
+ "step": 0.01,
25218
+ "label": "Range",
25219
+ "group": "Light"
25088
25220
  }
25089
25221
  },
25090
- "rotation": {
25091
- "default": 0,
25092
- "description": "Rotation of the tiling in degrees",
25222
+ "reach": {
25223
+ "default": 3,
25224
+ "description": "How far from the shape the spilled light is gathered, relative to the shape — the glow fades out toward this distance",
25093
25225
  "ui": {
25094
25226
  "type": [
25095
25227
  "range",
25096
25228
  "map"
25097
25229
  ],
25098
- "min": 0,
25099
- "max": 360,
25100
- "step": 1,
25101
- "label": "Rotation",
25102
- "group": "Effect"
25230
+ "min": 0.5,
25231
+ "max": 8,
25232
+ "step": 0.01,
25233
+ "label": "Reach",
25234
+ "group": "Glow"
25103
25235
  }
25104
25236
  },
25105
- "softness": {
25106
- "default": 0,
25107
- "description": "Softness of the edge lines (0 = crisp, 1 = very soft)",
25237
+ "core": {
25238
+ "default": 1,
25239
+ "description": "The lit edge seen directly — the white-hot line along the rim where the lights strike",
25108
25240
  "ui": {
25109
25241
  "type": [
25110
25242
  "range",
25111
25243
  "map"
25112
25244
  ],
25113
25245
  "min": 0,
25114
- "max": 1,
25246
+ "max": 2,
25115
25247
  "step": 0.01,
25116
- "label": "Softness",
25117
- "group": "Effect"
25248
+ "label": "Core",
25249
+ "group": "Glow"
25118
25250
  }
25119
25251
  },
25120
- "colorVariation": {
25121
- "default": 1,
25122
- "description": "Per-cube random blend between the two colors (0 = uniform cubes, the clean 3D look)",
25252
+ "wrap": {
25253
+ "default": 0.1,
25254
+ "description": "How far light wraps around edges that face away from it — 0 leaves the far side dark",
25123
25255
  "ui": {
25124
25256
  "type": [
25125
25257
  "range",
@@ -25128,122 +25260,276 @@ export const shaderRegistry = [
25128
25260
  "min": 0,
25129
25261
  "max": 1,
25130
25262
  "step": 0.01,
25131
- "label": "Variation",
25132
- "group": "Colors"
25263
+ "label": "Wrap",
25264
+ "group": "Glow"
25133
25265
  }
25134
25266
  },
25135
- "colorSpace": {
25136
- "default": "linear",
25267
+ "shadows": {
25268
+ "default": true,
25137
25269
  "compileTime": true,
25138
- "description": "Color space for color interpolation",
25270
+ "description": "Cast shadows the body blocks each light from edges it stands in front of (keeps holes and concave pockets dark)",
25139
25271
  "ui": {
25140
- "type": "select",
25141
- "options": [
25142
- {
25143
- "label": "Linear RGB",
25144
- "value": "linear"
25145
- },
25146
- {
25147
- "label": "OKLCh",
25148
- "value": "oklch"
25149
- },
25150
- {
25151
- "label": "OKLAB",
25152
- "value": "oklab"
25153
- },
25154
- {
25155
- "label": "HSL",
25156
- "value": "hsl"
25157
- },
25158
- {
25159
- "label": "HSV",
25160
- "value": "hsv"
25161
- },
25162
- {
25163
- "label": "LCH",
25164
- "value": "lch"
25165
- }
25272
+ "type": "checkbox",
25273
+ "label": "Shadows",
25274
+ "group": "Glow"
25275
+ }
25276
+ },
25277
+ "shadowSoftness": {
25278
+ "default": 0.15,
25279
+ "description": "Penumbra width of the cast shadows — 0 is razor sharp",
25280
+ "ui": {
25281
+ "type": [
25282
+ "range",
25283
+ "map"
25166
25284
  ],
25167
- "label": "Color Space",
25168
- "group": "Colors"
25285
+ "min": 0,
25286
+ "max": 1,
25287
+ "step": 0.01,
25288
+ "label": "Shadow Softness",
25289
+ "group": "Glow"
25169
25290
  }
25170
- }
25171
- }
25172
- },
25173
- "propsMetadata": {
25174
- "colorA": {
25175
- "ui": {
25176
- "type": "color",
25177
- "label": "Color A",
25178
- "group": "Colors"
25179
25291
  },
25180
- "default": "#7c5cff",
25181
- "description": "Base cube color"
25292
+ "bodyColor": {
25293
+ "default": "#000000",
25294
+ "description": "Color of the shape itself — black for a pure occluder, lighter to see the lights land on its form",
25295
+ "ui": {
25296
+ "type": "color",
25297
+ "label": "Body Color",
25298
+ "group": "Body"
25299
+ }
25300
+ },
25301
+ "bodyLight": {
25302
+ "default": 0.6,
25303
+ "description": "How much the lights illuminate the body — the bevel of a flat shape or the form of a 3D one",
25304
+ "ui": {
25305
+ "type": [
25306
+ "range",
25307
+ "map"
25308
+ ],
25309
+ "min": 0,
25310
+ "max": 2,
25311
+ "step": 0.01,
25312
+ "label": "Body Light",
25313
+ "group": "Body"
25314
+ }
25315
+ },
25316
+ "bevelWidth": {
25317
+ "default": 0.01,
25318
+ "description": "Width of the rounded edge a flat shape catches the light on, relative to the shape",
25319
+ "ui": {
25320
+ "type": [
25321
+ "range",
25322
+ "map"
25323
+ ],
25324
+ "min": 0.005,
25325
+ "max": 0.2,
25326
+ "step": 0.001,
25327
+ "label": "Bevel Width",
25328
+ "group": "Body"
25329
+ }
25330
+ },
25331
+ "edgeSoftness": {
25332
+ "default": 0.05,
25333
+ "description": "Softness of the shape boundary edge",
25334
+ "ui": {
25335
+ "type": [
25336
+ "range",
25337
+ "map"
25338
+ ],
25339
+ "min": 0,
25340
+ "max": 1,
25341
+ "step": 0.01,
25342
+ "label": "Edge Softness",
25343
+ "group": "Body"
25344
+ }
25345
+ },
25346
+ "shape": {
25347
+ "default": "{\"type\":\"circleSDF\",\"radius\":0.35}",
25348
+ "description": "Serialized shape configuration (JSON)",
25349
+ "ui": {
25350
+ "type": "shape",
25351
+ "label": "Shape",
25352
+ "group": "Shape"
25353
+ }
25354
+ },
25355
+ "shapeSdfUrl": {
25356
+ "default": "",
25357
+ "compileTime": true,
25358
+ "description": "URL to a pre-generated SDF .bin file"
25359
+ },
25360
+ "shapeType": {
25361
+ "default": "",
25362
+ "compileTime": true,
25363
+ "description": "Active SDF shape type"
25364
+ }
25365
+ }
25366
+ },
25367
+ "propsMetadata": {
25368
+ "origin": {
25369
+ "ui": {
25370
+ "type": "origin",
25371
+ "label": "Origin",
25372
+ "group": "Position"
25373
+ },
25374
+ "default": "center",
25375
+ "description": "Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre."
25182
25376
  },
25183
- "colorB": {
25377
+ "center": {
25184
25378
  "ui": {
25185
- "type": "color",
25186
- "label": "Color B",
25187
- "group": "Colors"
25379
+ "type": "position",
25380
+ "label": "Center",
25381
+ "group": "Position",
25382
+ "units": [
25383
+ "%",
25384
+ "px"
25385
+ ]
25188
25386
  },
25189
- "default": "#ff5c9d",
25190
- "description": "Second cube color, mixed in per-cube for variation"
25387
+ "default": {
25388
+ "x": 0.5,
25389
+ "y": 0.5
25390
+ },
25391
+ "description": "Center position of the shape"
25191
25392
  },
25192
- "lineColor": {
25393
+ "scale": {
25193
25394
  "ui": {
25194
- "type": "color",
25195
- "label": "Edges",
25196
- "group": "Colors"
25395
+ "type": "range",
25396
+ "min": 0.1,
25397
+ "max": 3,
25398
+ "step": 0.01,
25399
+ "label": "Scale",
25400
+ "group": "Position"
25197
25401
  },
25198
- "default": "#000000",
25199
- "description": "Color of the cube edge lines"
25402
+ "default": 1,
25403
+ "description": "Scale of the shape (1 = default size)"
25200
25404
  },
25201
- "cells": {
25405
+ "rotation": {
25406
+ "ui": {
25407
+ "type": "range",
25408
+ "min": 0,
25409
+ "max": 360,
25410
+ "step": 1,
25411
+ "label": "Rotation",
25412
+ "group": "Position"
25413
+ },
25414
+ "default": 0,
25415
+ "description": "Rotation of the shape in degrees"
25416
+ },
25417
+ "lights": {
25418
+ "ui": {
25419
+ "type": "list",
25420
+ "label": "Lights",
25421
+ "group": "Lights",
25422
+ "item": {
25423
+ "position": {
25424
+ "kind": "position",
25425
+ "default": {
25426
+ "x": 0.3,
25427
+ "y": 0.3
25428
+ },
25429
+ "label": "Position",
25430
+ "description": "Where this light sits — the edges facing it are struck and spill light outward. Map it to the mouse to carry the light around the shape."
25431
+ },
25432
+ "color": {
25433
+ "kind": "color",
25434
+ "default": "#ffb347",
25435
+ "label": "Color",
25436
+ "description": "The colour this light casts"
25437
+ },
25438
+ "intensity": {
25439
+ "kind": "number",
25440
+ "default": 3,
25441
+ "label": "Intensity",
25442
+ "min": 0,
25443
+ "max": 8,
25444
+ "step": 0.01,
25445
+ "description": "Brightness of this light — past ~2 the rim it strikes overexposes to white"
25446
+ }
25447
+ },
25448
+ "maxItems": 6,
25449
+ "minItems": 1,
25450
+ "itemLabel": "Light"
25451
+ },
25452
+ "default": [
25453
+ {
25454
+ "position": {
25455
+ "x": 0.3,
25456
+ "y": 0.3
25457
+ },
25458
+ "color": "#ffb347",
25459
+ "intensity": 3
25460
+ },
25461
+ {
25462
+ "position": {
25463
+ "x": 0.72,
25464
+ "y": 0.7
25465
+ },
25466
+ "color": "#7a5cff",
25467
+ "intensity": 2
25468
+ }
25469
+ ],
25470
+ "description": "The point lights striking the shape — each with its own position, colour and brightness"
25471
+ },
25472
+ "lightHeight": {
25202
25473
  "ui": {
25203
25474
  "type": [
25204
25475
  "range",
25205
25476
  "map"
25206
25477
  ],
25207
- "min": 1,
25208
- "max": 30,
25209
- "step": 1,
25210
- "label": "Cells",
25211
- "group": "Effect"
25478
+ "min": 0.05,
25479
+ "max": 3,
25480
+ "step": 0.01,
25481
+ "label": "Light Height",
25482
+ "group": "Light"
25212
25483
  },
25213
- "default": 6,
25214
- "description": "Number of cubes across the shortest canvas edge"
25484
+ "default": 0.5,
25485
+ "description": "Height of the lights above the shape plane, relative to the shape — low lights graze the body, high lights flood it evenly"
25215
25486
  },
25216
- "thickness": {
25487
+ "lightRange": {
25217
25488
  "ui": {
25218
25489
  "type": [
25219
25490
  "range",
25220
25491
  "map"
25221
25492
  ],
25222
- "min": 0,
25223
- "max": 10,
25224
- "step": 0.1,
25225
- "label": "Thickness",
25226
- "group": "Effect"
25493
+ "min": 0.1,
25494
+ "max": 4,
25495
+ "step": 0.01,
25496
+ "label": "Range",
25497
+ "group": "Light"
25227
25498
  },
25228
- "default": 1,
25229
- "description": "Thickness of the cube edge lines (0 = no edges)"
25499
+ "default": 1.2,
25500
+ "description": "Reach of each light — the distance at which it has fallen to half strength, relative to the shape"
25230
25501
  },
25231
- "rotation": {
25502
+ "reach": {
25503
+ "ui": {
25504
+ "type": [
25505
+ "range",
25506
+ "map"
25507
+ ],
25508
+ "min": 0.5,
25509
+ "max": 8,
25510
+ "step": 0.01,
25511
+ "label": "Reach",
25512
+ "group": "Glow"
25513
+ },
25514
+ "default": 3,
25515
+ "description": "How far from the shape the spilled light is gathered, relative to the shape — the glow fades out toward this distance"
25516
+ },
25517
+ "core": {
25232
25518
  "ui": {
25233
25519
  "type": [
25234
25520
  "range",
25235
25521
  "map"
25236
25522
  ],
25237
25523
  "min": 0,
25238
- "max": 360,
25239
- "step": 1,
25240
- "label": "Rotation",
25241
- "group": "Effect"
25524
+ "max": 2,
25525
+ "step": 0.01,
25526
+ "label": "Core",
25527
+ "group": "Glow"
25242
25528
  },
25243
- "default": 0,
25244
- "description": "Rotation of the tiling in degrees"
25529
+ "default": 1,
25530
+ "description": "The lit edge seen directly — the white-hot line along the rim where the lights strike"
25245
25531
  },
25246
- "softness": {
25532
+ "wrap": {
25247
25533
  "ui": {
25248
25534
  "type": [
25249
25535
  "range",
@@ -25252,13 +25538,22 @@ export const shaderRegistry = [
25252
25538
  "min": 0,
25253
25539
  "max": 1,
25254
25540
  "step": 0.01,
25255
- "label": "Softness",
25256
- "group": "Effect"
25541
+ "label": "Wrap",
25542
+ "group": "Glow"
25257
25543
  },
25258
- "default": 0,
25259
- "description": "Softness of the edge lines (0 = crisp, 1 = very soft)"
25544
+ "default": 0.1,
25545
+ "description": "How far light wraps around edges that face away from it — 0 leaves the far side dark"
25260
25546
  },
25261
- "colorVariation": {
25547
+ "shadows": {
25548
+ "ui": {
25549
+ "type": "checkbox",
25550
+ "label": "Shadows",
25551
+ "group": "Glow"
25552
+ },
25553
+ "default": true,
25554
+ "description": "Cast shadows — the body blocks each light from edges it stands in front of (keeps holes and concave pockets dark)"
25555
+ },
25556
+ "shadowSoftness": {
25262
25557
  "ui": {
25263
25558
  "type": [
25264
25559
  "range",
@@ -25267,93 +25562,152 @@ export const shaderRegistry = [
25267
25562
  "min": 0,
25268
25563
  "max": 1,
25269
25564
  "step": 0.01,
25270
- "label": "Variation",
25271
- "group": "Colors"
25565
+ "label": "Shadow Softness",
25566
+ "group": "Glow"
25272
25567
  },
25273
- "default": 1,
25274
- "description": "Per-cube random blend between the two colors (0 = uniform cubes, the clean 3D look)"
25568
+ "default": 0.15,
25569
+ "description": "Penumbra width of the cast shadows 0 is razor sharp"
25275
25570
  },
25276
- "colorSpace": {
25571
+ "bodyColor": {
25277
25572
  "ui": {
25278
- "type": "select",
25279
- "options": [
25280
- {
25281
- "label": "Linear RGB",
25282
- "value": "linear"
25283
- },
25284
- {
25285
- "label": "OKLCh",
25286
- "value": "oklch"
25287
- },
25288
- {
25289
- "label": "OKLAB",
25290
- "value": "oklab"
25291
- },
25292
- {
25293
- "label": "HSL",
25294
- "value": "hsl"
25295
- },
25296
- {
25297
- "label": "HSV",
25298
- "value": "hsv"
25299
- },
25300
- {
25301
- "label": "LCH",
25302
- "value": "lch"
25303
- }
25573
+ "type": "color",
25574
+ "label": "Body Color",
25575
+ "group": "Body"
25576
+ },
25577
+ "default": "#000000",
25578
+ "description": "Color of the shape itself — black for a pure occluder, lighter to see the lights land on its form"
25579
+ },
25580
+ "bodyLight": {
25581
+ "ui": {
25582
+ "type": [
25583
+ "range",
25584
+ "map"
25304
25585
  ],
25305
- "label": "Color Space",
25306
- "group": "Colors"
25586
+ "min": 0,
25587
+ "max": 2,
25588
+ "step": 0.01,
25589
+ "label": "Body Light",
25590
+ "group": "Body"
25307
25591
  },
25308
- "default": "linear",
25309
- "description": "Color space for color interpolation"
25310
- }
25311
- }
25592
+ "default": 0.6,
25593
+ "description": "How much the lights illuminate the body — the bevel of a flat shape or the form of a 3D one"
25594
+ },
25595
+ "bevelWidth": {
25596
+ "ui": {
25597
+ "type": [
25598
+ "range",
25599
+ "map"
25600
+ ],
25601
+ "min": 0.005,
25602
+ "max": 0.2,
25603
+ "step": 0.001,
25604
+ "label": "Bevel Width",
25605
+ "group": "Body"
25606
+ },
25607
+ "default": 0.01,
25608
+ "description": "Width of the rounded edge a flat shape catches the light on, relative to the shape"
25609
+ },
25610
+ "edgeSoftness": {
25611
+ "ui": {
25612
+ "type": [
25613
+ "range",
25614
+ "map"
25615
+ ],
25616
+ "min": 0,
25617
+ "max": 1,
25618
+ "step": 0.01,
25619
+ "label": "Edge Softness",
25620
+ "group": "Body"
25621
+ },
25622
+ "default": 0.05,
25623
+ "description": "Softness of the shape boundary edge"
25624
+ },
25625
+ "shape": {
25626
+ "ui": {
25627
+ "type": "shape",
25628
+ "label": "Shape",
25629
+ "group": "Shape"
25630
+ },
25631
+ "default": "{\"type\":\"circleSDF\",\"radius\":0.35}",
25632
+ "description": "Serialized shape configuration (JSON)"
25633
+ }
25634
+ }
25312
25635
  },
25313
25636
  {
25314
- "name": "Kaleidoscope",
25315
- "category": "Distortions",
25316
- "description": "Create a kaleidoscope effect with radial mirrored segments",
25317
- "fileName": "Kaleidoscope",
25318
- "requiresChild": true,
25637
+ "name": "IsometricCubes",
25638
+ "category": "Textures",
25639
+ "description": "Isometric tumbling-blocks tiling — a 3D cube illusion (rhombille pattern)",
25640
+ "fileName": "IsometricCubes",
25319
25641
  "definition": {
25320
- "name": "Kaleidoscope",
25321
- "category": "Distortions",
25322
- "description": "Create a kaleidoscope effect with radial mirrored segments",
25642
+ "name": "IsometricCubes",
25323
25643
  "boundingBoxDeclaration": {
25324
- "aspectRatio": null
25644
+ "aspectRatio": null,
25645
+ "supportsResizeFit": true
25325
25646
  },
25647
+ "category": "Textures",
25648
+ "description": "Isometric tumbling-blocks tiling — a 3D cube illusion (rhombille pattern)",
25649
+ "acceptsUVContext": true,
25326
25650
  "props": {
25327
- "center": {
25328
- "default": {
25329
- "x": 0.5,
25330
- "y": 0.5
25331
- },
25332
- "description": "The center point of the kaleidoscope effect",
25651
+ "colorA": {
25652
+ "default": "#7c5cff",
25653
+ "description": "Base cube color",
25333
25654
  "ui": {
25334
- "type": "position",
25335
- "label": "Center",
25336
- "group": "Position"
25655
+ "type": "color",
25656
+ "label": "Color A",
25657
+ "group": "Colors"
25337
25658
  }
25338
25659
  },
25339
- "segments": {
25660
+ "colorB": {
25661
+ "default": "#ff5c9d",
25662
+ "description": "Second cube color, mixed in per-cube for variation",
25663
+ "ui": {
25664
+ "type": "color",
25665
+ "label": "Color B",
25666
+ "group": "Colors"
25667
+ }
25668
+ },
25669
+ "lineColor": {
25670
+ "default": "#000000",
25671
+ "description": "Color of the cube edge lines",
25672
+ "ui": {
25673
+ "type": "color",
25674
+ "label": "Edges",
25675
+ "group": "Colors"
25676
+ }
25677
+ },
25678
+ "cells": {
25340
25679
  "default": 6,
25341
- "description": "Number of radial segments in the kaleidoscope",
25680
+ "description": "Number of cubes across the shortest canvas edge",
25342
25681
  "ui": {
25343
25682
  "type": [
25344
25683
  "range",
25345
25684
  "map"
25346
25685
  ],
25347
- "min": 2,
25348
- "max": 24,
25686
+ "min": 1,
25687
+ "max": 30,
25349
25688
  "step": 1,
25350
- "label": "Segments",
25689
+ "label": "Cells",
25351
25690
  "group": "Effect"
25352
25691
  }
25353
25692
  },
25354
- "angle": {
25693
+ "thickness": {
25694
+ "default": 1,
25695
+ "description": "Thickness of the cube edge lines (0 = no edges)",
25696
+ "ui": {
25697
+ "type": [
25698
+ "range",
25699
+ "map"
25700
+ ],
25701
+ "min": 0,
25702
+ "max": 10,
25703
+ "step": 0.1,
25704
+ "label": "Thickness",
25705
+ "group": "Effect"
25706
+ }
25707
+ },
25708
+ "rotation": {
25355
25709
  "default": 0,
25356
- "description": "Rotation offset for the entire kaleidoscope pattern",
25710
+ "description": "Rotation of the tiling in degrees",
25357
25711
  "ui": {
25358
25712
  "type": [
25359
25713
  "range",
@@ -25362,71 +25716,137 @@ export const shaderRegistry = [
25362
25716
  "min": 0,
25363
25717
  "max": 360,
25364
25718
  "step": 1,
25365
- "label": "Angle",
25719
+ "label": "Rotation",
25366
25720
  "group": "Effect"
25367
25721
  }
25368
25722
  },
25369
- "edges": {
25370
- "default": "mirror",
25371
- "description": "How to handle edges when distortion pushes content out of bounds",
25723
+ "softness": {
25724
+ "default": 0,
25725
+ "description": "Softness of the edge lines (0 = crisp, 1 = very soft)",
25726
+ "ui": {
25727
+ "type": [
25728
+ "range",
25729
+ "map"
25730
+ ],
25731
+ "min": 0,
25732
+ "max": 1,
25733
+ "step": 0.01,
25734
+ "label": "Softness",
25735
+ "group": "Effect"
25736
+ }
25737
+ },
25738
+ "colorVariation": {
25739
+ "default": 1,
25740
+ "description": "Per-cube random blend between the two colors (0 = uniform cubes, the clean 3D look)",
25741
+ "ui": {
25742
+ "type": [
25743
+ "range",
25744
+ "map"
25745
+ ],
25746
+ "min": 0,
25747
+ "max": 1,
25748
+ "step": 0.01,
25749
+ "label": "Variation",
25750
+ "group": "Colors"
25751
+ }
25752
+ },
25753
+ "colorSpace": {
25754
+ "default": "linear",
25372
25755
  "compileTime": true,
25756
+ "description": "Color space for color interpolation",
25373
25757
  "ui": {
25374
25758
  "type": "select",
25375
25759
  "options": [
25376
25760
  {
25377
- "label": "Stretch",
25378
- "value": "stretch"
25761
+ "label": "Linear RGB",
25762
+ "value": "linear"
25379
25763
  },
25380
25764
  {
25381
- "label": "Transparent",
25382
- "value": "transparent"
25765
+ "label": "OKLCh",
25766
+ "value": "oklch"
25383
25767
  },
25384
25768
  {
25385
- "label": "Mirror",
25386
- "value": "mirror"
25769
+ "label": "OKLAB",
25770
+ "value": "oklab"
25387
25771
  },
25388
25772
  {
25389
- "label": "Wrap",
25390
- "value": "wrap"
25773
+ "label": "HSL",
25774
+ "value": "hsl"
25775
+ },
25776
+ {
25777
+ "label": "HSV",
25778
+ "value": "hsv"
25779
+ },
25780
+ {
25781
+ "label": "LCH",
25782
+ "value": "lch"
25391
25783
  }
25392
25784
  ],
25393
- "label": "Edges",
25394
- "group": "Effect"
25785
+ "label": "Color Space",
25786
+ "group": "Colors"
25395
25787
  }
25396
25788
  }
25397
- },
25398
- "requiresRTT": true,
25399
- "requiresChild": true
25789
+ }
25400
25790
  },
25401
25791
  "propsMetadata": {
25402
- "center": {
25792
+ "colorA": {
25403
25793
  "ui": {
25404
- "type": "position",
25405
- "label": "Center",
25406
- "group": "Position"
25794
+ "type": "color",
25795
+ "label": "Color A",
25796
+ "group": "Colors"
25407
25797
  },
25408
- "default": {
25409
- "x": 0.5,
25410
- "y": 0.5
25798
+ "default": "#7c5cff",
25799
+ "description": "Base cube color"
25800
+ },
25801
+ "colorB": {
25802
+ "ui": {
25803
+ "type": "color",
25804
+ "label": "Color B",
25805
+ "group": "Colors"
25411
25806
  },
25412
- "description": "The center point of the kaleidoscope effect"
25807
+ "default": "#ff5c9d",
25808
+ "description": "Second cube color, mixed in per-cube for variation"
25413
25809
  },
25414
- "segments": {
25810
+ "lineColor": {
25811
+ "ui": {
25812
+ "type": "color",
25813
+ "label": "Edges",
25814
+ "group": "Colors"
25815
+ },
25816
+ "default": "#000000",
25817
+ "description": "Color of the cube edge lines"
25818
+ },
25819
+ "cells": {
25415
25820
  "ui": {
25416
25821
  "type": [
25417
25822
  "range",
25418
25823
  "map"
25419
25824
  ],
25420
- "min": 2,
25421
- "max": 24,
25825
+ "min": 1,
25826
+ "max": 30,
25422
25827
  "step": 1,
25423
- "label": "Segments",
25828
+ "label": "Cells",
25424
25829
  "group": "Effect"
25425
25830
  },
25426
25831
  "default": 6,
25427
- "description": "Number of radial segments in the kaleidoscope"
25832
+ "description": "Number of cubes across the shortest canvas edge"
25428
25833
  },
25429
- "angle": {
25834
+ "thickness": {
25835
+ "ui": {
25836
+ "type": [
25837
+ "range",
25838
+ "map"
25839
+ ],
25840
+ "min": 0,
25841
+ "max": 10,
25842
+ "step": 0.1,
25843
+ "label": "Thickness",
25844
+ "group": "Effect"
25845
+ },
25846
+ "default": 1,
25847
+ "description": "Thickness of the cube edge lines (0 = no edges)"
25848
+ },
25849
+ "rotation": {
25430
25850
  "ui": {
25431
25851
  "type": [
25432
25852
  "range",
@@ -25435,16 +25855,214 @@ export const shaderRegistry = [
25435
25855
  "min": 0,
25436
25856
  "max": 360,
25437
25857
  "step": 1,
25438
- "label": "Angle",
25858
+ "label": "Rotation",
25439
25859
  "group": "Effect"
25440
25860
  },
25441
25861
  "default": 0,
25442
- "description": "Rotation offset for the entire kaleidoscope pattern"
25862
+ "description": "Rotation of the tiling in degrees"
25443
25863
  },
25444
- "edges": {
25864
+ "softness": {
25445
25865
  "ui": {
25446
- "type": "select",
25447
- "options": [
25866
+ "type": [
25867
+ "range",
25868
+ "map"
25869
+ ],
25870
+ "min": 0,
25871
+ "max": 1,
25872
+ "step": 0.01,
25873
+ "label": "Softness",
25874
+ "group": "Effect"
25875
+ },
25876
+ "default": 0,
25877
+ "description": "Softness of the edge lines (0 = crisp, 1 = very soft)"
25878
+ },
25879
+ "colorVariation": {
25880
+ "ui": {
25881
+ "type": [
25882
+ "range",
25883
+ "map"
25884
+ ],
25885
+ "min": 0,
25886
+ "max": 1,
25887
+ "step": 0.01,
25888
+ "label": "Variation",
25889
+ "group": "Colors"
25890
+ },
25891
+ "default": 1,
25892
+ "description": "Per-cube random blend between the two colors (0 = uniform cubes, the clean 3D look)"
25893
+ },
25894
+ "colorSpace": {
25895
+ "ui": {
25896
+ "type": "select",
25897
+ "options": [
25898
+ {
25899
+ "label": "Linear RGB",
25900
+ "value": "linear"
25901
+ },
25902
+ {
25903
+ "label": "OKLCh",
25904
+ "value": "oklch"
25905
+ },
25906
+ {
25907
+ "label": "OKLAB",
25908
+ "value": "oklab"
25909
+ },
25910
+ {
25911
+ "label": "HSL",
25912
+ "value": "hsl"
25913
+ },
25914
+ {
25915
+ "label": "HSV",
25916
+ "value": "hsv"
25917
+ },
25918
+ {
25919
+ "label": "LCH",
25920
+ "value": "lch"
25921
+ }
25922
+ ],
25923
+ "label": "Color Space",
25924
+ "group": "Colors"
25925
+ },
25926
+ "default": "linear",
25927
+ "description": "Color space for color interpolation"
25928
+ }
25929
+ }
25930
+ },
25931
+ {
25932
+ "name": "Kaleidoscope",
25933
+ "category": "Distortions",
25934
+ "description": "Create a kaleidoscope effect with radial mirrored segments",
25935
+ "fileName": "Kaleidoscope",
25936
+ "requiresChild": true,
25937
+ "definition": {
25938
+ "name": "Kaleidoscope",
25939
+ "category": "Distortions",
25940
+ "description": "Create a kaleidoscope effect with radial mirrored segments",
25941
+ "boundingBoxDeclaration": {
25942
+ "aspectRatio": null
25943
+ },
25944
+ "props": {
25945
+ "center": {
25946
+ "default": {
25947
+ "x": 0.5,
25948
+ "y": 0.5
25949
+ },
25950
+ "description": "The center point of the kaleidoscope effect",
25951
+ "ui": {
25952
+ "type": "position",
25953
+ "label": "Center",
25954
+ "group": "Position"
25955
+ }
25956
+ },
25957
+ "segments": {
25958
+ "default": 6,
25959
+ "description": "Number of radial segments in the kaleidoscope",
25960
+ "ui": {
25961
+ "type": [
25962
+ "range",
25963
+ "map"
25964
+ ],
25965
+ "min": 2,
25966
+ "max": 24,
25967
+ "step": 1,
25968
+ "label": "Segments",
25969
+ "group": "Effect"
25970
+ }
25971
+ },
25972
+ "angle": {
25973
+ "default": 0,
25974
+ "description": "Rotation offset for the entire kaleidoscope pattern",
25975
+ "ui": {
25976
+ "type": [
25977
+ "range",
25978
+ "map"
25979
+ ],
25980
+ "min": 0,
25981
+ "max": 360,
25982
+ "step": 1,
25983
+ "label": "Angle",
25984
+ "group": "Effect"
25985
+ }
25986
+ },
25987
+ "edges": {
25988
+ "default": "mirror",
25989
+ "description": "How to handle edges when distortion pushes content out of bounds",
25990
+ "compileTime": true,
25991
+ "ui": {
25992
+ "type": "select",
25993
+ "options": [
25994
+ {
25995
+ "label": "Stretch",
25996
+ "value": "stretch"
25997
+ },
25998
+ {
25999
+ "label": "Transparent",
26000
+ "value": "transparent"
26001
+ },
26002
+ {
26003
+ "label": "Mirror",
26004
+ "value": "mirror"
26005
+ },
26006
+ {
26007
+ "label": "Wrap",
26008
+ "value": "wrap"
26009
+ }
26010
+ ],
26011
+ "label": "Edges",
26012
+ "group": "Effect"
26013
+ }
26014
+ }
26015
+ },
26016
+ "requiresRTT": true,
26017
+ "requiresChild": true
26018
+ },
26019
+ "propsMetadata": {
26020
+ "center": {
26021
+ "ui": {
26022
+ "type": "position",
26023
+ "label": "Center",
26024
+ "group": "Position"
26025
+ },
26026
+ "default": {
26027
+ "x": 0.5,
26028
+ "y": 0.5
26029
+ },
26030
+ "description": "The center point of the kaleidoscope effect"
26031
+ },
26032
+ "segments": {
26033
+ "ui": {
26034
+ "type": [
26035
+ "range",
26036
+ "map"
26037
+ ],
26038
+ "min": 2,
26039
+ "max": 24,
26040
+ "step": 1,
26041
+ "label": "Segments",
26042
+ "group": "Effect"
26043
+ },
26044
+ "default": 6,
26045
+ "description": "Number of radial segments in the kaleidoscope"
26046
+ },
26047
+ "angle": {
26048
+ "ui": {
26049
+ "type": [
26050
+ "range",
26051
+ "map"
26052
+ ],
26053
+ "min": 0,
26054
+ "max": 360,
26055
+ "step": 1,
26056
+ "label": "Angle",
26057
+ "group": "Effect"
26058
+ },
26059
+ "default": 0,
26060
+ "description": "Rotation offset for the entire kaleidoscope pattern"
26061
+ },
26062
+ "edges": {
26063
+ "ui": {
26064
+ "type": "select",
26065
+ "options": [
25448
26066
  {
25449
26067
  "label": "Stretch",
25450
26068
  "value": "stretch"
@@ -33319,80 +33937,238 @@ export const shaderRegistry = [
33319
33937
  }
33320
33938
  },
33321
33939
  {
33322
- "name": "PagePeel",
33323
- "category": "Transitions",
33324
- "description": "Curl the content up from a corner like a peeling page",
33325
- "fileName": "PagePeel",
33326
- "requiresChild": true,
33940
+ "name": "Obsidian",
33941
+ "category": "Shape Effects",
33942
+ "description": "Dark tinted glass whose faces stay near-black while every surface turning away from the viewer ignites with a flowing iridescent gradient — vivid colour living only on the oblique walls and bevels",
33943
+ "fileName": "Obsidian",
33327
33944
  "definition": {
33328
- "name": "PagePeel",
33329
- "category": "Transitions",
33330
- "description": "Curl the content up from a corner like a peeling page",
33945
+ "name": "Obsidian",
33331
33946
  "boundingBoxDeclaration": {
33332
- "aspectRatio": null
33333
- },
33334
- "props": {
33335
- "corner": {
33336
- "default": "bottom-right",
33337
- "description": "Which corner the page peels from",
33338
- "compileTime": true,
33339
- "ui": {
33340
- "type": "select",
33341
- "options": [
33342
- {
33343
- "label": "Top Left",
33344
- "value": "top-left"
33345
- },
33346
- {
33347
- "label": "Top Right",
33348
- "value": "top-right"
33349
- },
33350
- {
33351
- "label": "Bottom Left",
33352
- "value": "bottom-left"
33353
- },
33354
- {
33355
- "label": "Bottom Right",
33356
- "value": "bottom-right"
33357
- }
33358
- ],
33359
- "label": "Corner",
33360
- "group": "Effect"
33947
+ "propBindings": {
33948
+ "x": {
33949
+ "prop": "center",
33950
+ "as": "position-x"
33951
+ },
33952
+ "y": {
33953
+ "prop": "center",
33954
+ "as": "position-y"
33955
+ },
33956
+ "rotation": {
33957
+ "prop": "rotation",
33958
+ "as": "degrees"
33361
33959
  }
33362
- },
33363
- "amount": {
33364
- "default": 0.2,
33365
- "description": "How far the peel has progressed across the page (0 = flat, 1 = fully peeled)",
33366
- "ui": {
33367
- "type": [
33368
- "range",
33369
- "map"
33370
- ],
33371
- "min": 0,
33372
- "max": 1,
33960
+ }
33961
+ },
33962
+ "category": "Shape Effects",
33963
+ "description": "Dark tinted glass whose faces stay near-black while every surface turning away from the viewer ignites with a flowing iridescent gradient — vivid colour living only on the oblique walls and bevels",
33964
+ "animatedTime": {
33965
+ "speed": "speed"
33966
+ },
33967
+ "extraFields": {
33968
+ "_vfOriginX": {
33969
+ "initial": 0
33970
+ },
33971
+ "_vfOriginY": {
33972
+ "initial": 0
33973
+ },
33974
+ "_vfSpanX": {
33975
+ "initial": 1
33976
+ },
33977
+ "_vfSpanY": {
33978
+ "initial": 1
33979
+ },
33980
+ "_vfActiveRes": {
33981
+ "initial": 1
33982
+ },
33983
+ "_vfRBound": {
33984
+ "initial": 0.6
33985
+ },
33986
+ "_saRadius": {
33987
+ "initial": 0.35
33988
+ },
33989
+ "_saSides": {
33990
+ "initial": 6
33991
+ },
33992
+ "_saRounding": {
33993
+ "initial": 0
33994
+ },
33995
+ "_saInnerRatio": {
33996
+ "initial": 0.4
33997
+ },
33998
+ "_saRotation": {
33999
+ "initial": 0
34000
+ },
34001
+ "_saHeight": {
34002
+ "initial": 0.25
34003
+ },
34004
+ "_saOffset": {
34005
+ "initial": 0.2
34006
+ },
34007
+ "_saAperture": {
34008
+ "initial": 270
34009
+ }
34010
+ },
34011
+ "props": {
34012
+ "origin": {
34013
+ "default": "center",
34014
+ "description": "Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre.",
34015
+ "ui": {
34016
+ "type": "origin",
34017
+ "label": "Origin",
34018
+ "group": "Position"
34019
+ }
34020
+ },
34021
+ "center": {
34022
+ "default": {
34023
+ "x": 0.5,
34024
+ "y": 0.5
34025
+ },
34026
+ "description": "Center position of the glass shape",
34027
+ "ui": {
34028
+ "type": "position",
34029
+ "label": "Center",
34030
+ "group": "Position",
34031
+ "units": [
34032
+ "%",
34033
+ "px"
34034
+ ]
34035
+ }
34036
+ },
34037
+ "scale": {
34038
+ "default": 1,
34039
+ "description": "Scale of the glass shape (1 = default size)",
34040
+ "ui": {
34041
+ "type": "range",
34042
+ "min": 0.1,
34043
+ "max": 3,
33373
34044
  "step": 0.01,
33374
- "label": "Amount",
33375
- "group": "Effect"
34045
+ "label": "Scale",
34046
+ "group": "Position"
33376
34047
  }
33377
34048
  },
33378
- "radius": {
33379
- "default": 0.2,
33380
- "description": "Tightness of the curl (fraction of the page diagonal)",
34049
+ "rotation": {
34050
+ "default": 0,
34051
+ "description": "Rotation of the glass shape in degrees",
34052
+ "ui": {
34053
+ "type": "range",
34054
+ "min": 0,
34055
+ "max": 360,
34056
+ "step": 1,
34057
+ "label": "Rotation",
34058
+ "group": "Position"
34059
+ }
34060
+ },
34061
+ "bodyColor": {
34062
+ "default": "#06071a",
34063
+ "description": "The dark body of the glass — what the faces looking straight at you show. Keep it deep for the iridescence to pop.",
34064
+ "ui": {
34065
+ "type": "color",
34066
+ "label": "Body Color",
34067
+ "group": "Colors"
34068
+ }
34069
+ },
34070
+ "colorA": {
34071
+ "default": "#ff2f7a",
34072
+ "description": "First iridescent color (two-color fallback when stops are cleared)",
34073
+ "ui": {
34074
+ "type": "color",
34075
+ "label": "Color A",
34076
+ "group": "Colors"
34077
+ }
34078
+ },
34079
+ "colorB": {
34080
+ "default": "#5fe6ff",
34081
+ "description": "Second iridescent color (two-color fallback when stops are cleared)",
34082
+ "ui": {
34083
+ "type": "color",
34084
+ "label": "Color B",
34085
+ "group": "Colors"
34086
+ }
34087
+ },
34088
+ "stops": {
34089
+ "default": [
34090
+ {
34091
+ "color": "#ff2f7a",
34092
+ "position": 0
34093
+ },
34094
+ {
34095
+ "color": "#2a2cff",
34096
+ "position": 0.3
34097
+ },
34098
+ {
34099
+ "color": "#5fe6ff",
34100
+ "position": 0.55
34101
+ },
34102
+ {
34103
+ "color": "#a6ffd8",
34104
+ "position": 0.75
34105
+ },
34106
+ {
34107
+ "color": "#ffb3e6",
34108
+ "position": 1
34109
+ }
34110
+ ],
34111
+ "description": "Multi-stop gradient colors (overrides Color A / Color B when set)",
34112
+ "ui": {
34113
+ "type": "gradient-stops",
34114
+ "label": "Colors",
34115
+ "group": "Colors"
34116
+ }
34117
+ },
34118
+ "colorSpace": {
34119
+ "default": "oklab",
34120
+ "compileTime": true,
34121
+ "description": "Color space for color interpolation",
34122
+ "ui": {
34123
+ "type": "select",
34124
+ "options": [
34125
+ {
34126
+ "label": "Linear RGB",
34127
+ "value": "linear"
34128
+ },
34129
+ {
34130
+ "label": "OKLCh",
34131
+ "value": "oklch"
34132
+ },
34133
+ {
34134
+ "label": "OKLAB",
34135
+ "value": "oklab"
34136
+ },
34137
+ {
34138
+ "label": "HSL",
34139
+ "value": "hsl"
34140
+ },
34141
+ {
34142
+ "label": "HSV",
34143
+ "value": "hsv"
34144
+ },
34145
+ {
34146
+ "label": "LCH",
34147
+ "value": "lch"
34148
+ }
34149
+ ],
34150
+ "label": "Color Space",
34151
+ "group": "Colors"
34152
+ }
34153
+ },
34154
+ "iridescence": {
34155
+ "default": 1,
34156
+ "description": "Strength of the colour on the oblique surfaces — 0 = plain dark glass, above 1 = saturated neon walls",
33381
34157
  "ui": {
33382
34158
  "type": [
33383
34159
  "range",
33384
34160
  "map"
33385
34161
  ],
33386
- "min": 0.02,
33387
- "max": 0.4,
34162
+ "min": 0,
34163
+ "max": 1.5,
33388
34164
  "step": 0.01,
33389
- "label": "Curl Radius",
33390
- "group": "Effect"
34165
+ "label": "Iridescence",
34166
+ "group": "Iridescence"
33391
34167
  }
33392
34168
  },
33393
- "shading": {
34169
+ "rimWidth": {
33394
34170
  "default": 0.55,
33395
- "description": "How much the underside of the curl is shaded for depth",
34171
+ "description": "How far in from edge-on the colour reaches — small keeps it to the steepest walls, large lets it creep across gently turning faces",
33396
34172
  "ui": {
33397
34173
  "type": [
33398
34174
  "range",
@@ -33401,163 +34177,426 @@ export const shaderRegistry = [
33401
34177
  "min": 0,
33402
34178
  "max": 1,
33403
34179
  "step": 0.01,
33404
- "label": "Shading",
33405
- "group": "Effect"
34180
+ "label": "Rim Width",
34181
+ "group": "Iridescence"
33406
34182
  }
33407
34183
  },
33408
- "highlight": {
33409
- "default": 0.4,
33410
- "description": "Strength of the specular sheen running along the curl",
34184
+ "rimSoftness": {
34185
+ "default": 0.25,
34186
+ "description": "Softness of the transition from dark face to coloured wall",
33411
34187
  "ui": {
33412
34188
  "type": [
33413
34189
  "range",
33414
34190
  "map"
33415
34191
  ],
33416
- "min": 0,
33417
- "max": 1,
34192
+ "min": 0.02,
34193
+ "max": 0.6,
33418
34194
  "step": 0.01,
33419
- "label": "Highlight",
33420
- "group": "Effect"
34195
+ "label": "Rim Softness",
34196
+ "group": "Iridescence"
33421
34197
  }
33422
34198
  },
33423
- "highlightSoftness": {
33424
- "default": 0.2,
33425
- "description": "Width of the specular highlight band (low = tight gloss, high = broad satin)",
34199
+ "flowAngle": {
34200
+ "default": 30,
34201
+ "description": "Direction the gradient flows across the surface, in degrees",
34202
+ "ui": {
34203
+ "type": "range",
34204
+ "min": 0,
34205
+ "max": 360,
34206
+ "step": 1,
34207
+ "label": "Flow Angle",
34208
+ "group": "Iridescence"
34209
+ }
34210
+ },
34211
+ "flowScale": {
34212
+ "default": 1,
34213
+ "description": "How many times the palette cycles across the shape — higher = tighter colour bands",
33426
34214
  "ui": {
33427
34215
  "type": [
33428
34216
  "range",
33429
34217
  "map"
33430
34218
  ],
34219
+ "min": 0.2,
34220
+ "max": 4,
34221
+ "step": 0.01,
34222
+ "label": "Flow Scale",
34223
+ "group": "Iridescence"
34224
+ }
34225
+ },
34226
+ "speed": {
34227
+ "default": 0.5,
34228
+ "description": "Speed the gradient flows along the walls. 0 pauses.",
34229
+ "ui": {
34230
+ "type": "range",
33431
34231
  "min": 0,
33432
- "max": 1,
34232
+ "max": 4,
33433
34233
  "step": 0.01,
33434
- "label": "Highlight Softness",
33435
- "group": "Effect"
34234
+ "label": "Speed",
34235
+ "group": "Iridescence"
33436
34236
  }
33437
34237
  },
33438
- "shadow": {
33439
- "default": 1,
33440
- "description": "Strength of the contact shadow the curl casts on the page",
34238
+ "gloss": {
34239
+ "default": 0.35,
34240
+ "description": "Strength of the studio softboxes reflected in the glass the pale highlights riding the top edges",
33441
34241
  "ui": {
33442
34242
  "type": [
33443
34243
  "range",
33444
34244
  "map"
33445
34245
  ],
33446
34246
  "min": 0,
33447
- "max": 1,
34247
+ "max": 2,
33448
34248
  "step": 0.01,
33449
- "label": "Shadow",
33450
- "group": "Effect"
34249
+ "label": "Gloss",
34250
+ "group": "Surface"
33451
34251
  }
33452
- }
33453
- },
33454
- "requiresRTT": true,
33455
- "requiresChild": true
33456
- },
33457
- "propsMetadata": {
33458
- "corner": {
33459
- "ui": {
33460
- "type": "select",
33461
- "options": [
33462
- {
33463
- "label": "Top Left",
33464
- "value": "top-left"
34252
+ },
34253
+ "envRotation": {
34254
+ "default": 0,
34255
+ "description": "Rotates the reflected studio — spins where the bright reflections fall",
34256
+ "ui": {
34257
+ "type": "range",
34258
+ "min": 0,
34259
+ "max": 360,
34260
+ "step": 1,
34261
+ "label": "Env Rotation",
34262
+ "group": "Surface"
34263
+ }
34264
+ },
34265
+ "bevelWidth": {
34266
+ "default": 0.08,
34267
+ "description": "Width of the edge bevel on flat shapes — the band that turns away from the viewer and catches the colour",
34268
+ "ui": {
34269
+ "type": [
34270
+ "range",
34271
+ "map"
34272
+ ],
34273
+ "min": 0.005,
34274
+ "max": 0.3,
34275
+ "step": 0.001,
34276
+ "label": "Bevel Width",
34277
+ "group": "Surface"
34278
+ }
34279
+ },
34280
+ "bevelShape": {
34281
+ "default": 0,
34282
+ "description": "Bevel profile — 0 = one smooth round fillet, 1 = machined: a steep outer fillet, a chamfer plateau and an inner knee",
34283
+ "ui": {
34284
+ "type": [
34285
+ "range",
34286
+ "map"
34287
+ ],
34288
+ "min": 0,
34289
+ "max": 1,
34290
+ "step": 0.01,
34291
+ "label": "Bevel Profile",
34292
+ "group": "Surface"
34293
+ }
34294
+ },
34295
+ "edgeSoftness": {
34296
+ "default": 0.05,
34297
+ "description": "Softness of the shape boundary edge",
34298
+ "ui": {
34299
+ "type": [
34300
+ "range",
34301
+ "map"
34302
+ ],
34303
+ "min": 0,
34304
+ "max": 1,
34305
+ "step": 0.01,
34306
+ "label": "Edge Softness",
34307
+ "group": "Surface"
34308
+ }
34309
+ },
34310
+ "shape": {
34311
+ "default": "{\"type\":\"circleSDF\",\"radius\":0.35}",
34312
+ "description": "Serialized shape configuration (JSON)",
34313
+ "ui": {
34314
+ "type": "shape",
34315
+ "label": "Shape",
34316
+ "group": "Shape"
34317
+ }
34318
+ },
34319
+ "shapeSdfUrl": {
34320
+ "default": "",
34321
+ "compileTime": true,
34322
+ "description": "URL to a pre-generated SDF .bin file"
34323
+ },
34324
+ "shapeType": {
34325
+ "default": "",
34326
+ "compileTime": true,
34327
+ "description": "Active SDF shape type"
34328
+ }
34329
+ }
34330
+ },
34331
+ "propsMetadata": {
34332
+ "origin": {
34333
+ "ui": {
34334
+ "type": "origin",
34335
+ "label": "Origin",
34336
+ "group": "Position"
34337
+ },
34338
+ "default": "center",
34339
+ "description": "Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre."
34340
+ },
34341
+ "center": {
34342
+ "ui": {
34343
+ "type": "position",
34344
+ "label": "Center",
34345
+ "group": "Position",
34346
+ "units": [
34347
+ "%",
34348
+ "px"
34349
+ ]
34350
+ },
34351
+ "default": {
34352
+ "x": 0.5,
34353
+ "y": 0.5
34354
+ },
34355
+ "description": "Center position of the glass shape"
34356
+ },
34357
+ "scale": {
34358
+ "ui": {
34359
+ "type": "range",
34360
+ "min": 0.1,
34361
+ "max": 3,
34362
+ "step": 0.01,
34363
+ "label": "Scale",
34364
+ "group": "Position"
34365
+ },
34366
+ "default": 1,
34367
+ "description": "Scale of the glass shape (1 = default size)"
34368
+ },
34369
+ "rotation": {
34370
+ "ui": {
34371
+ "type": "range",
34372
+ "min": 0,
34373
+ "max": 360,
34374
+ "step": 1,
34375
+ "label": "Rotation",
34376
+ "group": "Position"
34377
+ },
34378
+ "default": 0,
34379
+ "description": "Rotation of the glass shape in degrees"
34380
+ },
34381
+ "bodyColor": {
34382
+ "ui": {
34383
+ "type": "color",
34384
+ "label": "Body Color",
34385
+ "group": "Colors"
34386
+ },
34387
+ "default": "#06071a",
34388
+ "description": "The dark body of the glass — what the faces looking straight at you show. Keep it deep for the iridescence to pop."
34389
+ },
34390
+ "colorA": {
34391
+ "ui": {
34392
+ "type": "color",
34393
+ "label": "Color A",
34394
+ "group": "Colors"
34395
+ },
34396
+ "default": "#ff2f7a",
34397
+ "description": "First iridescent color (two-color fallback when stops are cleared)"
34398
+ },
34399
+ "colorB": {
34400
+ "ui": {
34401
+ "type": "color",
34402
+ "label": "Color B",
34403
+ "group": "Colors"
34404
+ },
34405
+ "default": "#5fe6ff",
34406
+ "description": "Second iridescent color (two-color fallback when stops are cleared)"
34407
+ },
34408
+ "stops": {
34409
+ "ui": {
34410
+ "type": "gradient-stops",
34411
+ "label": "Colors",
34412
+ "group": "Colors"
34413
+ },
34414
+ "default": [
34415
+ {
34416
+ "color": "#ff2f7a",
34417
+ "position": 0
34418
+ },
34419
+ {
34420
+ "color": "#2a2cff",
34421
+ "position": 0.3
34422
+ },
34423
+ {
34424
+ "color": "#5fe6ff",
34425
+ "position": 0.55
34426
+ },
34427
+ {
34428
+ "color": "#a6ffd8",
34429
+ "position": 0.75
34430
+ },
34431
+ {
34432
+ "color": "#ffb3e6",
34433
+ "position": 1
34434
+ }
34435
+ ],
34436
+ "description": "Multi-stop gradient colors (overrides Color A / Color B when set)"
34437
+ },
34438
+ "colorSpace": {
34439
+ "ui": {
34440
+ "type": "select",
34441
+ "options": [
34442
+ {
34443
+ "label": "Linear RGB",
34444
+ "value": "linear"
33465
34445
  },
33466
34446
  {
33467
- "label": "Top Right",
33468
- "value": "top-right"
34447
+ "label": "OKLCh",
34448
+ "value": "oklch"
33469
34449
  },
33470
34450
  {
33471
- "label": "Bottom Left",
33472
- "value": "bottom-left"
34451
+ "label": "OKLAB",
34452
+ "value": "oklab"
33473
34453
  },
33474
34454
  {
33475
- "label": "Bottom Right",
33476
- "value": "bottom-right"
34455
+ "label": "HSL",
34456
+ "value": "hsl"
34457
+ },
34458
+ {
34459
+ "label": "HSV",
34460
+ "value": "hsv"
34461
+ },
34462
+ {
34463
+ "label": "LCH",
34464
+ "value": "lch"
33477
34465
  }
33478
34466
  ],
33479
- "label": "Corner",
33480
- "group": "Effect"
34467
+ "label": "Color Space",
34468
+ "group": "Colors"
33481
34469
  },
33482
- "default": "bottom-right",
33483
- "description": "Which corner the page peels from"
34470
+ "default": "oklab",
34471
+ "description": "Color space for color interpolation"
33484
34472
  },
33485
- "amount": {
34473
+ "iridescence": {
33486
34474
  "ui": {
33487
34475
  "type": [
33488
34476
  "range",
33489
34477
  "map"
33490
34478
  ],
33491
34479
  "min": 0,
33492
- "max": 1,
34480
+ "max": 1.5,
33493
34481
  "step": 0.01,
33494
- "label": "Amount",
33495
- "group": "Effect"
34482
+ "label": "Iridescence",
34483
+ "group": "Iridescence"
33496
34484
  },
33497
- "default": 0.2,
33498
- "description": "How far the peel has progressed across the page (0 = flat, 1 = fully peeled)"
34485
+ "default": 1,
34486
+ "description": "Strength of the colour on the oblique surfaces 0 = plain dark glass, above 1 = saturated neon walls"
33499
34487
  },
33500
- "radius": {
34488
+ "rimWidth": {
33501
34489
  "ui": {
33502
34490
  "type": [
33503
34491
  "range",
33504
34492
  "map"
33505
34493
  ],
33506
- "min": 0.02,
33507
- "max": 0.4,
34494
+ "min": 0,
34495
+ "max": 1,
33508
34496
  "step": 0.01,
33509
- "label": "Curl Radius",
33510
- "group": "Effect"
34497
+ "label": "Rim Width",
34498
+ "group": "Iridescence"
33511
34499
  },
33512
- "default": 0.2,
33513
- "description": "Tightness of the curl (fraction of the page diagonal)"
34500
+ "default": 0.55,
34501
+ "description": "How far in from edge-on the colour reaches small keeps it to the steepest walls, large lets it creep across gently turning faces"
33514
34502
  },
33515
- "shading": {
34503
+ "rimSoftness": {
33516
34504
  "ui": {
33517
34505
  "type": [
33518
34506
  "range",
33519
34507
  "map"
33520
34508
  ],
33521
- "min": 0,
33522
- "max": 1,
34509
+ "min": 0.02,
34510
+ "max": 0.6,
33523
34511
  "step": 0.01,
33524
- "label": "Shading",
33525
- "group": "Effect"
34512
+ "label": "Rim Softness",
34513
+ "group": "Iridescence"
33526
34514
  },
33527
- "default": 0.55,
33528
- "description": "How much the underside of the curl is shaded for depth"
34515
+ "default": 0.25,
34516
+ "description": "Softness of the transition from dark face to coloured wall"
33529
34517
  },
33530
- "highlight": {
34518
+ "flowAngle": {
33531
34519
  "ui": {
33532
- "type": [
33533
- "range",
33534
- "map"
33535
- ],
34520
+ "type": "range",
33536
34521
  "min": 0,
33537
- "max": 1,
33538
- "step": 0.01,
33539
- "label": "Highlight",
33540
- "group": "Effect"
34522
+ "max": 360,
34523
+ "step": 1,
34524
+ "label": "Flow Angle",
34525
+ "group": "Iridescence"
33541
34526
  },
33542
- "default": 0.4,
33543
- "description": "Strength of the specular sheen running along the curl"
34527
+ "default": 30,
34528
+ "description": "Direction the gradient flows across the surface, in degrees"
33544
34529
  },
33545
- "highlightSoftness": {
34530
+ "flowScale": {
33546
34531
  "ui": {
33547
34532
  "type": [
33548
34533
  "range",
33549
34534
  "map"
33550
34535
  ],
33551
- "min": 0,
33552
- "max": 1,
34536
+ "min": 0.2,
34537
+ "max": 4,
33553
34538
  "step": 0.01,
33554
- "label": "Highlight Softness",
33555
- "group": "Effect"
34539
+ "label": "Flow Scale",
34540
+ "group": "Iridescence"
33556
34541
  },
33557
- "default": 0.2,
33558
- "description": "Width of the specular highlight band (low = tight gloss, high = broad satin)"
34542
+ "default": 1,
34543
+ "description": "How many times the palette cycles across the shape higher = tighter colour bands"
33559
34544
  },
33560
- "shadow": {
34545
+ "speed": {
34546
+ "ui": {
34547
+ "type": "range",
34548
+ "min": 0,
34549
+ "max": 4,
34550
+ "step": 0.01,
34551
+ "label": "Speed",
34552
+ "group": "Iridescence"
34553
+ },
34554
+ "default": 0.5,
34555
+ "description": "Speed the gradient flows along the walls. 0 pauses."
34556
+ },
34557
+ "gloss": {
34558
+ "ui": {
34559
+ "type": [
34560
+ "range",
34561
+ "map"
34562
+ ],
34563
+ "min": 0,
34564
+ "max": 2,
34565
+ "step": 0.01,
34566
+ "label": "Gloss",
34567
+ "group": "Surface"
34568
+ },
34569
+ "default": 0.35,
34570
+ "description": "Strength of the studio softboxes reflected in the glass — the pale highlights riding the top edges"
34571
+ },
34572
+ "envRotation": {
34573
+ "ui": {
34574
+ "type": "range",
34575
+ "min": 0,
34576
+ "max": 360,
34577
+ "step": 1,
34578
+ "label": "Env Rotation",
34579
+ "group": "Surface"
34580
+ },
34581
+ "default": 0,
34582
+ "description": "Rotates the reflected studio — spins where the bright reflections fall"
34583
+ },
34584
+ "bevelWidth": {
34585
+ "ui": {
34586
+ "type": [
34587
+ "range",
34588
+ "map"
34589
+ ],
34590
+ "min": 0.005,
34591
+ "max": 0.3,
34592
+ "step": 0.001,
34593
+ "label": "Bevel Width",
34594
+ "group": "Surface"
34595
+ },
34596
+ "default": 0.08,
34597
+ "description": "Width of the edge bevel on flat shapes — the band that turns away from the viewer and catches the colour"
34598
+ },
34599
+ "bevelShape": {
33561
34600
  "ui": {
33562
34601
  "type": [
33563
34602
  "range",
@@ -33566,105 +34605,385 @@ export const shaderRegistry = [
33566
34605
  "min": 0,
33567
34606
  "max": 1,
33568
34607
  "step": 0.01,
33569
- "label": "Shadow",
33570
- "group": "Effect"
34608
+ "label": "Bevel Profile",
34609
+ "group": "Surface"
33571
34610
  },
33572
- "default": 1,
33573
- "description": "Strength of the contact shadow the curl casts on the page"
34611
+ "default": 0,
34612
+ "description": "Bevel profile 0 = one smooth round fillet, 1 = machined: a steep outer fillet, a chamfer plateau and an inner knee"
34613
+ },
34614
+ "edgeSoftness": {
34615
+ "ui": {
34616
+ "type": [
34617
+ "range",
34618
+ "map"
34619
+ ],
34620
+ "min": 0,
34621
+ "max": 1,
34622
+ "step": 0.01,
34623
+ "label": "Edge Softness",
34624
+ "group": "Surface"
34625
+ },
34626
+ "default": 0.05,
34627
+ "description": "Softness of the shape boundary edge"
34628
+ },
34629
+ "shape": {
34630
+ "ui": {
34631
+ "type": "shape",
34632
+ "label": "Shape",
34633
+ "group": "Shape"
34634
+ },
34635
+ "default": "{\"type\":\"circleSDF\",\"radius\":0.35}",
34636
+ "description": "Serialized shape configuration (JSON)"
33574
34637
  }
33575
34638
  }
33576
34639
  },
33577
34640
  {
33578
- "name": "Paper",
33579
- "category": "Stylize",
33580
- "description": "Applies realistic paper grain and surface roughness to child content",
33581
- "fileName": "Paper",
34641
+ "name": "PagePeel",
34642
+ "category": "Transitions",
34643
+ "description": "Curl the content up from a corner like a peeling page",
34644
+ "fileName": "PagePeel",
33582
34645
  "requiresChild": true,
33583
34646
  "definition": {
33584
- "name": "Paper",
34647
+ "name": "PagePeel",
34648
+ "category": "Transitions",
34649
+ "description": "Curl the content up from a corner like a peeling page",
33585
34650
  "boundingBoxDeclaration": {
33586
34651
  "aspectRatio": null
33587
34652
  },
33588
- "category": "Stylize",
33589
- "description": "Applies realistic paper grain and surface roughness to child content",
33590
- "requiresRTT": true,
33591
- "requiresChild": true,
33592
34653
  "props": {
33593
- "roughness": {
33594
- "default": 0.3,
33595
- "description": "Surface roughness higher values create more pronounced brightness variation",
34654
+ "corner": {
34655
+ "default": "bottom-right",
34656
+ "description": "Which corner the page peels from",
34657
+ "compileTime": true,
33596
34658
  "ui": {
33597
- "type": "range",
34659
+ "type": "select",
34660
+ "options": [
34661
+ {
34662
+ "label": "Top Left",
34663
+ "value": "top-left"
34664
+ },
34665
+ {
34666
+ "label": "Top Right",
34667
+ "value": "top-right"
34668
+ },
34669
+ {
34670
+ "label": "Bottom Left",
34671
+ "value": "bottom-left"
34672
+ },
34673
+ {
34674
+ "label": "Bottom Right",
34675
+ "value": "bottom-right"
34676
+ }
34677
+ ],
34678
+ "label": "Corner",
34679
+ "group": "Effect"
34680
+ }
34681
+ },
34682
+ "amount": {
34683
+ "default": 0.2,
34684
+ "description": "How far the peel has progressed across the page (0 = flat, 1 = fully peeled)",
34685
+ "ui": {
34686
+ "type": [
34687
+ "range",
34688
+ "map"
34689
+ ],
33598
34690
  "min": 0,
33599
34691
  "max": 1,
33600
34692
  "step": 0.01,
33601
- "label": "Roughness",
33602
- "group": "Texture"
34693
+ "label": "Amount",
34694
+ "group": "Effect"
33603
34695
  }
33604
34696
  },
33605
- "grainScale": {
33606
- "default": 1,
33607
- "description": "Scale of the paper grain lower = coarser, higher = finer",
34697
+ "radius": {
34698
+ "default": 0.2,
34699
+ "description": "Tightness of the curl (fraction of the page diagonal)",
33608
34700
  "ui": {
33609
- "type": "range",
33610
- "min": 0.1,
33611
- "max": 3,
34701
+ "type": [
34702
+ "range",
34703
+ "map"
34704
+ ],
34705
+ "min": 0.02,
34706
+ "max": 0.4,
33612
34707
  "step": 0.01,
33613
- "label": "Grain Scale",
33614
- "group": "Texture"
34708
+ "label": "Curl Radius",
34709
+ "group": "Effect"
33615
34710
  }
33616
34711
  },
33617
- "displacement": {
33618
- "default": 0.15,
33619
- "description": "Surface micro-roughness shifts pixels at grain scale like real paper fiber bumps",
34712
+ "shading": {
34713
+ "default": 0.55,
34714
+ "description": "How much the underside of the curl is shaded for depth",
33620
34715
  "ui": {
33621
- "type": "range",
34716
+ "type": [
34717
+ "range",
34718
+ "map"
34719
+ ],
33622
34720
  "min": 0,
33623
34721
  "max": 1,
33624
34722
  "step": 0.01,
33625
- "label": "Displacement",
33626
- "group": "Texture"
34723
+ "label": "Shading",
34724
+ "group": "Effect"
33627
34725
  }
33628
34726
  },
33629
- "seed": {
33630
- "default": 0,
33631
- "description": "Random seed for pattern variation",
34727
+ "highlight": {
34728
+ "default": 0.4,
34729
+ "description": "Strength of the specular sheen running along the curl",
33632
34730
  "ui": {
33633
- "type": "range",
34731
+ "type": [
34732
+ "range",
34733
+ "map"
34734
+ ],
33634
34735
  "min": 0,
33635
- "max": 100,
33636
- "step": 1,
33637
- "label": "Seed",
33638
- "group": "Texture"
34736
+ "max": 1,
34737
+ "step": 0.01,
34738
+ "label": "Highlight",
34739
+ "group": "Effect"
34740
+ }
34741
+ },
34742
+ "highlightSoftness": {
34743
+ "default": 0.2,
34744
+ "description": "Width of the specular highlight band (low = tight gloss, high = broad satin)",
34745
+ "ui": {
34746
+ "type": [
34747
+ "range",
34748
+ "map"
34749
+ ],
34750
+ "min": 0,
34751
+ "max": 1,
34752
+ "step": 0.01,
34753
+ "label": "Highlight Softness",
34754
+ "group": "Effect"
34755
+ }
34756
+ },
34757
+ "shadow": {
34758
+ "default": 1,
34759
+ "description": "Strength of the contact shadow the curl casts on the page",
34760
+ "ui": {
34761
+ "type": [
34762
+ "range",
34763
+ "map"
34764
+ ],
34765
+ "min": 0,
34766
+ "max": 1,
34767
+ "step": 0.01,
34768
+ "label": "Shadow",
34769
+ "group": "Effect"
33639
34770
  }
33640
34771
  }
33641
- }
34772
+ },
34773
+ "requiresRTT": true,
34774
+ "requiresChild": true
33642
34775
  },
33643
34776
  "propsMetadata": {
33644
- "roughness": {
33645
- "ui": {
33646
- "type": "range",
33647
- "min": 0,
33648
- "max": 1,
33649
- "step": 0.01,
33650
- "label": "Roughness",
33651
- "group": "Texture"
33652
- },
33653
- "default": 0.3,
33654
- "description": "Surface roughness — higher values create more pronounced brightness variation"
33655
- },
33656
- "grainScale": {
34777
+ "corner": {
33657
34778
  "ui": {
33658
- "type": "range",
33659
- "min": 0.1,
33660
- "max": 3,
33661
- "step": 0.01,
33662
- "label": "Grain Scale",
33663
- "group": "Texture"
33664
- },
33665
- "default": 1,
33666
- "description": "Scale of the paper grain — lower = coarser, higher = finer"
33667
- },
34779
+ "type": "select",
34780
+ "options": [
34781
+ {
34782
+ "label": "Top Left",
34783
+ "value": "top-left"
34784
+ },
34785
+ {
34786
+ "label": "Top Right",
34787
+ "value": "top-right"
34788
+ },
34789
+ {
34790
+ "label": "Bottom Left",
34791
+ "value": "bottom-left"
34792
+ },
34793
+ {
34794
+ "label": "Bottom Right",
34795
+ "value": "bottom-right"
34796
+ }
34797
+ ],
34798
+ "label": "Corner",
34799
+ "group": "Effect"
34800
+ },
34801
+ "default": "bottom-right",
34802
+ "description": "Which corner the page peels from"
34803
+ },
34804
+ "amount": {
34805
+ "ui": {
34806
+ "type": [
34807
+ "range",
34808
+ "map"
34809
+ ],
34810
+ "min": 0,
34811
+ "max": 1,
34812
+ "step": 0.01,
34813
+ "label": "Amount",
34814
+ "group": "Effect"
34815
+ },
34816
+ "default": 0.2,
34817
+ "description": "How far the peel has progressed across the page (0 = flat, 1 = fully peeled)"
34818
+ },
34819
+ "radius": {
34820
+ "ui": {
34821
+ "type": [
34822
+ "range",
34823
+ "map"
34824
+ ],
34825
+ "min": 0.02,
34826
+ "max": 0.4,
34827
+ "step": 0.01,
34828
+ "label": "Curl Radius",
34829
+ "group": "Effect"
34830
+ },
34831
+ "default": 0.2,
34832
+ "description": "Tightness of the curl (fraction of the page diagonal)"
34833
+ },
34834
+ "shading": {
34835
+ "ui": {
34836
+ "type": [
34837
+ "range",
34838
+ "map"
34839
+ ],
34840
+ "min": 0,
34841
+ "max": 1,
34842
+ "step": 0.01,
34843
+ "label": "Shading",
34844
+ "group": "Effect"
34845
+ },
34846
+ "default": 0.55,
34847
+ "description": "How much the underside of the curl is shaded for depth"
34848
+ },
34849
+ "highlight": {
34850
+ "ui": {
34851
+ "type": [
34852
+ "range",
34853
+ "map"
34854
+ ],
34855
+ "min": 0,
34856
+ "max": 1,
34857
+ "step": 0.01,
34858
+ "label": "Highlight",
34859
+ "group": "Effect"
34860
+ },
34861
+ "default": 0.4,
34862
+ "description": "Strength of the specular sheen running along the curl"
34863
+ },
34864
+ "highlightSoftness": {
34865
+ "ui": {
34866
+ "type": [
34867
+ "range",
34868
+ "map"
34869
+ ],
34870
+ "min": 0,
34871
+ "max": 1,
34872
+ "step": 0.01,
34873
+ "label": "Highlight Softness",
34874
+ "group": "Effect"
34875
+ },
34876
+ "default": 0.2,
34877
+ "description": "Width of the specular highlight band (low = tight gloss, high = broad satin)"
34878
+ },
34879
+ "shadow": {
34880
+ "ui": {
34881
+ "type": [
34882
+ "range",
34883
+ "map"
34884
+ ],
34885
+ "min": 0,
34886
+ "max": 1,
34887
+ "step": 0.01,
34888
+ "label": "Shadow",
34889
+ "group": "Effect"
34890
+ },
34891
+ "default": 1,
34892
+ "description": "Strength of the contact shadow the curl casts on the page"
34893
+ }
34894
+ }
34895
+ },
34896
+ {
34897
+ "name": "Paper",
34898
+ "category": "Stylize",
34899
+ "description": "Applies realistic paper grain and surface roughness to child content",
34900
+ "fileName": "Paper",
34901
+ "requiresChild": true,
34902
+ "definition": {
34903
+ "name": "Paper",
34904
+ "boundingBoxDeclaration": {
34905
+ "aspectRatio": null
34906
+ },
34907
+ "category": "Stylize",
34908
+ "description": "Applies realistic paper grain and surface roughness to child content",
34909
+ "requiresRTT": true,
34910
+ "requiresChild": true,
34911
+ "props": {
34912
+ "roughness": {
34913
+ "default": 0.3,
34914
+ "description": "Surface roughness — higher values create more pronounced brightness variation",
34915
+ "ui": {
34916
+ "type": "range",
34917
+ "min": 0,
34918
+ "max": 1,
34919
+ "step": 0.01,
34920
+ "label": "Roughness",
34921
+ "group": "Texture"
34922
+ }
34923
+ },
34924
+ "grainScale": {
34925
+ "default": 1,
34926
+ "description": "Scale of the paper grain — lower = coarser, higher = finer",
34927
+ "ui": {
34928
+ "type": "range",
34929
+ "min": 0.1,
34930
+ "max": 3,
34931
+ "step": 0.01,
34932
+ "label": "Grain Scale",
34933
+ "group": "Texture"
34934
+ }
34935
+ },
34936
+ "displacement": {
34937
+ "default": 0.15,
34938
+ "description": "Surface micro-roughness — shifts pixels at grain scale like real paper fiber bumps",
34939
+ "ui": {
34940
+ "type": "range",
34941
+ "min": 0,
34942
+ "max": 1,
34943
+ "step": 0.01,
34944
+ "label": "Displacement",
34945
+ "group": "Texture"
34946
+ }
34947
+ },
34948
+ "seed": {
34949
+ "default": 0,
34950
+ "description": "Random seed for pattern variation",
34951
+ "ui": {
34952
+ "type": "range",
34953
+ "min": 0,
34954
+ "max": 100,
34955
+ "step": 1,
34956
+ "label": "Seed",
34957
+ "group": "Texture"
34958
+ }
34959
+ }
34960
+ }
34961
+ },
34962
+ "propsMetadata": {
34963
+ "roughness": {
34964
+ "ui": {
34965
+ "type": "range",
34966
+ "min": 0,
34967
+ "max": 1,
34968
+ "step": 0.01,
34969
+ "label": "Roughness",
34970
+ "group": "Texture"
34971
+ },
34972
+ "default": 0.3,
34973
+ "description": "Surface roughness — higher values create more pronounced brightness variation"
34974
+ },
34975
+ "grainScale": {
34976
+ "ui": {
34977
+ "type": "range",
34978
+ "min": 0.1,
34979
+ "max": 3,
34980
+ "step": 0.01,
34981
+ "label": "Grain Scale",
34982
+ "group": "Texture"
34983
+ },
34984
+ "default": 1,
34985
+ "description": "Scale of the paper grain — lower = coarser, higher = finer"
34986
+ },
33668
34987
  "displacement": {
33669
34988
  "ui": {
33670
34989
  "type": "range",
@@ -54558,53 +55877,640 @@ export const shaderRegistry = [
54558
55877
  "group": "Effect"
54559
55878
  }
54560
55879
  },
54561
- "edges": {
54562
- "default": "stretch",
54563
- "description": "How to handle edges when distortion pushes content out of bounds",
54564
- "compileTime": true,
54565
- "ui": {
54566
- "type": "select",
54567
- "options": [
54568
- {
54569
- "label": "Stretch",
54570
- "value": "stretch"
54571
- },
54572
- {
54573
- "label": "Transparent",
54574
- "value": "transparent"
54575
- },
54576
- {
54577
- "label": "Mirror",
54578
- "value": "mirror"
54579
- },
54580
- {
54581
- "label": "Wrap",
54582
- "value": "wrap"
54583
- }
54584
- ],
54585
- "label": "Edges",
54586
- "group": "Effect"
54587
- }
54588
- }
55880
+ "edges": {
55881
+ "default": "stretch",
55882
+ "description": "How to handle edges when distortion pushes content out of bounds",
55883
+ "compileTime": true,
55884
+ "ui": {
55885
+ "type": "select",
55886
+ "options": [
55887
+ {
55888
+ "label": "Stretch",
55889
+ "value": "stretch"
55890
+ },
55891
+ {
55892
+ "label": "Transparent",
55893
+ "value": "transparent"
55894
+ },
55895
+ {
55896
+ "label": "Mirror",
55897
+ "value": "mirror"
55898
+ },
55899
+ {
55900
+ "label": "Wrap",
55901
+ "value": "wrap"
55902
+ }
55903
+ ],
55904
+ "label": "Edges",
55905
+ "group": "Effect"
55906
+ }
55907
+ }
55908
+ },
55909
+ "requiresRTT": true,
55910
+ "requiresChild": true
55911
+ },
55912
+ "propsMetadata": {
55913
+ "strength": {
55914
+ "ui": {
55915
+ "type": [
55916
+ "range",
55917
+ "map"
55918
+ ],
55919
+ "min": 0,
55920
+ "max": 1,
55921
+ "step": 0.01,
55922
+ "label": "Strength",
55923
+ "group": "Effect"
55924
+ },
55925
+ "default": 0.3,
55926
+ "description": "Distortion intensity"
55927
+ },
55928
+ "frequency": {
55929
+ "ui": {
55930
+ "type": [
55931
+ "range",
55932
+ "map"
55933
+ ],
55934
+ "min": 0.1,
55935
+ "max": 10,
55936
+ "step": 0.1,
55937
+ "label": "Frequency",
55938
+ "group": "Effect"
55939
+ },
55940
+ "default": 1,
55941
+ "description": "Number of bends/waves"
55942
+ },
55943
+ "speed": {
55944
+ "ui": {
55945
+ "type": "range",
55946
+ "min": 0,
55947
+ "max": 5,
55948
+ "step": 0.1,
55949
+ "label": "Speed",
55950
+ "group": "Animation"
55951
+ },
55952
+ "default": 1,
55953
+ "description": "Animation speed"
55954
+ },
55955
+ "angle": {
55956
+ "ui": {
55957
+ "type": [
55958
+ "range",
55959
+ "map"
55960
+ ],
55961
+ "min": 0,
55962
+ "max": 360,
55963
+ "step": 1,
55964
+ "label": "Angle",
55965
+ "group": "Effect"
55966
+ },
55967
+ "default": 0,
55968
+ "description": "Direction of wave distortion in degrees"
55969
+ },
55970
+ "waveType": {
55971
+ "ui": {
55972
+ "type": "select",
55973
+ "options": [
55974
+ {
55975
+ "label": "Sine",
55976
+ "value": "sine"
55977
+ },
55978
+ {
55979
+ "label": "Triangle",
55980
+ "value": "triangle"
55981
+ },
55982
+ {
55983
+ "label": "Square",
55984
+ "value": "square"
55985
+ },
55986
+ {
55987
+ "label": "Sawtooth",
55988
+ "value": "sawtooth"
55989
+ },
55990
+ {
55991
+ "label": "Bounce",
55992
+ "value": "bounce"
55993
+ }
55994
+ ],
55995
+ "label": "Wave Type",
55996
+ "group": "Effect"
55997
+ },
55998
+ "default": "sine",
55999
+ "description": "Shape of the distortion wave"
56000
+ },
56001
+ "edges": {
56002
+ "ui": {
56003
+ "type": "select",
56004
+ "options": [
56005
+ {
56006
+ "label": "Stretch",
56007
+ "value": "stretch"
56008
+ },
56009
+ {
56010
+ "label": "Transparent",
56011
+ "value": "transparent"
56012
+ },
56013
+ {
56014
+ "label": "Mirror",
56015
+ "value": "mirror"
56016
+ },
56017
+ {
56018
+ "label": "Wrap",
56019
+ "value": "wrap"
56020
+ }
56021
+ ],
56022
+ "label": "Edges",
56023
+ "group": "Effect"
56024
+ },
56025
+ "default": "stretch",
56026
+ "description": "How to handle edges when distortion pushes content out of bounds"
56027
+ }
56028
+ }
56029
+ },
56030
+ {
56031
+ "name": "Waveform",
56032
+ "category": "Textures",
56033
+ "description": "Audio-visualizer waveform — equalizer bars, a filled wave, an oscilloscope line, or a dot matrix — driven by a simulated signal whose amplitude you can map to your own audio level",
56034
+ "fileName": "Waveform",
56035
+ "definition": {
56036
+ "name": "Waveform",
56037
+ "boundingBoxDeclaration": {
56038
+ "aspectRatio": null,
56039
+ "supportsResizeFit": true
56040
+ },
56041
+ "category": "Textures",
56042
+ "description": "Audio-visualizer waveform — equalizer bars, a filled wave, an oscilloscope line, or a dot matrix — driven by a simulated signal whose amplitude you can map to your own audio level",
56043
+ "acceptsUVContext": true,
56044
+ "animatedTime": {
56045
+ "speed": "speed"
56046
+ },
56047
+ "props": {
56048
+ "style": {
56049
+ "default": "bars",
56050
+ "compileTime": true,
56051
+ "description": "Visualizer style: equalizer bars, a filled wave envelope, an oscilloscope line, or a dot matrix",
56052
+ "ui": {
56053
+ "type": "select",
56054
+ "options": [
56055
+ {
56056
+ "label": "Bars",
56057
+ "value": "bars"
56058
+ },
56059
+ {
56060
+ "label": "Wave",
56061
+ "value": "wave"
56062
+ },
56063
+ {
56064
+ "label": "Line",
56065
+ "value": "line"
56066
+ },
56067
+ {
56068
+ "label": "Dots",
56069
+ "value": "dots"
56070
+ }
56071
+ ],
56072
+ "label": "Style",
56073
+ "group": "Style"
56074
+ }
56075
+ },
56076
+ "colorA": {
56077
+ "default": "#3b5bff",
56078
+ "description": "Color at the start",
56079
+ "ui": {
56080
+ "type": "color",
56081
+ "label": "Color A",
56082
+ "group": "Colors"
56083
+ }
56084
+ },
56085
+ "colorB": {
56086
+ "default": "#ff3bd4",
56087
+ "description": "Color at the end",
56088
+ "ui": {
56089
+ "type": "color",
56090
+ "label": "Color B",
56091
+ "group": "Colors"
56092
+ }
56093
+ },
56094
+ "stops": {
56095
+ "default": null,
56096
+ "description": "Multi-stop gradient colors (overrides Color A / Color B when set)",
56097
+ "ui": {
56098
+ "type": "gradient-stops",
56099
+ "label": "Colors",
56100
+ "group": "Colors"
56101
+ }
56102
+ },
56103
+ "colorSpace": {
56104
+ "default": "oklab",
56105
+ "compileTime": true,
56106
+ "description": "Color space for the start→end gradient",
56107
+ "ui": {
56108
+ "type": "select",
56109
+ "options": [
56110
+ {
56111
+ "label": "Linear RGB",
56112
+ "value": "linear"
56113
+ },
56114
+ {
56115
+ "label": "OKLCh",
56116
+ "value": "oklch"
56117
+ },
56118
+ {
56119
+ "label": "OKLAB",
56120
+ "value": "oklab"
56121
+ },
56122
+ {
56123
+ "label": "HSL",
56124
+ "value": "hsl"
56125
+ },
56126
+ {
56127
+ "label": "HSV",
56128
+ "value": "hsv"
56129
+ },
56130
+ {
56131
+ "label": "LCH",
56132
+ "value": "lch"
56133
+ }
56134
+ ],
56135
+ "label": "Color Space",
56136
+ "group": "Colors"
56137
+ }
56138
+ },
56139
+ "from": {
56140
+ "default": {
56141
+ "x": 0,
56142
+ "y": 0.5
56143
+ },
56144
+ "description": "Where the waveform starts (Color A end)",
56145
+ "ui": {
56146
+ "type": "position",
56147
+ "label": "Start",
56148
+ "group": "Position",
56149
+ "units": [
56150
+ "%",
56151
+ "px"
56152
+ ]
56153
+ }
56154
+ },
56155
+ "to": {
56156
+ "default": {
56157
+ "x": 1,
56158
+ "y": 0.5
56159
+ },
56160
+ "description": "Where the waveform ends (Color B end)",
56161
+ "ui": {
56162
+ "type": "position",
56163
+ "label": "End",
56164
+ "group": "Position",
56165
+ "units": [
56166
+ "%",
56167
+ "px"
56168
+ ]
56169
+ }
56170
+ },
56171
+ "amplitude": {
56172
+ "default": 1,
56173
+ "description": "Overall signal level (0 = silence). Map this to your own audio level to make the waveform react to real sound.",
56174
+ "ui": {
56175
+ "type": [
56176
+ "range",
56177
+ "map"
56178
+ ],
56179
+ "min": 0,
56180
+ "max": 2,
56181
+ "step": 0.01,
56182
+ "label": "Amplitude",
56183
+ "group": "Signal"
56184
+ }
56185
+ },
56186
+ "frequency": {
56187
+ "default": 1,
56188
+ "description": "How busy the signal is across the width (higher = more peaks)",
56189
+ "ui": {
56190
+ "type": [
56191
+ "range",
56192
+ "map"
56193
+ ],
56194
+ "min": 0.2,
56195
+ "max": 3,
56196
+ "step": 0.01,
56197
+ "label": "Frequency",
56198
+ "group": "Signal"
56199
+ }
56200
+ },
56201
+ "height": {
56202
+ "default": 0.6,
56203
+ "description": "Maximum vertical extent of the waveform as a fraction of the canvas height",
56204
+ "ui": {
56205
+ "type": [
56206
+ "range",
56207
+ "map"
56208
+ ],
56209
+ "min": 0.05,
56210
+ "max": 1,
56211
+ "step": 0.01,
56212
+ "label": "Height",
56213
+ "group": "Effect"
56214
+ }
56215
+ },
56216
+ "align": {
56217
+ "default": "mirrored",
56218
+ "compileTime": true,
56219
+ "description": "Which side of the start→end baseline the waveform grows on: mirrored around it, above it (top), or below it (bottom)",
56220
+ "ui": {
56221
+ "type": "select",
56222
+ "options": [
56223
+ {
56224
+ "label": "Mirrored",
56225
+ "value": "mirrored"
56226
+ },
56227
+ {
56228
+ "label": "Top",
56229
+ "value": "top"
56230
+ },
56231
+ {
56232
+ "label": "Bottom",
56233
+ "value": "bottom"
56234
+ }
56235
+ ],
56236
+ "label": "Align",
56237
+ "group": "Effect"
56238
+ }
56239
+ },
56240
+ "count": {
56241
+ "default": 32,
56242
+ "description": "Number of bars (or dot columns) across the width",
56243
+ "ui": {
56244
+ "type": [
56245
+ "range",
56246
+ "map"
56247
+ ],
56248
+ "min": 4,
56249
+ "max": 128,
56250
+ "step": 1,
56251
+ "label": "Count",
56252
+ "group": "Effect",
56253
+ "condition": {
56254
+ "style": [
56255
+ "bars",
56256
+ "dots"
56257
+ ]
56258
+ }
56259
+ }
56260
+ },
56261
+ "barWidth": {
56262
+ "default": 0.6,
56263
+ "description": "Bar thickness as a fraction of its column (1 = bars touch)",
56264
+ "ui": {
56265
+ "type": [
56266
+ "range",
56267
+ "map"
56268
+ ],
56269
+ "min": 0.1,
56270
+ "max": 1,
56271
+ "step": 0.01,
56272
+ "label": "Bar Width",
56273
+ "group": "Effect",
56274
+ "condition": {
56275
+ "style": "bars"
56276
+ }
56277
+ }
56278
+ },
56279
+ "rounding": {
56280
+ "default": 1,
56281
+ "description": "Rounds the bar ends (0 = square, 1 = fully rounded caps)",
56282
+ "ui": {
56283
+ "type": [
56284
+ "range",
56285
+ "map"
56286
+ ],
56287
+ "min": 0,
56288
+ "max": 1,
56289
+ "step": 0.01,
56290
+ "label": "Rounding",
56291
+ "group": "Effect",
56292
+ "condition": {
56293
+ "style": "bars"
56294
+ }
56295
+ }
56296
+ },
56297
+ "dotSize": {
56298
+ "default": 0.7,
56299
+ "description": "Dot diameter as a fraction of its cell",
56300
+ "ui": {
56301
+ "type": [
56302
+ "range",
56303
+ "map"
56304
+ ],
56305
+ "min": 0.2,
56306
+ "max": 1,
56307
+ "step": 0.01,
56308
+ "label": "Dot Size",
56309
+ "group": "Effect",
56310
+ "condition": {
56311
+ "style": "dots"
56312
+ }
56313
+ }
56314
+ },
56315
+ "lineWidth": {
56316
+ "default": 0.006,
56317
+ "description": "Stroke thickness of the line. A value of one (1) matches the canvas height.",
56318
+ "ui": {
56319
+ "type": [
56320
+ "range",
56321
+ "map"
56322
+ ],
56323
+ "min": 0.001,
56324
+ "max": 0.05,
56325
+ "step": 0.001,
56326
+ "label": "Line Width",
56327
+ "group": "Effect",
56328
+ "dimensional": "canvas-height",
56329
+ "condition": {
56330
+ "style": "line"
56331
+ }
56332
+ }
56333
+ },
56334
+ "softness": {
56335
+ "default": 0,
56336
+ "description": "Feathers the wave's edge into a glow",
56337
+ "ui": {
56338
+ "type": [
56339
+ "range",
56340
+ "map"
56341
+ ],
56342
+ "min": 0,
56343
+ "max": 1,
56344
+ "step": 0.01,
56345
+ "label": "Softness",
56346
+ "group": "Effect",
56347
+ "condition": {
56348
+ "style": "wave"
56349
+ }
56350
+ }
56351
+ },
56352
+ "speed": {
56353
+ "default": 1,
56354
+ "description": "Animation speed of the simulated signal",
56355
+ "ui": {
56356
+ "type": "range",
56357
+ "min": 0,
56358
+ "max": 3,
56359
+ "step": 0.01,
56360
+ "label": "Speed",
56361
+ "group": "Animation"
56362
+ }
56363
+ },
56364
+ "seed": {
56365
+ "default": 1,
56366
+ "description": "Adjusts the starting state, useful for variation",
56367
+ "ui": {
56368
+ "type": "range",
56369
+ "min": 0,
56370
+ "max": 100,
56371
+ "step": 1,
56372
+ "label": "Seed",
56373
+ "group": "Animation"
56374
+ }
56375
+ }
56376
+ }
56377
+ },
56378
+ "propsMetadata": {
56379
+ "style": {
56380
+ "ui": {
56381
+ "type": "select",
56382
+ "options": [
56383
+ {
56384
+ "label": "Bars",
56385
+ "value": "bars"
56386
+ },
56387
+ {
56388
+ "label": "Wave",
56389
+ "value": "wave"
56390
+ },
56391
+ {
56392
+ "label": "Line",
56393
+ "value": "line"
56394
+ },
56395
+ {
56396
+ "label": "Dots",
56397
+ "value": "dots"
56398
+ }
56399
+ ],
56400
+ "label": "Style",
56401
+ "group": "Style"
56402
+ },
56403
+ "default": "bars",
56404
+ "description": "Visualizer style: equalizer bars, a filled wave envelope, an oscilloscope line, or a dot matrix"
56405
+ },
56406
+ "colorA": {
56407
+ "ui": {
56408
+ "type": "color",
56409
+ "label": "Color A",
56410
+ "group": "Colors"
56411
+ },
56412
+ "default": "#3b5bff",
56413
+ "description": "Color at the start"
56414
+ },
56415
+ "colorB": {
56416
+ "ui": {
56417
+ "type": "color",
56418
+ "label": "Color B",
56419
+ "group": "Colors"
56420
+ },
56421
+ "default": "#ff3bd4",
56422
+ "description": "Color at the end"
56423
+ },
56424
+ "stops": {
56425
+ "ui": {
56426
+ "type": "gradient-stops",
56427
+ "label": "Colors",
56428
+ "group": "Colors"
56429
+ },
56430
+ "default": null,
56431
+ "description": "Multi-stop gradient colors (overrides Color A / Color B when set)"
56432
+ },
56433
+ "colorSpace": {
56434
+ "ui": {
56435
+ "type": "select",
56436
+ "options": [
56437
+ {
56438
+ "label": "Linear RGB",
56439
+ "value": "linear"
56440
+ },
56441
+ {
56442
+ "label": "OKLCh",
56443
+ "value": "oklch"
56444
+ },
56445
+ {
56446
+ "label": "OKLAB",
56447
+ "value": "oklab"
56448
+ },
56449
+ {
56450
+ "label": "HSL",
56451
+ "value": "hsl"
56452
+ },
56453
+ {
56454
+ "label": "HSV",
56455
+ "value": "hsv"
56456
+ },
56457
+ {
56458
+ "label": "LCH",
56459
+ "value": "lch"
56460
+ }
56461
+ ],
56462
+ "label": "Color Space",
56463
+ "group": "Colors"
56464
+ },
56465
+ "default": "oklab",
56466
+ "description": "Color space for the start→end gradient"
56467
+ },
56468
+ "from": {
56469
+ "ui": {
56470
+ "type": "position",
56471
+ "label": "Start",
56472
+ "group": "Position",
56473
+ "units": [
56474
+ "%",
56475
+ "px"
56476
+ ]
56477
+ },
56478
+ "default": {
56479
+ "x": 0,
56480
+ "y": 0.5
56481
+ },
56482
+ "description": "Where the waveform starts (Color A end)"
54589
56483
  },
54590
- "requiresRTT": true,
54591
- "requiresChild": true
54592
- },
54593
- "propsMetadata": {
54594
- "strength": {
56484
+ "to": {
56485
+ "ui": {
56486
+ "type": "position",
56487
+ "label": "End",
56488
+ "group": "Position",
56489
+ "units": [
56490
+ "%",
56491
+ "px"
56492
+ ]
56493
+ },
56494
+ "default": {
56495
+ "x": 1,
56496
+ "y": 0.5
56497
+ },
56498
+ "description": "Where the waveform ends (Color B end)"
56499
+ },
56500
+ "amplitude": {
54595
56501
  "ui": {
54596
56502
  "type": [
54597
56503
  "range",
54598
56504
  "map"
54599
56505
  ],
54600
56506
  "min": 0,
54601
- "max": 1,
56507
+ "max": 2,
54602
56508
  "step": 0.01,
54603
- "label": "Strength",
54604
- "group": "Effect"
56509
+ "label": "Amplitude",
56510
+ "group": "Signal"
54605
56511
  },
54606
- "default": 0.3,
54607
- "description": "Distortion intensity"
56512
+ "default": 1,
56513
+ "description": "Overall signal level (0 = silence). Map this to your own audio level to make the waveform react to real sound."
54608
56514
  },
54609
56515
  "frequency": {
54610
56516
  "ui": {
@@ -54612,99 +56518,188 @@ export const shaderRegistry = [
54612
56518
  "range",
54613
56519
  "map"
54614
56520
  ],
54615
- "min": 0.1,
54616
- "max": 10,
54617
- "step": 0.1,
56521
+ "min": 0.2,
56522
+ "max": 3,
56523
+ "step": 0.01,
54618
56524
  "label": "Frequency",
54619
- "group": "Effect"
54620
- },
54621
- "default": 1,
54622
- "description": "Number of bends/waves"
54623
- },
54624
- "speed": {
54625
- "ui": {
54626
- "type": "range",
54627
- "min": 0,
54628
- "max": 5,
54629
- "step": 0.1,
54630
- "label": "Speed",
54631
- "group": "Animation"
56525
+ "group": "Signal"
54632
56526
  },
54633
56527
  "default": 1,
54634
- "description": "Animation speed"
56528
+ "description": "How busy the signal is across the width (higher = more peaks)"
54635
56529
  },
54636
- "angle": {
56530
+ "height": {
54637
56531
  "ui": {
54638
56532
  "type": [
54639
56533
  "range",
54640
56534
  "map"
54641
56535
  ],
54642
- "min": 0,
54643
- "max": 360,
54644
- "step": 1,
54645
- "label": "Angle",
56536
+ "min": 0.05,
56537
+ "max": 1,
56538
+ "step": 0.01,
56539
+ "label": "Height",
54646
56540
  "group": "Effect"
54647
56541
  },
54648
- "default": 0,
54649
- "description": "Direction of wave distortion in degrees"
56542
+ "default": 0.6,
56543
+ "description": "Maximum vertical extent of the waveform as a fraction of the canvas height"
54650
56544
  },
54651
- "waveType": {
56545
+ "align": {
54652
56546
  "ui": {
54653
56547
  "type": "select",
54654
56548
  "options": [
54655
56549
  {
54656
- "label": "Sine",
54657
- "value": "sine"
54658
- },
54659
- {
54660
- "label": "Triangle",
54661
- "value": "triangle"
54662
- },
54663
- {
54664
- "label": "Square",
54665
- "value": "square"
56550
+ "label": "Mirrored",
56551
+ "value": "mirrored"
54666
56552
  },
54667
56553
  {
54668
- "label": "Sawtooth",
54669
- "value": "sawtooth"
56554
+ "label": "Top",
56555
+ "value": "top"
54670
56556
  },
54671
56557
  {
54672
- "label": "Bounce",
54673
- "value": "bounce"
56558
+ "label": "Bottom",
56559
+ "value": "bottom"
54674
56560
  }
54675
56561
  ],
54676
- "label": "Wave Type",
56562
+ "label": "Align",
54677
56563
  "group": "Effect"
54678
56564
  },
54679
- "default": "sine",
54680
- "description": "Shape of the distortion wave"
56565
+ "default": "mirrored",
56566
+ "description": "Which side of the start→end baseline the waveform grows on: mirrored around it, above it (top), or below it (bottom)"
54681
56567
  },
54682
- "edges": {
56568
+ "count": {
54683
56569
  "ui": {
54684
- "type": "select",
54685
- "options": [
54686
- {
54687
- "label": "Stretch",
54688
- "value": "stretch"
54689
- },
54690
- {
54691
- "label": "Transparent",
54692
- "value": "transparent"
54693
- },
54694
- {
54695
- "label": "Mirror",
54696
- "value": "mirror"
54697
- },
54698
- {
54699
- "label": "Wrap",
54700
- "value": "wrap"
54701
- }
56570
+ "type": [
56571
+ "range",
56572
+ "map"
54702
56573
  ],
54703
- "label": "Edges",
54704
- "group": "Effect"
56574
+ "min": 4,
56575
+ "max": 128,
56576
+ "step": 1,
56577
+ "label": "Count",
56578
+ "group": "Effect",
56579
+ "condition": {
56580
+ "style": [
56581
+ "bars",
56582
+ "dots"
56583
+ ]
56584
+ }
54705
56585
  },
54706
- "default": "stretch",
54707
- "description": "How to handle edges when distortion pushes content out of bounds"
56586
+ "default": 32,
56587
+ "description": "Number of bars (or dot columns) across the width"
56588
+ },
56589
+ "barWidth": {
56590
+ "ui": {
56591
+ "type": [
56592
+ "range",
56593
+ "map"
56594
+ ],
56595
+ "min": 0.1,
56596
+ "max": 1,
56597
+ "step": 0.01,
56598
+ "label": "Bar Width",
56599
+ "group": "Effect",
56600
+ "condition": {
56601
+ "style": "bars"
56602
+ }
56603
+ },
56604
+ "default": 0.6,
56605
+ "description": "Bar thickness as a fraction of its column (1 = bars touch)"
56606
+ },
56607
+ "rounding": {
56608
+ "ui": {
56609
+ "type": [
56610
+ "range",
56611
+ "map"
56612
+ ],
56613
+ "min": 0,
56614
+ "max": 1,
56615
+ "step": 0.01,
56616
+ "label": "Rounding",
56617
+ "group": "Effect",
56618
+ "condition": {
56619
+ "style": "bars"
56620
+ }
56621
+ },
56622
+ "default": 1,
56623
+ "description": "Rounds the bar ends (0 = square, 1 = fully rounded caps)"
56624
+ },
56625
+ "dotSize": {
56626
+ "ui": {
56627
+ "type": [
56628
+ "range",
56629
+ "map"
56630
+ ],
56631
+ "min": 0.2,
56632
+ "max": 1,
56633
+ "step": 0.01,
56634
+ "label": "Dot Size",
56635
+ "group": "Effect",
56636
+ "condition": {
56637
+ "style": "dots"
56638
+ }
56639
+ },
56640
+ "default": 0.7,
56641
+ "description": "Dot diameter as a fraction of its cell"
56642
+ },
56643
+ "lineWidth": {
56644
+ "ui": {
56645
+ "type": [
56646
+ "range",
56647
+ "map"
56648
+ ],
56649
+ "min": 0.001,
56650
+ "max": 0.05,
56651
+ "step": 0.001,
56652
+ "label": "Line Width",
56653
+ "group": "Effect",
56654
+ "dimensional": "canvas-height",
56655
+ "condition": {
56656
+ "style": "line"
56657
+ }
56658
+ },
56659
+ "default": 0.006,
56660
+ "description": "Stroke thickness of the line. A value of one (1) matches the canvas height."
56661
+ },
56662
+ "softness": {
56663
+ "ui": {
56664
+ "type": [
56665
+ "range",
56666
+ "map"
56667
+ ],
56668
+ "min": 0,
56669
+ "max": 1,
56670
+ "step": 0.01,
56671
+ "label": "Softness",
56672
+ "group": "Effect",
56673
+ "condition": {
56674
+ "style": "wave"
56675
+ }
56676
+ },
56677
+ "default": 0,
56678
+ "description": "Feathers the wave's edge into a glow"
56679
+ },
56680
+ "speed": {
56681
+ "ui": {
56682
+ "type": "range",
56683
+ "min": 0,
56684
+ "max": 3,
56685
+ "step": 0.01,
56686
+ "label": "Speed",
56687
+ "group": "Animation"
56688
+ },
56689
+ "default": 1,
56690
+ "description": "Animation speed of the simulated signal"
56691
+ },
56692
+ "seed": {
56693
+ "ui": {
56694
+ "type": "range",
56695
+ "min": 0,
56696
+ "max": 100,
56697
+ "step": 1,
56698
+ "label": "Seed",
56699
+ "group": "Animation"
56700
+ },
56701
+ "default": 1,
56702
+ "description": "Adjusts the starting state, useful for variation"
54708
56703
  }
54709
56704
  }
54710
56705
  },