0x0f13316b…1dc1sent to0x9f79e46a…7794·#17,639,644·view on Etherscan
class Tile{constructor(e,t,i,s,r,a){this.x=e,this.y=t,this.w=i,this.h=s,this.scol=r,this.sweight=a}draw(e,t){e.push(),e.stroke(this.scol),e.strokeWeight(this.sweight);let i=g.features.Swell,s=t,r,a,n;switch(g.features.Extension){case"Complementary":switch(r=color((hue(t)+180)%360,saturation(t),brightness(t)),g.features.Filter){case"N":noise(this.x,this.y)>.5&&(s=r);break;case"ME":int(hue(t))%2==1&&(s=r);break;case"MU":int(hue(t))%3==1&&(s=r);break;case"RE":int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/2&&(s=r);break;case"RU":int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/7*5&&(s=r)}break;case"Split Complementary":switch(r=color((hue(t)+180-45)%360,saturation(t),brightness(t)),a=color((hue(t)+180+45)%360,saturation(t),brightness(t)),g.features.Filter){case"N":.33>noise(this.x,this.y)&&(s=r),noise(this.x,this.y)>.67&&(s=a);break;case"ME":int(hue(t))%3==1&&(s=r),int(hue(t))%3==2&&(s=a);break;case"MU":int(hue(t))%3==1&&(s=r),int(hue(t))%5==1&&(s=a);break;case"RE":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/3*1&&(s=r),int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/3*2&&(s=a);break;case"RU":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/7*1&&(s=r),int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/5*4&&(s=a)}break;case"Triad":switch(r=color((hue(t)-120)%360,saturation(t),brightness(t)),a=color((hue(t)+120)%360,saturation(t),brightness(t)),g.features.Filter){case"N":.33>noise(this.x,this.y)&&(s=r),noise(this.x,this.y)>.67&&(s=a);break;case"ME":int(hue(t))%3==1&&(s=r),int(hue(t))%3==2&&(s=a);break;case"MU":int(hue(t))%3==1&&(s=r),int(hue(t))%5==1&&(s=a);break;case"RE":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/3*1&&(s=r),int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/3*2&&(s=a);break;case"RU":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/7*1&&(s=r),int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/5*4&&(s=a)}break;case"Square":switch(r=color((hue(t)-90)%360,saturation(t),brightness(t)),a=color((hue(t)+90)%360,saturation(t),brightness(t)),n=color((hue(t)+180)%360,saturation(t),brightness(t)),g.features.Filter){case"N":.25>noise(this.x,this.y)?s=r:noise(this.x,this.y)>.5?s=a:.75>noise(this.x,this.y)&&(s=n);break;case"ME":int(hue(t))%4==1&&(s=r),int(hue(t))%4==2&&(s=a),int(hue(t))%4==3&&(s=n);break;case"MU":int(hue(t))%7==1&&(s=r),int(hue(t))%9==1&&(s=a),int(hue(t))%11==1&&(s=n);break;case"RE":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/4*1?s=r:int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/4*2?s=a:int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/4*3&&(s=n);break;case"RU":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/19*5?s=r:int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/19*9?s=a:int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/19*11&&(s=n)}}e.fill(s);let l=this.x+this.w/2,u=this.y+this.h/2;if(e.translate(l,u),e.rotate(noise(this.x*i,this.y*i)*g.features.Swirl),noise(this.x*i,this.y*i)>g.features.scalingthreshold){let o=noise((this.y-this.x)*this.x*2*i,(this.x+this.y)/this.y*2*i);o=map(o,0,1,.75,2),e.scale(o)}"Rectangle"==g.features.Atom?e.rect(0,0,this.w,this.h):"Ellipse"==g.features.Atom?e.ellipse(0,0,this.w,this.h):"Tripoint"==g.features.Atom?star(e,0,0,.3*Math.min(this.w,this.h),1.3*Math.min(this.w,this.h),3):"Compass"==g.features.Atom&&star(e,0,0,.3*Math.min(this.w,this.h),1.15*Math.min(this.w,this.h),4),e.pop()}}function generateTilesAnarchia(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=[];for(let $=0;$<l;$++)for(let c=0;c<n;c++)h.push(new Tile(c*i+u,$*s+o,i,s,r,a));for(let f=h.length-1;f>0;f--){let p=g.R.random_int(0,f+1);[h[f],h[p]]=[h[p],h[f]]}return h}function generateTilesExspiralis(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2;n%2==0&&(u+=i/2),l%2==0&&(o+=s/2);let h=[],$=Array.from({length:l},()=>Array(n).fill(!1)),c=Math.floor((e/2-u)/i),f=Math.floor((t/2-o)/s),p=[0,-1,0,1],_=[1,0,-1,0],m=0;for(let d=1;d<=n*l;d++)for(let x=0;x<2;x++){for(let w=0;w<d;w++)c>=0&&c<n&&f>=0&&f<l&&!$[f][c]&&($[f][c]=!0,h.push(new Tile(c*i+u,f*s+o,i,s,r,a))),c+=p[m],f+=_[m];m=(m+1)%4}return h}function generateTilesBoustrophedon(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=[];for(let $=0;$<l;$++)for(let c=0;c<n;c++){let f=$%2==0?n-1-c:c;h.push(new Tile(f*i+u,y*s+o,i,s,r,a))}return h}function generateTilesDiagonios(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=[];for(let p=0;p<=l+n-2;p++)for(let _=p;_>=0;_--){let m=p-_;m<n&&_<l&&f.push(h[_][m])}return f}function generateTilesFluctus(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=[],p=l/2,_=2*Math.PI/n;for(let m=0;m<n;m++){let d=Math.round(p*Math.sin(_*m)+p);for(let x=0;x<l;x++){let w=(x+d)%l;f.push(h[w][m])}}return f}function generateTilesAdamas(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=Math.floor(n/2),p=Math.floor(l/2),_=[];for(let m=0;m<l;m++)for(let d=0;d<n;d++){let x=Math.abs(d-f)+Math.abs(m-p);void 0===_[x]&&(_[x]=[]),_[x].push(h[m][d])}return _.flat()}function generateTilesInspiralis(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=[],p=[[1,0],[0,1],[-1,0],[0,-1]],_=0,m=0,d=0;for(let x=0;x<n*l;x++){f.push(h[d][m]),h[d][m]=null;let w=m+p[_][0],v=d+p[_][1];(w<0||w>=n||v<0||v>=l||null==h[v][w])&&(w=m+p[_=(_+1)%4][0],v=d+p[_][1]),m=w,d=v}return f}function generateTilesSinister(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=[];for(let $=n-1;$>=0;$--)for(let c=0;c<l;c++)h.push(new Tile($*i+u,c*s+o,i,s,r,a));return h}function generateTilesOccultum(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=[],p=Array.from({length:l},()=>Array(n).fill(!1)),_=[0,1,0,-1],m=[-1,0,1,0],d=g.R.random_int(0,n-1),x=[[g.R.random_int(0,l-1),d]];for(;x.length>0;){let[w,v]=x.shift();f.push(h[w][v]),p[w][v]=!0;let b=[];for(let S=0;S<4;S++){let T=v+_[S],k=w+m[S];T>=0&&T<n&&k>=0&&k<l&&!p[k][T]&&b.push([k,T])}if(b.length>0&&f.length%29!=0){let C=g.R.random_choice(b);x.push(C),p[C[0]][C[1]]=!0}else if(0===x.length){let I=[];for(let N=0;N<l;N++)for(let A=0;A<n;A++)p[N][A]||I.push([N,A]);if(I.length>0){let[D,M]=g.R.random_choice(I);x.push([D,M]),p[D][M]=!0}}}return f}function setup(){colorMode(HSB),frameRate((g=GetGlobals()).fps);let e=YMDfromDateString(g.features.Inception);g.canvas.rectMode(CENTER),g.canvas.ellipseMode(CENTER),createCanvas(window.innerWidth,window.innerHeight),windowResized();let t=getNextNumberAndRemainingDigits(g.features.Delta,getTotalSecondsFromInception(e[0],e[1],e[2],12,0,0)*g.fps*g.effectivetempo*6+1);g.digits.currentNumber=str(t[0]),g.digits.digits=t[1].split(""),g.digits.next(),g.showNumber=g.digits.currentNumber;noiseSeed(g.R.random_int(0,1e8))}function draw(){g.tick++,g.textUpdateTick++;for(let e=0;e<g.effectivetempo;e++){if(g.tilesIdx>=g.tilesIdxMax?g.tilesIdx=0:g.tilesIdx++,"anarchia"==g.features.Order){let t=g.tilesIdx,i=g.R.random_int(g.tilesIdx,g.tilesIdxMax),s=g.tiles[t];g.tiles[t]=g.tiles[i],g.tiles[i]=s}let r=map(g.digits.next(),0,99,g.features.hue_min,g.features.hue_max),a=map(g.digits.next(),0,99,g.features.sat_min,g.features.sat_max),n=map(g.digits.next(),0,99,g.features.bri_min,g.features.bri_max);AddLetterToDecodedText(HSB2Letter(r,a,n)),AddPixelToPreviewCanvas(HSB2Pixel(r,a,n)),g.tiles[g.tilesIdx].draw(g.canvas,color(r,a,n))}g.output.image(g.canvas,50*g.scale,50*g.scale),g.output.push(),g.output.noStroke(0);let l=color(0,0,0);l.setAlpha(1),g.output.fill(l),g.output.rect(0,0,50*g.scale,g.height),g.output.rect(g.width-50*g.scale,0,g.width,g.height),g.output.rect(0,0,g.width,50*g.scale),g.output.rect(0,g.height-250*g.scale,g.width,g.height),g.output.fill(color(255)),g.output.textFont("Georgia"),g.output.textAlign("center"),g.output.textSize(72*g.scale),0==g.showNumber&&(g.digits.currentNumber.length>30?g.showNumber=NumberStringtoScientificNotation(g.digits.currentNumber):g.showNumber=g.digits.currentNumber),g.tick%15==0&&(g.outputText=GetText(161),g.digits.currentNumber.length>33?g.showNumber=NumberStringtoScientificNotation(g.digits.currentNumber):g.showNumber=g.digits.currentNumber,UpdatePreviewCanvas()),(20==g.tick||g.tick>20&&g.textUpdateTick*g.repeatMax>g.previewCanvas.width/4*g.previewCanvas.height/4)&&(g.textUpdateTick=0),g.width/g.height>1.45&&(g.output.push(),g.output.noStroke(0),g.output.fill(color(255)),g.output.textFont("Courier"),g.output.textSize(18*g.scale),g.output.text(g.outputText,50*g.scale,g.height-200*g.scale,250*g.scale,170*g.scale),g.output.pop(),g.output.image(g.previewCanvas,g.width-50*g.scale-g.previewCanvas.width-5*g.scale,g.height-200*g.scale)),g.output.push(),g.output.stroke(0,0,0),g.output.strokeWeight(10*g.scale),g.output.text("THIS ART IS",g.width/2-175*g.scale,g.height-135*g.scale),g.output.noStroke(),g.output.pop(),g.output.push(),g.output.stroke(0,0,0),g.output.strokeWeight(8*g.scale),g.output.textStyle("italic"),g.output.textSize(22*g.scale),g.output.text("Decoded from concatenated digits near "+g.showNumber+",\nhaving started from zero by increments of "+g.features.Delta+" on "+g.features.Inception+".",g.width/2,g.height-85*g.scale),g.output.pop(),g.output.fill(color(0,0,0)),g.output.textFont("Georgia"),g.output.textAlign("center"),g.output.textSize(72*g.scale),g.output.stroke(color(0,0,0)),g.output.strokeWeight(10*g.scale),g.output.text("ILLEGAL!",g.width/2+217*g.scale,g.height-135*g.scale),g.output.text("ILLEGAL!",g.width/2+219*g.scale,g.height-135*g.scale),g.output.text("ILLEGAL!",g.width/2+218*g.scale,g.height-134*g.scale),g.output.text("ILLEGAL!",g.width/2+218*g.scale,g.height-136*g.scale),g.output.fill(color(0,100,100)),g.output.noStroke(),g.output.text("ILLEGAL!",g.width/2+217*g.scale,g.height-135*g.scale),g.output.text("ILLEGAL!",g.width/2+219*g.scale,g.height-135*g.scale),g.output.text("ILLEGAL!",g.width/2+218*g.scale,g.height-134*g.scale),g.output.text("ILLEGAL!",g.width/2+218*g.scale,g.height-136*g.scale),g.output.pop(),image(g.output,0,0,window.innerWidth,window.innerHeight)}function windowResized(){createCanvas(window.innerWidth,window.innerHeight),g.reinitializeSizes();let e=g.sdim/g.features.Dimension,t=g.sdim/g.features.Dimension;switch(e*=g.features.Aspect,g.repeatMax=Math.max(1,g.features.Dimension*g.features.Dimension/100),g.features.Order){case"Sinister":g.tiles=generateTilesSinister(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Anarchia":g.tiles=generateTilesAnarchia(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Occultum":g.tiles=generateTilesOccultum(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Inspiralis":g.tiles=generateTilesInspiralis(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Exspiralis":g.tiles=generateTilesExspiralis(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Adamas":g.tiles=generateTilesAdamas(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Boustrophedon":g.tiles=generateTilesBoustrophedon(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Fluctus":g.tiles=generateTilesFluctus(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Diagonios":g.tiles=generateTilesDiagonios(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;default:console.log("PANIC: Default switch for order should not be reachable.")}g.tilesIdxMax=g.tiles.length-1,g.textSize=int(g.tiles.length)}function HSB2Letter(e,t,i){return g.letters[int(map(e/3*(t/5)*(i/5),g.valueRangeMin,g.valueRangeMax,0,g.letters.length-1))]}function HSB2Pixel(e,t,i){let s=int(map(e*t*i*100,g.valueRangeMin,g.valueRangeMax,0,16777216));push(),colorMode(RGB);let r=color(s>>16&255,s>>8&255,255&s);return colorMode(HSB),pop(),r}function AddLetterToDecodedText(e){g.text.length<g.textSize||g.text.shift(),g.text.push(e)}function AddPixelToPreviewCanvas(e){g.previewPixels[g.previewCanvasPixelIdx]=[red(e),green(e),blue(e),alpha(e)],g.previewCanvasPixelIdx++,g.previewCanvasPixelIdx>=g.previewCanvasPixelMax&&(g.previewCanvasPixelIdx=0)}function UpdatePreviewCanvas(){tmpPixelDensity=pixelDensity(),g.previewCanvas.loadPixels();let e=4*tmpPixelDensity;for(let t=0;t<g.previewCanvasPixelMax;t++){let i=t%Math.floor(g.previewCanvasWidth/e)*e,s=Math.floor(t/Math.floor(g.previewCanvasWidth/e))*e;for(let r=0;r<e;r++)for(let a=0;a<e;a++){let n=4*((s+a)*g.previewCanvas.width+(i+r));g.previewCanvas.pixels[n]=g.previewPixels[t][0],g.previewCanvas.pixels[n+1]=g.previewPixels[t][1],g.previewCanvas.pixels[n+2]=g.previewPixels[t][2],g.previewCanvas.pixels[n+3]=g.previewPixels[t][3]}}g.previewCanvas.updatePixels()}function GetText(e){let t=g.text.join("").substring(0,e),i=Math.ceil(t.length/7),s="";for(let r=0;r<t.length;r+=i)s+=t.substring(r,r+i)+"\n";return s}function NumberStringtoScientificNotation(e,t=15){let i="";("-"===e[0]||"+"===e[0])&&(i=e[0],e=e.substring(1));let s=e.length-1,r=Math.max(0,t-(i?3:1)-(s>=10?3:2)),a=i+e[0];return r>0&&(a+="."+e.substring(1,1+r)),a+=" \xd7 10^"+s}function addStringNumbers(e,t){let i=0,s=[],r=Math.max(e.length,t.length);e=e.padStart(r,"0"),t=t.padStart(r,"0");for(let a=r-1;a>=0;a--){let n=parseInt(e[a])+parseInt(t[a])+i;s[a]=n%10,i=Math.floor(n/10)}return i>0&&s.unshift(i),s.join("")}function MultiplyStringNumbers(e,t){let i="";("-"===e[0]&&"-"!==t[0]||"-"!==e[0]&&"-"===t[0])&&(i="-"),"-"===e[0]&&(e=e.slice(1)),"-"===t[0]&&(t=t.slice(1));let s=Array(e.length+t.length).fill(0);for(let r=e.length-1;r>=0;r--)for(let a=t.length-1;a>=0;a--){let n=parseInt(e[r])*parseInt(t[a]),l=s[r+a+1]+n;s[r+a+1]=l%10,s[r+a]+=Math.floor(l/10)}for(;0===s[0];)s.shift();return 0===s.length?"0":i+s.join("")}function getTotalSecondsFromInception(e,t,i,s,r,a){let n=new Date,l=n.getUTCFullYear(),u=n.getUTCMonth()+1,o=n.getUTCDate(),h=n.getUTCHours(),$=n.getUTCMinutes(),c=n.getUTCSeconds(),f=(l-e)*31557600;return f+=(u-t)*2629800,f+=(o-i)*86400,f+=(h-s)*3600,f+=($-r)*60,(f+=c-a).toString()}function CalculateCurrentNumberFromInception(e,t,i,s,r){let a=r<0?"-":"";r=Math.abs(r);let n=getTotalSecondsFromInception(e,t,i,12,0,0),l;return a+MultiplyStringNumbers(n,MultiplyStringNumbers(s.toString(),r.toString()))}function YMDfromDateString(e){let t=e.split(", "),i=t[0].split(" "),s={January:1,February:2,March:3,April:4,May:5,June:6,July:7,August:8,September:9,October:10,November:11,December:12}[i[0]],r=parseInt(i[1]),a=t[1].split(" "),n=parseInt(a[0]);return"BC"===a[1]&&(n=-n),[n,s,r]}function numDigits(e){if(e<=0)throw Error("n must be a positive integer");return Math.floor(Math.log10(e))+1}function incrementsBetween(e,t,i){if(e<=0)throw Error("incr must be a positive number");return Math.floor((i-(t%e==0?t:t+e-t%e))/e)+1}function concatenatedIncrementSequenceDigitsUntil(e,t){if(t<1)return 0;let i=0;for(let s=1;s<=t;s*=10){let r=s,a=Math.min(10*r-1,t),n=incrementsBetween(e,r,a),l=numDigits(r);i+=n*l}return i+1}let cache={};function cachedConcatenatedIncrementSequenceDigitsUntil(e,t){let i=e+"-"+t;return void 0===cache[i]&&(cache[i]=concatenatedIncrementSequenceDigitsUntil(e,t)),cache[i]}function getNextNumberAndRemainingDigits(e,t){if(1===t)return[0,""];let i=0,s,r,a;for(r=1;;r*=2){if((a=cachedConcatenatedIncrementSequenceDigitsUntil(e,r))>=t){s=r;break}i=r}for(;s-i>1;)if((a=cachedConcatenatedIncrementSequenceDigitsUntil(e,r=i+Math.floor((s-i)/2)))>t){if(s==r&&cachedConcatenatedIncrementSequenceDigitsUntil(e,r)>=t)break;s=r}else if(a<t){if(i==r&&cachedConcatenatedIncrementSequenceDigitsUntil(e,r)<t)break;i=r}else break;let n=i+1,l=String(n),u=t-a;return[n,l.substring(u)]}function star(e,t,i,s,r,a){e.push(),e.rotate(TWO_PI/4);var n=TWO_PI/a,l=n/2;e.beginShape();for(var u=0;u<TWO_PI;u+=n){var o=t+cos(u)*s,h=i+sin(u)*s;e.vertex(o,h);var $=t+cos(u+l)*r,c=i+sin(u+l)*r;e.vertex($,c)}e.endShape(CLOSE),e.pop()}