A=[],C=0;for(B in g)A.push(B);for(A.sort();B=A.pop();)window["_"+C++]=g[B].bind?g[B].bind(g):g[B];_41(A=_108(_141),"attribute vec2 P;void main(){gl_Position=vec4(P,0,1);}"),_41(B=_108(_358),"precision mediump float;uniform vec2 R;uniform float T;void main(){float a,b,c,d,e,t=0.;for(float i=0.;i<256.;i++){a=cos(T);b=sin(T);c=1.;vec3 p=vec3((2.*gl_FragCoord.xy-R)/R.yy*t-vec2(0,.5),-2.5+t),z=p=vec3(p.zx*mat2(a,-b,b,a),-p.y);e=2.;for(int j=0;j<99;j++){e*=0.9;d=length(z);if(dot(z,z)>4.){t+=d=.5*log(d)*d/c;break;}z=pow(d,2.)*vec3(sin(a=acos(z.z/d)*2.)*cos(b=atan(z.y,z.x)*2.),sin(a)*sin(b),cos(a))+p;c=pow(d,1.)*2.*c+1.;}if(d<1e-3||t>5.){gl_FragColor=vec4(vec3(t>5.?i/128.:e),1);break;}}}"),_117(A),_117(B),_137(P=_110(),A),_137(P,B),_48(P),_11(P),_135(A=_427,_112()),_88(0),_1(0,2,_406,0,0,0),_126(A,new Int8Array([-1,-1,-1,1,1,1,1,-1]),_235),_26(_61(P,"R"),a.width*=1/a.height*(a.height=500),500),_0(0,0,a.width,a.height),a=new Date,(function r(){requestAnimationFrame(r);_30(_61(P,"T"),(new Date-a)/5000-1);_93(6,0,4)})()
// Big thanks to Syntopia: http://blog.hvidtfeldts.net/index.php/2011/06/distance-estimated-3d-fractals-part-i/
A=[]; C=0; for(B in g) A.push(B); A.sort(); while(B = A.pop()) window["_" + C++] = g[B].bind ? g[B].bind(g) : g[B]
// _0 = g.viewport()
// _1 = g.vertexAttribPointer()
// _11 = g.useProgram()
// _26 = g.uniform2f()
// _41 = g.shaderSource()
// _48 = g.linkProgram()
// _61 = g.getUniformLocation()
// _88 = g.enableVertexAttribArray()
// _93 = g.drawArrays()
// _108 = g.createShader()
// _110 = g.createProgram()
// _112 = g.createBuffer()
// _117 = g.compileShader()
// _126 = g.bufferData()
// _135 = g.bindBuffer()
// _137 = g.attachShader()
// _141 = g.VERTEX_SHADER
// _235 = g.STATIC_DRAW
// _358 = g.FRAGMENT_SHADER
// _406 = g.BYTE
// _427 = g.ARRAY_BUFFER
_41(A=_108(_141),"attribute vec2 P;void main(){gl_Position=vec4(P,0,1);}")
_41(B=_108(_358),"precision mediump float;uniform vec2 R;uniform float T;\
void main()\
{\
float a, b, c, d, e, t = 0.;\
for (float i = 0.; i < 256.; i++)\
{\
a = cos(T);\
b = sin(T);\
c = 1.0;\
e = 2.0;\
vec3 p = vec3((2. * gl_FragCoord.xy - R) / R.yy * t - vec2(0, 0.5), -2.5 + t), z = p = vec3(p.zx * mat2(a, -b, b, a), -p.y);\
for (int j = 0; j < 99; j++)\
{\
e *= 0.9;\
d = length(z);\
if (dot(z, z) > 4.)\
{\
t += d = .5 * log(d) * d / c;\
break;\
}\
z = pow(d, 2.) * vec3(sin(a = acos(z.z / d) * 2.) * cos(b = atan(z.y, z.x) * 2.), sin(a) * sin(b), cos(a)) + p;\
c = pow(d, 1.) * 2. * c + 1.;\
}\
if (d < 1e-3 || t > 5.)\
{\
gl_FragColor = vec4(vec3(t > 5. ? i/128. : e),1);\
break;\
}\
}\
}")
_117(A);_117(B) // compileShader
_137(P=_110(),A);_137(P,B) // attachShader
_48(P);_11(P) // linkProgram, useProgram
_135(A=_427,_112()) // bindBuffer
_88(0);_1(0,2,_406,0,0,0) // enableVertexAttribArray, vertexAttribPointer
_126(A,new Int8Array([-1,-1,-1,1,1,1,1,-1]),_235) // bufferData
_26(_61(P,"R"),a.width*=1/a.height*(a.height=500),500) // uniform2f resolution
_0(0,0,a.width,a.height) // viewport
// uniform1f time, drawArrays
a=new Date; (function r(){requestAnimationFrame(r);_30(_61(P,"T"),(new Date-a)/5000-1);_93(6,0,4)})();