merge-pass is a package that lets you easily create post-processing effects without a lot of graphics knowledge. you specify a list of effects and merge-pass will create a single shader or a tree of shaders. it will manage texture swaps and program switching for you; all you need to do is give a high-level description of the effect. if you use typescript, there's a very good chance the shaders will compile if your typescript compiles. however, you can totally use this with just javascript as well. here's the repo and here's the package on npm

random demo

processed output

unprocessed input

code

this function returns an object containing the merger and a function that changes uniforms on every step. the important code that defines the actual effect is in red

other demos