0x7e73…cc24

All memos sent from and to 0x7e73…cc24.

Like the freestyle nature of jazz music, this algorithm applies the same animated spontaneity to create an abstract visual symphony. Each piece is its own masterpiece where abstract shapes and vibrant colors dance across the screen, echoing the fluidity and dynamism of a live performance. The bold geometric patterns flow into organic forms, celebrating the beauty of the unexpected, the joy of creative exploration, and the timeless allure of jazz.
var H=Object.defineProperty;@N=(o,t,s)=>t in o?H`{enumerable:!0,configuvalue:s}):o[t]=s`Wypeof t!="symbol"?t+"":@z }("link").relList;if(t&&t.supportoad"))return;for(]'))n(i);new Muta@e.addedNodes)r.tagNam`3,e)}})();class xb = ing(0,8),16!(r=r+1|0,n=i^i>>>9 0)/4294967296}};a1t(tokenData.hash()}random_dec(){0,t.length-1)]}}z={cpg:{background:l,out%Olors:[[253,1,2],[0,122"4,45]]},graysca&96`a pan african},B={width:2480*2,height:3508 ole.warn(` built with p5! @,E=d+1;t.push({id:T,D[QUARTER_PI,HALF@,yield{index:s,i:t}}}showUr=s+# radians(e)K),ellipse(r,a,s*e x
[classifieds] An algorithm inspired by the classifieds section of old newspapers Before social media, people would use classified ads to find services, jobs, and even partners. The charm of this medium for me was its brevity, akin to a tweet where you had limited characters to describe yourself, your service, or your request. Despite its basic functionality, the columns and rows, font size, and occasional clipart created density throughout the page that I found interesting to look at. The algorithm uses a grid ranging from 3x3 to 20x20, with each cell further divided within the same range. Each cell represents an individual listing, and instead of text, it's randomly filled with polygons to create varying densities. The resulting outputs range from near-identical to more free-form. Key controls: D - Toggle grid view on/off
class Random{constructor(){this.useA=!1;let i=function(i){let t=parseInt(i.substring(0,8),16),s=parseInt(i.substring(8,16),16),e=parseInt(i.substring(16,24),16),r=parseInt(i.substring(24,32),16);return function(){e|=0;let i=((t|=0)+(s|=0)|0)+(r|=0)|0;return r=r+1|0,t=s^s>>>9,s=e+(e<<3)|0,e=(e=e<<21|e>>>11)+i|0,(i>>>0)/4294967296}};this.prngA=new i(tokenData.hash.substring(2,34)),this.prngB=new i(tokenData.hash.substring(34,66));for(let t=0;t<1e6;t+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(i,t){return i+(t-i)*this.random_dec()}random_int(i,t){return Math.floor(this.random_num(i,t+1))}random_bool(i){return this.random_dec()<i}random_choice(i){return i[this.random_int(0,i.length-1)]}}const R=new Random,backgroundCol=[0,0,94],palettes=[{name:"noir",backgroundCol,colors:[[300,7,3]]},{name:"refresher",backgroundCol,colors:[[63,100,42],[120,26,7],[354,91,64],]},{name:"rouge et blue",backgroundCol,colors:[[235,21,21],[218,17,62],[353,86,54],[350,96,43],]},{name:"mondrian",backgroundCol,colors:[[300,7,3],[222,100,61],[356,74,52],[44,98,62],]},{name:"kamerun",backgroundCol,colors:[[353,93,42],[49,93,51],[166,100,24],[150,50,2],]},{name:"ice",backgroundCol,colors:[[239,94,19],[201,100,36],[190,100,42],[189,75,75],[190,77,88],]},],palette=R.random_choice(palettes),gridSizeX=R.random_int(3,20),gridSizeY=R.random_int(3,gridSizeX),minX=6,minY=6,isGridMin=gridSizeX>=6&&gridSizeY>=6,traits={palette,isLined:!!isGridMin&&palette.name==palettes[0].name&&R.random_bool(.1),isFilled:R.random_bool(.85)},canvas={width:2480,height:3224},cfg={traits,canvas,grid:{width:canvas.width,height:canvas.height,margin:{x:150,y:150},cascade:R.random_bool(.75),isEvenSplit:R.random_bool(.25),x:gridSizeX,y:gridSizeY}};class Grid{constructor({width:i=0,height:t=0,x:s=0,y:e=0,margin:r={x:0,y:0},cascade:h=!1,isEvenSplit:n=!0}){return this.width=i-2*r.x,this.height=t-2*r.y,this.x=s,this.y=e,this.cascade=h,this.margin=r,this.isEvenSplit=n,this.cascade&&(this.width=t-2*r.y,this.height=i-2*r.x,this.y=s,this.x=e,this.margin={x:r.y,y:r.x}),this.blocks=this.generate(),this}generate=()=>{let i=[],t=R.random_bool(.5),s=this.y,e=this.height/(4*this.y),r=this.height/(this.y/1),h=this.splitNumber(this.height,e,r,s,!0,t),n=this.x,o=this.width/(4*this.x),a=this.width/(this.x/1),d=this.margin.y,c=1,l=1;for(let g=0;g<s;g++){let $=this.margin.x,p=!1,u=!1,_=this.splitNumber(this.width,o,a,n,this.isEvenSplit,!1);for(let m=0;m<n;m++){let w=!1,b=!1,f=!1,k=!1;0==g&&(p=!0),g==s-1&&(u=!0),0==m&&(f=!0),m==n-1&&(k=!0),0==m&&(w=!0),m==n-1&&(b=!0);let C=m+1;i.push({id:c,colId:this.cascade?l:C,rowId:this.cascade?C:l,isFirstBlock:w,isLastBlock:b,isFirstCol:this.cascade?p:f,isFirstRow:this.cascade?f:p,isLastCol:this.cascade?u:k,isLastRow:this.cascade?k:u,width:this.cascade?h[g]:_[m],height:this.cascade?_[m]:h[g],x:this.cascade?d:$,y:this.cascade?$:d}),$+=_[m],c++}d+=h[g],l++}return i};splitNumber=(i,t,s,e,r=!1,h=!1)=>{if(i<=0||t<=0||s<=0||t>s||e<=0)throw Error("Invalid input values. Ensure all inputs are positive and minSize is less than or equal to maxSize.");let n=e,o=[],a=i;for(let d=0;d<n;d++){let c;c=r?Math.min(s,a/(n-d)):Math.min(s,R.random_dec()*(a-t*(n-d))+t);let l=Math.max(t,c);o.push(l),a-=l}return(o[o.length-1]+=Math.max(0,a),h)?o.sort(()=>R.random_dec()-.5):o}}class Block{constructor(i={id,colId,rowId,isFirstBlock,isLastBlock,isFirstCol,isFirstRow,isLastCol,isLastRow,width,height,x,y},t={}){this.props=i,this.traits=t,this.id=i.id,this.width=Math.round(i.width),this.height=Math.round(i.height)}colourPick=()=>R.random_choice(this.traits.palette.colors)}class Box extends Block{generate(){this.col=this.colourPick(),this.isBorder=this.props.isLastCol||this.props.isFirstCol||this.props.isLastRow||this.props.isFirstRow,this.pos1=this.props.rowId/10,this.pos2=this.props.colId/100,this.points=[],this.points.push({x:0,y:0}),this.points.push({x:this.width,y:0}),this.points.push({x:this.width,y:this.height}),this.points.push({x:0,y:this.height})}show(i){noFill(),noStroke(),push(),this.traits.isLined?(stroke(this.col),strokeWeight(8*i)):fill(this.col);let t=(t,s)=>{vertex(t*i,s*i)};this.traits.isLined?beginShape(LINES):beginShape();for(let s=0;s<this.points.length;s++){let e=this.points[s%this.points.length],r=this.points[(s+1)%this.points.length],h=this.points[(s+2)%this.points.length],n=lerp(e.x,r.x,this.pos1),o=lerp(e.y,r.y,this.pos2),a=lerp(r.x,r.x,this.pos1),d=lerp(h.x,h.y,this.pos2);this.isBorder?t(a,d):this.traits.isFilled&&t(n,o)}endShape(CLOSE),pop()}}let isDebugView=!1;const scaleFactor=cfg.canvas.width/cfg.canvas.height,bgCol=cfg.traits.palette.backgroundCol;window.setup=()=>{let i=window.innerHeight*scaleFactor,t=window.innerWidth/scaleFactor;window.innerHeight>window.innerWidth?createCanvas(window.innerWidth,t):createCanvas(i,window.innerHeight),noLoop(),noStroke(),noFill(),angleMode(DEGREES),colorMode(HSL)};const grid=new Grid(cfg.grid);let innerGridBlocks=[];grid.blocks.forEach((i,t)=>{let s=cfg.grid.x>3?cfg.grid.x:2*cfg.grid.x,e=cfg.grid.y>3?cfg.grid.y:2*cfg.grid.y,r=new Grid({width:i.width,height:i.height,cascade:R.random_bool(.5),isEvenSplit:R.random_bool(.25),x:R.random_int(2,s),y:R.random_int(2,e)});innerGridBlocks.push([]),r.blocks.forEach((i,s)=>{i.style=new Box(i,cfg.traits),i.style.generate(),innerGridBlocks[t].push(i)})}),window.draw=()=>{let i=width/cfg.canvas.width;background(bgCol),grid.blocks.forEach((t,s)=>{push(),translate(t.x*i,t.y*i),innerGridBlocks[s].forEach(t=>{push(),translate(t.x*i,t.y*i),t.style.show(i),pop()}),isDebugView&&(stroke([0,0,34]),strokeWeight(8*i),rect(0,0,t.width*i,t.height*i)),pop()})};const redrawArtwork=()=>{let i=window.innerHeight*scaleFactor,t=window.innerWidth/scaleFactor;window.innerHeight>window.innerWidth?resizeCanvas(window.innerWidth,t):resizeCanvas(i,window.innerHeight)};window.windowResized=()=>{redrawArtwork()},window.keyPressed=i=>{("d"==i.key||68==i.keyCode)&&(isDebugView=!isDebugView,redrawArtwork())},console.log(tokenData),console.log(cfg),console.warn("fingacode woz ere 2k23 i.d.s.t");
[classifieds] - a generative expressionistic algorithm inspired by the classifieds section of old newspapers. Before social media people would use them to find services, jobs and even partners. The charm of this medium for me was its brevity, akin to a tweet where you had limited characters to describe your; self, service or request. Despite its basic functionality, the columns & rows, font size and occasional clipart created density throughout the page that I found interesting to look at. The algorithm uses a grid ranging from 3x3 to 20x20 with each cell further divided within the same range. Each cell represents an individual listing and instead of text, it's randomly filled with polygons to create varying densities - the resulting outputs range from near identical to more free form. key controls: D - toggle grid view on/off