for(_='1,Z-ZYZYXXZW18;V<=V++UthLa.KKwidLJptHeTo(HGfunction E;}ED{x:Cz*zBb.@c.?){>) p* d;)*(g-e((h-f(.push(sqrt,z),d=(Kheight;while(return cos0,(x?stroke00;F.sin(,yd=(p- );atan2snew S(o[i]. = XY+s[r].1))var {sin,,PI,,}=MaL;ER>x-=T-=I-=M;p=B+x*x),x=p-yw ywd;p=(yy*y+B)=p-q qd;n=-9,b=Zl=9,d=Ze=f=g=x,h=z,k=l-n)-d-b),m=(b-f)-n-e))/k;C10+(n+m*(l-n)9:563+y/z*9}DS11Zx222>Lis.a=Cx1:y1:z1};Lis.b=Cx2:y2:z2}DA>F={}x=xy=yz=zs=[]-X-ZZ-ZZ-YY--WXWZZZZWYZ--XXZWZYZ1)FDdr({?fillRect( J, d(T * T + M * Mt(P / 80/ 2;p(T, M+ t;TM(ywPI + p;i=o.lengLi-->x=x;y=y;z=z;y=*x+B)/16-P/159+5;Style="hsla("+-y*10+",1%,50%,1)";?beginPaL(r=12r-->Ha=RKxKyKzHb=R@x@y@z?movGKx,HKy?linG@x,H@y}(}requestAnimationFrame(drP++;}J=10*2;=563*2;PT q=.6, I=-8 M-190;o=[];for(i=-ViUifor(r=-VrUroA(i*6,r*6)dr(';G=/[^ -=AFIM-T[-}]/.exec(_);)with(_.split(G))_=join(shift());eval(_)
var {sin,cos,PI,sqrt,atan2}=Math;
function R(x,y,z){
x-=T,y-=U,z-=V;
p=atan2(x,z),d=sqrt(z*z+x*x),x=sin(p-yw)*d,z=cos(p-yw)*d;
p=atan2(y,z),d=sqrt(y*y+z*z),y=sin(p-Y)*d,z=cos(p-Y)*d;
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;
return {x:1000+(n+m*(l-n))*900,y:563+y/z*900};
}
function S(x1,y1,z1,x2,y2,z2){
this.a={x:x1,y:y1,z:z1};
this.b={x:x2,y:y2,z:z2};
}
function C(x,y,z){
Q={};
Q.x=x;
Q.y=y;
Q.z=z;
Q.s=[];
Q.s.push(new S(-1,-1,-1,1,-1,-1));
Q.s.push(new S(1,-1,-1,1,1,-1));
Q.s.push(new S(1,1,-1,-1,1,-1));
Q.s.push(new S(-1,1,-1,-1,-1,-1));
Q.s.push(new S(-1,-1,1,1,-1,1));
Q.s.push(new S(1,-1,1,1,1,1));
Q.s.push(new S(1,1,1,-1,1,1));
Q.s.push(new S(-1,1,1,-1,-1,1));
Q.s.push(new S(-1,-1,-1,-1,-1,1));
Q.s.push(new S(1,-1,-1,1,-1,1));
Q.s.push(new S(1,1,-1,1,1,1));
Q.s.push(new S(-1,1,-1,-1,1,1));
return Q;
}
function dr() {
c.fillRect(0, 0, a.width, a.height);
d = sqrt(T * T + V * V);
t = cos(W / 80) / 200;
p = atan2(T, V) + t;
T = sin(p) * d;
V = cos(p) * d;
yw = PI + p;
i=X.length;
while(i--){
x=X[i].x;
y=X[i].y;
z=X[i].z;
X[i].y=sin(sqrt(x*x+z*z)/16-W/15)*9+5;
c.strokeStyle="hsla("+-y*10+",100%,50%,1)";
c.beginPath();
j=12;
while(j--){
pta=R(x+X[i].s[j].a.x,y+X[i].s[j].a.y,z+X[i].s[j].a.z);
ptb=R(x+X[i].s[j].b.x,y+X[i].s[j].b.y,z+X[i].s[j].b.z);
c.moveTo(pta.x,pta.y);
c.lineTo(ptb.x,ptb.y);
}
c.stroke();
}
requestAnimationFrame(dr);
W++;
}
/* remove before minifying */
c=a.getContext("2d");
/***************************/
a.width=1000*2;
a.height=563*2;
W = T = 0, Y=.6, U=-80, V = -190;
X=[];
for(i=-18;i<=18;++i) for(j=-18;j<=18;++j) X.push(C(i*6,0,j*6));
dr();