{
  Distorts = {
    wave = "origVal(xy+xy:[sin(y*10+t*360),sin(x*10+t*360)]*3)";
    square = "origVal(sign(xy)*xy^2/XY)";
    slice = "q=t*360;\norigVal(xy+xy:[5*sign(cos(9*y+q)),5*sign(cos(9*x+q))])";
    mercator = "origVal(xy*xy:[cos(90/Y*y+t*360),1])";
    pond = "origVal(ra+ra:[sin(r*20+t*360)*3,0])";
    "enhanced pond" = "origVal(ra+ra:[sin(500000/(r+100)+t*360)*7,0])";
    "sea 1" = "origVal(xy+xy:[(10*(X-x)/H)*sin(t*360+2000*Y*(y+Y+60)^-1),0])";
    "sea 2" = "origVal(xy+xy:[0,5*sin(t*360+2000*Y*(y+Y+60)^-1)])";
    "sea 3" = "s=sin(t*360+2000*Y*(y+Y+60)^-1);\norigVal(xy+xy:[10*s,5*s])";
    "twirl 90" = "origVal(ra+ra:[0,(r/R-1)*(t-0.5)*360])";
    sphere = "p=r/(X*2);\norigValRA(r*(1-inintv(p,-0.5,0.5))+X/90*asin(inintv(p,-0.5,0.5)*r/X),a)";
    jitter = "origValRA(r,a+(a+t*8)%8-4)";
    "circular slice" = "origValRA(r,a+(r+t*6)%6-3)";
    fisheye = "origValRA(r^(2-t)/R^(1-t),a)";
    "center shake" = "origValXY(x+max(0,cos(x*2))*5*max(0,cos(y*2))*cos(y*10),y+max(0,cos(x*2))*5*max(0,cos(y*2))*cos(x*10))";
  };
  Blur = {
    mosaic = "origVal(xy-xy%5)";
    "radial mosaic" = "origVal(ra-ra%5+ra:[0,2.5])";
    "radial mosaic bertl edition" = "A=30;\npi360=3.1415926535/360;\nn=floor(r/9)+0.5;\nalpha=360/floor(360/(A/(pi360*(n-0.5)*81)));\norigVal(ra:[(n*A/(alpha*pi360))^0.5,a-a%alpha])";
  };
  "Edge-Detect" = {
    "random edge detect" = "origVal(xy)-origVal(xy-xy:[rand(1,4),rand(1,4)])";
  };
  Render = {
    spiral = "q=sin((r-a*0.1)*10+t*360)*0.5+0.5;\norigVal(xy)*rgba:[q,q,q,1]";
    "alpha spiral" = "origVal(xy)*rgba:[1,1,1,0]+rgba:[0,0,0,sin((r-a*0.1)*10+t*360)*0.5+0.5]";
    darts = "p=origVal(xy);\np=if inintv((a-9)%36,0,18)\n    then\n        p\n    else\n        -p+1\n    end;\nif inintv(r%80,68,80)\nthen\n    p\nelse\n    -p+1\nend";
    "sine wave" = "grayColor(sin(r*10+t*360)*0.5+0.5)";
    grid = "grayColor(if (x%20)*(y%20) then 1 else 0 end)";
    moire1 = "q=t*360;\nabs(rgba:[sin(15*r+q)+sin(15*a+q),sin(17*r+q)+sin(17*a+q),sin(19*r+q)+sin(19*a+q),2])*0.5";
    moire2 = "grayColor(sin(x*y+t*360)*0.5+0.5)";
    mandelbrot = "p=ri:(xy/xy:[X,X]*1.5-xy:[0.5,0]);\nc=ri:[0,0];\niter=0;\nwhile abs(c)<2 && iter<31\ndo\n    c=c*c+p;\n    iter=iter+1\nend;\ngradient(iter/32)";
  };
  Colors = {
    desaturate = "p=origVal(xy);\ngrayaColor(gray(p),alpha(p))";
    "gamma correction" = "p=origVal(xy);rgbaColor(curve(red(p)),curve(green(p)),curve(blue(p)),alpha(p))";
    "gamma correction 2" = "p=origVal(xy);g=gray(p);rgbaColor(red(p)*curve(g)/g,green(p)*curve(g)/g,blue(p)*curve(g)/g,alpha(p))";
    colorify = "gradient((gray(origVal(xy))+t)%1)";
  };
  Noise = {scatter = "origVal(xy+xy:[rand(-30,30),rand(-30,30)]*t)";};
  Map = {tile = "origVal((xy+XY)*2%WH-XY)";};
}
