I decided to add frequency into my wiggle hydra example. Frequency adjusts the distance between a wave making wider or shorter waves. The old one only let you change the amplitude of the wave on the x and/or y.
kernel morph { parameter float xangle< minValue: 0.0; maxValue:10.0; defaultValue:5.0; >; parameter float frequency< minValue: 0.0; maxValue:2.0; defaultValue:1.0; >; parameter float yangle< minValue: 0.0; maxValue:10.0; defaultValue:0.0; >; void evaluatePixel(in image4 src, out pixel4 dst) { float2 coord = outCoord(); float xcoord = coord.x - sin(coord.y*frequency)*xangle; float ycoord = coord.y - sin(coord.x*frequency)*yangle; dst = sampleNearest(src,float2(xcoord,ycoord)); if(dst.r==0.0&&dst.g==0.0&&dst.b==0.0){ dst = sampleNearest(src,outCoord()); } } }