for(_='pt~) |~s`]|* _`[i][^;^V] - ^U1U1T] += QT_dV5QOeightNlice(LsclKl-nJ = G]GEp(D2U2CC]))* B;c.fill@@Rect(?@Style>;`G[];; i < , v[)*(b-f)-(for (iG^6] / n-e))/F=b.clientV3Q]|+ sqrt; ++i|random0U0000);a.widthc.globalAlpha= a.hNErD(`.length{dG] /= 1.04Vfunction 0(`[0][var {sin,cos,,PI,,atan2,floor}=Math;rD){return -2 + (|* 4;}sDt|{6E25+40 * (0123E4E5E0;if(!t){1/(_T_TC_B1_dV4QOC_d;}}`.push(v.sL)}ds(|{1-1/(_T_TC_B850_d V4QOC_d;}`.spL01}dr(|{ .1>="#"?00 1;2999{^3450Q^3]V1Q^4]V2Q^5]>G"hsla("+(ms*3+*4)+",99%,50%,"+(.8 - 50)+")";x=^0],y=^1],H=^2];H-=cZ,n=-9,b=1,l=9,d=1,e=0,f=0,g=x,h=H,F=(h-fJ)-(g-ed-b),m=((g-eh-f,A=((Jd-b;~G{x:cx+(n+m*(J))*K,y:cy+y/H*K,d:(x*x+y*y+H*H)};s=2+*99/((~.d)/25|?~.x~.ys,s}ds(sDrequestAnimationFrame(drms += .1;}Width;HN;cxG2;cyG2vGArray(6msGcXGcYG0;cZG-5;K=5003sD1dr(';G=/[^ -=AFHIMPRSW-\]a-{}]/.exec(_);)with(_.split(G))_=join(shift());eval(_)
var {sin,cos,random,PI,sqrt,atan2,floor}=Math;
function rp(){
return -2000 + random() * 4000;
}
function sp(t) {
v[6] = 25+40 * random();
v[0] = rp();
v[1] = rp();
v[2] = rp();
v[3] = v[4] = v[5] = 0;
if(!t){
for (i = 0; i < pts.length; ++i) {
d = 1/sqrt((v[0] - pts[i][0]) * (v[0] - pts[i][0]) + (v[1] - pts[i][1]) * (v[1] - pts[i][1]) + (v[2] - pts[i][2]) * (v[2] - pts[i][2]))* 1000 / pts[i][6];
pts[i][3] += (v[0] - pts[i][0]) * d;
pts[i][4] += (v[1] - pts[i][1]) * d;
pts[i][5] += (v[2] - pts[i][2]) * d;
}
}
pts.push(v.slice());
}
function ds() {
for (i = 1; i < pts.length; ++i) {
d = -1/sqrt((pts[0][0] - pts[i][0]) * (pts[0][0] - pts[i][0]) + (pts[0][1] - pts[i][1]) * (pts[0][1] - pts[i][1]) + (pts[0][2] - pts[i][2]) * (pts[0][2] - pts[i][2]))* 850 / pts[i][6];
pts[i][3] += (pts[0][0] - pts[i][0]) * d ;
pts[i][4] += (pts[0][1] - pts[i][1]) * d;
pts[i][5] += (pts[0][2] - pts[i][2]) * d;
}
pts.splice(0, 1);
}
function dr() {
c.globalAlpha=.1;
c.fillStyle="#000";
c.fillRect(0, 0, a.width, a.height);
c.globalAlpha=1;
for (i = 0; i < 2999; ++i) {
pts[i][3] /= 1.04;
pts[i][4] /= 1.04;
pts[i][5] /= 1.04;
pts[i][0] += pts[i][3];
pts[i][1] += pts[i][4];
pts[i][2] += pts[i][5];
c.fillStyle = "hsla("+(ms*3+pts[i][6]*4)+",99%,50%,"+(.8 - pts[i][6] / 50)+")";
x=pts[i][0],y=pts[i][1],z=pts[i][2];
z-=cZ,n=-9,b=1,l=9,d=1,e=0,f=0,g=x,h=z,k=(h-f)*(l-n)-(g-e)*(d-b),m=((g-e)*(b-f)-(h-f)*(n-e))/k,j=((l-n)*(b-f)-(d-b)*(n-e))/k;
pt = {x:cx+(n+m*(l-n))*scl,y:cy+y/z*scl,d:(x*x+y*y+z*z)};
s=2+pts[i][6]*99/(sqrt(pt.d)/25) ;
c.fillRect(pt.x, pt.y, s,s);
}
ds();
sp();
requestAnimationFrame(dr);
ms += .1;
}
/* remove before minifying */
c=a.getContext("2d");
/***************************/
a.width=b.clientWidth;
a.height=b.clientHeight;
cx = a.width / 2;
cy = a.height / 2;
pts = [];
v = Array(6);
ms = cX = cY = 0;
cZ = -5000;
scl=500;
pts = [];
for (i = 0; i < 3000; ++i) sp(1);
dr();