Looks pretty... don't ask me what it does. I just wrote random code, and this is the result.
function mT(t,a){C.strokeStyle="#ffffff",C.lineWidth=10,C.lineCap=C.lineJoin="round",C.beginPath(),C.moveTo(prex,prey),C.lineTo(t,a),C.stroke(),iD=C.getImageData(0,0,cA.width,cA.height),data=iD.data,prex=t,prey=a}function loop(){for(var t=0;t<data.length;t+=4)for(var a=0;a<3;a++){var e=Math.floor(5*Math.random())-2,o=Math.floor(5*Math.random())-2;M(data,t+a,t+a+(4*e+o*cA.width*4+cA.width*cA.height*4)%(cA.height*cA.width*4))}C.putImageData(iD,0,0),requestAnimationFrame(loop)}function M(t,a,e){t[e]>t[a]&&(t[a]=t[e],t[e]>>=1)}var cA=document.getElementsByTagName("canvas")[0],Q=4;cA.width/=Q,cA.height/=Q;for(var C=cA.getContext("2d"),iD=C.getImageData(0,0,cA.width,cA.height),data=iD.data,i=0;i<data.length;i++)data[i]=i%4==3?255:Math.floor(255*Math.random());var prex,prey;document.addEventListener("mousemove",function(t){mT(t.pageX/Q,t.pageY/Q)}),document.addEventListener("touchmove",function(t){mT(t.touches[0].pageX/Q,t.touches[0].pageY/Q)}),loop();
ZnVuY3Rpb24gbVQodCxhKXtDLnN0cm9rZVN0eWxlPSIjZmZmZmZmIixDLmxpbmVXaWR0aD0xMCxDLmxpbmVDYXA9Qy5saW5lSm9pbj0icm91bmQiLEMuYmVnaW5QYXRoKCksQy5tb3ZlVG8ocHJleCxwcmV5KSxDLmxpbmVUbyh0LGEpLEMuc3Ryb2tlKCksaUQ9Qy5nZXRJbWFnZURhdGEoMCwwLGNBLndpZHRoLGNBLmhlaWdodCksZGF0YT1pRC5kYXRhLHByZXg9dCxwcmV5PWF9ZnVuY3Rpb24gbG9vcCgpe2Zvcih2YXIgdD0wO3Q8ZGF0YS5sZW5ndGg7dCs9NClmb3IodmFyIGE9MDthPDM7YSsrKXt2YXIgZT1NYXRoLmZsb29yKDUqTWF0aC5yYW5kb20oKSktMixvPU1hdGguZmxvb3IoNSpNYXRoLnJhbmRvbSgpKS0yO00oZGF0YSx0K2EsdCthKyg0KmUrbypjQS53aWR0aCo0K2NBLndpZHRoKmNBLmhlaWdodCo0KSUoY0EuaGVpZ2h0KmNBLndpZHRoKjQpKX1DLnB1dEltYWdlRGF0YShpRCwwLDApLHJlcXVlc3RBbmltYXRpb25GcmFtZShsb29wKX1mdW5jdGlvbiBNKHQsYSxlKXt0W2VdPnRbYV0mJih0W2FdPXRbZV0sdFtlXT4+PTEpfXZhciBjQT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiY2FudmFzIilbMF0sUT00O2NBLndpZHRoLz1RLGNBLmhlaWdodC89UTtmb3IodmFyIEM9Y0EuZ2V0Q29udGV4dCgiMmQiKSxpRD1DLmdldEltYWdlRGF0YSgwLDAsY0Eud2lkdGgsY0EuaGVpZ2h0KSxkYXRhPWlELmRhdGEsaT0wO2k8ZGF0YS5sZW5ndGg7aSsrKWRhdGFbaV09aSU0PT0zPzI1NTpNYXRoLmZsb29yKDI1NSpNYXRoLnJhbmRvbSgpKTt2YXIgcHJleCxwcmV5O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsZnVuY3Rpb24odCl7bVQodC5wYWdlWC9RLHQucGFnZVkvUSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKHQpe21UKHQudG91Y2hlc1swXS5wYWdlWC9RLHQudG91Y2hlc1swXS5wYWdlWS9RKX0pLGxvb3AoKTs=
var cA = document.getElementsByTagName("canvas")[0];
var Q = 4;
cA.width /= Q; cA.height /= Q;
var C = cA.getContext("2d");
var iD = C.getImageData(0, 0, cA.width, cA.height);
var data = iD.data;
for(var i=0; i<data.length;i++) {
data[i] = i%4==3?255: Math.floor(Math.random()*255);
}
var prex,prey;
document.addEventListener("mousemove",
function(e) {
mT(e.pageX/Q,e.pageY/Q);
}
);
document.addEventListener("touchmove",
function(e) {
mT(e.touches[0].pageX/Q,e.touches[0].pageY/Q);
}
);
function mT(x, y) {
C.strokeStyle = "#ffffff";
C.lineWidth = 10;
C.lineCap = C.lineJoin = "round";
C.beginPath();
C.moveTo(prex,prey);
C.lineTo(x,y);
C.stroke();
iD = C.getImageData(0, 0, cA.width, cA.height);
data = iD.data;
prex = x;
prey = y;
}
function loop() {
for(var i=0; i<data.length;i+=4) {
for(var c=0;c<3;c++) {
var x = Math.floor(Math.random()*5)-2;
var y = Math.floor(Math.random()*5)-2;
M(data, i+c, i+c+(x*4 + y*cA.width*4 + cA.width*cA.height*4)%(cA.height*cA.width*4));
}
}
C.putImageData(iD, 0, 0);
requestAnimationFrame(loop);
}
loop();
function M(data, a, b) {
if(data[b]>data[a]) {
data[a] = data[b];
data[b] >>=1;
}
}