shaders 2.5.103 → 2.5.104

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 (223) hide show
  1. package/dist/core/Fog-DhFHErOx.js +674 -0
  2. package/dist/core/Smoke-LIDjCv7f.js +629 -0
  3. package/dist/core/SmokeFill-ChSIfTxW.js +641 -0
  4. package/dist/core/{VideoTexture-DnHIs4pp.js → VideoTexture-SWLe5c3m.js} +1 -1
  5. package/dist/core/{WebcamTexture-XBDo2kgN.js → WebcamTexture-cXPyEumA.js} +1 -1
  6. package/dist/core/index.js +73 -70
  7. package/dist/core/registry.js +72 -69
  8. package/dist/core/renderer.d.ts.map +1 -1
  9. package/dist/core/shaderRegistry-CVhdTDhR.js +252 -0
  10. package/dist/core/shaderRegistry.d.ts.map +1 -1
  11. package/dist/core/shaders/Fog/index.d.ts +78 -0
  12. package/dist/core/shaders/Fog/index.d.ts.map +1 -0
  13. package/dist/core/shaders/Fog/index.js +4 -0
  14. package/dist/core/shaders/Form3D/index.js +1 -1
  15. package/dist/core/shaders/Glass/index.js +1 -1
  16. package/dist/core/shaders/GlassTiles/index.js +1 -1
  17. package/dist/core/shaders/Glitch/index.js +1 -1
  18. package/dist/core/shaders/Glow/index.js +1 -1
  19. package/dist/core/shaders/Godrays/index.js +1 -1
  20. package/dist/core/shaders/Grayscale/index.js +1 -1
  21. package/dist/core/shaders/Grid/index.js +1 -1
  22. package/dist/core/shaders/GridDistortion/index.js +1 -1
  23. package/dist/core/shaders/Group/index.js +1 -1
  24. package/dist/core/shaders/Halftone/index.js +1 -1
  25. package/dist/core/shaders/HexGrid/index.js +1 -1
  26. package/dist/core/shaders/HueShift/index.js +1 -1
  27. package/dist/core/shaders/ImageTexture/index.js +1 -1
  28. package/dist/core/shaders/Invert/index.js +1 -1
  29. package/dist/core/shaders/Kaleidoscope/index.js +1 -1
  30. package/dist/core/shaders/LensFlare/index.js +1 -1
  31. package/dist/core/shaders/LinearBlur/index.js +1 -1
  32. package/dist/core/shaders/LinearGradient/index.js +1 -1
  33. package/dist/core/shaders/Liquify/index.js +1 -1
  34. package/dist/core/shaders/Mirror/index.js +1 -1
  35. package/dist/core/shaders/MultiPointGradient/index.js +1 -1
  36. package/dist/core/shaders/Neon/index.js +1 -1
  37. package/dist/core/shaders/Paper/index.js +1 -1
  38. package/dist/core/shaders/Perspective/index.js +1 -1
  39. package/dist/core/shaders/Pixelate/index.js +1 -1
  40. package/dist/core/shaders/Plasma/index.js +1 -1
  41. package/dist/core/shaders/PolarCoordinates/index.js +1 -1
  42. package/dist/core/shaders/Polygon/index.js +1 -1
  43. package/dist/core/shaders/Posterize/index.js +1 -1
  44. package/dist/core/shaders/ProgressiveBlur/index.js +1 -1
  45. package/dist/core/shaders/RadialGradient/index.js +1 -1
  46. package/dist/core/shaders/RectangularCoordinates/index.js +1 -1
  47. package/dist/core/shaders/Ring/index.js +1 -1
  48. package/dist/core/shaders/Ripples/index.js +1 -1
  49. package/dist/core/shaders/RoundedRect/index.js +1 -1
  50. package/dist/core/shaders/Saturation/index.js +1 -1
  51. package/dist/core/shaders/Sharpness/index.js +1 -1
  52. package/dist/core/shaders/Shatter/index.js +1 -1
  53. package/dist/core/shaders/SimplexNoise/index.js +1 -1
  54. package/dist/core/shaders/SineWave/index.js +1 -1
  55. package/dist/core/shaders/Smoke/index.d.ts +113 -0
  56. package/dist/core/shaders/Smoke/index.d.ts.map +1 -0
  57. package/dist/core/shaders/Smoke/index.js +4 -0
  58. package/dist/core/shaders/SmokeFill/index.d.ts +145 -0
  59. package/dist/core/shaders/SmokeFill/index.d.ts.map +1 -0
  60. package/dist/core/shaders/SmokeFill/index.js +5 -0
  61. package/dist/core/shaders/Solarize/index.js +1 -1
  62. package/dist/core/shaders/SolidColor/index.js +1 -1
  63. package/dist/core/shaders/Spherize/index.js +1 -1
  64. package/dist/core/shaders/Spiral/index.js +1 -1
  65. package/dist/core/shaders/Star/index.js +1 -1
  66. package/dist/core/shaders/Strands/index.js +1 -1
  67. package/dist/core/shaders/Stretch/index.js +1 -1
  68. package/dist/core/shaders/Stripes/index.js +1 -1
  69. package/dist/core/shaders/StudioBackground/index.js +1 -1
  70. package/dist/core/shaders/Swirl/index.js +1 -1
  71. package/dist/core/shaders/TiltShift/index.js +1 -1
  72. package/dist/core/shaders/Tint/index.js +1 -1
  73. package/dist/core/shaders/Trapezoid/index.js +1 -1
  74. package/dist/core/shaders/Tritone/index.js +1 -1
  75. package/dist/core/shaders/Truchet/index.js +1 -1
  76. package/dist/core/shaders/Twirl/index.js +1 -1
  77. package/dist/core/shaders/VHS/index.js +1 -1
  78. package/dist/core/shaders/Vesica/index.js +1 -1
  79. package/dist/core/shaders/Vibrance/index.js +1 -1
  80. package/dist/core/shaders/VideoTexture/index.js +2 -2
  81. package/dist/core/shaders/Vignette/index.js +1 -1
  82. package/dist/core/shaders/Voronoi/index.js +1 -1
  83. package/dist/core/shaders/WaveDistortion/index.js +1 -1
  84. package/dist/core/shaders/Weave/index.js +1 -1
  85. package/dist/core/shaders/WebcamTexture/index.js +2 -2
  86. package/dist/core/shaders/ZoomBlur/index.js +1 -1
  87. package/dist/js/createShader.js +1 -1
  88. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  89. package/dist/js/utils/generatePresetCode.js +67 -0
  90. package/dist/react/Fog.js +223 -0
  91. package/dist/react/Preview.js +3 -0
  92. package/dist/react/Shader.js +1 -1
  93. package/dist/react/Smoke.js +223 -0
  94. package/dist/react/SmokeFill.js +223 -0
  95. package/dist/react/components/Fog.d.ts +31 -0
  96. package/dist/react/components/Fog.d.ts.map +1 -0
  97. package/dist/react/components/Smoke.d.ts +33 -0
  98. package/dist/react/components/Smoke.d.ts.map +1 -0
  99. package/dist/react/components/SmokeFill.d.ts +34 -0
  100. package/dist/react/components/SmokeFill.d.ts.map +1 -0
  101. package/dist/react/engine/Preview.d.ts.map +1 -1
  102. package/dist/react/index.d.ts +3 -0
  103. package/dist/react/index.d.ts.map +1 -1
  104. package/dist/react/index.js +4 -1
  105. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  106. package/dist/react/utils/generatePresetCode.js +67 -0
  107. package/dist/registry.js +1189 -0
  108. package/dist/solid/components/Fog.d.ts +28 -0
  109. package/dist/solid/components/Fog.d.ts.map +1 -0
  110. package/dist/solid/components/Fog.js +228 -0
  111. package/dist/solid/components/Smoke.d.ts +30 -0
  112. package/dist/solid/components/Smoke.d.ts.map +1 -0
  113. package/dist/solid/components/Smoke.js +228 -0
  114. package/dist/solid/components/SmokeFill.d.ts +31 -0
  115. package/dist/solid/components/SmokeFill.d.ts.map +1 -0
  116. package/dist/solid/components/SmokeFill.js +228 -0
  117. package/dist/solid/engine/Preview.d.ts.map +1 -1
  118. package/dist/solid/engine/Preview.js +162 -156
  119. package/dist/solid/engine/Shader.js +1 -1
  120. package/dist/solid/index.d.ts +3 -0
  121. package/dist/solid/index.d.ts.map +1 -1
  122. package/dist/solid/index.js +144 -138
  123. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  124. package/dist/solid/utils/generatePresetCode.js +67 -0
  125. package/dist/svelte/components/Fog.svelte.d.ts +19 -0
  126. package/dist/svelte/components/Smoke.svelte.d.ts +20 -0
  127. package/dist/svelte/components/SmokeFill.svelte.d.ts +21 -0
  128. package/dist/svelte/{generatePresetCode-psTzYsW3.js → generatePresetCode-DR_OAIL7.js} +67 -0
  129. package/dist/svelte/index.d.ts +3 -0
  130. package/dist/svelte/index.js +1151 -551
  131. package/dist/svelte/source/components/Fog.svelte +325 -0
  132. package/dist/svelte/source/components/Smoke.svelte +326 -0
  133. package/dist/svelte/source/components/SmokeFill.svelte +327 -0
  134. package/dist/svelte/source/engine/Preview.svelte +6 -0
  135. package/dist/svelte/source/index.js +3 -0
  136. package/dist/svelte/utils/generatePresetCode.js +1 -1
  137. package/dist/vue/Fog.js +3 -0
  138. package/dist/vue/Fog.vue_vue_type_script_setup_true_lang.js +222 -0
  139. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +6 -0
  140. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  141. package/dist/vue/Smoke.js +3 -0
  142. package/dist/vue/Smoke.vue_vue_type_script_setup_true_lang.js +227 -0
  143. package/dist/vue/SmokeFill.js +3 -0
  144. package/dist/vue/SmokeFill.vue_vue_type_script_setup_true_lang.js +232 -0
  145. package/dist/vue/components/Fog.vue.d.ts +54 -0
  146. package/dist/vue/components/Fog.vue.d.ts.map +1 -0
  147. package/dist/vue/components/Smoke.vue.d.ts +55 -0
  148. package/dist/vue/components/Smoke.vue.d.ts.map +1 -0
  149. package/dist/vue/components/SmokeFill.vue.d.ts +56 -0
  150. package/dist/vue/components/SmokeFill.vue.d.ts.map +1 -0
  151. package/dist/vue/index.d.ts +3 -0
  152. package/dist/vue/index.d.ts.map +1 -1
  153. package/dist/vue/index.js +4 -1
  154. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  155. package/dist/vue/utils/generatePresetCode.js +67 -0
  156. package/package.json +25 -1
  157. package/dist/core/shaderRegistry-BWuH2me2.js +0 -246
  158. /package/dist/core/{Form3D-rKpxb9t3.js → Form3D-DaPbLGUi.js} +0 -0
  159. /package/dist/core/{Glass-C04tCmBL.js → Glass-CpcmrDfm.js} +0 -0
  160. /package/dist/core/{GlassTiles-k1C4a4u8.js → GlassTiles-Dgh6nOaE.js} +0 -0
  161. /package/dist/core/{Glitch-DzPMkBu4.js → Glitch-BsbzLahF.js} +0 -0
  162. /package/dist/core/{Glow-BwaPYDRZ.js → Glow-Ft2x2QHL.js} +0 -0
  163. /package/dist/core/{Godrays-DAYmq-BP.js → Godrays-D1LINbut.js} +0 -0
  164. /package/dist/core/{Grayscale-lYKBBkGY.js → Grayscale-Ri-695Uh.js} +0 -0
  165. /package/dist/core/{Grid-BJ-nxN3i.js → Grid-BYSsAIEv.js} +0 -0
  166. /package/dist/core/{GridDistortion-DtaRNrTZ.js → GridDistortion-DWFGD8ya.js} +0 -0
  167. /package/dist/core/{Group-DpozigtX.js → Group-CkhjTW59.js} +0 -0
  168. /package/dist/core/{Halftone-XFa7by1s.js → Halftone-BUCDTTAU.js} +0 -0
  169. /package/dist/core/{HexGrid-D-EmQ4kI.js → HexGrid-BUiDrehv.js} +0 -0
  170. /package/dist/core/{HueShift-D9K0ynaS.js → HueShift-BtGVMu7q.js} +0 -0
  171. /package/dist/core/{ImageTexture-CArkZMfh.js → ImageTexture-CrX_9-f0.js} +0 -0
  172. /package/dist/core/{Invert-DCnwo_Xq.js → Invert-azYrcDMi.js} +0 -0
  173. /package/dist/core/{Kaleidoscope-BytHro3k.js → Kaleidoscope-CFWtKisp.js} +0 -0
  174. /package/dist/core/{LensFlare-B0vv4x97.js → LensFlare-ttrXgfea.js} +0 -0
  175. /package/dist/core/{LinearBlur-BFewxPjV.js → LinearBlur-By2aD8OO.js} +0 -0
  176. /package/dist/core/{LinearGradient-BKUf_u7r.js → LinearGradient-CM02z32l.js} +0 -0
  177. /package/dist/core/{Liquify-cE5dxrfh.js → Liquify-CyXo6vAH.js} +0 -0
  178. /package/dist/core/{Mirror-DIle92J8.js → Mirror-B7XmfGdw.js} +0 -0
  179. /package/dist/core/{MultiPointGradient-DDwac_mm.js → MultiPointGradient-8zGSIM4U.js} +0 -0
  180. /package/dist/core/{Neon-Dg8UfC7P.js → Neon-C1JlexhM.js} +0 -0
  181. /package/dist/core/{Paper-bMSMCeYK.js → Paper-B08rxNys.js} +0 -0
  182. /package/dist/core/{Perspective-BmfvQV6W.js → Perspective-BN_OpTZq.js} +0 -0
  183. /package/dist/core/{Pixelate-Dl26r6IT.js → Pixelate-dxPAFCRu.js} +0 -0
  184. /package/dist/core/{Plasma-CJWS1TvX.js → Plasma-DGCw0cd7.js} +0 -0
  185. /package/dist/core/{PolarCoordinates-lq6K4WBm.js → PolarCoordinates-CMYCFT4S.js} +0 -0
  186. /package/dist/core/{Polygon-DRCs3CYs.js → Polygon-CsCOt5YE.js} +0 -0
  187. /package/dist/core/{Posterize-BjH7Zscm.js → Posterize-Blv9pzPT.js} +0 -0
  188. /package/dist/core/{ProgressiveBlur-B8xwWyTM.js → ProgressiveBlur-Cx6eR7o9.js} +0 -0
  189. /package/dist/core/{RadialGradient-DiGFPgrn.js → RadialGradient-De0gtdh3.js} +0 -0
  190. /package/dist/core/{RectangularCoordinates-COkNDxi0.js → RectangularCoordinates-8Sa2GaDy.js} +0 -0
  191. /package/dist/core/{Ring-QApyKPzE.js → Ring-kHH-DIDQ.js} +0 -0
  192. /package/dist/core/{Ripples-C8Q17Hvz.js → Ripples-Bf6Zwg6X.js} +0 -0
  193. /package/dist/core/{RoundedRect-Ca9af9xe.js → RoundedRect-B0sWh2BN.js} +0 -0
  194. /package/dist/core/{Saturation-CgDaiq6n.js → Saturation-CB19kOXg.js} +0 -0
  195. /package/dist/core/{Sharpness-CRXT0D30.js → Sharpness-CQOboeqy.js} +0 -0
  196. /package/dist/core/{Shatter-BssZTRYJ.js → Shatter-BhK75BiG.js} +0 -0
  197. /package/dist/core/{SimplexNoise-KfTCAfpL.js → SimplexNoise-BcSgytjc.js} +0 -0
  198. /package/dist/core/{SineWave-Ckeap_YM.js → SineWave-VTNDSK_g.js} +0 -0
  199. /package/dist/core/{Solarize-DhtQYYpW.js → Solarize-CWDgSBiv.js} +0 -0
  200. /package/dist/core/{SolidColor-6yUkGybH.js → SolidColor-DhMdM3bE.js} +0 -0
  201. /package/dist/core/{Spherize-8LXrGGG_.js → Spherize-BZxwopX8.js} +0 -0
  202. /package/dist/core/{Spiral-Bs7uZrBr.js → Spiral-gpkw37l1.js} +0 -0
  203. /package/dist/core/{Star-DiXwnPGP.js → Star-WJAOZ5P5.js} +0 -0
  204. /package/dist/core/{Strands-DsAAVemq.js → Strands-DOthZNHt.js} +0 -0
  205. /package/dist/core/{Stretch-D7P2R5lV.js → Stretch--GV6hbru.js} +0 -0
  206. /package/dist/core/{Stripes-DF8agIiJ.js → Stripes-CFCXw1_N.js} +0 -0
  207. /package/dist/core/{StudioBackground-BFeNfwEu.js → StudioBackground-DJr-cxOL.js} +0 -0
  208. /package/dist/core/{Swirl-BwezrSAA.js → Swirl-By5FadQK.js} +0 -0
  209. /package/dist/core/{TiltShift-CI3FlfYk.js → TiltShift-Dh8wc9GG.js} +0 -0
  210. /package/dist/core/{Tint-BdXlqlzz.js → Tint-DaTx2HII.js} +0 -0
  211. /package/dist/core/{Trapezoid-BX_hmeZJ.js → Trapezoid-Co0sIA73.js} +0 -0
  212. /package/dist/core/{Tritone-BlJ7cchN.js → Tritone-C9Yx69Tw.js} +0 -0
  213. /package/dist/core/{Truchet-Bnn0fwbF.js → Truchet-CkFSkniR.js} +0 -0
  214. /package/dist/core/{Twirl-C5ijhqz1.js → Twirl-v8pLqUTN.js} +0 -0
  215. /package/dist/core/{VHS-CQJ1hV_D.js → VHS-mKd1QBBj.js} +0 -0
  216. /package/dist/core/{Vesica-DU0f85NG.js → Vesica-CxP7UD0a.js} +0 -0
  217. /package/dist/core/{Vibrance-CGvYDeds.js → Vibrance-WR5yQv_9.js} +0 -0
  218. /package/dist/core/{Vignette-BJaonUVL.js → Vignette-hAIKTi35.js} +0 -0
  219. /package/dist/core/{Voronoi-DZemzWA4.js → Voronoi-DOGmwUSK.js} +0 -0
  220. /package/dist/core/{WaveDistortion--Y-m667K.js → WaveDistortion-BGdgj3Iz.js} +0 -0
  221. /package/dist/core/{Weave-CtyohvHz.js → Weave-CIP_EUPa.js} +0 -0
  222. /package/dist/core/{ZoomBlur-BwkhsFRE.js → ZoomBlur-BuIVpHGG.js} +0 -0
  223. /package/dist/core/{browser-DTNngPey.js → browser-D8zonASQ.js} +0 -0
package/dist/registry.js CHANGED
@@ -8324,6 +8324,296 @@ export const shaderRegistry = [
8324
8324
  }
8325
8325
  }
8326
8326
  },
8327
+ {
8328
+ "name": "Fog",
8329
+ "category": "Interactive",
8330
+ "description": "Fog that fills the screen and interacts with the mouse",
8331
+ "fileName": "Fog",
8332
+ "definition": {
8333
+ "name": "Fog",
8334
+ "category": "Interactive",
8335
+ "description": "Fog that fills the screen and interacts with the mouse",
8336
+ "props": {
8337
+ "colorA": {
8338
+ "default": "#e0e0e0",
8339
+ "description": "Primary fog color",
8340
+ "ui": {
8341
+ "type": "color",
8342
+ "label": "Color A",
8343
+ "group": "Colors"
8344
+ }
8345
+ },
8346
+ "colorB": {
8347
+ "default": "#888888",
8348
+ "description": "Secondary fog color — creates variation across the field",
8349
+ "ui": {
8350
+ "type": "color",
8351
+ "label": "Color B",
8352
+ "group": "Colors"
8353
+ }
8354
+ },
8355
+ "seed": {
8356
+ "default": 0,
8357
+ "description": "Deterministic starting pattern — different seeds produce different fog configurations",
8358
+ "ui": {
8359
+ "type": "range",
8360
+ "min": 0,
8361
+ "max": 999,
8362
+ "step": 1,
8363
+ "label": "Seed",
8364
+ "group": "Field"
8365
+ }
8366
+ },
8367
+ "speed": {
8368
+ "default": 1,
8369
+ "description": "Simulation speed multiplier",
8370
+ "ui": {
8371
+ "type": "range",
8372
+ "min": 0.1,
8373
+ "max": 3,
8374
+ "step": 0.1,
8375
+ "label": "Speed",
8376
+ "group": "Field"
8377
+ }
8378
+ },
8379
+ "turbulence": {
8380
+ "default": 1,
8381
+ "description": "Ambient motion strength",
8382
+ "ui": {
8383
+ "type": "range",
8384
+ "min": 0,
8385
+ "max": 3,
8386
+ "step": 0.05,
8387
+ "label": "Turbulence",
8388
+ "group": "Field"
8389
+ }
8390
+ },
8391
+ "detail": {
8392
+ "default": 15,
8393
+ "description": "Fine-scale swirling structure — higher values produce more intricate wisps and vortices",
8394
+ "ui": {
8395
+ "type": "range",
8396
+ "min": 0,
8397
+ "max": 50,
8398
+ "step": 1,
8399
+ "label": "Detail",
8400
+ "group": "Field"
8401
+ }
8402
+ },
8403
+ "blending": {
8404
+ "default": 0.3,
8405
+ "description": "How much the two colors blend together — 0 behaves like oil & water (colors stay distinct with sharp boundaries), 1 behaves like food coloring (colors fully mix)",
8406
+ "ui": {
8407
+ "type": "range",
8408
+ "min": 0,
8409
+ "max": 1,
8410
+ "step": 0.05,
8411
+ "label": "Blending",
8412
+ "group": "Field"
8413
+ }
8414
+ },
8415
+ "mouseInfluence": {
8416
+ "default": 0.1,
8417
+ "description": "Strength of cursor influence — move the cursor to push fog",
8418
+ "ui": {
8419
+ "type": "range",
8420
+ "min": 0,
8421
+ "max": 2,
8422
+ "step": 0.05,
8423
+ "label": "Cursor Influence",
8424
+ "group": "Interaction"
8425
+ }
8426
+ },
8427
+ "mouseRadius": {
8428
+ "default": 0.1,
8429
+ "description": "Radius of cursor influence area",
8430
+ "ui": {
8431
+ "type": "range",
8432
+ "min": 0.02,
8433
+ "max": 0.5,
8434
+ "step": 0.01,
8435
+ "label": "Cursor Radius",
8436
+ "group": "Interaction"
8437
+ }
8438
+ },
8439
+ "colorSpace": {
8440
+ "default": "linear",
8441
+ "compileTime": true,
8442
+ "description": "Color space for color interpolation",
8443
+ "ui": {
8444
+ "type": "select",
8445
+ "options": [
8446
+ {
8447
+ "label": "Linear RGB",
8448
+ "value": "linear"
8449
+ },
8450
+ {
8451
+ "label": "OKLCh",
8452
+ "value": "oklch"
8453
+ },
8454
+ {
8455
+ "label": "OKLAB",
8456
+ "value": "oklab"
8457
+ },
8458
+ {
8459
+ "label": "HSL",
8460
+ "value": "hsl"
8461
+ },
8462
+ {
8463
+ "label": "HSV",
8464
+ "value": "hsv"
8465
+ },
8466
+ {
8467
+ "label": "LCH",
8468
+ "value": "lch"
8469
+ }
8470
+ ],
8471
+ "label": "Color Space",
8472
+ "group": "Colors"
8473
+ }
8474
+ }
8475
+ }
8476
+ },
8477
+ "propsMetadata": {
8478
+ "colorA": {
8479
+ "ui": {
8480
+ "type": "color",
8481
+ "label": "Color A",
8482
+ "group": "Colors"
8483
+ },
8484
+ "default": "#e0e0e0",
8485
+ "description": "Primary fog color"
8486
+ },
8487
+ "colorB": {
8488
+ "ui": {
8489
+ "type": "color",
8490
+ "label": "Color B",
8491
+ "group": "Colors"
8492
+ },
8493
+ "default": "#888888",
8494
+ "description": "Secondary fog color — creates variation across the field"
8495
+ },
8496
+ "seed": {
8497
+ "ui": {
8498
+ "type": "range",
8499
+ "min": 0,
8500
+ "max": 999,
8501
+ "step": 1,
8502
+ "label": "Seed",
8503
+ "group": "Field"
8504
+ },
8505
+ "default": 0,
8506
+ "description": "Deterministic starting pattern — different seeds produce different fog configurations"
8507
+ },
8508
+ "speed": {
8509
+ "ui": {
8510
+ "type": "range",
8511
+ "min": 0.1,
8512
+ "max": 3,
8513
+ "step": 0.1,
8514
+ "label": "Speed",
8515
+ "group": "Field"
8516
+ },
8517
+ "default": 1,
8518
+ "description": "Simulation speed multiplier"
8519
+ },
8520
+ "turbulence": {
8521
+ "ui": {
8522
+ "type": "range",
8523
+ "min": 0,
8524
+ "max": 3,
8525
+ "step": 0.05,
8526
+ "label": "Turbulence",
8527
+ "group": "Field"
8528
+ },
8529
+ "default": 1,
8530
+ "description": "Ambient motion strength"
8531
+ },
8532
+ "detail": {
8533
+ "ui": {
8534
+ "type": "range",
8535
+ "min": 0,
8536
+ "max": 50,
8537
+ "step": 1,
8538
+ "label": "Detail",
8539
+ "group": "Field"
8540
+ },
8541
+ "default": 15,
8542
+ "description": "Fine-scale swirling structure — higher values produce more intricate wisps and vortices"
8543
+ },
8544
+ "blending": {
8545
+ "ui": {
8546
+ "type": "range",
8547
+ "min": 0,
8548
+ "max": 1,
8549
+ "step": 0.05,
8550
+ "label": "Blending",
8551
+ "group": "Field"
8552
+ },
8553
+ "default": 0.3,
8554
+ "description": "How much the two colors blend together — 0 behaves like oil & water (colors stay distinct with sharp boundaries), 1 behaves like food coloring (colors fully mix)"
8555
+ },
8556
+ "mouseInfluence": {
8557
+ "ui": {
8558
+ "type": "range",
8559
+ "min": 0,
8560
+ "max": 2,
8561
+ "step": 0.05,
8562
+ "label": "Cursor Influence",
8563
+ "group": "Interaction"
8564
+ },
8565
+ "default": 0.1,
8566
+ "description": "Strength of cursor influence — move the cursor to push fog"
8567
+ },
8568
+ "mouseRadius": {
8569
+ "ui": {
8570
+ "type": "range",
8571
+ "min": 0.02,
8572
+ "max": 0.5,
8573
+ "step": 0.01,
8574
+ "label": "Cursor Radius",
8575
+ "group": "Interaction"
8576
+ },
8577
+ "default": 0.1,
8578
+ "description": "Radius of cursor influence area"
8579
+ },
8580
+ "colorSpace": {
8581
+ "ui": {
8582
+ "type": "select",
8583
+ "options": [
8584
+ {
8585
+ "label": "Linear RGB",
8586
+ "value": "linear"
8587
+ },
8588
+ {
8589
+ "label": "OKLCh",
8590
+ "value": "oklch"
8591
+ },
8592
+ {
8593
+ "label": "OKLAB",
8594
+ "value": "oklab"
8595
+ },
8596
+ {
8597
+ "label": "HSL",
8598
+ "value": "hsl"
8599
+ },
8600
+ {
8601
+ "label": "HSV",
8602
+ "value": "hsv"
8603
+ },
8604
+ {
8605
+ "label": "LCH",
8606
+ "value": "lch"
8607
+ }
8608
+ ],
8609
+ "label": "Color Space",
8610
+ "group": "Colors"
8611
+ },
8612
+ "default": "linear",
8613
+ "description": "Color space for color interpolation"
8614
+ }
8615
+ }
8616
+ },
8327
8617
  {
8328
8618
  "name": "Form3D",
8329
8619
  "category": "Distortions",
@@ -16413,6 +16703,905 @@ export const shaderRegistry = [
16413
16703
  }
16414
16704
  }
16415
16705
  },
16706
+ {
16707
+ "name": "Smoke",
16708
+ "category": "Interactive",
16709
+ "description": "Realistic fluid smoke simulation with vorticity dynamics",
16710
+ "fileName": "Smoke",
16711
+ "definition": {
16712
+ "name": "Smoke",
16713
+ "category": "Interactive",
16714
+ "description": "Realistic fluid smoke simulation with vorticity dynamics",
16715
+ "props": {
16716
+ "colorA": {
16717
+ "default": "#fc83f9",
16718
+ "description": "Color of fresh smoke",
16719
+ "ui": {
16720
+ "type": "color",
16721
+ "label": "Start Color",
16722
+ "group": "Colors"
16723
+ }
16724
+ },
16725
+ "colorB": {
16726
+ "default": "#c21c79",
16727
+ "description": "Color smoke transitions to as it ages",
16728
+ "ui": {
16729
+ "type": "color",
16730
+ "label": "End Color",
16731
+ "group": "Colors"
16732
+ }
16733
+ },
16734
+ "emitFrom": {
16735
+ "default": {
16736
+ "x": 0.5,
16737
+ "y": 1
16738
+ },
16739
+ "description": "The emission source point",
16740
+ "ui": {
16741
+ "type": "position",
16742
+ "label": "Emit From",
16743
+ "group": "Emission"
16744
+ }
16745
+ },
16746
+ "direction": {
16747
+ "default": 0,
16748
+ "description": "Emission direction (0 = up, 90 = right, 180 = down, 270 = left)",
16749
+ "ui": {
16750
+ "type": "range",
16751
+ "min": 0,
16752
+ "max": 360,
16753
+ "step": 1,
16754
+ "label": "Direction",
16755
+ "group": "Emission"
16756
+ }
16757
+ },
16758
+ "speed": {
16759
+ "default": 20,
16760
+ "description": "Emission velocity strength",
16761
+ "ui": {
16762
+ "type": "range",
16763
+ "min": 0.1,
16764
+ "max": 50,
16765
+ "step": 0.1,
16766
+ "label": "Speed",
16767
+ "group": "Emission"
16768
+ }
16769
+ },
16770
+ "spread": {
16771
+ "default": 60,
16772
+ "description": "Emission cone angle in degrees",
16773
+ "ui": {
16774
+ "type": "range",
16775
+ "min": 0,
16776
+ "max": 180,
16777
+ "step": 1,
16778
+ "label": "Spread",
16779
+ "group": "Emission"
16780
+ }
16781
+ },
16782
+ "emitRadius": {
16783
+ "default": 0.08,
16784
+ "description": "Size of the emission area",
16785
+ "ui": {
16786
+ "type": "range",
16787
+ "min": 0.01,
16788
+ "max": 0.3,
16789
+ "step": 0.01,
16790
+ "label": "Emit Size",
16791
+ "group": "Emission"
16792
+ }
16793
+ },
16794
+ "intensity": {
16795
+ "default": 1,
16796
+ "description": "Smoke emission density",
16797
+ "ui": {
16798
+ "type": "range",
16799
+ "min": 0.1,
16800
+ "max": 1,
16801
+ "step": 0.05,
16802
+ "label": "Intensity",
16803
+ "group": "Effect"
16804
+ }
16805
+ },
16806
+ "dissipation": {
16807
+ "default": 0.2,
16808
+ "description": "How fast smoke fades over time",
16809
+ "ui": {
16810
+ "type": "range",
16811
+ "min": 0.1,
16812
+ "max": 3,
16813
+ "step": 0.1,
16814
+ "label": "Dissipation",
16815
+ "group": "Effect"
16816
+ }
16817
+ },
16818
+ "detail": {
16819
+ "default": 25,
16820
+ "description": "Fine-scale swirling detail",
16821
+ "ui": {
16822
+ "type": "range",
16823
+ "min": 0,
16824
+ "max": 50,
16825
+ "step": 1,
16826
+ "label": "Detail",
16827
+ "group": "Effect"
16828
+ }
16829
+ },
16830
+ "gravity": {
16831
+ "default": 0.5,
16832
+ "description": "Downward gravitational pull on smoke",
16833
+ "ui": {
16834
+ "type": "range",
16835
+ "min": -2,
16836
+ "max": 2,
16837
+ "step": 0.1,
16838
+ "label": "Gravity",
16839
+ "group": "Effect"
16840
+ }
16841
+ },
16842
+ "colorDecay": {
16843
+ "default": 0.4,
16844
+ "description": "How quickly smoke shifts from Color A to Color B",
16845
+ "ui": {
16846
+ "type": "range",
16847
+ "min": 0,
16848
+ "max": 3,
16849
+ "step": 0.1,
16850
+ "label": "Color Decay",
16851
+ "group": "Colors"
16852
+ }
16853
+ },
16854
+ "mouseInfluence": {
16855
+ "default": 0.1,
16856
+ "description": "Strength of cursor influence",
16857
+ "ui": {
16858
+ "type": "range",
16859
+ "min": 0,
16860
+ "max": 2,
16861
+ "step": 0.05,
16862
+ "label": "Cursor Influence",
16863
+ "group": "Interaction"
16864
+ }
16865
+ },
16866
+ "mouseRadius": {
16867
+ "default": 0.1,
16868
+ "description": "Radius of cursor influence area",
16869
+ "ui": {
16870
+ "type": "range",
16871
+ "min": 0.02,
16872
+ "max": 0.5,
16873
+ "step": 0.01,
16874
+ "label": "Cursor Radius",
16875
+ "group": "Interaction"
16876
+ }
16877
+ },
16878
+ "colorSpace": {
16879
+ "default": "linear",
16880
+ "compileTime": true,
16881
+ "description": "Color space for color interpolation",
16882
+ "ui": {
16883
+ "type": "select",
16884
+ "options": [
16885
+ {
16886
+ "label": "Linear RGB",
16887
+ "value": "linear"
16888
+ },
16889
+ {
16890
+ "label": "OKLCh",
16891
+ "value": "oklch"
16892
+ },
16893
+ {
16894
+ "label": "OKLAB",
16895
+ "value": "oklab"
16896
+ },
16897
+ {
16898
+ "label": "HSL",
16899
+ "value": "hsl"
16900
+ },
16901
+ {
16902
+ "label": "HSV",
16903
+ "value": "hsv"
16904
+ },
16905
+ {
16906
+ "label": "LCH",
16907
+ "value": "lch"
16908
+ }
16909
+ ],
16910
+ "label": "Color Space",
16911
+ "group": "Colors"
16912
+ }
16913
+ }
16914
+ }
16915
+ },
16916
+ "propsMetadata": {
16917
+ "colorA": {
16918
+ "ui": {
16919
+ "type": "color",
16920
+ "label": "Start Color",
16921
+ "group": "Colors"
16922
+ },
16923
+ "default": "#fc83f9",
16924
+ "description": "Color of fresh smoke"
16925
+ },
16926
+ "colorB": {
16927
+ "ui": {
16928
+ "type": "color",
16929
+ "label": "End Color",
16930
+ "group": "Colors"
16931
+ },
16932
+ "default": "#c21c79",
16933
+ "description": "Color smoke transitions to as it ages"
16934
+ },
16935
+ "emitFrom": {
16936
+ "ui": {
16937
+ "type": "position",
16938
+ "label": "Emit From",
16939
+ "group": "Emission"
16940
+ },
16941
+ "default": {
16942
+ "x": 0.5,
16943
+ "y": 1
16944
+ },
16945
+ "description": "The emission source point"
16946
+ },
16947
+ "direction": {
16948
+ "ui": {
16949
+ "type": "range",
16950
+ "min": 0,
16951
+ "max": 360,
16952
+ "step": 1,
16953
+ "label": "Direction",
16954
+ "group": "Emission"
16955
+ },
16956
+ "default": 0,
16957
+ "description": "Emission direction (0 = up, 90 = right, 180 = down, 270 = left)"
16958
+ },
16959
+ "speed": {
16960
+ "ui": {
16961
+ "type": "range",
16962
+ "min": 0.1,
16963
+ "max": 50,
16964
+ "step": 0.1,
16965
+ "label": "Speed",
16966
+ "group": "Emission"
16967
+ },
16968
+ "default": 20,
16969
+ "description": "Emission velocity strength"
16970
+ },
16971
+ "spread": {
16972
+ "ui": {
16973
+ "type": "range",
16974
+ "min": 0,
16975
+ "max": 180,
16976
+ "step": 1,
16977
+ "label": "Spread",
16978
+ "group": "Emission"
16979
+ },
16980
+ "default": 60,
16981
+ "description": "Emission cone angle in degrees"
16982
+ },
16983
+ "emitRadius": {
16984
+ "ui": {
16985
+ "type": "range",
16986
+ "min": 0.01,
16987
+ "max": 0.3,
16988
+ "step": 0.01,
16989
+ "label": "Emit Size",
16990
+ "group": "Emission"
16991
+ },
16992
+ "default": 0.08,
16993
+ "description": "Size of the emission area"
16994
+ },
16995
+ "intensity": {
16996
+ "ui": {
16997
+ "type": "range",
16998
+ "min": 0.1,
16999
+ "max": 1,
17000
+ "step": 0.05,
17001
+ "label": "Intensity",
17002
+ "group": "Effect"
17003
+ },
17004
+ "default": 1,
17005
+ "description": "Smoke emission density"
17006
+ },
17007
+ "dissipation": {
17008
+ "ui": {
17009
+ "type": "range",
17010
+ "min": 0.1,
17011
+ "max": 3,
17012
+ "step": 0.1,
17013
+ "label": "Dissipation",
17014
+ "group": "Effect"
17015
+ },
17016
+ "default": 0.2,
17017
+ "description": "How fast smoke fades over time"
17018
+ },
17019
+ "detail": {
17020
+ "ui": {
17021
+ "type": "range",
17022
+ "min": 0,
17023
+ "max": 50,
17024
+ "step": 1,
17025
+ "label": "Detail",
17026
+ "group": "Effect"
17027
+ },
17028
+ "default": 25,
17029
+ "description": "Fine-scale swirling detail"
17030
+ },
17031
+ "gravity": {
17032
+ "ui": {
17033
+ "type": "range",
17034
+ "min": -2,
17035
+ "max": 2,
17036
+ "step": 0.1,
17037
+ "label": "Gravity",
17038
+ "group": "Effect"
17039
+ },
17040
+ "default": 0.5,
17041
+ "description": "Downward gravitational pull on smoke"
17042
+ },
17043
+ "colorDecay": {
17044
+ "ui": {
17045
+ "type": "range",
17046
+ "min": 0,
17047
+ "max": 3,
17048
+ "step": 0.1,
17049
+ "label": "Color Decay",
17050
+ "group": "Colors"
17051
+ },
17052
+ "default": 0.4,
17053
+ "description": "How quickly smoke shifts from Color A to Color B"
17054
+ },
17055
+ "mouseInfluence": {
17056
+ "ui": {
17057
+ "type": "range",
17058
+ "min": 0,
17059
+ "max": 2,
17060
+ "step": 0.05,
17061
+ "label": "Cursor Influence",
17062
+ "group": "Interaction"
17063
+ },
17064
+ "default": 0.1,
17065
+ "description": "Strength of cursor influence"
17066
+ },
17067
+ "mouseRadius": {
17068
+ "ui": {
17069
+ "type": "range",
17070
+ "min": 0.02,
17071
+ "max": 0.5,
17072
+ "step": 0.01,
17073
+ "label": "Cursor Radius",
17074
+ "group": "Interaction"
17075
+ },
17076
+ "default": 0.1,
17077
+ "description": "Radius of cursor influence area"
17078
+ },
17079
+ "colorSpace": {
17080
+ "ui": {
17081
+ "type": "select",
17082
+ "options": [
17083
+ {
17084
+ "label": "Linear RGB",
17085
+ "value": "linear"
17086
+ },
17087
+ {
17088
+ "label": "OKLCh",
17089
+ "value": "oklch"
17090
+ },
17091
+ {
17092
+ "label": "OKLAB",
17093
+ "value": "oklab"
17094
+ },
17095
+ {
17096
+ "label": "HSL",
17097
+ "value": "hsl"
17098
+ },
17099
+ {
17100
+ "label": "HSV",
17101
+ "value": "hsv"
17102
+ },
17103
+ {
17104
+ "label": "LCH",
17105
+ "value": "lch"
17106
+ }
17107
+ ],
17108
+ "label": "Color Space",
17109
+ "group": "Colors"
17110
+ },
17111
+ "default": "linear",
17112
+ "description": "Color space for color interpolation"
17113
+ }
17114
+ }
17115
+ },
17116
+ {
17117
+ "name": "SmokeFill",
17118
+ "category": "Shape Effects",
17119
+ "description": "Fill a shape with swirling fluid smoke that interacts with the shape boundary",
17120
+ "fileName": "SmokeFill",
17121
+ "requiresChild": false,
17122
+ "definition": {
17123
+ "name": "SmokeFill",
17124
+ "category": "Shape Effects",
17125
+ "description": "Fill a shape with swirling fluid smoke that interacts with the shape boundary",
17126
+ "requiresRTT": false,
17127
+ "requiresChild": false,
17128
+ "props": {
17129
+ "colorA": {
17130
+ "default": "#8cf3ff",
17131
+ "description": "Color of fresh smoke",
17132
+ "ui": {
17133
+ "type": "color",
17134
+ "label": "Start Color",
17135
+ "group": "Colors"
17136
+ }
17137
+ },
17138
+ "colorB": {
17139
+ "default": "#04a0d6",
17140
+ "description": "Color smoke transitions to as it ages",
17141
+ "ui": {
17142
+ "type": "color",
17143
+ "label": "End Color",
17144
+ "group": "Colors"
17145
+ }
17146
+ },
17147
+ "center": {
17148
+ "default": {
17149
+ "x": 0.5,
17150
+ "y": 0.5
17151
+ },
17152
+ "description": "Center position of the shape",
17153
+ "ui": {
17154
+ "type": "position",
17155
+ "label": "Center",
17156
+ "group": "Position"
17157
+ }
17158
+ },
17159
+ "scale": {
17160
+ "default": 1,
17161
+ "description": "Scale of the shape (1 = default size)",
17162
+ "ui": {
17163
+ "type": "range",
17164
+ "min": 0.1,
17165
+ "max": 3,
17166
+ "step": 0.05,
17167
+ "label": "Scale",
17168
+ "group": "Position"
17169
+ }
17170
+ },
17171
+ "emitFrom": {
17172
+ "default": {
17173
+ "x": 0.5,
17174
+ "y": 0.5
17175
+ },
17176
+ "description": "Emission source point within the shape",
17177
+ "ui": {
17178
+ "type": "position",
17179
+ "label": "Emit From",
17180
+ "group": "Emission"
17181
+ }
17182
+ },
17183
+ "direction": {
17184
+ "default": 0,
17185
+ "description": "Emission direction (0 = up, 90 = right, 180 = down, 270 = left)",
17186
+ "ui": {
17187
+ "type": "range",
17188
+ "min": 0,
17189
+ "max": 360,
17190
+ "step": 1,
17191
+ "label": "Direction",
17192
+ "group": "Emission"
17193
+ }
17194
+ },
17195
+ "speed": {
17196
+ "default": 10,
17197
+ "description": "Emission velocity strength",
17198
+ "ui": {
17199
+ "type": "range",
17200
+ "min": 0.1,
17201
+ "max": 30,
17202
+ "step": 0.1,
17203
+ "label": "Speed",
17204
+ "group": "Emission"
17205
+ }
17206
+ },
17207
+ "spread": {
17208
+ "default": 60,
17209
+ "description": "Emission cone angle in degrees",
17210
+ "ui": {
17211
+ "type": "range",
17212
+ "min": 0,
17213
+ "max": 180,
17214
+ "step": 1,
17215
+ "label": "Spread",
17216
+ "group": "Emission"
17217
+ }
17218
+ },
17219
+ "emitRadius": {
17220
+ "default": 0.03,
17221
+ "description": "Size of the emission area",
17222
+ "ui": {
17223
+ "type": "range",
17224
+ "min": 0.01,
17225
+ "max": 0.3,
17226
+ "step": 0.01,
17227
+ "label": "Emit Size",
17228
+ "group": "Emission"
17229
+ }
17230
+ },
17231
+ "intensity": {
17232
+ "default": 1,
17233
+ "description": "Smoke emission density",
17234
+ "ui": {
17235
+ "type": "range",
17236
+ "min": 0.1,
17237
+ "max": 1,
17238
+ "step": 0.05,
17239
+ "label": "Intensity",
17240
+ "group": "Effect"
17241
+ }
17242
+ },
17243
+ "dissipation": {
17244
+ "default": 0.3,
17245
+ "description": "How fast smoke fades over time",
17246
+ "ui": {
17247
+ "type": "range",
17248
+ "min": 0.1,
17249
+ "max": 5,
17250
+ "step": 0.1,
17251
+ "label": "Dissipation",
17252
+ "group": "Effect"
17253
+ }
17254
+ },
17255
+ "detail": {
17256
+ "default": 25,
17257
+ "description": "Fine-scale swirling detail",
17258
+ "ui": {
17259
+ "type": "range",
17260
+ "min": 0,
17261
+ "max": 50,
17262
+ "step": 1,
17263
+ "label": "Detail",
17264
+ "group": "Effect"
17265
+ }
17266
+ },
17267
+ "gravity": {
17268
+ "default": 0.5,
17269
+ "description": "Downward gravitational pull on smoke — 0 = weightless, negative values = smoke rises",
17270
+ "ui": {
17271
+ "type": "range",
17272
+ "min": -2,
17273
+ "max": 2,
17274
+ "step": 0.1,
17275
+ "label": "Gravity",
17276
+ "group": "Effect"
17277
+ }
17278
+ },
17279
+ "colorDecay": {
17280
+ "default": 0.4,
17281
+ "description": "How quickly smoke shifts from Color A to Color B",
17282
+ "ui": {
17283
+ "type": "range",
17284
+ "min": 0,
17285
+ "max": 3,
17286
+ "step": 0.1,
17287
+ "label": "Color Decay",
17288
+ "group": "Colors"
17289
+ }
17290
+ },
17291
+ "mouseInfluence": {
17292
+ "default": 0.1,
17293
+ "description": "Strength of cursor influence",
17294
+ "ui": {
17295
+ "type": "range",
17296
+ "min": 0,
17297
+ "max": 2,
17298
+ "step": 0.05,
17299
+ "label": "Cursor Influence",
17300
+ "group": "Interaction"
17301
+ }
17302
+ },
17303
+ "mouseRadius": {
17304
+ "default": 0.1,
17305
+ "description": "Radius of cursor influence area",
17306
+ "ui": {
17307
+ "type": "range",
17308
+ "min": 0.02,
17309
+ "max": 0.5,
17310
+ "step": 0.01,
17311
+ "label": "Cursor Radius",
17312
+ "group": "Interaction"
17313
+ }
17314
+ },
17315
+ "colorSpace": {
17316
+ "default": "linear",
17317
+ "compileTime": true,
17318
+ "description": "Color space for color interpolation",
17319
+ "ui": {
17320
+ "type": "select",
17321
+ "options": [
17322
+ {
17323
+ "label": "Linear RGB",
17324
+ "value": "linear"
17325
+ },
17326
+ {
17327
+ "label": "OKLCh",
17328
+ "value": "oklch"
17329
+ },
17330
+ {
17331
+ "label": "OKLAB",
17332
+ "value": "oklab"
17333
+ },
17334
+ {
17335
+ "label": "HSL",
17336
+ "value": "hsl"
17337
+ },
17338
+ {
17339
+ "label": "HSV",
17340
+ "value": "hsv"
17341
+ },
17342
+ {
17343
+ "label": "LCH",
17344
+ "value": "lch"
17345
+ }
17346
+ ],
17347
+ "label": "Color Space",
17348
+ "group": "Colors"
17349
+ }
17350
+ },
17351
+ "shape": {
17352
+ "default": "{\"type\":\"circleSDF\",\"radius\":0.35}",
17353
+ "description": "Serialized shape configuration (JSON)",
17354
+ "ui": {
17355
+ "type": "shape",
17356
+ "label": "Shape",
17357
+ "group": "Shape"
17358
+ }
17359
+ },
17360
+ "shapeSdfUrl": {
17361
+ "default": "",
17362
+ "compileTime": true,
17363
+ "description": "URL to a pre-generated SDF .bin file"
17364
+ },
17365
+ "shapeType": {
17366
+ "default": "",
17367
+ "compileTime": true,
17368
+ "description": "Active SDF shape type"
17369
+ }
17370
+ }
17371
+ },
17372
+ "propsMetadata": {
17373
+ "colorA": {
17374
+ "ui": {
17375
+ "type": "color",
17376
+ "label": "Start Color",
17377
+ "group": "Colors"
17378
+ },
17379
+ "default": "#8cf3ff",
17380
+ "description": "Color of fresh smoke"
17381
+ },
17382
+ "colorB": {
17383
+ "ui": {
17384
+ "type": "color",
17385
+ "label": "End Color",
17386
+ "group": "Colors"
17387
+ },
17388
+ "default": "#04a0d6",
17389
+ "description": "Color smoke transitions to as it ages"
17390
+ },
17391
+ "center": {
17392
+ "ui": {
17393
+ "type": "position",
17394
+ "label": "Center",
17395
+ "group": "Position"
17396
+ },
17397
+ "default": {
17398
+ "x": 0.5,
17399
+ "y": 0.5
17400
+ },
17401
+ "description": "Center position of the shape"
17402
+ },
17403
+ "scale": {
17404
+ "ui": {
17405
+ "type": "range",
17406
+ "min": 0.1,
17407
+ "max": 3,
17408
+ "step": 0.05,
17409
+ "label": "Scale",
17410
+ "group": "Position"
17411
+ },
17412
+ "default": 1,
17413
+ "description": "Scale of the shape (1 = default size)"
17414
+ },
17415
+ "emitFrom": {
17416
+ "ui": {
17417
+ "type": "position",
17418
+ "label": "Emit From",
17419
+ "group": "Emission"
17420
+ },
17421
+ "default": {
17422
+ "x": 0.5,
17423
+ "y": 0.5
17424
+ },
17425
+ "description": "Emission source point within the shape"
17426
+ },
17427
+ "direction": {
17428
+ "ui": {
17429
+ "type": "range",
17430
+ "min": 0,
17431
+ "max": 360,
17432
+ "step": 1,
17433
+ "label": "Direction",
17434
+ "group": "Emission"
17435
+ },
17436
+ "default": 0,
17437
+ "description": "Emission direction (0 = up, 90 = right, 180 = down, 270 = left)"
17438
+ },
17439
+ "speed": {
17440
+ "ui": {
17441
+ "type": "range",
17442
+ "min": 0.1,
17443
+ "max": 30,
17444
+ "step": 0.1,
17445
+ "label": "Speed",
17446
+ "group": "Emission"
17447
+ },
17448
+ "default": 10,
17449
+ "description": "Emission velocity strength"
17450
+ },
17451
+ "spread": {
17452
+ "ui": {
17453
+ "type": "range",
17454
+ "min": 0,
17455
+ "max": 180,
17456
+ "step": 1,
17457
+ "label": "Spread",
17458
+ "group": "Emission"
17459
+ },
17460
+ "default": 60,
17461
+ "description": "Emission cone angle in degrees"
17462
+ },
17463
+ "emitRadius": {
17464
+ "ui": {
17465
+ "type": "range",
17466
+ "min": 0.01,
17467
+ "max": 0.3,
17468
+ "step": 0.01,
17469
+ "label": "Emit Size",
17470
+ "group": "Emission"
17471
+ },
17472
+ "default": 0.03,
17473
+ "description": "Size of the emission area"
17474
+ },
17475
+ "intensity": {
17476
+ "ui": {
17477
+ "type": "range",
17478
+ "min": 0.1,
17479
+ "max": 1,
17480
+ "step": 0.05,
17481
+ "label": "Intensity",
17482
+ "group": "Effect"
17483
+ },
17484
+ "default": 1,
17485
+ "description": "Smoke emission density"
17486
+ },
17487
+ "dissipation": {
17488
+ "ui": {
17489
+ "type": "range",
17490
+ "min": 0.1,
17491
+ "max": 5,
17492
+ "step": 0.1,
17493
+ "label": "Dissipation",
17494
+ "group": "Effect"
17495
+ },
17496
+ "default": 0.3,
17497
+ "description": "How fast smoke fades over time"
17498
+ },
17499
+ "detail": {
17500
+ "ui": {
17501
+ "type": "range",
17502
+ "min": 0,
17503
+ "max": 50,
17504
+ "step": 1,
17505
+ "label": "Detail",
17506
+ "group": "Effect"
17507
+ },
17508
+ "default": 25,
17509
+ "description": "Fine-scale swirling detail"
17510
+ },
17511
+ "gravity": {
17512
+ "ui": {
17513
+ "type": "range",
17514
+ "min": -2,
17515
+ "max": 2,
17516
+ "step": 0.1,
17517
+ "label": "Gravity",
17518
+ "group": "Effect"
17519
+ },
17520
+ "default": 0.5,
17521
+ "description": "Downward gravitational pull on smoke — 0 = weightless, negative values = smoke rises"
17522
+ },
17523
+ "colorDecay": {
17524
+ "ui": {
17525
+ "type": "range",
17526
+ "min": 0,
17527
+ "max": 3,
17528
+ "step": 0.1,
17529
+ "label": "Color Decay",
17530
+ "group": "Colors"
17531
+ },
17532
+ "default": 0.4,
17533
+ "description": "How quickly smoke shifts from Color A to Color B"
17534
+ },
17535
+ "mouseInfluence": {
17536
+ "ui": {
17537
+ "type": "range",
17538
+ "min": 0,
17539
+ "max": 2,
17540
+ "step": 0.05,
17541
+ "label": "Cursor Influence",
17542
+ "group": "Interaction"
17543
+ },
17544
+ "default": 0.1,
17545
+ "description": "Strength of cursor influence"
17546
+ },
17547
+ "mouseRadius": {
17548
+ "ui": {
17549
+ "type": "range",
17550
+ "min": 0.02,
17551
+ "max": 0.5,
17552
+ "step": 0.01,
17553
+ "label": "Cursor Radius",
17554
+ "group": "Interaction"
17555
+ },
17556
+ "default": 0.1,
17557
+ "description": "Radius of cursor influence area"
17558
+ },
17559
+ "colorSpace": {
17560
+ "ui": {
17561
+ "type": "select",
17562
+ "options": [
17563
+ {
17564
+ "label": "Linear RGB",
17565
+ "value": "linear"
17566
+ },
17567
+ {
17568
+ "label": "OKLCh",
17569
+ "value": "oklch"
17570
+ },
17571
+ {
17572
+ "label": "OKLAB",
17573
+ "value": "oklab"
17574
+ },
17575
+ {
17576
+ "label": "HSL",
17577
+ "value": "hsl"
17578
+ },
17579
+ {
17580
+ "label": "HSV",
17581
+ "value": "hsv"
17582
+ },
17583
+ {
17584
+ "label": "LCH",
17585
+ "value": "lch"
17586
+ }
17587
+ ],
17588
+ "label": "Color Space",
17589
+ "group": "Colors"
17590
+ },
17591
+ "default": "linear",
17592
+ "description": "Color space for color interpolation"
17593
+ },
17594
+ "shape": {
17595
+ "ui": {
17596
+ "type": "shape",
17597
+ "label": "Shape",
17598
+ "group": "Shape"
17599
+ },
17600
+ "default": "{\"type\":\"circleSDF\",\"radius\":0.35}",
17601
+ "description": "Serialized shape configuration (JSON)"
17602
+ }
17603
+ }
17604
+ },
16416
17605
  {
16417
17606
  "name": "Solarize",
16418
17607
  "category": "Adjustments",