JS1K

#2: the original

Source for demo by sacah. See also description.

O='("+b+"rfuncti111111$10if();010000011011000111for(c.){.split(;D.onk=on(t[3[F(=0ft[f.keyCo=Q(1+*C)*S="d/2+h/2stroke)/2)/ment;c.=1)]=0")eTo(f,(0,0,.get=(de]+=on 00=-1;th+(1-=smOin)]Y)*val(*s'.split('');Q='wiU(MaUF=floor;C=cos;SZ_;QZqrt}D=docu#;c=D@Ele#ById("c"widU=W=5L%height=h=3L;c=c@Context("2d"m=t=[];O _ s$10	11LL10101$L0012	1$""$"))m[O]Z[O]""X=Y=O&;E=I;rZ.2;J.56eydownG&}eyupG};Ku(f;f<W;f++a=2*f/W-1,d=X+E*a,e=I+J*a;a=F(Og=F(Y),je*e/(d*d)),kd*d/(e*e)),p,i&,l&,nAa+1-Ozj,oAg+1-Yzk;d<0iNnAO-azj}e<0lNoAY-gzk};!p;q;n<onHj;aHi}else{oHk;gHl;q&}m[a][g]>0)p&}eAg-YVle;q=)eAa-OVid;e+.01;d=h/e;a=-;i=%Stylergb?"+F(d)+")"%beg_PaU(mov:al_:i()}}Ky(c.clearRect?W,hb";8]^+X`4OHX;^`+I4YHI}7])b-";7]||t[39])e~"o=X;X=X-II=o)+I*CP=E;E=E-JJ=P)+J"u()}setInter~y,30';o='	#%&4:?@AGHKLNUVZ^_`z~';for(J=48;J>-1;J--)Q=Q.split(o.charAt(J)).join(O[J]);eval(Q);