Updated - Coloured particles bouncing around the screen. Colour of the particle changes depending on it's proximity to the 3 coloured points.
_=document;t=_.getElementById("c");c=t.getContext("2d");y=this;t.width=w=y.innerWidth;t.height=h=y.innerHeight;M=Math;G=M.PI*2;f=false;P=[];X=[];S=[];Y=[];D=[];Z=[];C=[];r="#c39";g="#6c6";b="#6ff";e="#000";_.body.style.background=e;R=M.random;q=w/4;l=h/4;for(i=50;i--;){X[i]=R()*w;P[i]=R()*w;S[i]=2+R()*5;Y[i]=2+R()*5;R()*2<1?D[i]=1:D[i]=-1;R()*2<1?Z[i]=1:Z[i]=-1;C[i]=9+R()*5}
setInterval(function(){c.fillStyle=e;c.fillRect(0,0,w,h);for(i=50;i--;){if(X[i]>w||X[i]<0)D[i]*=-1;if(P[i]>h||P[i]<0)Z[i]*=-1;c.save();c.beginPath();c.arc(X[i],P[i],C[i],0,G,f);c.clip();A=[q,l,q,l,r,3*q,l,3*q,l,g,w/2,3*l,w/2,3*l,b];for(n=3;n--;){K=n*5;c.globalAlpha=0.3;O=c.createRadialGradient(A[K],A[K+1],99,A[K+2],A[K+3],w/3);O.addColorStop(0,A[K+4]);O.addColorStop(1,e);c.fillStyle=O;c.fillRect(0,0,w,h)}c.restore();X[i]+=D[i]*S[i];P[i]+=Z[i]*Y[i]}B=[r,q,l,g,3*q,l,b,w/2,3*l];for(v=3;v--;){J=v*3;c.fillStyle=
B[J];c.beginPath();c.arc(B[J+1],B[J+2],20,0,G,f);c.fill()}},10);
Xz1kb2N1bWVudDt0PV8uZ2V0RWxlbWVudEJ5SWQoImMiKTtjPXQuZ2V0Q29udGV4dCgiMmQiKTt5PXRoaXM7dC53aWR0aD13PXkuaW5uZXJXaWR0aDt0LmhlaWdodD1oPXkuaW5uZXJIZWlnaHQ7TT1NYXRoO0c9TS5QSSoyO2Y9ZmFsc2U7UD1bXTtYPVtdO1M9W107WT1bXTtEPVtdO1o9W107Qz1bXTtyPSIjYzM5IjtnPSIjNmM2IjtiPSIjNmZmIjtlPSIjMDAwIjtfLmJvZHkuc3R5bGUuYmFja2dyb3VuZD1lO1I9TS5yYW5kb207cT13LzQ7bD1oLzQ7Zm9yKGk9NTA7aS0tOyl7WFtpXT1SKCkqdztQW2ldPVIoKSp3O1NbaV09MitSKCkqNTtZW2ldPTIrUigpKjU7UigpKjI8MT9EW2ldPTE6RFtpXT0tMTtSKCkqMjwxP1pbaV09MTpaW2ldPS0xO0NbaV09OStSKCkqNX0NCnNldEludGVydmFsKGZ1bmN0aW9uKCl7Yy5maWxsU3R5bGU9ZTtjLmZpbGxSZWN0KDAsMCx3LGgpO2ZvcihpPTUwO2ktLTspe2lmKFhbaV0+d3x8WFtpXTwwKURbaV0qPS0xO2lmKFBbaV0+aHx8UFtpXTwwKVpbaV0qPS0xO2Muc2F2ZSgpO2MuYmVnaW5QYXRoKCk7Yy5hcmMoWFtpXSxQW2ldLENbaV0sMCxHLGYpO2MuY2xpcCgpO0E9W3EsbCxxLGwsciwzKnEsbCwzKnEsbCxnLHcvMiwzKmwsdy8yLDMqbCxiXTtmb3Iobj0zO24tLTspe0s9bio1O2MuZ2xvYmFsQWxwaGE9MC4zO089Yy5jcmVhdGVSYWRpYWxHcmFkaWVudChBW0tdLEFbSysxXSw5OSxBW0srMl0sQVtLKzNdLHcvMyk7Ty5hZGRDb2xvclN0b3AoMCxBW0srNF0pO08uYWRkQ29sb3JTdG9wKDEsZSk7Yy5maWxsU3R5bGU9TztjLmZpbGxSZWN0KDAsMCx3LGgpfWMucmVzdG9yZSgpO1hbaV0rPURbaV0qU1tpXTtQW2ldKz1aW2ldKllbaV19Qj1bcixxLGwsZywzKnEsbCxiLHcvMiwzKmxdO2Zvcih2PTM7di0tOyl7Sj12KjM7Yy5maWxsU3R5bGU9DQpCW0pdO2MuYmVnaW5QYXRoKCk7Yy5hcmMoQltKKzFdLEJbSisyXSwyMCwwLEcsZik7Yy5maWxsKCl9fSwxMCk7
Original source not submitted