0x5400…f514

All memos sent from and to 0x5400…f514.

Informed by the experience of separating after a long marriage, (Dis)entanglement explores the endless ways that relationships intertwine. Each unique generative image represents one of many possible moments across the arc of a relationship, from a couple eagerly pulling taut their new connection, to a union defined solely by knots hardened over time. Whether connecting threads are carefully untied, crumbling from neglect, or snapping from tension, many couples can still safely go separate ways when needed. For some, there is no easy escape. Domestic violence, sexual abuse, financial hardship, and cultural norms can all keep someone bound to a partner against their will. To help those in need, 10% of artist proceeds from each sale will be donated to InterAct of Wake County, a private, nonprofit agency that provides safety, support, and awareness to victims and survivors of domestic violence and rape/sexual assault. InterAct is recognized as a tax-exempt, 501 (c)(3) charity by the U.S. Internal Revenue Service (EIN: 58-1320613).
Informed by the experience of separating after a long marriage, (Dis)entanglement explores the endless ways that relationships intertwine. Each unique generative image represents one of many possible moments across the arc of a relationship, from a couple eagerly pulling taut their new connection, to a union defined solely by knots hardened over time. Some seek further entanglement while some seek less, but each moment still contains its own unique beauty.
function J(e,x,C){push(),translate(e,x);let D,N,j,q,J,ee,oe=[],re=[],te=!0,le=!0;switch(n){case 0:te=!1,D=0,N=0,j=0;break;case 1:D=U(.15,.25,3),N=U(1,5,3),j=$(.02,.06),c=X(-1,1,[600,200,200]);break;case 2:D=$(.6,.8),N=10,j=.1;break;case 3:D=1,N=10,j=.16;break;case 4:D=1,N=5,j=.06}switch(i){case 0:le=!1,q=0,J=0,ee=0;break;case 1:q=U(.15,.25,3),J=U(1,5,3),ee=$(.02,.06),h=X(-1,1,[6,2,2]);break;case 2:q=$(.6,.8),J=10,ee=.1;break;case 3:q=1,J=10,ee=.16;break;case 4:q=1,J=5,ee=.06}oe=M?[...Q[o]]:[...T[o]],re=p?[...Q[r]]:[...T[r]],u&&oe.reverse(),k&&re.reverse();let ae,se=I*C,ne=Math.round(C/se),ie=Array.from(Array(ne).keys()),ce=.19;ae=f?map(E,0,1,.16,ce):map(E,0,1,.08,.11);let he=C*ae,ue=.65+$(0,1.25*m),ke=C*$(.2,.22)*.001,de=C*(.016*ae-.001),be=-de;u!=k&&(de*=-1),colorMode(HSB),R*=(Z()<.5?-1:1)*!H;let fe=_(-1,2)*!H,ge=B+!H*(Z()<.5?-1:1)*_(4,6)*10,Me=B+R,pe=B-R,Se=color(Me,z,L),xe=color(pe,z,L),He=color(ge+3*R,z,L),Ce=color(ge+!H*fe*_(0,3)*10,w+$(-10,10),v),Be=color(ge+!H*fe*_(0,3)*10,w+$(-10,10),v);colorMode(HSL),Ce=color(hue(Ce),saturation(Ce),W),Be=color(hue(Be),saturation(Be),W),colorMode(RGB);let we=Z()<.5?He:lerpColor(Se,xe,.5);colorMode(HSB);let ve=color(0,0,0,.2),We=color(0,0,0,.08);O(ie,m);let Re,ze,Le,me,Ee,Fe,Ge,Ie,ye,Ye,Ae,Ve,De=2*se,Te=0,Qe=0;switch(noFill(),a){case 0:K(0,0,C,C,Ce,Be,"Y",$(1,3));break;case 1:K(0,0,C,C,Be,Ce,"Y",$(1,3));break;case 2:Te=$(.2,.6),Ye=_(80,120);case 3:Te<.1&&(Te=.04,Ye=_(80,120)),K(0,0,C,C,Ce,Be,"Y",$(1,3));for(let e=0;e<Ye;e++){let e=$(.1,5),o=U(.01,Te,2);colorMode(HSB);let r=color(hue(we)+10*_(-10,10)*!H,.5*saturation(we),brightness(we),o),t=$(40*-se,40*se),l=C*$(.01,.3);strokeWeight(De*e),ye=De*$(-.25,4),Re=Z()<.5?$(0,C):_(0,2)*C,ze=Re%C==0?$(0,C/2):0,Le=Re+t,me=ze+l,Ee=Z()<.5?$(0,C):_(0,2)*C,Fe=Ee%C==0?$(C/2,C):C,Ge=Ee-t,Ie=Fe-l,strokeWeight(ye),stroke(r),bezier(Re,ze,Le,me,Ge,Ie,Ee,Fe)}break;case 4:Te=$(.4,.8);case 5:Te<.1&&(Te=.08),Ye=_(20,60),colorMode(HSL),Qe=_(-1,2),Ce=color(hue(Ce)+Qe*U(0,180,5)*!H,saturation(Ce),W),Be=color(hue(Be)+Qe*U(0,180,5)*!H,saturation(Be),W),colorMode(HSB),K(0,0,C,C,Be,Ce,"Y",$(1,3));for(let e=0;e<Ye;e++){let e=$(.1,20),o=U(.01,Te,2);colorMode(HSL);let r=color(hue(we)+5*_(-20,20)*!H,1*saturation(we),$(50,95),o);colorMode(HSB);let t=0,l=C*$(.01,.3);strokeWeight(De*e),ye=De*$(-.25,4),Re=Z()<.5?$(0,C):_(0,2)*C,ze=Re%C==0?$(0,C/2):0,Le=Re+t,me=ze+l,Ee=Z()<.5?$(0,C):_(0,2)*C,Fe=Ee%C==0?$(C/2,C):C,Ge=Ee-t,Ie=Fe-l,strokeWeight(ye),stroke(r),bezier(Re,ze,Le,me,Ge,Ie,Ee,Fe)}break;case 6:0==s||1==s||b&&!S?(Te=.05,Ye=_(50,200),Ae=.5):(Te=$(.15,.3),Ye=_(50,100),Ae=1),colorMode(HSL),Qe=_(-1,2),Ce=color(hue(Ce)+Qe*U(0,180,5)*!H,saturation(Ce)*Ae,v),Be=color(hue(Be)+Qe*U(0,180,5)*!H,saturation(Be)*Ae,v),colorMode(HSB),K(0,0,C,C,Be,Ce,"Y",$(1,3));for(let e=0;e<Ye;e++){Qe=2*_(0,2)-1;let e=U(0,Te,2);colorMode(HSL);let o=color(hue(we)+Qe*U(0,20,2.5)*8*!H,1*saturation(we),$(50,95),e);colorMode(HSB),noStroke();let r=.05*C*U(3,16,2);fill(o),ellipseMode(CENTER),circle(.5*C+Qe*U(0,.5*C,1),.55*C+Qe*U(0,.45*C,3),r)}}angleMode(DEGREES),d&&(translate(C,0),rotate(90));let Ue=U(0,8,1),Xe=_(0,12),Ne=g+1,Pe=Z()<.5,je=[];for(let e=0;e<l;e++)je.push($(-(ce-ae),ce-ae)*C*1.5);noFill();for(let e=0;e<Ne;e++)for(let o=e;o<ne;o+=Ne){let e,r,a,s,n,i,M,p,S,x,B,w,v;switch(curIndexLeft=Math.round(o/ne*oe.length),curIndexRight=Math.round(ie[o]/ne*oe.length),Pe?(r=ie[o]*se+.125*se,a=o*se+.625*se,e=he+oe[curIndexRight]*ke+de*ie[o],s=Math.round(C-he-re[curIndexLeft]*ke+be*o)):(r=o*se+.125*se,a=ie[o]*se+.625*se,e=he+oe[curIndexLeft]*ke+de*o,s=Math.round(C-he-re[curIndexRight]*ke+be*ie[o])),n=(s-e)*ue,i=color(Me,z,L),M=color(pe,z,L),B=$(.5*-G,G)*!H,w=$(-G,1.8*G)*!H,v=$(.5*-G,G)*!H,colorMode(HSB),i.setGreen(green(i)+B),i.setBlue(blue(i)+w),i.setRed(red(i)+v),M.setGreen(green(M)+B),M.setBlue(blue(M)+w),M.setRed(red(M)+v),t){case 0:x=lerpColor(Se,xe,.5),p=i,S=M;break;case 1:x=i,p=i,S=M;break;case 2:x=M,p=i,S=M;break;case 3:x=i,p=i,S=i;break;case 4:x=M,p=M,S=M;break;case 5:i=color(hue(i)+(Z()<.5?-1:1)*(U(3,18,1)*!H),saturation(i),brightness(i)),M=color(hue(M)+(Z()<.5?-1:1)*(U(3,18,1)*!H),saturation(M),brightness(M)),x=Z()<.5?i:M,p=i,S=M;break;case 6:i=color(hue(i)+(Z()<.5?-1:1)*(U(3,6,1)*!H),saturation(i)+_(-30,-40),brightness(i)),M=color(hue(M)+(Z()<.5?-1:1)*(U(3,6,1)*!H),$(20,50),brightness(M)),x=Z()<.5?i:M,p=i,S=M;break;case 7:i=color(hue(i),_(0,100)*!H,Ue+_(-Xe,Xe)),M=color(hue(M),_(0,100)*!H,Ue+_(-Xe,Xe)),x=i,p=i,S=M;break;case 8:i=color(hue(i),_(50,100)*!H,100+_(-Xe,Xe)),M=color(hue(M),_(50,100)*!H,100+_(-Xe,Xe)),colorMode(HSL),i=color(hue(i),saturation(i),100-_(0,Ue)),M=color(hue(M),saturation(M),100-_(0,Ue)),x=i,p=i,S=M,colorMode(HSB);break;default:x=lerpColor(i,M,.5),p=i,S=M}b||(i=color(hue(i)+(Z()<.5?-1:1)*_(3,7),saturation(i)+_(-30,-40)*!H,brightness(i)),M=color(hue(M)+(Z()<.5?-1:1)*_(3,7),$(20,50)*!H,brightness(M)),x=Z()<.5?color(hue(x)+$(-180*V,180*V),saturation(x)*!H,brightness(x)):Z()<.5?i:M);let W=.0015*C;colorMode(RGB),p=lerpColor(Ce,p,F),S=lerpColor(Ce,S,F),colorMode(HSB),Ve=x,stroke(x),strokeWeight(W),noFill();let I=Math.abs(ne/2-o)/(ne/2);if(f||I<E||!b)if(0==l){let o=s+1.5*W,t=e-1.5*W,l=a,i=r;stroke(We),strokeWeight(1.5*W),bezier(t,i+W,t+n,i+W,o-n,l+W,o,l+W),stroke(x),strokeWeight(W),bezier(t,i,t+n,i,o-n,l,o,l)}else{let o=_(1,l+1),t=Math.round(o*(ne/(l+1))),n=he+oe[t]*ke+de*t,i=Math.round(C-he-re[t]*ke+be*t),c=.1*(i-n)*ue*$(1-.2*m,1+.2*m),h=(n+i)/2+$(-c,c)*m*.3+je[o-1],u=C/(l+1)*o;stroke(We),strokeWeight(1.5*W),beginShape(),vertex(e-1.5*W,r+W),bezierVertex(h+c,r+W,h+c,u-c*(r/C/2)+W,h,u+W),bezierVertex(h-c,u+c*(r/C/2)+W,h-c,a+W,s,a+W),vertex(s+1.5*W,a+W),endShape(),stroke(x),strokeWeight(W),beginShape(),vertex(e-1.5*W,r),bezierVertex(h+c,r,h+c,u-c*(r/C/2),h,u),bezierVertex(h-c,u+c*(r/C/2),h-c,a,s,a),vertex(s+1.5*W,a),endShape()}if(stroke(x),b){noStroke(),fill(ve),triangle(e,r,e-.75*se,r,e-.75*se,r+.5*se),triangle(s,a,s+.75*se,a,s+.75*se,a+.5*se),fill(x),triangle(e,r,e-.75*se,r-.25*se,e-.75*se,r+.25*se),triangle(s,a,s+.75*se,a-.25*se,s+.75*se,a+.25*se)}else noStroke(),fill(ve),circle(e,r+.125*se,.375*se),circle(s,a+.125*se,.375*se),fill(x),circle(e,r,.375*se),circle(s,a,.375*se);if(b){fill(ve),noStroke(),rect(0,r-.25*se,e-.75*se,.75*se),noFill(),stroke(x),P(drawingContext,Math.round(e-13*se/16),r,0,r,x,p,se/2);let o=he+oe[0+u*(oe.length-1)]*ke+.15*C,l=C-he-re[0+k*(oe.length-1)]*ke-.15*C,n=r<C/2;if(g&&Z()<y&&(r<o&&te||r>l&&le)){let e,o,l,a,s,i,b,f,g,M,p=7==t?1:U(.4,1,1),S=color(hue(Ve)+$(-R,R)*!H,1*saturation(Ve),1*brightness(Ve),p),x=color(hue(ve),saturation(ve),brightness(ve),alpha(ve)*p),B=C*(A+A*$(-.4*Y,3*Y)),w=Math.round(r+se/4);n?(g=$(c*se*N,se*N),M=$(-se*N,c*se*N),e=w-.1*C,o=.02*-C,l=w+g-.1*C,a=D*C*.25-.001*C,b=w+M-j*C-.1*C,f=D*C*.75,s=w-j*C-.1*C,i=D*C+$(D*c*-.15*C,.15*D*C)):(g=$(-se*J,h*se*J),M=$(h*se*J,se*J),e=w+.1*C,o=.02*-C,l=w+g+.1*C,a=q*C*.25-.001*C,b=w+M+ee*C+.1*C,f=q*C*.75,s=w+ee*C+.1*C,i=q*C+$(q*h*-.15*C,.15*q*C)),strokeWeight(B),stroke(x),strokeCap(SQUARE),noFill(),(n&&u||!n&&k)&&applyMatrix(1,0,0,-1,0,C),bezier(e+se/16,o,l+se/16,a,b+se/16,f,s+se/16,i),stroke(S),bezier(e,o,l,a,b,f,s,i),(n&&u||!n&&k)&&(resetMatrix(),d&&(translate(C,0),rotate(90)))}fill(ve),noStroke(),rect(s+.75*se,a-.25*se,C,.75*se),noFill(),stroke(x),P(drawingContext,Math.round(s+13*se/16),a,C,a,x,p,se/2)}}pop()}function K(e,o,r,t,l,a,s,n){if(noFill(),strokeWeight(1.5),colorMode(RGB),"Y"==s)for(let s=o;s<=o+t;s++){var i=map(s,o,o+t,0,1),c=lerpColor(l,a,Math.pow(i,n));stroke(c),line(e,s,e+r,s)}else if("Xlr"==s)for(let s=e;s<=e+r;s++){var h=map(s,e,e+r,0,1),u=lerpColor(l,a,Math.pow(h,n));stroke(u),line(s,o,s,o+t)}else if("Xrl"==s)for(let s=e;s>=e-r;s--){var k=map(s,e,e-r,0,1);u=lerpColor(l,a,Math.pow(k,n));stroke(u),line(s,o,s,o+t)}colorMode(HSB)}function O(e,o){for(let r=0;r<e.length;r++){let t=r-Math.round(r*o),l=r+Math.round((e.length-1-r)*o);const a=Math.round($(t,l));[e[r],e[a]]=[e[a],e[r]]}}function Z(){return D^=D<<13,D^=D>>17,D^=D<<5,(D<0?1+~D:D)%1e3/1e3}function $(e,o){return void 0===o&&(o=e,e=0),Z()*(o-e)+e}function _(e,o){return void 0===o&&(o=e,e=0),Math.floor($(e,o))}
function q(){let e=[48,78,110,135,160,180,200,220,240,260,280,300,315,330,345,360,375,390,400,410,420,430,440,450,460,470,480,490,500,510,505,510,515,520,525,530,535,540,545,550,555,560,565,568,571,571,571,571,571,571,571,571,568,565,562,559,554,550,545,535,525,515,505,495,480,465,450,430,410,390,381,362,352,333,324,314,314,314,314,314,324,333,343,352,362,381,390,410,419,438,457,476,495,514,533,552,571,600,619,638,657,686,705,724,743,771,800,819,838,857,886,914,950,975,985,990,995,995,990,990,970,952,933,905,867,800,743,686,667,657,657,667,676,686,695,705,724,743,771,790,800,800,800,790,781,762,752,733,714,686,648,610,581,571,581,600,619,638,657,676,686,686,686,676,667,648,629,590,543,505,476,467,457,457,457,457,467,476,480,484,488,492,492,492,488,484,478,465,450,440,418,380,330,280,200,110];Q.push(e),Q.push([167,151,143,143,143,143,143,143,143,151,159,167,167,167,175,183,190,198,214,230,246,254,270,278,294,302,317,333,357,373,389,397,413,421,437,444,452,460,468,476,484,492,500,500,508,516,524,524,532,540,548,548,548,548,540,532,516,500,484,468,460,444,429,405,381,357,341,325,333,357,357,405,333,310,310,333,381,349,365,373,389,397,413,421,437,452,476,500,524,548,571,595,619,651,683,714,738,762,786,817,849,881,905,929,944,960,968,984,992,1e3,1e3,992,984,976,976,960,937,905,881,841,794,738,690,651,619,603,595,595,595,595,595,603,611,619,627,635,651,659,675,690,698,690,675,659,635,595,548,524,524,556,587,619,627,619,603,587,571,556,540,532,516,508,492,484,476,468,460,460,468,476,484,492,500,500,500,500,500,500,500,492,484,476,468,460,452,444,429,413,397,365,310,246,183,103,60,0]),Q.push([42,83,111,139,153,181,194,208,222,236,250,264,278,292,306,333,361,375,375,375,389,403,431,444,458,458,458,472,486,500,500,500,500,514,528,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,528,514,500,500,500,486,472,458,458,444,431,403,389,375,361,347,333,333,319,306,292,292,292,292,333,417,375,333,250,278,292,292,306,319,347,361,389,403,431,458,500,542,583,611,639,667,708,750,792,833,875,917,944,972,986,1e3,1e3,1e3,1e3,1e3,1e3,1e3,986,972,944,931,917,903,806,694,597,583,597,611,625,639,653,681,694,722,750,792,833,861,875,875,875,875,861,847,833,819,792,750,694,639,625,667,722,764,778,806,819,833,833,833,833,819,806,792,764,708,639,583,556,542,542,542,542,542,556,569,583,583,583,583,583,583,569,556,542,542,542,528,514,486,472,444,417,361,292,250,208]),Q.push([78,67,67,67,56,44,22,11,11,33,56,78,100,133,156,178,189,211,222,244,256,267,278,289,300,300,311,322,333,344,356,367,378,389,400,400,411,422,433,433,433,433,444,456,467,467,467,467,467,467,467,467,467,467,467,467,456,444,433,422,411,389,378,367,356,344,333,333,344,356,356,333,311,300,300,311,322,333,344,356,378,389,411,422,433,433,444,467,489,511,533,556,578,600,622,656,678,711,722,744,767,789,811,833,878,911,944,967,989,1e3,1e3,1e3,1e3,1e3,1e3,1e3,989,978,956,922,878,833,789,733,689,656,644,633,633,633,644,656,667,678,700,733,767,789,800,800,789,778,767,756,733,689,633,611,622,678,711,733,733,733,722,711,700,667,622,567,544,533,522,500,478,467,478,489,500,500,500,500,511,522,533,533,533,533,533,522,511,500,489,478,467,456,444,422,411,389,356,300,233,156,117,67]),T.push(e),T.push([322,310,310,322,333,345,345,345,356,368,379,391,402,414,425,437,448,460,471,483,494,506,517,517,529,540,552,552,552,552,563,575,586,586,598,609,621,621,621,632,644,655,655,655,655,655,655,655,655,655,655,655,655,644,632,621,609,586,552,517,494,483,471,460,437,414,391,368,379,391,402,379,356,356,379,391,402,402,425,437,460,471,494,517,552,586,621,655,690,713,736,747,770,782,793,805,816,839,851,874,885,908,920,943,954,966,977,989,1e3,1e3,1e3,1e3,1e3,1e3,1e3,989,977,966,954,931,897,828,759,701,678,667,655,655,655,655,655,667,678,690,701,713,736,747,770,782,793,793,793,793,770,724,667,632,632,667,713,736,736,724,724,713,690,667,644,632,609,598,575,563,540,529,529,540,552,552,563,575,598,609,621,621,621,609,598,586,586,575,563,552,540,529,506,494,471,448,391,310,218,115,69,0]),T.push([120,140,165,195,220,240,270,295,330,350,370,390,410,430,445,460,475,490,500,510,520,530,540,550,560,570,575,580,585,590,595,600,605,607,610,613,615,617,619,621,623,625,625,625,625,625,625,623,621,619,616,613,610,607,603,599,595,590,585,575,565,555,545,535,520,510,485,455,420,390,370,350,330,320,310,305,300,300,300,300,305,310,320,330,350,370,390,410,430,450,470,490,510,530,560,590,620,644,689,711,756,778,822,844,885,910,925,945,955,965,980,990,990,990,990,980,970,956,911,889,844,711,556,470,450,450,460,480,490,520,556,578,630,670,720,755,770,776,778,776,774,772,750,735,710,676,640,600,560,500,540,610,660,690,710,720,733,733,733,733,725,700,680,660,578,500,470,440,430,440,450,470,490,515,520,525,530,532,535,535,532,530,520,500,490,480,470,455,440,420,395,360,320,270,180,0]),T.push([127,143,159,175,206,222,230,240,254,270,302,315,330,340,349,370,388,405,418,430,440,445,455,460,464,468,472,476,480,484,488,492,500,508,515,520,525,528,531,534,537,537,537,537,537,537,537,534,531,528,525,520,515,508,492,492,492,492,476,460,444,429,413,397,381,381,365,349,333,333,317,305,302,302,305,305,325,333,349,365,381,397,413,429,444,460,476,492,508,540,556,587,603,635,651,683,698,730,746,778,794,825,841,873,889,921,937,968,984,1e3,1e3,1e3,1e3,1e3,1e3,984,968,937,905,825,746,667,619,571,540,524,524,524,540,556,587,603,635,651,683,714,746,762,762,762,762,762,746,730,698,667,619,587,620,660,690,705,714,714,698,683,667,651,603,540,492,476,476,460,460,444,460,460,476,476,485,495,505,515,522,522,522,522,522,522,520,515,512,508,500,485,480,468,455,430,410,380,350,280,180,0])}
let e,o,r,t,l,a,s,n,i,c,h,u,k,d,b,f,g,M,p,S,x,H,C,B,w,v,W,R,z,L,m,E,F,G,I,y,Y,A,V,D=parseInt(tokenData.hash.slice(0,16),16),T=[],Q=[];function U(e,o,r){if(e==o)return e;return 0==o&&(o=-1e-8),($(e,o)/o)**r*o}function X(e,o,r){let t;for(t=0;t<r.length;t++)r[t]+=r[t-1]||0;let l=Z()*r[r.length-1];for(t=0;t<r.length&&!(r[t]>l);t++);return e+t}function N(){if(o=_(0,4),r=_(0,4),t=X(0,8,[20,8,8,5,5,20,28,3,3]),a=X(0,6,[5,5,0,35,0,35,10]),s=X(0,4,[1,3,4,1,1]),c=X(0,1,[6,4]),h=X(0,1,[6,4]),l=X(0,3,[75,12,8,5]),b=X(0,1,[15,85]),f=X(0,1,[4,6]),S=X(0,1,[92,8]),u=S?0:X(0,1,[9,1]),k=S?0:X(0,1,[9,1]),x=u!=k,d=x,g=S||7==t||8==t?0:X(0,1,[1,9]),M=X(0,1,[51,49]),p=Z()<.1?M:!M,n=M?X(0,4,2==o?[3,0,3,2,2]:[0,0,2,3,5]):2==o?0:X(0,4,[8,0,2,0,0]),i=p?X(0,4,2==r?[3,0,3,2,2]:[0,0,2,3,5]):2==r?0:X(0,4,[8,0,2,0,0]),g||(n=0,i=0),hairDyed=(n>0||i>0)&&X(0,1,[90,10]),C=(7==t||8==t)&&Z()<.2,H=X(0,1,[95,5])||C,B=(2*(Z()<.5)-1)*U(0,180,1.25)-45,B+=B<0?360:0,R=U(0,30,2),z=C?0:U(90,100,1),L=U(90,100,1),m=U(0,1,1),E=U(0,1,1),F=f?U(.4,1,1):1,G=6*U(1,20,2),I=S?U(.05,.08,1.5):U(.01,.025,1),y=U(1,1,1),Y=U(.5,.9,1),A=U(.016,.018,1),V=U(0,1,3),3==l&&(l=f?U(3,6,2):U(3,20,1)),b||(s=X(0,4,[1,3,4,1,1]),a=X(0,6,[5,5,10,5,30,20,15])),S&&(s=X(0,4,[1,3,4,1,1]),a=X(0,6,[1,1,1,1,1,1,4])),!b&&S&&(s=X(0,4,[2,2,3,1,1]),a=X(0,6,[5,5,25,5,30,5,25])),2!=a&&4!=a||(s=X(0,4,[0,0,6,2,2])),6==a&&(s=X(0,4,[2,9999,2,2,2])),3==a&&(s=X(0,4,[50,40,10,0,0])),6==t&&(Z()<.8?(s=3,a=X(0,6,[0,4,0,0,0,3,3])):(s=4,a=X(0,6,[0,0,0,5,0,5,0])),b||(s=X(0,4,[15,35,20,30,0]),a=X(0,6,[0,0,0,3,0,4,3]))),7==t&&b&&(Z()<.5?(s=X(0,4,[0,0,0,6,4]),a=X(0,6,[0,0,15,0,40,0,45])):(s=X(0,4,[0,5,5,3,1]),a=X(0,6,[0,0,0,3,0,2,5]))),8==t)switch(_(0,3)){case 0:s=0,a=X(0,6,[5,5,20,0,0,0,70]);break;case 1:s=1,a=X(0,6,[5,5,0,0,0,50,40]);break;case 2:s=2,a=X(0,6,[5,5,90,0,0,0,0])}switch(s){case 0:v=U(5,20,1),w=U(50,100,1),W=U(2,15,1.5);break;case 1:v=U(15,30,1),w=U(50,90,1),W=U(15,25,1);break;case 2:v=U(70,90,1),w=U(100,100,1),W=U(75,85,1);break;case 3:v=U(95,99,1),w=U(80,100,1),W=U(90,90,1);break;case 4:v=U(80,90,1),w=U(70,90,1),W=U(80,90,1);break;default:v=U(0,4,1),w=U(50,100,1),W=U(0,4,1)}C&&(w=0)}function P(e,o,r,t,l,a,s,n){const i=e.createLinearGradient(o,r,t,l);i.addColorStop(0,a),i.addColorStop(1,s),e.strokeStyle=i,e.lineWidth=n,e.lineCap="round",e.beginPath(),e.moveTo(o,r),e.lineTo(t,l),e.stroke()}function setup(){N(),strokeCap(SQUARE),e=Math.min(windowWidth,windowHeight),createCanvas(e,e),q(),J(0,0,e)}
Tied together in place, or reeled in from afar. Orderly and intentional, or messy and haphazard. Bound with laces or swaddled in the yarn of a knit blanket. Informed by the experience of separating after a long marriage, (Dis)entanglement explores the endless ways that relationships intertwine. Each unique generative image represents one of many possible moments across the arc of a relationship, from a couple eagerly pulling taut their new connection, to a union defined solely by knots hardened over time. Some seek further entanglement while some seek less, but each moment still contains its own unique beauty.