lookup table based displacement. borrows heavily from other prods here, got the lookup math here: http://openprocessing.org/visuals/?visualID=3624
C=document.body.children[0];C.innerHTML="<style>*{margin:0;width:100%;height:100%;overflow:hidden;}</style>";a=C.width=w=191;h=C.height=w*innerHeight/innerWidth|0;var ctx=C.getContext("2d");var BD=ctx.createImageData(w,h);var MD=ctx.createImageData(w,h);var M=Array();E=ctx.createRadialGradient(w/2,h/2,0,w/2,h/2,h);E[g="addColorStop"](0.3,"#200");E[g](0.7,"#500");E[g](1,"#fff");ctx.fillStyle=E;ctx.fillRect(0,0,w,h);BD=ctx.getImageData(0,0,w,h);var k=0;for(j=0;j<h;j++){y=-1+2*j/h;for(i=0;i<w;i++){x=-1+2*i/w;d=Math.sqrt(x*x+y*y);a=Math.atan2(y,x);r=d;u=(0.02*y+0.03)*Math.cos(a*3)/r;v=(0.02*y+0.03)*Math.sin(a*3)/r;M[k++]=w*u&w-1;M[k++]=h*v&h-1;}}var cycle=0;setInterval(function(){cycle++;for(var b=0;b<BD[d="data"][l="length"]/4;b++){u=M[b+0]+cycle;v=M[b+1]+cycle;f=b*4;MD.data[f+0]=BD[d][((w*v+u)*4+0)%BD[d][l]];MD.data[f+1]=BD[d][((w*v+u)*4+1)%BD[d][l]];MD.data[f+2]=BD[d][((w*v+u)*4+2)%BD[d][l]];MD.data[f+3]=255}ctx.putImageData(MD,0,0)},25);
Qz1kb2N1bWVudC5ib2R5LmNoaWxkcmVuWzBdO0MuaW5uZXJIVE1MPSI8c3R5bGU+KnttYXJnaW46MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjt9PC9zdHlsZT4iO2E9Qy53aWR0aD13PTE5MTtoPUMuaGVpZ2h0PXcqaW5uZXJIZWlnaHQvaW5uZXJXaWR0aHwwO3ZhciBjdHg9Qy5nZXRDb250ZXh0KCIyZCIpO3ZhciBCRD1jdHguY3JlYXRlSW1hZ2VEYXRhKHcsaCk7dmFyIE1EPWN0eC5jcmVhdGVJbWFnZURhdGEodyxoKTt2YXIgTT1BcnJheSgpO0U9Y3R4LmNyZWF0ZVJhZGlhbEdyYWRpZW50KHcvMixoLzIsMCx3LzIsaC8yLGgpO0VbZz0iYWRkQ29sb3JTdG9wIl0oMC4zLCIjMjAwIik7RVtnXSgwLjcsIiM1MDAiKTtFW2ddKDEsIiNmZmYiKTtjdHguZmlsbFN0eWxlPUU7Y3R4LmZpbGxSZWN0KDAsMCx3LGgpO0JEPWN0eC5nZXRJbWFnZURhdGEoMCwwLHcsaCk7dmFyIGs9MDtmb3Ioaj0wO2o8aDtqKyspe3k9LTErMipqL2g7Zm9yKGk9MDtpPHc7aSsrKXt4PS0xKzIqaS93O2Q9TWF0aC5zcXJ0KHgqeCt5KnkpO2E9TWF0aC5hdGFuMih5LHgpO3I9ZDt1PSgwLjAyKnkrMC4wMykqTWF0aC5jb3MoYSozKS9yO3Y9KDAuMDIqeSswLjAzKSpNYXRoLnNpbihhKjMpL3I7TVtrKytdPXcqdSZ3LTE7TVtrKytdPWgqdiZoLTE7fX12YXIgY3ljbGU9MDtzZXRJbnRlcnZhbChmdW5jdGlvbigpe2N5Y2xlKys7Zm9yKHZhciBiPTA7YjxCRFtkPSJkYXRhIl1bbD0ibGVuZ3RoIl0vNDtiKyspe3U9TVtiKzBdK2N5Y2xlO3Y9TVtiKzFdK2N5Y2xlO2Y9Yio0O01ELmRhdGFbZiswXT1CRFtkXVsoKHcqdit1KSo0KzApJUJEW2RdW2xdXTtNRC5kYXRhW2YrMV09QkRbZF1bKCh3KnYrdSkqNCsxKSVCRFtkXVtsXV07TUQuZGF0YVtmKzJdPUJEW2RdWygodyp2K3UpKjQrMiklQkRbZF1bbF1dO01ELmRhdGFbZiszXT0yNTV9Y3R4LnB1dEltYWdlRGF0YShNRCwwLDApfSwyNSk7
Original source not submitted