0x13aa…9533

All memos sent from and to 0x13aa…9533.

!F1([3,13,15],K)&&!F1([2,6,8,9],J))E1=!0;if(F1([9,16,24,25],K)&&6==J)E1=!0;if(6==K&&2==J)E1=!0;if(F1([15,25],K)&&!a1)E1=!0;if(F1([0,1,9,10,23,24,25],K))Q=.4;if(F1([3,7,10],K))f1=!1;if(5==K)Q=.15;if(12==K&&!E1){a1=!0;f1=!0}if(21==K)n1=!0;if(p1&&E1){if(4==K)l1=B(l1,1,1.5);if(F1([9,23,24,25],K))l1=B(l1,1,2);let e={4:.7,7:.65,9:.7,23:.7,24:.6}[K];if(e)o1=e}if(!p1){if(F1([4,7,12,25],K)){f1=!0;a1=!0}if(12==K&&4==J)l1=B(l1,1,2)}},V1=()=>{let e={21:1,29:.4,30:-1}[K]||.5,t=w()<e?1:0;k1=[[-.8,-.5,-.15,.15,.5,.8],[-.9,-.6,-.4,-.1,.1,.4,.6,.9]][t];const r=k1.length>>1;m1=h(0,(1<<r*(r-1))-1);if(1==t&&!F1([22],K))d1+=-.2;u1=.01;c1=1},N1=()=>{if(E1&&!F1([0,1,3,5,6,7,11,13,17,22,26,28,29],K))return;let e=F1([0,1,3,5,6,12,15,16,26,28],K)||!F1([9,23,24,25,27],K)&&w()<.6;g1=e?{3:3,5:3,10:3,13:4,17:3,22:3,26:3,28:5,29:3}[K]||2:0;y1=g1>0&&(F1([5,7,10,11,17,18,22,29,28,30],K)||w()<.5)},O1=()=>{v1=0;let e={1:1,4:1,7:1,8:1,9:1,10:1,11:3,12:1,13:1,14:2,16:4,17:1,18:2,22:4,25:1,26:4,27:1,29:1,30:1,28:5}[K],t;if(e){switch(e){case 1:case 2:t=[0,g/2,-g/2,g];if(2==e)t=t.concat([g/4,-g/4]);break;case 3:t=[g/4,-g/4];break;case 4:t=[(k1?.1*g:2*g)*w()];break;case 5:t=[.25*g*h(0,7)];break}v1=c(t)}},X1=()=>{M1=F1([12],K)},Y1=()=>{const r={4:[2],7:[2],8:[4],15:[3],20:[2.5],23:[2],24:[2],6:[1,2],9:[2,3],11:[4,5],14:[3,3.5,4],17:[2.5,3],18:[2,3],19:[4,5],21:[2,3],25:[2,4],27:[2,4],28:[4,4.5,5],29:[2,3],30:[2,3]}[K];if(!r){switch(K){case 10:z1=7+2*w();G1=4;break;case 16:case 22:case 26:z1=3*w()+(22==K?6:4);G1=.5*Math.round(z1);break;default:G1=1}return}const e={6:[4,6],9:[7,2],14:[4,3,3],17:[3,5,4],18:[2,3],25:[2,3],27:[1,3]}[K]||[];let a=[];for(let t in r){const n=e[t]||1;for(let e=0;e<n;e++)a.push(r[t])}G1=c(a);z1=G1*g},j1=(e,t)=>new p.Color(e).lerp(new p.Color(0),t).getHex(),q1=()=>{const e=a1?.25:.3;U=j1(U,e*(p1?1:1.2));Z=j1(Z,.5*e);s1=j1(s1,e)},J1=()=>{P1=p1&&!E1&&{15:1,10:.5}[K]||p1&&{0:.45,1:.32,2:.33,4:.45,5:.45,6:.43,11:.42,14:.42,15:.45,19:.43,22:.45,23:.45,29:.5}[K]||(!E1&&Q<.4?.5:.4);if(E1&&p1&&F1([16,18,26],K))P1=.3},K1=()=>{if(F1([5],K))return;Q=F1([0],K)?.4:.5;l1=B(l1,1,p1?3:2.4)},Q1=()=>{T1();L1();D1();W1();I1();Y1();_1();H1();if(w1)V1();N1();O1();X1();J1();if(!p1)q1();if(E1)K1();b1=Q};let U1,Z1,$1,e2,t2,r2;const a2=-2,n2=()=>{U1=new p.Scene;Z1=new p.PerspectiveCamera(60,1,.001,1e7);t2=new p.WebGLRenderer({alpha:!1,antialias:!0,preserveDrawingBuffer:!0,depth:!1,powerPreference:"high-performance"});if(!t2.capabilities.isWebGL2){document.body.append("Your browser does not seem to support WebGL 2");return}t2.autoClear=!0;t2.autoClearColor=!1;let e=window.innerWidth,t=window.innerHeight,r=Math.min(e,t),a=window.devicePixelRatio;t2.setPixelRatio(a);t2.setSize(r,r);r*=a;if(r<2048||1==a)r*=2;r2=new p.WebGLMultisampleRenderTarget(r,r,{format:p.RGBFormat,depthBuffer:!1});i2();document.body.appendChild(t2.domElement);l2();s2();u2(-1.5-u1,0)},i2=()=>{$1=new p.Scene;e2=new THREE.OrthographicCamera(-1,1,-1,1,0,1e3);e2.rotateX(g)},l2=()=>{let e=new p.DirectionalLight(s1,l1);U1.add(e);let t=new p.AmbientLight(16777215,o1);U1.add(t);U1.fog=new p.Fog(U,2,!p1&&E1?2.6:3)},s2=()=>{Z1.position.set(0,1.5,0);Z1.lookAt(U1.position)},o2=e=>{t2.setRenderTarget(r2);t2.render(U1,Z1);let t=R(.05,R1,((e+1.5)/(d1+1.5))**3);t=B(t,0,1);if(e==a2)t=1;let r=new p.MeshBasicMaterial({map:r2.texture,transparent:1!=t,opacity:t}),a=new p.Mesh(new p.PlaneGeometry(2,2),r);$1.add(a);t2.setRenderTarget(null);t2.render($1,e2);$1.remove(a);a.geometry.dispose()},f2=()=>{for(let t=U1.children.length-1;t>=0;t--){let e=U1.children[t];if("Mesh"===e.type){e.geometry.dispose();U1.remove(e)}}t2.renderLists.dispose()},c2=()=>{const e={s:{value:w()},d:{value:!!p1}},t=new p.ShaderMaterial({uniforms:e,vertexShader:"varying vec2 w;void main(){w=uv;gl_Position=vec4(position,1.);}",fragmentShader:"uniform float s;uniform bool d;varying vec2 w;void main(){vec2 u=w*(1.-w);float v=.22*pow(u.x*u.y*37.,.2);vec2 a=s+gl_FragCoord.xy*u;float r=.02+.06*fract(sin(dot(a,vec2(12.9898,78.233)))*43758.5453123);if(d)r+=v-.11;else r=2.7*v+.55-r;gl_FragColor=vec4(r);}"});let r=new p.Mesh(new p.PlaneGeometry(2,2),t);U1.add(r);o2(a2);f2()},u2=(e,t)=>{const r=.025;if(e>=d1){void 0;void 0;return}let a=new p.Clock(!0);a.start();if(0==t){void 0;c2()}else h2(e,t%g1==0);let n=F(1e3*B(r-a.getElapsedTime(),0,r));setTimeout(()=>{u2(e+u1,t+1)},n)},h2=(l,e)=>{const s=_(l,e&&(Q<1||!y1));for(let i=0;i<s.length;i++){let e=s[i];if(e.length<1e3){if(0==i)return;break}const o=new p.Color(U);o.lerp(new p.Color(Z),B(.5*(l+1.3),0,1));const f=(1==Q&&.15!=b1&&p1?S1:B1)*(0==i?1:.5),c=f1&&1==Q&&l<d1-u1?w()<.5:!1,u=p1?100:0,h={side:r1==j||c?p.FrontSide:p.DoubleSide,color:o,specular:o,shininess:u,opacity:f,wireframe:c,transparent:!0,fog:!0,depthWrite:!1,depthTest:!1};if(E1&&0==i){h.blending=p.CustomBlending;h.blendDst=p.SrcAlphaFactor}let t=new p.BufferGeometry;t.setAttribute("position",new p.BufferAttribute(new Float32Array(e),3));[];let n=(new p.Geometry).fromBufferGeometry(t);if(0==i&&l>-.7&&1==Q&&!c){n.mergeVertices();n.computeVertexNormals()}let r=new p.MeshPhongMaterial(h),a=new p.Mesh(n,r);U1.add(a);if(0==i){let a=r.clone();a.opacity=P1;const d=.001,b=-.01;for(let r in[0,1]){let e=new p.Mesh(n,a),t=(1==r?1:-1)*d;e.position.set(t,b,t);U1.add(e)}}}o2(l);f2()};(()=>{e();Q1();Y();b();n2()})()})();
!F1([3,13,15],K)&&!F1([2,6,8,9],J))E1=!0;if(F1([9,16,24,25],K)&&6==J)E1=!0;if(6==K&&2==J)E1=!0;if(F1([15,25],K)&&!a1)E1=!0;if(F1([0,1,9,10,23,24,25],K))Q=.4;if(F1([3,7,10],K))f1=!1;if(5==K)Q=.15;if(12==K&&!E1){a1=!0;f1=!0}if(21==K)n1=!0;if(p1&&E1){if(4==K)l1=B(l1,1,1.5);if(F1([9,23,24,25],K))l1=B(l1,1,2);let e={4:.7,7:.65,9:.7,23:.7,24:.6}[K];if(e)o1=e}if(!p1){if(F1([4,7,12,25],K)){f1=!0;a1=!0}if(12==K&&4==J)l1=B(l1,1,2)}},V1=()=>{let e={21:1,29:.4,30:-1}[K]||.5,t=w()<e?1:0;k1=[[-.8,-.5,-.15,.15,.5,.8],[-.9,-.6,-.4,-.1,.1,.4,.6,.9]][t];const r=k1.length>>1;m1=h(0,(1<<r*(r-1))-1);if(1==t&&!F1([22],K))d1+=-.2;u1=.01;c1=1},N1=()=>{if(E1&&!F1([0,1,3,5,6,7,11,13,17,22,26,28,29],K))return;let e=F1([0,1,3,5,6,12,15,16,26,28],K)||!F1([9,23,24,25,27],K)&&w()<.6;g1=e?{3:3,5:3,10:3,13:4,17:3,22:3,26:3,28:5,29:3}[K]||2:0;y1=g1>0&&(F1([5,7,10,11,17,18,22,29,28,30],K)||w()<.5)},O1=()=>{v1=0;let e={1:1,4:1,7:1,8:1,9:1,10:1,11:3,12:1,13:1,14:2,16:4,17:1,18:2,22:4,25:1,26:4,27:1,29:1,30:1,28:5}[K],t;if(e){switch(e){case 1:case 2:t=[0,g/2,-g/2,g];if(2==e)t=t.concat([g/4,-g/4]);break;case 3:t=[g/4,-g/4];break;case 4:t=[(k1?.1*g:2*g)*w()];break;case 5:t=[.25*g*h(0,7)];break}v1=c(t)}},X1=()=>{M1=F1([12],K)},Y1=()=>{const r={4:[2],7:[2],8:[4],15:[3],20:[2.5],23:[2],24:[2],6:[1,2],9:[2,3],11:[4,5],14:[3,3.5,4],17:[2.5,3],18:[2,3],19:[4,5],21:[2,3],25:[2,4],27:[2,4],28:[4,4.5,5],29:[2,3],30:[2,3]}[K];if(!r){switch(K){case 10:z1=7+2*w();G1=4;break;case 16:case 22:case 26:z1=3*w()+(22==K?6:4);G1=.5*Math.round(z1);break;default:G1=1}return}const e={6:[4,6],9:[7,2],14:[4,3,3],17:[3,5,4],18:[2,3],25:[2,3],27:[1,3]}[K]||[];let a=[];for(let t in r){const n=e[t]||1;for(let e=0;e<n;e++)a.push(r[t])}G1=c(a);z1=G1*g},j1=(e,t)=>new p.Color(e).lerp(new p.Color(0),t).getHex(),q1=()=>{const e=a1?.25:.3;U=j1(U,e*(p1?1:1.2));Z=j1(Z,.5*e);s1=j1(s1,e)},J1=()=>{P1=p1&&!E1&&{15:1,10:.5}[K]||p1&&{0:.45,1:.32,2:.33,4:.45,5:.45,6:.43,11:.42,14:.42,15:.45,19:.43,22:.45,23:.45,29:.5}[K]||(!E1&&Q<.4?.5:.4);if(E1&&p1&&F1([16,18,26],K))P1=.3},K1=()=>{if(F1([5],K))return;Q=F1([0],K)?.4:.5;l1=B(l1,1,p1?3:2.4)},Q1=()=>{T1();L1();D1();W1();I1();Y1();_1();H1();if(w1)V1();N1();O1();X1();J1();if(!p1)q1();if(E1)K1();b1=Q};let U1,Z1,$1,e2,t2,r2;const a2=-2,n2=()=>{U1=new p.Scene;Z1=new p.PerspectiveCamera(60,1,.001,1e7);t2=new p.WebGLRenderer({antialias:!0,preserveDrawingBuffer:!0,depth:!1,powerPreference:"high-performance"});if(!t2.capabilities.isWebGL2){document.body.append("Your browser does not seem to support WebGL 2");return}t2.autoClear=!0;t2.autoClearColor=!1;let e=window.innerWidth,t=window.innerHeight,r=Math.min(e,t),a=window.devicePixelRatio;t2.setPixelRatio(a);t2.setSize(r,r);r*=a;if(r<2048||1==a)r*=2;r2=new p.WebGLMultisampleRenderTarget(r,r,{format:p.RGBFormat,depthBuffer:!1});i2();document.body.appendChild(t2.domElement);l2();s2();u2(-1.5-u1,0)},i2=()=>{$1=new p.Scene;e2=new THREE.OrthographicCamera(-1,1,-1,1,0,1e3);e2.rotateX(g)},l2=()=>{let e=new p.DirectionalLight(s1,l1);U1.add(e);let t=new p.AmbientLight(16777215,o1);U1.add(t);U1.fog=new p.Fog(U,2,!p1&&E1?2.6:3)},s2=()=>{Z1.position.set(0,1.5,0);Z1.lookAt(U1.position)},o2=e=>{t2.setRenderTarget(r2);t2.render(U1,Z1);let t=R(.05,R1,((e+1.5)/(d1+1.5))**3);t=B(t,0,1);if(e==a2)t=1;let r=new p.MeshBasicMaterial({map:r2.texture,transparent:1!=t,opacity:t}),a=new p.Mesh(new p.PlaneGeometry(2,2),r);$1.add(a);t2.setRenderTarget(null);t2.render($1,e2);$1.remove(a);a.geometry.dispose()},f2=()=>{for(let t=U1.children.length-1;t>=0;t--){let e=U1.children[t];if("Mesh"===e.type){e.geometry.dispose();U1.remove(e)}}t2.renderLists.dispose()},c2=()=>{const e={s:{value:w()},d:{value:!!p1}},t=new p.ShaderMaterial({uniforms:e,vertexShader:"varying vec2 w;void main(){w=uv;gl_Position=vec4(position,1.);}",fragmentShader:"uniform float s;uniform bool d;varying vec2 w;void main(){vec2 u=w*(1.-w);float v=.22*pow(u.x*u.y*37.,.2);vec2 a=s+gl_FragCoord.xy*u;float r=.02+.06*fract(sin(dot(a,vec2(12.9898,78.233)))*43758.5453123);if(d)r+=v-.11;else r=2.7*v+.55-r;gl_FragColor=vec4(r);}"});let r=new p.Mesh(new p.PlaneGeometry(2,2),t);U1.add(r);o2(a2);f2()},u2=(e,t)=>{const r=.025;if(e>=d1){void 0;void 0;return}let a=new p.Clock(!0);a.start();if(0==t){void 0;c2()}else h2(e,t%g1==0);let n=F(1e3*B(r-a.getElapsedTime(),0,r));setTimeout(()=>{u2(e+u1,t+1)},n)},h2=(l,e)=>{const s=_(l,e&&(Q<1||!y1));for(let i=0;i<s.length;i++){let e=s[i];if(e.length<1e3){if(0==i)return;break}const o=new p.Color(U);o.lerp(new p.Color(Z),B(.5*(l+1.3),0,1));const f=(1==Q&&.15!=b1&&p1?S1:B1)*(0==i?1:.5),c=f1&&1==Q&&l<d1-u1?w()<.5:!1,u=p1?100:0,h={side:r1==j||c?p.FrontSide:p.DoubleSide,color:o,specular:o,shininess:u,opacity:f,wireframe:c,transparent:!0,fog:!0,depthWrite:!1,depthTest:!1};if(E1&&0==i){h.blending=p.CustomBlending;h.blendDst=p.SrcAlphaFactor}let t=new p.BufferGeometry;t.setAttribute("position",new p.BufferAttribute(new Float32Array(e),3));[];let n=(new p.Geometry).fromBufferGeometry(t);if(0==i&&l>-.7&&1==Q&&!c){n.mergeVertices();n.computeVertexNormals()}let r=new p.MeshPhongMaterial(h),a=new p.Mesh(n,r);U1.add(a);if(0==i){let a=r.clone();a.opacity=P1;const d=.001,b=-.01;for(let r in[0,1]){let e=new p.Mesh(n,a),t=(1==r?1:-1)*d;e.position.set(t,b,t);U1.add(e)}}}o2(l);f2()};(()=>{e();Q1();Y();b();n2()})()})();
(()=>{const g=Math.PI,p=THREE,B=(e,t,r)=>Math.min(Math.max(e,t),r),G=e=>Math.abs(e),F=e=>Math.floor(e),o=(e,t)=>{let r=10**t;return Math.round(e*r)/r},r=1<<13;let a,n;const t=e=>F(e*r/(2*g))&r-1,y=e=>a[t(e)],v=e=>n[t(e)];(()=>{n=[];a=[];for(let t=0;t<r;t++){let e=2*t*g/r;n.push(Math.sin(e));a.push(Math.cos(e))}})();let i,l,s;const w=()=>{i=!i;return i?l():s()},h=(e,t)=>F(f(e,t+1)),f=(e,t)=>e+(t-e)*w(),c=e=>e[h(0,e.length-1)],e=()=>{i=!1;let e=function(e){let t=parseInt(e.substr(0,8),16),r=parseInt(e.substr(8,8),16),a=parseInt(e.substr(16,8),16),n=parseInt(e.substr(24,8),16);return function(){t|=0;r|=0;a|=0;n|=0;let e=(t+r|0)+n|0;n=n+1|0;t=r^r>>>9;r=a+(a<<3)|0;a=a<<21|a>>>11;a=a+e|0;return(e>>>0)/4294967296}};l=new e(tokenData.hash.substr(2,32));s=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2){l();s()}};let u=16,d=u**3,E=[];const b=()=>{for(let e=0;e<d;e++)E.push(w())},P=e=>e*e*(3-2*e),R=(e,t,r)=>e+r*(t-e),T=(g,y,v)=>{let M=d-1,x=u,C=x*x;g=G(g);y=G(y);v=G(v);let A=0,z=.4857;for(let e=0;e<3;e++){let e=F(g),t=F(y),r=F(v),a=e+x*t+C*r,n,i,l,s,o,f,c,u;n=E[a&M];a+=1;o=E[a&M];a+=x-1;i=E[a&M];a+=1;f=E[a&M];a+=C-x-1;l=E[a&M];a+=1;c=E[a&M];a+=x-1;s=E[a&M];a+=1;u=E[a&M];let h=P(g-e),d=P(y-t),b=P(v-r),p,w,k,m;p=R(n,o,h);w=R(i,f,h);k=R(p,w,d);p=R(l,c,h);w=R(s,u,h);m=R(p,w,d);A+=R(k,m,b)*z;z*=.5;g*=2,y*=2,v*=2}return A},M=(e,t,r)=>0==(1&F(t*(100+r)))?v(e):y(e),x=(e,t)=>e>>t&1,D=(f,c,u,e)=>{let h,d,b,p,w,k,m;if(w1){const t=k1.length,r=1.2*L,a=e<<1;if(f<k1[a]||f>k1[a+1]||u<k1[0]||u>-k1[0])return r;w=e*((t>>1)-1);for(let e=1;e<t-1;e+=2,w++)if(u>k1[e]&&u<k1[e+1]&&!x(m1,w))return r}if(0!=v1){let e=v(v1),t=y(v1),r=f;f=f*t-u*e;u=r*e+u*t}switch(K){case 0:h=.6*(f*f+c*c+u*u-T(5*f,c,5*u)+1.5*c+T(4*f,c*c,4*u-2*$)+.1);break;case 1:h=2*(f*f+c*c+u*u)*T(5*f,c*c,5*u)+1.3*c+.2;break;case 2:h=.45-.3*G(c)-f**2-(.2+.1*$)+.4*T(3*f,c*c,3*u+7);break;case 3:d=1.7;h=.6*(3*u**2-3*f**2-.5+T(f*d+1,3*c+2,u*d+.7));break;case 4:d=2;h=-G(v(z1*f))*G(v(z1*u))*(2*T(f*d+1,c*d,u*d-1)-(.65+.2*$-.35*(c+1.5)))*(f*f+u*u)-.0985;break;case 5:d=2;h=.7*(.3*G(f)**.6+.6*G(u)**.8+.05*c**4)-.35*T(f*d-1,c*d+.5,u*d-1);break;case 6:d=1.7+$;let e=c*c;p=v(z1*f);w=M(z1*u,$,0);h=T((f-u)*d,e,(f-u)*d)+T((f+u)*d,e,(f+u)*d)-.65-.1*e;h*=6*(f*f+u*u-.6*e)*(p*p-w*w);break;case 7:d=$<.4?$+.4:$;p=.2*d+.8;h=v(z1*u)*v(z1*f)*c*d-.2+.8*T(f*p+1,c,u*p+2);break;case 8:d=1.7;h=(2*T(f*d+1,c*d,u*d)-.5*$-.6)*v(z1*f)*v(z1*u)-.08;break;case 9:d=1.6;k=.1+.9*T(f*d,c*d,u*d);p=3==z1?1.4:1;h=(2*k-.1*$-.58*p)*v(z1*f)*v(z1*u)-.099;break;case 10:d=.4+.2*e1;p=2*g*e1;w=2+4*t1;let t=z1*u+p,r=z1*f+p,a=z1*d*c,n=z1*d*f;h=.1*(v(t+n)+M(t+a,$,0)+v(t-n)+v(r+a)+v(r-a)+y(t-a))*(2.5+e1)*T(f,c*w,u);break;case 12:d=$<.5?0:1;p=0==d?.45:.35;h=.5*G(f)**1.2-.4*G(u)**.7-(p+.06*$)*T(2*f+d+1,2*c+d,2*u+d+1);break;case 13:d=5+7*$;h=(.01*d+T(f*d-1,c*d,u*d+1))*Math.atan(4*f)*Math.atan(4*u)-.08;break;case 14:d=1.7;k=$<.5;p=k*g/2;h=.5*(.7*(f*f+c*c+u*u)-T(2*f+1,2*c,2*u+2));h+=(2*T(f*d,c*d,u*d)-.22*e1-.3)*v(z1*f+p)*v(z1*u+p)-.099;break;case 15:d=4;k=.1+.9*T(f*d+.2,c*d,u*d-.2);w=f*f+u*u+.1*c*c;p=-w*G(y(z1*f,$)+y(z1*u,$));h=(w-.2*k-.1)*p-.099;break;case 16:case 22:case 26:let i=f*f+c*c+u*u,l=z1*Math.atan2((u*u+c*c)**.5,f),s=z1*Math.atan2(c,u);h=i*y(l)*y(s+g)+(1+2*$*t1)*i*y(l)*v(s)+(1+2*e1*t1)*i*v(l);h*=.5*(.5+.5*e1);if(26==K){k=T(f+2,c,u+1);p=f*f+u*u+.1*k-.2*(.6+e1)*c*c;h*=3*k*p*G(c)*.2}else{d=1.5;h*=T(f*d,c*d,u*d)}break;case 17:case 29:m=$<.5?1:-1;w=2*g*e1;h=m*v(z1*f+w)+v(z1*u+w)-(.1+e1)*T(f,c,u);d=4+2*$;if(29==K)d+=1;k=(.3+.4*t1)*d;p=29==K?0:2*g*$;h*=.14*(v(d*u+k*f+p)+M(d*u+k*c+p,$,0)+v(d*u-k*f+p)+v(d*f+k*c+p)+v(d*f-k*c+p)+y(d*u-k*c+p))*(1.5+2*f*u*c);break;case 18:case 30:m=$<.5?1:-1;d=1.7;p=30==K?0:2*g*$;w=2*g*e1;h=m*v(z1*f+w)+v(z1*u+w)-.8;d=4+2.5*t1;k=M(d*f+d*c+p,$,0)+M(d*u+d*c+p,$,1);h*=.1*(k+v(d*u+d*f+p)+v(d*f-d*c+p)+v(d*u-d*f+p)+v(d*u-d*c+p))*(1.5+2*t1);break;case 11:case 19:d=1.7;k=F(173*$)%3+1;p=(1&k)*g/2;w=(k>>1)*g/2;h=1.1*(2*T(f*d,c*d,u*d)-.5*$-.6)*v(z1*f+p)*v(z1*u+w)-(.05+.04*e1);break;case 20:d=2;k=-1.3;w=c>k?2*(.2+.5*e1)*f**2+.4*c*c:1;p=-w*G(y(z1*f)*y(z1*u));h=((c>k?2*(.1+.8*T(f*d-1,c*d,u*d+1))*w:1)-.3*$-.2)*p-.099;break;case 21:m=$<.5?1:-1;let o=e1<.5?1:-1;d=3;p=-.2*c;h=(1*T(f*d,c*c,u*d)-.6)*v(z1*(f*p-o*u*p))*v(z1*m*(u*p+p))-.099;break;case 23:d=2;w=f*f+u*u;p=-w*G(v(z1*f)*v(z1*u));k=.1+.9*T(f*d-1,c*d,u*d+1);h=(1.9*k*w-.2*$-.3)*p-.099;break;case 24:d=2;w=G(f)*G(u)-(.2*e1+.1)*G(c)-f*f-u*u+1.1;p=-w*G(v(z1*f)*v(z1*u));h=(2*T(f*d-1,c*d,u*d+1)*w-.2*$-.33)*p-.099;break;case 25:d=2;w=.35*(f*f+u*u)+.1*c*c;p=-w*G(M(z1*f,$,0)+M(z1*u,$,0));h=(1.7*(.1+.8*T(f*d-1,c*d,u*d+1))*w-.03*e1-.09)*p-.0991;break;case 27:k=T(2*f+.2,2*c,2*u-.2);b=.8*$**2+.7;d=p1&&e1<.75?1:0;w=(c<-.3||d||!p1?b:0)*(f*f+u*u)-.2*c*c*(k+.5);p=2==G1?.11:e1;p=-w*G(M(z1*f,p,0)+M(z1*u,p,d));h=(1.7*k*w-.1*t1-.16)*p-.099;break;case 28:d=1.6;k=T(f*d-.1,c*d,u*d+.1);w=1.8*(f*f+u*u)-.8*G(c)+.2*k+.5;p=2*k*w*(M(z1*f,$,0)**2+M(z1*u,$,0)**2);h=(2*k*w+.4*w-.35)*p+.04+.03*e1;break}if(x1){let e=c1-.03;if(f<=-e||f>=e||u<=-e||u>=e)h=1.2*L}return G(h)},k=200,L=.1,m=1e-6,C=[[0,1],[0,2],[1,3],[2,3],[0,4],[1,5],[3,7],[2,6],[4,5],[4,6],[5,7],[6,7]],A=[[[2],[1,3,7]],[[2,7],[1,3,7,6,10,11]],[[0,2],[0,3,4,3,7,4]],[[2,5],[1,3,7,5,8,10]],[[1,2,3],[0,5,1,1,5,7,5,6,7]],[[0,2,7],[0,3,4,3,7,4,6,10,11]],[[2,4,7],[1,3,7,4,9,8,6,10,11]],[[1,2,3,4],[0,5,1,1,5,7,5,6,7,4,9,8]],[[0,2,5,7],[0,3,4,3,7,4,5,8,6,6,8,11]],[[1,2,4,7],[0,5,2,1,3,7,4,9,8,6,10,11]],[[0,1,2,3],[4,5,6,4,6,7]],[[1,2,3,6],[0,9,1,0,5,9,5,11,9,5,6,11]],[[0,2,3,7],[0,2,10,0,10,4,4,10,11,4,11,7]],[[1,2,3,7],[0,5,10,0,10,1,1,10,11,1,11,7]]],z=[16434824,11571098,8181124,2206526,3426262,16096528,4988389,7070252,1139551,6623092,414967,10991666,14498113,13242089,5894413,4408957,9924691,15673952,8559803,3076262,9972683,13882393,12477122,571823];let S,W;const I=r=>{if(a1){let e=F(20*G(r+1.5)+1e-4),t=n1?(7&e)<2:0==(3&e);if(t)Q=1;else Q=b1}},H=(e,t)=>{if(!M1)return t;let r=e<-1?2:e<-.75?1.56:1;return o(r*t,2)},_=(M,x)=>{I(M);let e=[],t=[];const C=1/L,r=2/k,A=H(M,r),z=r*Q;let a=c1;const G=F(a*k+4),E=w()*C1;let P=2*G,n=P;if(x)n*=2;let i,R=new Array(n),S=new Array(n);const l=.6*(1.5-M),s=A==r?2:1;a=o(B(a,-l,l),s);for(let y=-a,v=0;y<a;y+=A,v++){let d=0;if(w1){let t=!0;for(let e=0;e<k1.length-1;e+=2,d++)if(y>=k1[e]-2*r&&y<=k1[e+1]+2*r){t=!1;break}if(t)continue}i=R;R=S;S=i;for(let e=0;e<P;e++)S[e]=null;let b=[],p=[],w=[],k=0,m=0,g=0;for(let u=-a,h=0;u<a;u+=A,h++){let c=0;if(0==h||k>0){b=[];p=[];w=[];m=0;g=0}else{c=4;p=p.slice(c);b=b.slice(c);w=w.slice(c);m>>=c;g>>=c}k=0;for(let f=c;f<8;f++){let t={x:y,y:M,z:u},e=v,r=h,a=[1&f,f>>1&1,f>>2],n=a[1];if(a[0]){t.x+=A;+e}if(n)t.y+=z;if(a[2]){t.z+=A;+r}let i=a[1]*G+h,l=a[2]&&!a[0],s=a[2]&&a[0],o;if(l)o=R[i];if(!o){o=D(t.x,t.y,t.z,d);if(s)S[i]=o}if(o>2*L&&f==c)if(h1){k=F(o*C);break}else if(o>3*L){k=1;break}b.push(t);p.push(o);if(o<L)m|=1<<f;if(x){i+=P;let e;if(l)e=R[i];if(!e){e=o+E*T(A1*t.x,A1*t.y,A1*t.z);if(s)S[i]=e}w.push(e);if(e<L)g|=1<<f}}if(k>0){let e=B(k-2,0,2);u+=e*A;h+=e;continue}V(e,m,b,p);if(x)V(t,g,b,w)}}return[e,t]},V=(r,e,a,n)=>{let i=S[e];if(0==i)return;let l=new Array(12);for(let t=0;t<12;t++)if(i&1<<t){let e=C[t];l[t]=N(a[e[0]],a[e[1]],n[e[0]],n[e[1]])}let s=W[e];for(let t=0;t<s.length;t++){let e=l[s[t]];r.push(e.x);r.push(e.y);r.push(e.z)}},N=(e,t,r,a)=>{if(G(L-r)<m)return e;if(G(L-a)<m)return t;if(G(a-r)<m)return e;let n=B((L-r)/(a-r),0,1),i={x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y),z:e.z+n*(t.z-e.z)};return i},O=()=>{let e=[];for(let r of z){let t=[];for(let e=0;e<8;e++){t.push(7&r);r>>=3}e.push(t)}return e},X=(e,r=null)=>{let a=0;e.forEach((e,t)=>a|=1<<(r?r[e]:e));return a},Y=()=>{let e=256;S=new Array(e).fill(0);W=new Array(e).fill([]);const l=O();let s={};C.forEach((e,t)=>s[X(e)]=t);for(let i of[0,1])A.forEach((e,t)=>{let a=e[0],n=e[1];for(let r of l){let e=X(a,r);if(i)e=255-e;if(S[e])continue;let t=n.map(e=>s[X(C[e],r)]);if(i)t=t.reverse();W[e]=t;S[e]=X(t)}})},j="F",q="D";let J,K,Q,U,Z,$,e1,t1,r1,a1,n1,i1,l1,s1,o1,f1,c1,u1,h1,d1,b1,p1,w1,k1,m1,g1,y1,v1,M1,x1,C1,A1,z1,G1,E1,P1,R1,S1,B1;const F1=(e,t)=>e.includes(t),T1=()=>{p1=w()<.86},D1=()=>{E1=!F1([3,6,10,12,13,15,16,18,24,25],K)||!p1&&!F1([24],K)||w()<({10:.5,15:.5,16:.5,18:.5,24:.75}[K]||.6)},L1=()=>{const e=[14,14,12,5,17,20,21,9,14,20,10,18,12,5,22,4,11,18,16,14,0,13,13,15,19,14,16,19,12,13,15],a={4:8,7:5,9:10,12:6,20:8,23:8,24:8,25:6,27:6,30:7};let n=[];for(let r=0;r<e.length;r++){let t=p1?e[r]:a[r];for(let e=0;e<t;e++)n.push(r)}K=c(n)},W1=()=>{const e=[2,6,8,9],t=[2,4,6,8,9],r=[1,2,4,5,6,8,9],a=[1,2,4,6,8,9],n=[2,6,7,8,9],i=[2,3,6,7,8,9],l=[2,8,9],s=[6,8,9],o=[a,e,r,l,r,r,i,[1,4,5],[2,3,6,8,9],e,e,i,[1,2,3,4,6,8,9],i,[2,3,6,7,8,8,9,9],l,[4,6,8,9],t,e,i,s,e,e,[3,4,5,6,8,9],[2,6,6,7,8,8,9],n,n,a,t,e,[1,2,6,7,8,9]],f={7:[1,4,5,6],23:[3,4,5,6,7,8,9],25:e,27:s,30:[1,4,6,7,8,9]};let c;if(!p1)c=f[K];c=c||o[K];J=c[h(0,c.length-1)];if(E1&&!F1([0,2,3,10,13,14,15,17,18,19,21],K)&&w()<(p1?.1:.16))J=0;let u;if(!p1){let e={1:[14403558,4973539,7304852,2,!0],5:[15658734,2479871,10066329,1,!0],6:[11517653,14313768,12340286,4,!1]}[J];if(e&&(e[4]||F1({6:[20,24,27]}[J]||[],K)))u=e}u=u||[[11184810,16777215,16777215,2],[16048127,4973539,7304852,2],[11062271,14429714,10704194,4],[16769704,14430737,10699073,4],[12447231,16751258,3825256,4],[16777215,2479871,14013909,1],[12899565,14970411,12340286,4],[11072767,14427665,10699073,4],[10476013,14429714,10704194,4],[13558271,14429714,10704194,4]][J];U=u[0];Z=u[1];s1=u[2];l1=u[3];o1=p1?.5:.85;if(p1&&F1([4,6,7,9,11,14,15,17,21,23,25,27,28],K))o1*=1.2},I1=()=>{r1=F1([0,1,6],K)?j:q;a1=F1([3,5,6,7,9,20,21,24,26,27,28],K)||!F1([0,1,2,13,14,18,22,29,30],K)&&w()<.8;f1=a1&&(!F1([3,7,10,12,17],K)||w()<.5);Q=a1&&F1([0,1,2,13],K)&&w()<.5?.5:.25;n1=a1&&w()<.5;i1=F1([10,30],K);u1=i1?.017:.01;h1=!F1([1,4,6,11,14,15,17,18,19,20,23,24,25,27,28,29,30],K);c1={3:1.1,2:1.7,5:1.7,12:1.7,14:1.3,15:1.05,16:1.8,20:1.04,25:1.05,26:1.8,27:1.05,28:1.05}[K]||1;d1=-[.1,.3,-.56,.3,.22,-.16,.5,.4,.3,.23,.4,.3,-.5,-.1,-.1,.25,.1,.4,.4,.3,.2,.2,.35,.22,.25,.25,.1,.25,.28,.4,.4][K];x1=F1([11,15,19,20,25,27],K);w1=F1([11,21,22,29,30],K);C1=F1([26],K)?.1:.2;A1=F1([3,7,17,26],K)?3:10;R1={0:.2,1:.3,2:.15,3:.5,12:.2,13:.15,15:.2,16:.1,18:.2,19:.2,22:.1,28:.3}[K]||1;S1=F1([3,6,7,10,16,17,18,19,21,26,28],K)?.5:.7;B1=E1&&F1([2,3,4,5,6],K)?.7:.8},H1=()=>{$=w();e1=w();t1=w()},_1=()=>{if(!E1&&
In a multidimensional mind-space where the art process is simultaneously free-flowing and embedded in the blockchain, Fluxus produces a collection of complex, organic-looking and abstract forms rendered in style between 2D art and 3D sculpture. Each scene takes one of the initial 31 shapes uniquely modified by the transaction hash. The images are built layer-by-layer until the final static form is reached. The scenes are generated with a great level of detail, and previewing in high resolution is recommended. Requires WebGL2.
var e,t,f,r,l,o,n,d,i,a,s,h,p=Math.min,c=Math.max;const{hash:b}=tokenData,x=Uint32Array.from([0,0,0,0].map(((e,t)=>parseInt(b.substr(8*t+2,8),16)))),u=(e,t)=>(void 0===e?(e=0,t=1):t=t||0,e+(e=>{let t,f=x[3];return x[3]=x[2],x[2]=x[1],x[1]=t=x[0],f^=f<<11,f^=f>>>8,x[0]=f^t^t>>>19,x[0]/4294967296})()*(t-e));let v=null,g=!1;const y=(e=0,t=1)=>{var f=Math.sqrt,r=Math.log;if(g){g=!1;let f=v;return v=null,e+t*f}{let l=0,o=0,n=0;do{l=u(-1,1),o=u(-1,1),n=l*l+o*o}while(1<=n||0===n);let d=f(-2*r(n)/n);return v=o*d,g=!0,e+t*(l*d)}},w=e=>u()<e;let k,j,S="1b3b4bd40000b68762eef2f6e6e0dae0b299eda67de2725bz0505041d34611f487d237ba133b2cce6e6e6fdd692fb3640z1d2f53ec5c23fdc449f5f1ebf8b8a03cb8a472c1c65898c1zffbb33f1faeea8dadc457b9d1d3557031927424b54042a2bz26437fffcc00d2292effffff0000001884bffefddfd9381ezccdbdc9ad1d480ced7007ea70032493d5a80ee6c4d293241zd00000fefefa3f88c5032b43136f6337323e96c8a2001242z0c18211b2a41324a5fccc9dc3f88c5f49d37f22b29d72638z05668d02809000a89602c39af0f3bdf7e7cefffaf000bbd8zff8f9effa8b5ffbdc9ffd5d1ffecdbe30022ffd0b3ffb9a3ff9e8fff8f8f343434z3f3f37d6d6b1f2e0b6e6a100f24500".split`z`.map((e=>e.match(/.{6}/g).map((e=>"#"+e))));const m=e=>{let t=e.substring(1).match(/.{1,2}/g).map((e=>parseInt(e,16)/255)).map((e=>.03928>=e?e/12.92:Math.pow((e+.055)/1.055,2.4)));return.2126*t[0]+.7152*t[1]+.0722*t[2]},z=e=>{let t=~~u(S.length);return k=S[t],t},M=e=>k[~~u(k.length)],W=e=>j[~~u(j.length)],H=(e,f=.5,r,l)=>{t();let o=360+hue(e),n=saturation(e),d=brightness(e),i=constrain;return r=r||alpha(e),o=y(o,4*f)%360,n=i(y(n,4*f),.01,100),d=i(y(d,4*f),.01,100),l||(r=i(y(r,f/10),1e-4,1)),[o,n,d,r]};var C=t=>({d(t,f,r=K.j){o(r),n();for(let r=0;r<=t;r+=e(5))s(r,0,e(y(10,.5))),s(r,f,e(y(10,.5)));for(let r=0;r<=f;r+=e(5))s(0,r,e(y(10,.5))),s(t,r,e(y(10,.5)))}});let E=(e,t,f)=>c(p(e,f),t),I=(e,t,f,r,l)=>(e-t)*(l-r)/(f-t)+r;var O=t=>({d(t,f){let r=K.h?K.j:W();d(e(10));for(let l=0;100>l;l++){o(H(K.f,1,u()));let l=~~u(5,25);for(let r,o=0;o<l;o++)r=e(abs(3*y())),s(u(t),u(f),r);let n=H(r,1,.01);o(n),i(n),rect(0,0,t,f)}}});let B=[2,3,5,7,11,13,17,19,23,29,31];const L=(e,t)=>{let f=1,r=0;for(;0<e;)f/=t,r+=f*(e%t),e=~~(e/t);return r},V=(e,t,r,l)=>{let o=f(e,t),n=f(0,0),d=f(r,0),i=f(0,l),a=f(r,l);return n.prev=i,n.next=d,d.prev=n,d.next=a,a.prev=d,a.next=i,i.prev=i,i.next=n,{vertexes:[n,d,a,i],position:o}},P=e=>{let t;for(let f of e)t&&(f.prev=t,t.next=f),t=f;e[0].prev=t,t.next=e[0]},$=(e,t)=>{let f={position:e.position.copy()},r=~~u(0,e.vertexes.length),l=~~u(3,e.vertexes.length-3.1),o=e.vertexes[r],n=o;for(let e=0;e<l;e++)n=n.next;t&&(n===o||n===o.prev||n===o.next)&&(n=o.next.next);let d=y(.5,.1),i=y(.5,.1),a=h(o,o.prev,d),s=h(n,n.prev,i),p=a.copy(),c=s.copy(),b=[a],x=o;for(;x!==n;)b.push(x),x=x.next;for(b.push(s),P(b),e.vertexes=b,a=p,s=c,f.vertexes=[s],x=n;x!==o;)f.vertexes.push(x),x=x.next;return f.vertexes.push(a),P(f.vertexes),f};let A={c:(t,f)=>{let r=w(.5),l=~~((r?f:t)/(r?K.c:K.b)*u(20,100));return{d(t,f){o(K.j),n();let d=r?[f,t]:[t,f],i=d[0]/l;for(let t=0;t<=l;t+=1)for(let f=0;f<=+d[1];f+=e(5)){let l=e(y(10,.5)),o=r?[f,t*i]:[t*i,f];o.push(l),s(...o)}}}},d:t=>({d(t,l){let o=r(t,l),n=e(u(-120,120)),d=f(0,0),i=f(t,0),s=f(0+n,l),p=f(t+n,l);o.fill(K.j),o.noStroke();let c=1/(d.dist(i)/e(y(40)));for(let t=2*-c;t<=1+2*c;t+=c){let f=h(d,i,t),r=h(s,p,t),l=1/(f.dist(r)/e(5));for(let t,n=0;1>=n;n+=l)t=h(f,r,n),o.ellipse(t.x,t.y,e(y(10,.5)))}a(o,0,0,t,l,0,0,~~t,~~l),C().d(t,l)}}),e:(t,r)=>{let l=~~(t/K.b*u(40,50)),d=~~(r/K.c*u(40,50));return{d(t,r){o(K.j),n(),w(.1)&&(l*=6),w(.1)&&(d*=6);let i=t/l,a=r/d,p=~~u(0,3);if(0==p||2==p)for(let o=0;o<=l;o+=1){let l=f(o*i,0),n=f(t-o*i,r),d=1/(l.dist(n)/e(5));for(let t,f=0;1>=f;f+=d)t=h(l,n,f),s(t.x,t.y,e(y(10,.5)))}if(1==p||2==p)for(let l=0;l<=d;l+=1){let o=f(0,l*a),n=f(t,r-l*a),d=1/(o.dist(n)/e(5));for(let t,f=0;1>=f;f+=d)t=h(o,n,f),s(t.x,t.y,e(y(10,.5)))}}}},y:O,g:t=>({d(t,f){let l=r(t,f);l.colorMode(HSB);let o=~~u(10,20),n=~~u(10,20),d=t/o,i=f/n,s=d+i;s/=K.h?4:2;let h=(f,r)=>{let o=y(s,.5*s);l.push(),l.translate(f,r),l.rotate(u(TWO_PI)),l.stroke(K.h?K.j:H(M(),1)),l.strokeWeight(e(5));for(let f=-o;f<o;f+=e(10))l.line(0,f,y(t/5,t/20)+e(y(20,10)),f+e(y(20,10)));l.pop()};K.h||O().d(t,f);for(var p=0;p<=n;p++)for(var c=0;c<=o;c++)h(c*d,p*i);a(l,0,0,t,f,0,0,~~t,~~f),C().d(t,f)}}),h:t=>({d(t,l){let o=r(t,l);o.colorMode(HSB);let n=K.f,d=K.j;(K.i||!K.h&&w(.5))&&(n=360,d=0),o.fill(n),o.stroke(d),f(0,0),f(t,0),f(0,l),f(t,l);let i=r=>{let n=l*r,d=f(0,n+e(100*y())),i=f(t,n+e(100*y())),a=f(0,l),s=f(t,l),p=1/~~u(6,9),c=[];c.push(d);for(let e,f=0;1>f;f+=p)e=h(d,i,f),e.y+=y()*t/10,c.push(e);c.push(i);for(var b=0;b<2*l;b+=e(20)){o.strokeWeight(e(0===b?10:5)),K.i&&o.fill(M()),o.beginShape(),o.vertex(d.x,d.y+b);for(let t of c)o.curveVertex(t.x+e(3*y()),t.y+e(3*y())+b);o.vertex(i.x,i.y+b),o.vertex(s.x,s.y+b),o.vertex(a.x,a.y+b),o.endShape(CLOSE)}};i(y(-.6,.2)),i(y(-.3,.2)),i(y(0,.2)),i(y(.3,.2)),i(y(.6,.2)),a(o,0,0,t,l,0,0,~~t,~~l),C().d(t,l,K.i?K.j:d)}}),f:t=>({d(t,f){let r=B[~~u(B.length)],l=r;for(;l===r;)l=B[~~u(B.length)];let o=[],n=u(400,4e3);for(var a=0;a<n;a++)o.push([L(a,r),L(a,l)]);noFill(),d(e(K.a?15:10));for(let e of o)i(H(K.i?W():K.j)),point(e[0]*t,e[1]*f)}}),i:(t,f)=>{let r=K.b*K.c,l=~~I(t*f,1,r,4,20);return{d(t,f){let r=[V(0,0,t,f)];for(let e,t=0;t<l;t++){e=[];for(let f of r)e.push(f),e.push($(f,2>t));r=e}for(var n=0;5>n;n++)for(let t of r)t.position.x+=e(2*y()),t.position.x+=e(2*y());let a=e(I(l,4,20,5,2)),s=0,h=360;!K.i&&(K.h||w(.5))&&(a*=2,s=K.j,h=K.f),d(a),i(s),o(h);for(let e of r){K.i&&o(H(M())),beginShape();for(let t of e.vertexes)vertex(e.position.x+t.x,e.position.y+t.y);endShape(CLOSE)}}}},m:C,j:(t,f)=>{let l=Math;t>f?K.b:K.c;let o=l.max(t,f),n=l.min(t,f)/o;n=u(n/4,n/2)*(K.i?.5:.75);let d=~~I(2-n,1.75,1.95,200,300),i=(2-n)/d,s=[],h=[u(),u()],p=l.PI/180,c=u(360);for(let e=0;360>e;e+=.25){let t=l.cos(p*e+c),f=l.sin(p*e+c);s.push([t,f])}return{d(t,f){let l=r(t,f);l.colorMode(HSB),l.strokeWeight(e(i*o*(K.i?400:150))),o=max(t,f),h[0]*=t,h[1]*=f,K.h&&l.stroke(K.j),l.noFill();for(let t=2;t>=n;t-=i){K.i?l.stroke(H(W())):!K.h&&l.fill(360),l.beginShape();for(let f of s){let r=f[0]*t*o+h[0],n=f[1]*t*o+h[1];l.vertex(r+e(5*y()),n+e(5*y()))}l.endShape(CLOSE)}l.fill(K.h?K.f:360),l.noStroke();let d=~~u(20,50);for(let r=0;r<d;r++)l.ellipse(u(t),u(f),e(abs(10*y())));a(l,0,0,t,f,0,0,~~t,~~f),C().d(t,f)}}}},F={y:5,m:5,c:10,d:10,e:10,f:10,g:15,h:15,i:15,j:15},U=[];for(let[e,t]of Object.entries(F))for(let f=0;f<=t;f++)U.push(e);var q=e=>{let t=U[~~u(U.length)];return[A[t],t]};let D,G,J,Q,R,T,_,K={},N=[];setup=x=>{let v,g;t=e=>colorMode(HSB),f=createVector,r=createGraphics,l=translate,o=fill,n=noStroke,d=strokeWeight,i=stroke,a=image,s=ellipse,h=p5.Vector.lerp,R=(e=>{let t=20,f=w(.5),r=~~u(10,40);f&&(t+=10,r*=1.5);let l=w(.2)?1:~~u(2,t-10),o=~~u(3,t),n={a:f,b:l,c:o,d:r,e:z(),f:w(.2)?"#ffffff":M(),g:u(.02,.2),h:w(.3),i:!1};K=n;let d=m(n.f);var i;n.j=.2>d?"#fefefeee":"#030308ee",n.k=.2>d?"#030308ee":"#fefefeee",i=n.f,j=k.filter((e=>2<((e,t)=>{let f=m(e),r=m(t);return(c(f,r)+.05)/(p(f,r)+.05)})(i,e))),n.h?(w(.5)&&(n.j=W()),w(.5)&&([n.j,n.f]=[n.f,n.j])):n.i=w(.3);let a=[];for(let e=0;e<o;e+=1){a[e]=[];for(let t=0;t<l;t+=1)a[e][t]=!1}for(let e=0;e<o;e+=1)for(let t=0;t<l;t+=1)if(!1===a[e][t]){let f=e;for(;!1===a[f][t]&&(f+=1,!(f>=o-1)););for(let r=e;r!=f;){let e=E(1+~~u(2,.75*(f-r)),1,f-r),o=a[r].slice(t).indexOf(!0);-1===o&&(o=l-t);let n=E(1+~~u(2,o),1,o),[d]=q(),i=d(n,e);i.x=t,i.y=r,i.w=n,i.h=e,N.push(i);for(let f=r;f<r+e;f+=1)for(let e=t;e<t+n;e+=1)a[f][e]=!0;r+=e}}return n})(),R.f=H(R.f,1,1,!0),.6*windowHeight>windowWidth?(v=windowWidth,g=windowWidth/.6):(v=.6*windowHeight,g=windowHeight),D=v*R.g,G=v-2*D,J=g-2*D,Q=v/(2048*(R.a?2:1)),e=(e=1)=>e*Q,createCanvas(v,g),noiseSeed(parseInt(b.substr(34,16),16)),t(),T=G/R.b,_=J/R.c;let y=e(R.d);for(const e of N)e.x=e.x*T+y,e.y=e.y*_+y,e.w=e.w*T-2*y,e.h=e.h*_-2*y;noLoop()},draw=f=>{t(),background(R.f),document.body.style.backgroundColor=`rgb(${red(R.f)}, ${green(R.f)}, ${blue(R.f)})`,push(),w(.5)&&(l(width/2,height/2),rotate(PI),l(-width/2,-height/2)),l(D,D),strokeCap(SQUARE),strokeJoin(BEVEL);for(const e of N)push(),l(e.x,e.y),e.d(e.w,e.h),pop();pop(),d(e(1));for(let t=0;t<=height;t+=e(2))i(H(R.k,1,.01,!0)),line(0,y(t,e(10)),width,y(t,e(10)))};
“Worlds” (by Kenny Vaden) consists of bending, wave-like structures that lean and arc across a landscape, with a large disc hovering in the background. The composition includes meandering line clusters, rectangles, and slightly off-center, nested concentric circles of varying sizes, which sometimes cluster chaotically or align into neatly spaced groups. This piece variably features a more detailed "macro" view of the scene, or an interactive animation with rotating circles and moving disc that accelerate based on mouse position. Highly variable color gradients and contrast manipulation with varying opacity, shadows, and highlights produce changing scenes that evoke different memories. The winding and sometimes tangled scenes produced by this system convey imbalance, incompleteness, and disorder. We can each view the same scene with open eyes, but see vastly different worlds.
“Worlds” consists of bending, wave-like structures that lean and arc across a landscape, with a large disc hovering in the background. The composition includes meandering line clusters, rectangles, and slightly off-center, nested concentric circles of varying sizes, which sometimes cluster chaotically or align into neatly spaced groups. This piece variably features a more detailed "macro" view of the scene, or an interactive animation with rotating circles and moving disc that accelerate based on mouse position. Highly variable color gradients and contrast manipulation with varying opacity, shadows, and highlights produce changing scenes that evoke different memories. The winding and sometimes tangled scenes produced by this system convey imbalance, incompleteness, and disorder. We can each view the same scene with open eyes, but see vastly different worlds.
“Worlds” consists of bending, wave-like structures that lean and arc across a landscape, with a large disc hovering in the background. <br> The composition includes meandering line clusters, rectangles, and slightly off-center, nested concentric circles of varying sizes, which sometimes cluster chaotically or align into neatly spaced groups. <br> This piece variably features a more detailed "macro" view of the scene, or an interactive animation with rotating circles and moving disc that accelerate based on mouse position. <br> Highly variable color gradients and contrast manipulation with varying opacity, shadows, and highlights produce changing scenes that evoke different memories. The winding and sometimes tangled scenes produced by this system convey imbalance, incompleteness, and disorder. <br> We can each view the same scene with open eyes, but see vastly different worlds. <br>
“Worlds” consists of bending, wave-like structures that lean and arc across a landscape, with a large disc hovering in the background. The composition includes meandering line clusters, rectangles, and slightly off-center, nested concentric circles of varying sizes, which sometimes cluster chaotically or align into neatly spaced groups. This piece variably features a more detailed "macro" view of the scene, or an interactive animation with rotating circles and moving disc that accelerate based on mouse position. Highly variable color gradients and contrast manipulation with varying opacity, shadows, and highlights produce changing scenes that evoke different memories. The winding and sometimes tangled scenes produced by this system convey imbalance, incompleteness, and disorder. We can each view the same scene with open eyes, but see vastly different worlds.
// WORLDS - DECEMBER 8, 2021 - Kenny Vaden (c) License: CC-BY-NC-SA p5.disableFriendlyErrors=true; class Random { constructor() { this.useA = false; let sfc32 = function (uint128Hex) { let a = parseInt(uint128Hex.substr(0, 8, 16)); let b = parseInt(uint128Hex.substr(8, 8, 16)); let c = parseInt(uint128Hex.substr(16, 8, 16)); let d = parseInt(uint128Hex.substr(24, 8, 16)); return function () { a |= 0; b |= 0; c |= 0; d |= 0; var t = (((a + b) | 0) + d) | 0; d = (d + 1) | 0; a = b ^ (b >>> 9); b = (c + (c << 3)) | 0; c = (c << 21) | (c >>> 11); c = (c + t) | 0; return (t >>> 0) / 4294967296; }; }; this.prngA = new sfc32(tokenData.hash.substr(2,32)); this.prngB = new sfc32(tokenData.hash.substr(34,32)); for (let i = 0; i < 1e6; i += 2) { this.prngA(); this.prngB(); } } rnd_dec() { this.useA = !this.useA; return this.useA ? this.prngA() : this.prngB(); } rnd_num(a,b) { return a+(b-a)*this.rnd_dec(); } rnd_int(a,b) { return Math.floor(this.rnd_num(a,b+1)); } randVNoRep (numm) { for (var arr=[],i=0;i<numm;i++) { arr[i]=i+1; } var tm,cr,tp=arr.length; if (tp) while(--tp) { cr=this.rnd_int(0,tp); tm=arr[cr]; arr[cr]=arr[tp]; arr[tp]=tm; } return arr; } } function mk2DArr(c,r) { let arr=new Array(c); for (let i=0; i<arr.length; i++) { arr[i]=new Array(r); } return arr; } function hxtrgb(hx) { let hxx=hx.replace('#',''),bgi=parseInt(hxx,16); return( [(bgi>>16)&255,(bgi>>8)&255,bgi&255] ); } function rgbthx (rgb) { let hx="#"+hex(rgb[0],2)+hex(rgb[1],2)+hex(rgb[2],2); return (hx); } function SplineR (pv,np) { let ip = new Array(2*pv.length); for (let i=0;i<pv.length;i++) { let a=i*2;ip[a]=i+1;let b=a+1;ip[b]=pv[i]; } let gg=getCurvePoints(ip),gk=new Array(0.5*gg.length-1); for (let i=0; i < gk.length; i++) { gk[i] = gg[(2*i+1)]; } let iw = Math.floor(gk.length / np); let outpt = new Array(np); for (let i=0; i < np; i++) { outpt[i] = gk[(i*iw)]; } outpt[np] = pv[pv.length-1]; outpt[0] = pv[0]; return outpt; // Epistemex (c) 2013-2014 License: MIT function getCurvePoints(points,tension,numOfSeg,close) { 'use strict'; tension=(typeof tension==='number')?tension:0.75; numOfSeg = numOfSeg?numOfSeg:250; let pts,l=points.length,rPos=0,rLen=(l-2)*numOfSeg+2+(close?2*numOfSeg:0); let rs=new Float32Array(rLen),cache=new Float32Array((numOfSeg+2)*4),cachePtr=4; pts=points.slice(0); if (close) { pts.unshift(points[l-1]); pts.unshift(points[l-2]); pts.push(points[0],points[1]); } else {pts.unshift(points[1]); pts.unshift(points[0]); pts.push(points[l-2],points[l-1]); } cache[0]=1; for(let i=0;i<numOfSeg;i++) { let st=i/numOfSeg,st2=st*st,st3=st2*st,st23=st3*2,st32=st2*3; cache[cachePtr++]=st23-st32+1; cache[cachePtr++]=st32-st23; cache[cachePtr++]=st3-2*st2+st; cache[cachePtr++]=st3-st2; } cache[++cachePtr]=1; parse(pts,cache,l); if (close) { pts=[];pts.push(points[l-4],points[l-3],points[l-2],points[l-1]); pts.push(points[0],points[1],points[2],points[3]); parse(pts,cache,4); } function parse(pts,cache,l) { for (let j=2;j<l;j+=2) { let pt1=pts[j],pt2=pts[j+1],pt3=pts[j+2],pt4=pts[j+3], t1x=(pt3-pts[j-2])*tension,t1y=(pt4-pts[j-1])*tension, t2x=(pts[j+4]-pt1)*tension,t2y=(pts[j+5]-pt2)*tension; for (let t=0;t<numOfSeg;t++){ let c=t<<2,c1=cache[c],c2=cache[c+1],c3=cache[c+2],c4=cache[c+3]; rs[rPos++]=c1*pt1+c2*pt3+c3*t1x+c4*t2x; rs[rPos++]=c1*pt2+c2*pt4+c3*t1y+c4*t2y; } } } l=close?0:points.length-2,rs[rPos++]=points[l],rs[rPos]=points[l+1]; return rs; } } function zspline(fcz,nc,macro) { let cl=Array(nc*(fcz.length-1)); for (let i=0;i<fcz.length-1;i++) { for (let j=0;j<nc+1;j++) { let awt=(j+1)/nc; if (macro===1) { awt=1-((j+1)/nc); } let ak=hxtrgb(fcz[i]),bk=hxtrgb(fcz[i+1]),lst=Array(3); for (let k=0;k<3;k++) { lst[k]=Math.round(ak[k]*awt+bk[k]*(1-awt)); } cl[(i*nc+j)]=rgbthx(lst); } } cl[0]=fcz[0]; cl[cl.length-1]=fcz[fcz.length-1]; let kl=new Array(nc); for (let j=0;j<nc;j++) { kl[j]=cl[j*(fcz.length-1)];} kl[0]=cl[0]; kl[kl.length-1]=cl[cl.length-1]; return kl; } function HSM (Mtx,cols,rows,Nits) { for (let k=0;k<Nits;k++) { for (let j=0;j<rows;j++) { for (let g=1;g<cols;g++) { Mtx[g][j]=Mtx[g-1][j]*.3 + Mtx[g][j]*.7; } for (let i=0;i<(cols-1);i++) { Mtx[i][j]=Mtx[i+1][j]*.3+Mtx[i][j]*.7; } } } return Mtx; } function VSM (Mtx,cols,rows,Nits) { for (let k=0;k<Nits;k++) { for (let i=0;i<cols;i++) { for (let g=1;g<rows;g++) { Mtx[i][g]=Mtx[i][g-1]*.3+Mtx[i][g]*.7; } for (let j=0;j<rows-1;j++) { Mtx[i][j]=Mtx[i][j+1]*.3+Mtx[i][j]*.7; } } } return Mtx; } function getCol(matrix,col) { let kll=[]; for (let i=0;i<matrix.length;i++) { kll.push(matrix[col][i]); } return kll; } let R,SQ; R = new Random(); function precalcs () { let SQB=[],KLR=[],STW=[],RTS=[],XV=[],YV=[]; let randC=R.rnd_int(1,100); let ftx=R.rnd_num(.4,.6), bdraw=R.rnd_int(60,90), klmt=R.rnd_int(7,20); let fcz=[],bgc=0,lsc=0,rs=0,spd=0,xr=0,yr=0,ncirc=0,nsq=0; if (randC===1) { // GHOST fcz=[rgbthx(color(240)),rgbthx(color(250)),rgbthx(color(255))]; bgc="#d50909",ccr="#000000",ftx=1,klmt=0,bdraw=1; } if (randC===2) { // SAV fcz=["#4555a3","#3351b3","#286d5b","#37ab6e","#fe723d","#fe723d","#c77e6d"]; bgc="#0587d3",ccr="#fffef4",ftx=R.rnd_num(.75,.85),bdraw=R.rnd_int(60,80); } if (randC===3) { // BLEACHED fcz=["#ffcfcf","#ffe0a8","#ffffb4","#8fa99b","#b0b0ec"]; bgc="#FFFFFF",ccr="#000000",ftx=R.rnd_num(.65,.85),bdraw=R.rnd_int(60,75); } if ((randC>3)&&(randC<=6)) { // WESTERN fcz=["#503D2E","#314c6a","#058789","#D54B1A","#E3A72F","#F0ECC9"]; bgc="#FFFFFF",ccr="#000000",ftx=R.rnd_num(.65,.8),bdraw=R.rnd_int(50,75); } if ((randC>6)&&(randC<=9)) { // FLORO fcz=["#4762ff","#4762ff","#ff3574","#ff5950","#f1b700","#aaff00","#00aaff","#6b3eff","#6b3eff"]; bgc="#c000e8",ccr="#000000",ftx=R.rnd_num(.75,.85),bdraw=R.rnd_int(60,80); } if ((randC>9)&&(randC<=12)) { // SANDSTONE fcz=["#595643","#4E6B66","#ED834E","#EBCC6E","#EBE1C5"]; bgc="#FFFEDF",ccr="#000000",ftx=R.rnd_num(.6,.9),bdraw=R.rnd_int(40,80); } if ((randC>12)&&(randC<=15)) { // TAN fcz=["#3E4147","#FFFEDF","#DFBA69","#5A2E2E","#2A2C31"]; bgc="#EFEECC",ccr="#000000",ftx=R.rnd_num(.6,.9),bdraw=R.rnd_int(40,80); } if ((randC>15)&&(randC<=18)) { // REDRUM fcz=["#ECD078","#D95B43","#C02942","#542437","#53777A"]; klmt=0; bgc="#AC2005",ccr="#000000",ftx=R.rnd_num(.65,.9),bdraw=R.rnd_int(60,80); } if ((randC>18)&&(randC<=22)) { // WAVES fcz=["#FFFEDF","#FFFEDF","#BCC499","#92A68A","#7B8F8A","#506266","#354336"]; bgc="#F5DD9D",ccr="#000000",ftx=R.rnd_num(.55,.75),bdraw=R.rnd_int(10,30); } if ((randC>22)&&(randC<=27)) { // BLUE fcz=["#44749D","#C6D4E1","#FFFFFF","#EBE7E0","#BDB8AD"];klmt = R.rnd_int(15,20); bgc="#314c6a",ccr="#000000",ftx=R.rnd_num(.25,.35),bdraw=R.rnd_int(60,90); } if ((randC>27)&&(randC<=31)) { // MALBEC fcz=["#C60052","#FF714B","#ACFFE9","#ACFFE9"];klmt = R.rnd_int(10,20); bgc="#540045",ccr="#280904",ftx=R.rnd_num(.75,.95),bdraw=R.rnd_int(50,70); } if ((randC>31)&&(randC<=50)) { // DESERT fcz=["#84B295","#ECCF8D","#BB8138","#AC2005","#2C1507"]; bgc="#2F4F4FFF",ccr="#000000",ftx=R.rnd_num(.6,.9),bdraw=R.rnd_int(40,80); } if ((randC>50)&&(randC<=62)) { // NIGHTSWIM fcz=["#F2B118","#9EB2DA","#797EA2","#7783B2","#525C76","#485773","#2C1507","#211709"]; bgc="#000000",ccr="#F2B118",ftx=R.rnd_num(.6,.7),bdraw=R.rnd_int(60,80); } if ((randC>62)&&(randC<=77)) { // HCD fcz=["#ecd891","#828751","#354336","#39579d","#82a2d5","#bccbe0"]; bgc="#F2B118",ccr="#000000",ftx=R.rnd_num(.65,.9),bdraw = R.rnd_int(40,70); } if ((randC>77)&&(randC<=84)) { // KIAWAH fcz=["#314c6a","#84aace","#888984","#e2e4e3","#96826a"], klmt=R.rnd_int(5,8); bgc="#344f6d",ccr="#fe833a",ftx=R.rnd_num(.55,.75),bdraw = R.rnd_int(30,60); } if ((randC>84)&&(randC<=90)) { // OG(OldGuitarist) fcz=["#2d4762","#357d8b","#276574","#bacfbc","#7d5a3e","#a98a53"],klmt=10; bgc="#1e374d",ccr="#b2beba",ftx=R.rnd_num(.7,.85),bdraw=R.rnd_int(35,60); } if ((randC>90)&&(randC<=95)) { // ARROWBEAR fcz=["#2c1a0f","#50311c","#885e36","#b9976c","#d5c0a3"], klmt=0; bgc="#f9f6ed",ccr="#251710",ftx=R.rnd_num(.8,.9),bdraw=R.rnd_int(25,50); } if ((randC>95)&&(randC<=100)) { // FIREFALL fcz=["#5e1f1f","#8d130e","#c60d1b","#d78a30","#f4d984"],klmt=R.rnd_int(8,12); bgc="#ffb900",ccr="#000000",ftx=R.rnd_num(.65,.72),bdraw=R.rnd_int(60,75); } let macro=R.rnd_int(0,1),nLn=R.rnd_int(15,16); if (macro===1) { nLn=R.rnd_int(20,25); } let cols=nLn,rows=nLn,xsm=2+(nLn-11); if (macro===1) { xsm=2+(nLn-16) } let insc=R.rnd_num(1,10),unsc=R.rnd_num(1,4); let fcs=zspline(fcz,100,macro),fc=fcs[1]; let szdet = Math.min(window.innerWidth,window.innerHeight*2); let wd=szdet, ht=szdet*.5, M=wd/4000; let crxx=wd*R.rnd_num(.25,.75),cryy=ht*R.rnd_num(.2,.8); let crr = ht*R.rnd_num(.65,.95); let xsp=1.5*(wd/cols),ysp=1.25*(ht/rows); let xgrid=mk2DArr(cols,rows),ygrid=mk2DArr(cols,rows); let unz,inz; for (let j=0;j<rows;j++) { unz = R.rnd_num((-1*unsc),unsc)*xsp; for (let i=0;i<cols;i++) { inz = R.rnd_num((-1*insc),insc)*xsp; xgrid[i][j]=(i-1.5)*xsp+unz+inz; ygrid[i][j]=(j-.75)*ysp+R.rnd_num(-0.1,0.1)*ysp; } } xgrid=HSM(xgrid,cols,rows,xsm); xgrid=VSM(xgrid,cols,rows,xsm); let iws=R.randVNoRep(cols); let hk=0,ik=0,nk=0,x1=0,x2=0,y1=0,y2=0,sklr=0; for (let iw=0; iw<iws.length; iw++) { let ih=iws[iw]-1; let xvc=getCol(xgrid,ih),yvc=getCol(ygrid,ih); let scf=R.rnd_num(.85,1.10); nk=R.rnd_int(0,2); if (macro===1) { nk=R.rnd_int(4,6); } let kspc = R.rnd_num(20,150)*M*((ih+1)/(iws.length+1)); if (R.rnd_int(1,10)>4) { let xvt=SplineR(xvc,20),yvt=SplineR(yvc,20); if (macro===1) { xvt=SplineR(xvc,60),yvt=SplineR(yvc,60); } for (let kk=0;kk<ih+nk;kk++) { let sww=M*R.rnd_num(1.5,5); sklr = R.rnd_int(1,80); sklr=rgbthx([sklr,sklr,sklr,255]); if ((klmt!==0)&&(R.rnd_int(1,klmt)===1)) { sklr = '#ffed8b'; } for (let j=1; j<yvt.length; j++) { lsc=1; let rkk=kk*kspc; x1=xvt[j]+rkk;x2=xvt[j-1]+rkk;y1=yvt[j];y2=yvt[j-1]; if (((x1>0)&&(x1<wd))||((x2>0)&&(x2<wd))) { if (((y1>0)&&(y1<ht))||((y2>0)&&(y2<ht))) { SQB[hk] = new p5.Vector(lsc,0); XV[hk] = new p5.Vector(x1,x2); YV[hk] = new p5.Vector(y1,y2); KLR[hk] = new p5.Vector(sklr,sklr); STW[hk] = new p5.Vector(sww); RTS[hk] = new p5.Vector(0,0); hk+=1; } } } } } nk=R.rnd_int(2,6); let nspln=R.rnd_int(rows,20),pk=nLn*0.4; if (macro===1) { nspln=R.rnd_int(rows,24); pk=nLn*0.8; } let xvs=SplineR(xvc,nspln); let yvs=SplineR(yvc,nspln); let rws=R.randVNoRep(yvs.length-1); kspc=R.rnd_num(-200,200)*M; let jj,xq,yq,mm,rxx,ryy,rr; let clim=30; if (macro===1) { clim=60; } let sqlim=700; if (macro===1) { sqlim=2750; } let xlw=-.05*wd,xup=wd*1.05,ylw=-.05*ht,yup=ht*1.05; for (let hh=0;hh<yvs.length-1;hh++) { let jj=rws[hh]; x1=xvs[jj],x2=xvs[jj-1],y1=yvs[jj],y2=yvs[jj-1]; let dst=dist(x1,y1,x2,y2); for (let kk=0;kk<nk;kk++) { let rtst=R.rnd_int(1,100); let spwt=(nspln/R.rnd_int(80,100)); let rkk=kk*spwt*dst*2; let lny=R.rnd_num(1.4,1.9); let sww=M*R.rnd_num(1.85,2.25)*lny; let tex=round(ftx*R.rnd_int(230,254))+1; let plthrsh=4; if (macro===1) { plthrsh=0; } if ((rtst >= 4)&&(R.rnd_int(1,10)>plthrsh)&&(nsq<sqlim)) { lsc=2; ik=Math.round(R.rnd_num((-.9*pk),(.9*pk))+99*(ih/cols)); while (ik<1||ik>99) { ik=Math.round(R.rnd_num((-.9*pk),(.9*pk))+99*(ih/cols)); } ryy = R.rnd_num(.90,1.75)*dst*scf; rxx = spwt*ryy*R.rnd_num(.5,.75); xq=rkk+(x1+x2)*.5+R.rnd_num(0,.2*dst); yq=(y1+y2)*.5+R.rnd_num(0,.2*dst); mm=atan2((x2-x1),(y1-y2)); if (R.rnd_int(1,100)<=bdraw) {fc=R.rnd_int(1,40);} else if (randC===1) {fc=R.rnd_int(225,255);} else {fc=fcs[ik];} sklr=R.rnd_int(1,50); sklr=rgbthx([sklr,sklr,sklr,255]); if ((klmt!==0)&&(R.rnd_int(1,klmt)===1)) { sklr='#ffed8b'; } let rsc=R.rnd_num(1.7,2.4); if (macro===1) { rsc=rsc*.7; } if (((xq>xlw)&&(xq<xup))&&((yq>ylw)&&(yq<yup))) { nsq+=1; SQB[hk] = new p5.Vector(lsc,tex); XV[hk] = new p5.Vector(xq,rxx); YV[hk] = new p5.Vector(yq,ryy); KLR[hk] = new p5.Vector(sklr,fc); STW[hk] = new p5.Vector(sww); RTS[hk] = new p5.Vector(mm,rsc); hk+=1; } } else if ((rtst < 4)&&(ncirc<clim)) { lsc=3; ncirc+=1; let gs=R.rnd_num(140,190); rr=M*(Math.pow(gs,R.rnd_num(1.2,1.35)))*scf; xq=(x1+x2+rkk)*.5+R.rnd_num(0,.2*dst); yq=(y1+y2)*.5+R.rnd_num(0,.2*dst); let ncc = round(rr/(45*M)) for (let jo=0;jo<ncc;jo++) { let plthrsh=4; if (macro===1) { plthrsh=1; } if (R.rnd_int(1,10)>plthrsh) { rs = rr*(1-(jo/(ncc+2))); if (macro===1) { rs = rs*.8; } xr=R.rnd_num(-.026,.026)*rs; yr=R.rnd_num(-.026,.026)*rs; spd = R.rnd_int(-2,2); ik=Math.round(R.rnd_num((-.75*pk),(.75*pk))+99*(ih/cols)); while (ik<1||ik>99) { ik=Math.round(R.rnd_num((-.75*pk),(.75*pk))+99*(ih/cols)); } if (randC===1) { fc=R.rnd_int(155,255); } else if (R.rnd_int(1,100)<=bdraw) { fc=R.rnd_int(1,40); } else {fc = fcs[ik];} sklr=R.rnd_int(1,60); sklr=rgbthx([sklr,sklr,sklr,255]); let lny=R.rnd_num(1.4,1.9); let sww=M*R.rnd_num(1.85,2.25)*lny; if ((klmt!==0)&&(R.rnd_int(1,klmt)===1)) { sklr='#ffed8b'; } if (((xq>xlw)&&(xq<xup))&&((yq>ylw)&&(yq<yup))) { SQB[hk] = new p5.Vector(lsc,tex); XV[hk] = new p5.Vector(xq,xr); YV[hk] = new p5.Vector(yq,yr); KLR[hk] = new p5.Vector(sklr,fc); STW[hk] = new p5.Vector(sww); RTS[hk] = new p5.Vector(spd,rs); hk+=1; } } } } } } } SQ={SQB,XV,YV,KLR,STW,RTS,hk,bgc,crxx,cryy,crr,ccr,wd,ht,M,macro}; return(SQ) } function orbb (ccr,crxx,cryy,crr,alph) { let clr=color(ccr); clr.setAlpha(alph) push(); fill(clr); noStroke(); circle(crxx,cryy,crr); pop(); if (crxx+crr>SQ.wd) { push(); fill(clr); noStroke(); circle(crxx-SQ.wd,cryy,crr); pop(); } if (crxx-crr<0) { push(); fill(clr); noStroke(); circle(crxx+SQ.wd,cryy,crr); pop(); } } function setup() { rectMode(CENTER); angleMode(RADIANS); precalcs(); if (SQ.macro===1) { noLoop() } if (SQ.macro===0) { frameRate(30) } createCanvas(SQ.wd,SQ.ht); } let ngL=0,ngLV=0,ngLA=0; function draw() { ngLA = map(mouseX, 0, width, -.02, .02); ngLV = constrain(ngLV, -.04, .04); background(SQ.bgc); SQ.crxx+=ngLV*SQ.M*150; if (SQ.crxx>(SQ.wd+SQ.crr)) { SQ.crxx = SQ.crr; } if (SQ.crxx<-1*SQ.crr) { SQ.crxx = SQ.wd-SQ.crr; } orbb(ccr,SQ.crxx,SQ.cryy,SQ.crr,255); for (let NF=5, pp=1;pp<(1+NF);pp++) { let blr=(1+(Math.abs(ngLV*.6)/pp))*SQ.crr,alf=180/NF; orbb(ccr,SQ.crxx,SQ.cryy,blr,alf); } for (let j=0;j<SQ.hk;j++) { push(); stroke(SQ.KLR[j].x); strokeWeight(SQ.STW[j].x); if (SQ.SQB[j].x>1) { clr=color(SQ.KLR[j].y); clr.setAlpha(SQ.SQB[j].y); fill(clr); translate(SQ.XV[j].x,SQ.YV[j].x); } if (SQ.SQB[j].x===2) { rotate(SQ.RTS[j].x); scale(SQ.RTS[j].y); rect(0,0,SQ.XV[j].y,SQ.YV[j].y); } else if (SQ.SQB[j].x===3) { rotate(SQ.RTS[j].x*ngL); circle(SQ.XV[j].y,SQ.YV[j].y,SQ.RTS[j].y); } else if (SQ.SQB[j].x===1) { line(SQ.XV[j].x,SQ.YV[j].x,SQ.XV[j].y,SQ.YV[j].y); } pop(); } push();noFill();stroke(0);strokeWeight(20*SQ.M);rect(0.5*SQ.wd,0.5*SQ.ht,SQ.wd,SQ.ht); pop(); ngLV += ngLA; ngL += ngLV; ngL = (ngL % (2*PI)); }
“Worlds” consists of bending, wave-like structures that lean and arc across a landscape, with a large disc hovering in the background. The composition includes meandering line clusters, rectangles, and slightly off-center, nested concentric circles of varying sizes, which sometimes cluster chaotically or align into neatly spaced groups. This piece variably features a more detailed "macro" view of the scene, or an interactive animation with rotating circles and moving disc that accelerate based on mouse position. Highly variable color gradients and contrast manipulation with varying opacity, shadows, and highlights produce changing scenes that evoke different memories. The winding and sometimes tangled scenes produced by this system convey imbalance, incompleteness, and disorder. We can each view the same scene with open eyes, but see vastly different worlds.