The implementation is very general purpose – it basically allows any BufferedImageOp to be used as a filter.

Since BufferedImageOps operate on BufferedImages, this poses a slightly interesting problem when applied to clisk image functions (which are arbitrary precision image generators). The solution I chose to handle this is simply to render the clisk image into a BufferedImage to allow the filter to be applied, then convert back to a texture-map so that it can be used in following image functions. Not particularly elegant, but it seems to work OK.

I was happy to stumble across an excellent open source library of Java image filters – Image Filters at JHLabs. So now clisk has a great library of image filters at your disposal, thanks to the power of open source!

Hi Scott, glad you like it! FWIW, I think Clisk and Quil are targeted at slightly different use cases: Quil is more focused on realtime drawing / animation / live coding while clisk is more about complex image generation / processing (which might well be too much to do in realtime). The output of clisk is just a BufferedImage, which you need to render somehow – possibly via Quil!