Chain operators onto an array: [waveScope].kaleid(6).hue(0.1). Each operator processes the image drawn so far in that layer.
Transform transform translate rotate scale mirror crop noiseWarp pixelate repeat repeatX repeatY kaleid scroll scrollX scrollY
Sampling blur sharpen edgeDetect bloom vignette rgbSplit feedback lumaMask
Color opacity posterize colorShift invert contrast brightness luma thresh color saturate hue colorama sum rgba
Numeric arguments may be numbers or ({ audio, time }) => value. Operators run in written order. For wet/dry mix, blend mode, or bypass, create a new ShaderChain() and append it with .fx(chain). The shader's shift() is colorShift() on arrays; native array shift() still removes the first entry.