gl-transitions 1.73.0 → 1.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/README.md +77 -0
  2. package/compatibility.json +2070 -0
  3. package/gl-transitions.js +1 -1
  4. package/gl-transitions.json +1 -1
  5. package/glsl3/AdvancedMosaic.glsl +21 -0
  6. package/glsl3/BlockDissolve.glsl +16 -0
  7. package/glsl3/BookFlip.glsl +37 -0
  8. package/glsl3/Bounce.glsl +35 -0
  9. package/glsl3/BowTieHorizontal.glsl +123 -0
  10. package/glsl3/BowTieVertical.glsl +117 -0
  11. package/glsl3/BowTieWithParameter.glsl +74 -0
  12. package/glsl3/Box.glsl +33 -0
  13. package/glsl3/ButterflyWaveScrawler.glsl +33 -0
  14. package/glsl3/CircleCrop.glsl +20 -0
  15. package/glsl3/ColourDistance.glsl +19 -0
  16. package/glsl3/CrazyParametricFun.glsl +20 -0
  17. package/glsl3/CrossZoom.glsl +68 -0
  18. package/glsl3/DefocusBlur.glsl +47 -0
  19. package/glsl3/Directional.glsl +18 -0
  20. package/glsl3/DirectionalScaled.glsl +35 -0
  21. package/glsl3/DoomScreenTransition.glsl +62 -0
  22. package/glsl3/Dreamy.glsl +14 -0
  23. package/glsl3/DreamyZoom.glsl +43 -0
  24. package/glsl3/Drop_Zone_Flicker.glsl +159 -0
  25. package/glsl3/EdgeTransition.glsl +50 -0
  26. package/glsl3/FilmBurn.glsl +63 -0
  27. package/glsl3/Fold.glsl +12 -0
  28. package/glsl3/GlitchDisplace.glsl +78 -0
  29. package/glsl3/GlitchMemories.glsl +17 -0
  30. package/glsl3/GridFlip.glsl +77 -0
  31. package/glsl3/HSVfade.glsl +29 -0
  32. package/glsl3/HorizontalClose.glsl +16 -0
  33. package/glsl3/HorizontalOpen.glsl +18 -0
  34. package/glsl3/InvertedPageCurl.glsl +228 -0
  35. package/glsl3/LeftRight.glsl +28 -0
  36. package/glsl3/LinearBlur.glsl +30 -0
  37. package/glsl3/Mosaic.glsl +45 -0
  38. package/glsl3/Overexposure.glsl +25 -0
  39. package/glsl3/PolkaDotsCurtain.glsl +14 -0
  40. package/glsl3/PuzzleRight.glsl +57 -0
  41. package/glsl3/Radial.glsl +19 -0
  42. package/glsl3/Rectangle.glsl +29 -0
  43. package/glsl3/RectangleCrop.glsl +30 -0
  44. package/glsl3/Revolve_Left.glsl +98 -0
  45. package/glsl3/Rolls.glsl +42 -0
  46. package/glsl3/RotateScaleVanish.glsl +42 -0
  47. package/glsl3/SimpleFlip.glsl +14 -0
  48. package/glsl3/SimpleZoom.glsl +20 -0
  49. package/glsl3/SimpleZoomOut.glsl +23 -0
  50. package/glsl3/Slides.glsl +41 -0
  51. package/glsl3/StarWipe.glsl +51 -0
  52. package/glsl3/StaticFade.glsl +47 -0
  53. package/glsl3/StereoViewer.glsl +214 -0
  54. package/glsl3/StripDatamoshGlitch.glsl +187 -0
  55. package/glsl3/Swirl.glsl +34 -0
  56. package/glsl3/TVStatic.glsl +29 -0
  57. package/glsl3/TilesWave.glsl +63 -0
  58. package/glsl3/TopBottom.glsl +27 -0
  59. package/glsl3/VerticalClose.glsl +16 -0
  60. package/glsl3/VerticalOpen.glsl +17 -0
  61. package/glsl3/WaterDrop.glsl +21 -0
  62. package/glsl3/ZoomInCircles.glsl +40 -0
  63. package/glsl3/ZoomLeftWipe.glsl +36 -0
  64. package/glsl3/ZoomRigthWipe.glsl +36 -0
  65. package/glsl3/angular.glsl +25 -0
  66. package/glsl3/burn.glsl +14 -0
  67. package/glsl3/burn0.glsl +55 -0
  68. package/glsl3/cannabisleaf.glsl +18 -0
  69. package/glsl3/chessboard.glsl +28 -0
  70. package/glsl3/circle.glsl +24 -0
  71. package/glsl3/circleopen.glsl +18 -0
  72. package/glsl3/colorphase.glsl +19 -0
  73. package/glsl3/coord-from-in.glsl +18 -0
  74. package/glsl3/crosshatch.glsl +20 -0
  75. package/glsl3/crosswarp.glsl +10 -0
  76. package/glsl3/cube.glsl +71 -0
  77. package/glsl3/directional-easing.glsl +19 -0
  78. package/glsl3/directionalwarp.glsl +20 -0
  79. package/glsl3/directionalwipe.glsl +22 -0
  80. package/glsl3/displacement.glsl +26 -0
  81. package/glsl3/dissolve.glsl +54 -0
  82. package/glsl3/doorway.glsl +55 -0
  83. package/glsl3/fade.glsl +13 -0
  84. package/glsl3/fadecolor.glsl +15 -0
  85. package/glsl3/fadegrayscale.glsl +21 -0
  86. package/glsl3/flyeye.glsl +20 -0
  87. package/glsl3/fragment.glsl +54 -0
  88. package/glsl3/heart.glsl +19 -0
  89. package/glsl3/hexagonalize.glsl +78 -0
  90. package/glsl3/kaleidoscope.glsl +25 -0
  91. package/glsl3/luma.glsl +15 -0
  92. package/glsl3/luminance_melt.glsl +131 -0
  93. package/glsl3/morph.glsl +20 -0
  94. package/glsl3/mosaic_transition.glsl +20 -0
  95. package/glsl3/multiply_blend.glsl +19 -0
  96. package/glsl3/old_tv_lost_signal.glsl +51 -0
  97. package/glsl3/parametric_glitch.glsl +29 -0
  98. package/glsl3/perlin.glsl +66 -0
  99. package/glsl3/pinwheel.glsl +20 -0
  100. package/glsl3/pixelize.glsl +21 -0
  101. package/glsl3/polar_function.glsl +24 -0
  102. package/glsl3/powerKaleido.glsl +57 -0
  103. package/glsl3/randomNoisex.glsl +15 -0
  104. package/glsl3/randomsquares.glsl +20 -0
  105. package/glsl3/ripple.glsl +20 -0
  106. package/glsl3/rotateTransition.glsl +22 -0
  107. package/glsl3/rotate_scale_fade.glsl +39 -0
  108. package/glsl3/scale-in.glsl +18 -0
  109. package/glsl3/splitSlideInHorizontal.glsl +26 -0
  110. package/glsl3/splitSlideInOutHorizontal.glsl +23 -0
  111. package/glsl3/splitSlideInOutVertical.glsl +23 -0
  112. package/glsl3/splitSlideInVertical.glsl +24 -0
  113. package/glsl3/splitSlideOutHorizontal.glsl +22 -0
  114. package/glsl3/splitSlideOutVertical.glsl +22 -0
  115. package/glsl3/squareswire.glsl +26 -0
  116. package/glsl3/squeeze.glsl +23 -0
  117. package/glsl3/static_wipe.glsl +39 -0
  118. package/glsl3/swap.glsl +64 -0
  119. package/glsl3/tangentMotionBlur.glsl +139 -0
  120. package/glsl3/undulatingBurnOut.glsl +56 -0
  121. package/glsl3/wind.glsl +25 -0
  122. package/glsl3/windowblinds.glsl +18 -0
  123. package/glsl3/windowslice.glsl +16 -0
  124. package/glsl3/wipeDown.glsl +12 -0
  125. package/glsl3/wipeLeft.glsl +12 -0
  126. package/glsl3/wipeRight.glsl +12 -0
  127. package/glsl3/wipeUp.glsl +12 -0
  128. package/glsl3/x_axis_translation.glsl +21 -0
  129. package/glsl3/zoomInOut.glsl +20 -0
  130. package/index.d.ts +61 -0
  131. package/index.js +1 -1
  132. package/layouts.json +2956 -0
  133. package/llms-full.txt +1707 -0
  134. package/llms.txt +153 -0
  135. package/msl/AdvancedMosaic.metal +136 -0
  136. package/msl/BlockDissolve.metal +108 -0
  137. package/msl/BookFlip.metal +191 -0
  138. package/msl/Bounce.metal +128 -0
  139. package/msl/BowTieHorizontal.metal +375 -0
  140. package/msl/BowTieVertical.metal +375 -0
  141. package/msl/BowTieWithParameter.metal +361 -0
  142. package/msl/Box.metal +204 -0
  143. package/msl/ButterflyWaveScrawler.metal +190 -0
  144. package/msl/CircleCrop.metal +117 -0
  145. package/msl/ColourDistance.metal +110 -0
  146. package/msl/CrazyParametricFun.metal +139 -0
  147. package/msl/CrossZoom.metal +274 -0
  148. package/msl/DefocusBlur.metal +297 -0
  149. package/msl/Directional.metal +107 -0
  150. package/msl/DirectionalScaled.metal +147 -0
  151. package/msl/DoomScreenTransition.metal +212 -0
  152. package/msl/Dreamy.metal +133 -0
  153. package/msl/DreamyZoom.metal +182 -0
  154. package/msl/Drop_Zone_Flicker.metal +561 -0
  155. package/msl/EdgeTransition.metal +277 -0
  156. package/msl/FilmBurn.metal +425 -0
  157. package/msl/Fold.metal +110 -0
  158. package/msl/GlitchDisplace.metal +374 -0
  159. package/msl/GlitchMemories.metal +146 -0
  160. package/msl/GridFlip.metal +285 -0
  161. package/msl/HSVfade.metal +161 -0
  162. package/msl/HorizontalClose.metal +100 -0
  163. package/msl/HorizontalOpen.metal +103 -0
  164. package/msl/InvertedPageCurl.metal +762 -0
  165. package/msl/LeftRight.metal +138 -0
  166. package/msl/LinearBlur.metal +169 -0
  167. package/msl/Mosaic.metal +212 -0
  168. package/msl/Overexposure.metal +130 -0
  169. package/msl/PolkaDotsCurtain.metal +112 -0
  170. package/msl/PuzzleRight.metal +262 -0
  171. package/msl/Radial.metal +102 -0
  172. package/msl/Rectangle.metal +129 -0
  173. package/msl/RectangleCrop.metal +127 -0
  174. package/msl/Revolve_Left.metal +363 -0
  175. package/msl/Rolls.metal +209 -0
  176. package/msl/RotateScaleVanish.metal +227 -0
  177. package/msl/SimpleFlip.metal +110 -0
  178. package/msl/SimpleZoom.metal +116 -0
  179. package/msl/SimpleZoomOut.metal +127 -0
  180. package/msl/Slides.metal +244 -0
  181. package/msl/StarWipe.metal +204 -0
  182. package/msl/StaticFade.metal +193 -0
  183. package/msl/StereoViewer.metal +707 -0
  184. package/msl/StripDatamoshGlitch.metal +828 -0
  185. package/msl/Swirl.metal +152 -0
  186. package/msl/TVStatic.metal +136 -0
  187. package/msl/TilesWave.metal +290 -0
  188. package/msl/TopBottom.metal +138 -0
  189. package/msl/VerticalClose.metal +100 -0
  190. package/msl/VerticalOpen.metal +103 -0
  191. package/msl/WaterDrop.metal +126 -0
  192. package/msl/ZoomInCircles.metal +169 -0
  193. package/msl/ZoomLeftWipe.metal +152 -0
  194. package/msl/ZoomRigthWipe.metal +152 -0
  195. package/msl/angular.metal +111 -0
  196. package/msl/burn.metal +103 -0
  197. package/msl/burn0.metal +236 -0
  198. package/msl/cannabisleaf.metal +120 -0
  199. package/msl/chessboard.metal +144 -0
  200. package/msl/circle.metal +115 -0
  201. package/msl/circleopen.metal +124 -0
  202. package/msl/colorphase.metal +106 -0
  203. package/msl/coord-from-in.metal +111 -0
  204. package/msl/crosshatch.metal +126 -0
  205. package/msl/crosswarp.metal +103 -0
  206. package/msl/cube.metal +259 -0
  207. package/msl/directional-easing.metal +111 -0
  208. package/msl/directionalwarp.metal +121 -0
  209. package/msl/directionalwipe.metal +120 -0
  210. package/msl/displacement.metal +129 -0
  211. package/msl/dissolve.metal +146 -0
  212. package/msl/doorway.metal +210 -0
  213. package/msl/fade.metal +95 -0
  214. package/msl/fadecolor.metal +104 -0
  215. package/msl/fadegrayscale.metal +123 -0
  216. package/msl/flyeye.metal +133 -0
  217. package/msl/fragment.metal +276 -0
  218. package/msl/heart.metal +134 -0
  219. package/msl/hexagonalize.metal +274 -0
  220. package/msl/kaleidoscope.metal +157 -0
  221. package/msl/luma.metal +113 -0
  222. package/msl/luminance_melt.metal +337 -0
  223. package/msl/morph.metal +131 -0
  224. package/msl/mosaic_transition.metal +137 -0
  225. package/msl/multiply_blend.metal +127 -0
  226. package/msl/old_tv_lost_signal.metal +172 -0
  227. package/msl/parametric_glitch.metal +152 -0
  228. package/msl/perlin.metal +206 -0
  229. package/msl/pinwheel.metal +112 -0
  230. package/msl/pixelize.metal +134 -0
  231. package/msl/polar_function.metal +116 -0
  232. package/msl/powerKaleido.metal +304 -0
  233. package/msl/randomNoisex.metal +115 -0
  234. package/msl/randomsquares.metal +118 -0
  235. package/msl/ripple.metal +113 -0
  236. package/msl/rotateTransition.metal +116 -0
  237. package/msl/rotate_scale_fade.metal +167 -0
  238. package/msl/scale-in.metal +111 -0
  239. package/msl/splitSlideInHorizontal.metal +147 -0
  240. package/msl/splitSlideInOutHorizontal.metal +138 -0
  241. package/msl/splitSlideInOutVertical.metal +138 -0
  242. package/msl/splitSlideInVertical.metal +144 -0
  243. package/msl/splitSlideOutHorizontal.metal +131 -0
  244. package/msl/splitSlideOutVertical.metal +131 -0
  245. package/msl/squareswire.metal +144 -0
  246. package/msl/squeeze.metal +133 -0
  247. package/msl/static_wipe.metal +147 -0
  248. package/msl/swap.metal +256 -0
  249. package/msl/tangentMotionBlur.metal +583 -0
  250. package/msl/undulatingBurnOut.metal +217 -0
  251. package/msl/wind.metal +131 -0
  252. package/msl/windowblinds.metal +107 -0
  253. package/msl/windowslice.metal +108 -0
  254. package/msl/wipeDown.metal +105 -0
  255. package/msl/wipeLeft.metal +105 -0
  256. package/msl/wipeRight.metal +105 -0
  257. package/msl/wipeUp.metal +105 -0
  258. package/msl/x_axis_translation.metal +110 -0
  259. package/msl/zoomInOut.metal +125 -0
  260. package/package.json +1 -1
  261. package/skills/gl-transitions/SKILL.md +46 -0
  262. package/skills/gl-transitions/references/catalog.md +224 -0
  263. package/skills/gl-transitions/references/skia.md +118 -0
  264. package/skills/gl-transitions/references/video.md +71 -0
  265. package/skills/gl-transitions/references/webgl.md +122 -0
  266. package/sksl/Fold.sksl +3 -3
  267. package/sksl/old_tv_lost_signal.sksl +1 -1
  268. package/sksl/undulatingBurnOut.sksl +4 -1
  269. package/transitions/Fold.glsl +3 -3
  270. package/transitions/luminance_melt.glsl +1 -1
  271. package/transitions/old_tv_lost_signal.glsl +1 -1
  272. package/transitions/undulatingBurnOut.glsl +4 -1
  273. package/wgsl/AdvancedMosaic.wgsl +108 -0
  274. package/wgsl/BlockDissolve.wgsl +78 -0
  275. package/wgsl/BookFlip.wgsl +157 -0
  276. package/wgsl/Bounce.wgsl +98 -0
  277. package/wgsl/BowTieHorizontal.wgsl +331 -0
  278. package/wgsl/BowTieVertical.wgsl +331 -0
  279. package/wgsl/BowTieWithParameter.wgsl +313 -0
  280. package/wgsl/Box.wgsl +176 -0
  281. package/wgsl/ButterflyWaveScrawler.wgsl +158 -0
  282. package/wgsl/CircleCrop.wgsl +88 -0
  283. package/wgsl/ColourDistance.wgsl +82 -0
  284. package/wgsl/CrazyParametricFun.wgsl +111 -0
  285. package/wgsl/CrossZoom.wgsl +219 -0
  286. package/wgsl/DefocusBlur.wgsl +269 -0
  287. package/wgsl/Directional.wgsl +79 -0
  288. package/wgsl/DirectionalScaled.wgsl +117 -0
  289. package/wgsl/DoomScreenTransition.wgsl +171 -0
  290. package/wgsl/Dreamy.wgsl +102 -0
  291. package/wgsl/DreamyZoom.wgsl +154 -0
  292. package/wgsl/Drop_Zone_Flicker.wgsl +513 -0
  293. package/wgsl/EdgeTransition.wgsl +216 -0
  294. package/wgsl/FilmBurn.wgsl +361 -0
  295. package/wgsl/Fold.wgsl +82 -0
  296. package/wgsl/GlitchDisplace.wgsl +327 -0
  297. package/wgsl/GlitchMemories.wgsl +118 -0
  298. package/wgsl/GridFlip.wgsl +250 -0
  299. package/wgsl/HSVfade.wgsl +131 -0
  300. package/wgsl/HorizontalClose.wgsl +72 -0
  301. package/wgsl/HorizontalOpen.wgsl +75 -0
  302. package/wgsl/InvertedPageCurl.wgsl +690 -0
  303. package/wgsl/LeftRight.wgsl +109 -0
  304. package/wgsl/LinearBlur.wgsl +131 -0
  305. package/wgsl/Mosaic.wgsl +174 -0
  306. package/wgsl/Overexposure.wgsl +102 -0
  307. package/wgsl/PolkaDotsCurtain.wgsl +83 -0
  308. package/wgsl/PuzzleRight.wgsl +230 -0
  309. package/wgsl/Radial.wgsl +74 -0
  310. package/wgsl/Rectangle.wgsl +100 -0
  311. package/wgsl/RectangleCrop.wgsl +98 -0
  312. package/wgsl/Revolve_Left.wgsl +314 -0
  313. package/wgsl/Rolls.wgsl +181 -0
  314. package/wgsl/RotateScaleVanish.wgsl +199 -0
  315. package/wgsl/SimpleFlip.wgsl +82 -0
  316. package/wgsl/SimpleZoom.wgsl +85 -0
  317. package/wgsl/SimpleZoomOut.wgsl +96 -0
  318. package/wgsl/Slides.wgsl +216 -0
  319. package/wgsl/StarWipe.wgsl +169 -0
  320. package/wgsl/StaticFade.wgsl +159 -0
  321. package/wgsl/StereoViewer.wgsl +625 -0
  322. package/wgsl/StripDatamoshGlitch.wgsl +755 -0
  323. package/wgsl/Swirl.wgsl +124 -0
  324. package/wgsl/TVStatic.wgsl +106 -0
  325. package/wgsl/TilesWave.wgsl +262 -0
  326. package/wgsl/TopBottom.wgsl +109 -0
  327. package/wgsl/VerticalClose.wgsl +72 -0
  328. package/wgsl/VerticalOpen.wgsl +75 -0
  329. package/wgsl/WaterDrop.wgsl +98 -0
  330. package/wgsl/ZoomInCircles.wgsl +138 -0
  331. package/wgsl/ZoomLeftWipe.wgsl +121 -0
  332. package/wgsl/ZoomRigthWipe.wgsl +121 -0
  333. package/wgsl/angular.wgsl +83 -0
  334. package/wgsl/burn.wgsl +74 -0
  335. package/wgsl/burn0.wgsl +198 -0
  336. package/wgsl/cannabisleaf.wgsl +92 -0
  337. package/wgsl/chessboard.wgsl +116 -0
  338. package/wgsl/circle.wgsl +87 -0
  339. package/wgsl/circleopen.wgsl +96 -0
  340. package/wgsl/colorphase.wgsl +77 -0
  341. package/wgsl/coord-from-in.wgsl +83 -0
  342. package/wgsl/crosshatch.wgsl +96 -0
  343. package/wgsl/crosswarp.wgsl +75 -0
  344. package/wgsl/cube.wgsl +217 -0
  345. package/wgsl/directional-easing.wgsl +83 -0
  346. package/wgsl/directionalwarp.wgsl +92 -0
  347. package/wgsl/directionalwipe.wgsl +91 -0
  348. package/wgsl/displacement.wgsl +96 -0
  349. package/wgsl/dissolve.wgsl +116 -0
  350. package/wgsl/doorway.wgsl +174 -0
  351. package/wgsl/fade.wgsl +67 -0
  352. package/wgsl/fadecolor.wgsl +75 -0
  353. package/wgsl/fadegrayscale.wgsl +93 -0
  354. package/wgsl/flyeye.wgsl +105 -0
  355. package/wgsl/fragment.wgsl +227 -0
  356. package/wgsl/heart.wgsl +103 -0
  357. package/wgsl/hexagonalize.wgsl +238 -0
  358. package/wgsl/kaleidoscope.wgsl +124 -0
  359. package/wgsl/luma.wgsl +80 -0
  360. package/wgsl/luminance_melt.wgsl +299 -0
  361. package/wgsl/morph.wgsl +103 -0
  362. package/wgsl/mosaic_transition.wgsl +107 -0
  363. package/wgsl/multiply_blend.wgsl +96 -0
  364. package/wgsl/old_tv_lost_signal.wgsl +142 -0
  365. package/wgsl/parametric_glitch.wgsl +124 -0
  366. package/wgsl/perlin.wgsl +174 -0
  367. package/wgsl/pinwheel.wgsl +84 -0
  368. package/wgsl/pixelize.wgsl +105 -0
  369. package/wgsl/polar_function.wgsl +88 -0
  370. package/wgsl/powerKaleido.wgsl +254 -0
  371. package/wgsl/randomNoisex.wgsl +85 -0
  372. package/wgsl/randomsquares.wgsl +87 -0
  373. package/wgsl/ripple.wgsl +85 -0
  374. package/wgsl/rotateTransition.wgsl +85 -0
  375. package/wgsl/rotate_scale_fade.wgsl +138 -0
  376. package/wgsl/scale-in.wgsl +79 -0
  377. package/wgsl/splitSlideInHorizontal.wgsl +118 -0
  378. package/wgsl/splitSlideInOutHorizontal.wgsl +109 -0
  379. package/wgsl/splitSlideInOutVertical.wgsl +109 -0
  380. package/wgsl/splitSlideInVertical.wgsl +115 -0
  381. package/wgsl/splitSlideOutHorizontal.wgsl +102 -0
  382. package/wgsl/splitSlideOutVertical.wgsl +102 -0
  383. package/wgsl/squareswire.wgsl +115 -0
  384. package/wgsl/squeeze.wgsl +105 -0
  385. package/wgsl/static_wipe.wgsl +117 -0
  386. package/wgsl/swap.wgsl +218 -0
  387. package/wgsl/tangentMotionBlur.wgsl +503 -0
  388. package/wgsl/undulatingBurnOut.wgsl +181 -0
  389. package/wgsl/wind.wgsl +101 -0
  390. package/wgsl/windowblinds.wgsl +79 -0
  391. package/wgsl/windowslice.wgsl +80 -0
  392. package/wgsl/wipeDown.wgsl +77 -0
  393. package/wgsl/wipeLeft.wgsl +77 -0
  394. package/wgsl/wipeRight.wgsl +77 -0
  395. package/wgsl/wipeUp.wgsl +77 -0
  396. package/wgsl/x_axis_translation.wgsl +82 -0
  397. package/wgsl/zoomInOut.wgsl +94 -0
package/README.md CHANGED
@@ -42,6 +42,75 @@ A Transition is an object with the following shape (TypeScript types are include
42
42
  | `gl-transitions.js` | The same, as a `window.GLTransitions` script |
43
43
  | `transitions/<name>.glsl` | Each transition's GLSL source |
44
44
  | `sksl/<name>.sksl` | Each transition as a standalone [SkSL](https://skia.org/docs/user/sksl/) runtime effect, for Skia-based renderers (React Native Skia, CanvasKit, Flutter/Skia, Compose Multiplatform, skia-safe) |
45
+ | `glsl3/<name>.glsl` | Each transition that compiles in GLSL ES 3.00 (all of them today), for WebGL 2, three.js (`glslVersion: THREE.GLSL3`), OpenGL ES 3 and Android Media3 |
46
+ | `wgsl/<name>.wgsl` | Each transition that translates to WGSL, as a fragment shader, for WebGPU |
47
+ | `msl/<name>.metal` | Each transition that translates to Metal, as a Metal Shading Language fragment shader |
48
+ | `layouts.json` | Uniform buffer layout and textures of the WGSL and Metal shaders |
49
+ | `compatibility.json` | Status of every transition in every target (see below) |
50
+ | `llms.txt`, `llms-full.txt` | The collection for LLMs and coding agents ([llms.txt](https://llmstxt.org/) format) |
51
+ | `skills/gl-transitions/` | An [Agent Skill](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview) that teaches coding agents to pick a transition and wire it into WebGL, Skia, editly or FFmpeg |
52
+
53
+ ### GLSL ES 3.00 contract
54
+
55
+ `glsl3/<name>.glsl` has the same shape as the original GLSL: it declares the parameter uniforms and `vec4 transition(vec2 uv)`, with `texture()` instead of `texture2D()`. The host provides the rest, for example:
56
+
57
+ ```glsl
58
+ #version 300 es
59
+ precision highp float;
60
+ precision highp int;
61
+ in vec2 _uv;
62
+ out vec4 _fragColor;
63
+ uniform sampler2D from, to;
64
+ uniform float progress, ratio;
65
+ vec4 getFromColor(vec2 uv) { return texture(from, uv); }
66
+ vec4 getToColor(vec2 uv) { return texture(to, uv); }
67
+ // ... contents of glsl3/<name>.glsl ...
68
+ void main() { _fragColor = transition(_uv); }
69
+ ```
70
+
71
+ Each file is compiled in this wrapper with glslang, the Khronos reference compiler, in CI.
72
+
73
+ ### WGSL and Metal contract
74
+
75
+ `wgsl/<name>.wgsl` (WebGPU, three.js WebGPU, Babylon.js, Bevy, wgpu) and `msl/<name>.metal` (Metal: AVFoundation, Core Image, SwiftUI) are complete fragment shaders with the same interface for every transition:
76
+
77
+ | Resource | WGSL (`@group(0)`) | Metal | Content |
78
+ |---|---|---|---|
79
+ | Uniform buffer | `@binding(0)` | `[[buffer(0)]]` | `progress`, `ratio`, then each parameter in declaration order (`bool` parameters are `i32`, 0 or 1), with std140 / WGSL uniform layout |
80
+ | Sampler | `@binding(1)` | `[[sampler(0)]]` | Used for every texture; linear filtering and clamp to edge give the GLSL behavior |
81
+ | `from` image | `@binding(2)` | `[[texture(0)]]` | |
82
+ | `to` image | `@binding(3)` | `[[texture(1)]]` | |
83
+ | Extra textures | `@binding(4)`, … | `[[texture(2)]]`, … | One per entry of `textures`, in order |
84
+ | Input | `@location(0) vec2<f32>` | `[[user(loc0)]]` | uv in [0, 1] with a bottom-left origin, as in the GLSL spec (`0.5 * (position.xy + 1.0)` of a fullscreen triangle) |
85
+ | Output | `@location(0) vec4<f32>` | color 0 | Straight (unpremultiplied) RGBA |
86
+
87
+ The entry point is `main` in WGSL and `main_` in Metal. Images are sampled with a top-left origin (as WebGPU and Metal upload them) at mip level 0. `layouts.json` gives the uniform buffer of every transition: `{ [name]: { uniforms: [{ name, type, offset }], size, textures } }`, with offsets and size in bytes.
88
+
89
+ In CI, each WGSL file is validated by naga and rendered with Dawn (Chrome's WebGPU) to compare with the GLSL rendering. Metal files are translated by naga from the same SPIR-V; they are compiled with Apple's Metal compiler on macOS during development, not in CI.
90
+
91
+ ### Compatibility
92
+
93
+ `compatibility.json` says how each transition fares in each target (types: `Compatibility` in `index.d.ts`):
94
+
95
+ ```json
96
+ {
97
+ "targets": { "wgsl": { "language": "WGSL", "path": "wgsl/{name}.wgsl", "rendered": true }, ... },
98
+ "transitions": { "fade": { "sksl": { "status": "match", "differingPixels": 0 }, "glsl3": { "status": "compiled" }, ... } }
99
+ }
100
+ ```
101
+
102
+ | Status | Meaning |
103
+ |---|---|
104
+ | `match` | Renders like the GLSL reference (at most 1% of pixels differ by more than 16/255) |
105
+ | `close` | At most 5% of pixels differ |
106
+ | `noise-only` | Same picture with a different random noise grain (hash noise varies between GPUs) |
107
+ | `differs` | Renders differently, usually random tiles or shapes picked by hash noise (`hashNoise: true`) |
108
+ | `compiled` | Accepted by the target's compiler; not rendered (GLSL ES 3.00, Metal) |
109
+ | `translated` | Generated, but the target's compiler was not available in the build |
110
+ | `no-reference` | Rendered, but there was no GLSL reference to compare with |
111
+ | `compile-error`, `unsupported` | Not shipped for this target; `error` says why |
112
+
113
+ Files are shipped for every status except the last row.
45
114
 
46
115
  ### SkSL contract
47
116
 
@@ -79,6 +148,14 @@ https://unpkg.com/gl-transitions@1/gl-transitions.js
79
148
  const GLTransitions = window.GLTransitions
80
149
  ```
81
150
 
151
+ **for coding agents:**
152
+
153
+ ```
154
+ https://cdn.jsdelivr.net/npm/gl-transitions@1/llms.txt
155
+ ```
156
+
157
+ To install the Agent Skill, copy `node_modules/gl-transitions/skills/gl-transitions` into your agent's skills folder (for Claude Code: `.claude/skills/`).
158
+
82
159
  **vanilla JSON:**
83
160
 
84
161
  ```