Growth: Threads artworks are part of the Future Reflections generative art collection presented by Shiseido. The collection consists of 1,872 unique generative artworks created in partnership with leading contemporary artists, powered by Art Blocks Engine. Celebrating the parallel processes of generative, code-based art creation and the art and science of beauty product innovation, Future Reflections draws inspiration from Shiseido’s 150 years of Japanese heritage - past, present, and future - along with nutrient-rich ingredients in the brand’s Future Solution LX skincare collection.
The Growth: Threads artworks were created by Robert’s sophisticated growth algorithm, and emulate the growth of various seeds, specifically the material essence of the Legendary Enmei herb. Their rich use of iridescent color is juxtaposed with a background of patterns inspired by Japanese embroidery designed and generated by the artist.
Recollection is released as part of reGEN, a special charitable auction of generative art to raise funds for Cure Alzheimer’s Fund, curated by Alex Estorick and Foteini Valeonti in collaboration with The Giving Block.
It is curious how our memories can mislead. I vividly recall a childhood trek up Mt. Fuji with my parents through a foggy bamboo forest, and the image of my dad buying a walking stick from an older vendor. But as my mom later clarified, the adventure actually took place in a Tokyo park –– I’ve never even visited Fuji-san. Contemplating this blend of the real and the imagined has led me to create generative vistas whose clarity is eroded by the passing of time.
The landscapes in Recollection are understated and familiar: rolling hills, distant mountains, and sporadic clusters of trees or forests. There is a path through grass and stone –– sometimes clear but, at other times, overgrown and obscure. Many of these paths culminate at a portal, its purpose enigmatic. It is pure mystery, both inviting and unsettling. It is an obscuring void, a memory half-recalled.
Recollection is a meditation on the mysteries of the mind, and a tribute to the quest for understanding. It stands not only as a beacon of hope for those grappling with the disintegration of memory, but also a testament to the enduring pursuit of clarity in the midst of obscurity. While some details may fade with time, the essence — the emotions, the lessons, the significance — has the potential to regenerate through reflection, conversation, and creative expression.
Recollection is part of the reGEN initiative for Alzheimer’s research. For many, this cause is deeply personal and, I believe, it is no exaggeration to say that almost everyone has witnessed the effects of Alzheimer’s, be it within their own family or through friends. This project not only creates funding but also plays a pivotal role in amplifying awareness about Alzheimer’s disease. The opportunity to merge the joy of artistic expression with a mission that has tangible, real-world implications is profoundly inspiring.
It is curious how our memories can mislead. I vividly recall a childhood trek up Mt. Fuji with my parents through a foggy bamboo forest, and the image of my dad buying a walking stick from an older vendor. But as my mom later clarified, the adventure actually took place in a Tokyo park –– I’ve never even visited Fuji-san. Contemplating this blend of the real and the imagined has led me to create generative vistas whose clarity is eroded by the passing of time.
The landscapes in Recollection are understated and familiar: rolling hills, distant mountains, and sporadic clusters of trees or forests. There is a path through grass and stone –– sometimes clear but, at other times, overgrown and obscure. Many of these paths culminate at a portal, its purpose enigmatic. It is pure mystery, both inviting and unsettling. It is an obscuring void, a memory half-recalled.
Recollection is a meditation on the mysteries of the mind, and a tribute to the quest for understanding. It stands not only as a beacon of hope for those grappling with the disintegration of memory, but also a testament to the enduring pursuit of clarity in the midst of obscurity. While some details may fade with time, the essence — the emotions, the lessons, the significance — has the potential to regenerate through reflection, conversation, and creative expression.
Recollection is part of the reGEN initiative for Alzheimer’s research. For many, this cause is deeply personal and, I believe, it is no exaggeration to say that almost everyone has witnessed the effects of Alzheimer’s, be it within their own family or through friends. This project not only creates funding but also plays a pivotal role in amplifying awareness about Alzheimer’s disease. The opportunity to merge the joy of artistic expression with a mission that has tangible, real-world implications is profoundly inspiring.
Solar Transits is a procedural exploration of the origins of astrophotography. Each image in this series depicts a randomly generated astronomical event but viewed through the lens of mid-to-late 19th century image capture techniques. The collection features a variety of rare alignments of stars, planets and moons, and are rendered in the spirit of the daguerreotype.
In June of 2012, I took a trip to Minneapolis to speak at the Eyeo Festival. Venus was going to transit while I was there. I was curious. I had not seen a transit before. At 5:09 pm on June 5th, a nearly imperceptible black circle began its march across the sun. Were it not a predicted mathematical certainty, it is doubtful anyone would have noticed. For six minutes, the light from the sun was 0.087% dimmer.
It is a significant thing to see an object silhouetted against the sun. We are so accustom to seeing our perfect circle of pure light that we can't help but to celebrate the occasions where something blocks the view. I still feel a little more excitement when a slight shadow shoots across the landscape on a cloudless day, the source being an extremely rare transit of a commercial jet liner.
Exponentially more rare is the planetary transit. When Venus hangs on the horizon, glowing against the night sky, it is all too easy to think it another star. Only when it is viewed in silhouette can its position in our universe be fully appreciated: orbitally locked like us, and forever drawing it's path around the sun. That tiny black circle effected me in a big way. The scale of the cosmos shifted into perspective. That doesn’t happen often. I was incredibly moved. It was an experience I will never forget. This project is an homage to that strange once-in-a-lifetime event.
As it turns out, I was very lucky to have seen it at all. In the time since my birth in 1972, a Venus transit has only happened twice. The 1st time was in 2004 but I lived in a part of the world where it was not visible. The 2nd time was in 2012. Unless I live to be 145 years old, there won’t be a 3rd time. There are a couple silver linings: the Great American solar eclipse is on April 8 2024, and Mercury will transit in 2032.
The first 10 sales will have the option to purchase their output in the form of a framed daguerreotype.
Solar Transits is a procedural exploration of the origins of astrophotography. Each image in this series depicts a randomly generated astronomical event but viewed through the lens of mid-to-late 19th century image capture techniques. The collection features a variety of rare alignments of stars, planets and moons, and are rendered in the spirit of the daguerreotype.
In June of 2012, I took a trip to Minneapolis to speak at the Eyeo Festival. Venus was going to transit while I was there. I was curious. I had not seen a transit before. At 5:09 pm on June 5th, a nearly imperceptible black circle began its march across the sun. Were it not a predicted mathematical certainty, it is doubtful anyone would have noticed. For six minutes, the light from the sun was 0.087% dimmer.
It is a significant thing to see an object silhouetted against the sun. We are so accustom to seeing our perfect circle of pure light that we can't help but to celebrate the occasions where something blocks the view. I still feel a little more excitement when a slight shadow shoots across the landscape on a cloudless day, the source being an extremely rare transit of a commercial jet liner.
Exponentially more rare is the planetary transit. When Venus hangs on the horizon, glowing against the night sky, it is all too easy to think it another star. Only when it is viewed in silhouette can its position in our universe be fully appreciated: orbitally locked like us, and forever drawing it's path around the sun. That tiny black circle effected me in a big way. The scale of the cosmos shifted into perspective. That doesn’t happen often. I was incredibly moved. It was an experience I will never forget. This project is an homage to that strange once-in-a-lifetime event.
As it turns out, I was very lucky to have seen it at all. In the time since my birth in 1972, a Venus transit has only happened twice. The 1st time was in 2004 but I lived in a part of the world where it was not visible. The 2nd time was in 2012. Unless I live to be 145 years old, there won’t be a 3rd time. There are a couple silver linings: the Great American solar eclipse is on April 8 2024, and Mercury will transit in 2032.
The first 10 sales will have the option to receive their output in the form of a framed daguerreotype.
Solar Transits: The Lost Daguerreotypes is a procedural exploration of the origins of astrophotography. Each image in this series depicts a randomly generated astronomical event but viewed through the lens of mid-to-late 19th century image capture techniques. The collection features a variety of rare alignments of stars, planets and moons, and are rendered in the spirit of the daguerreotype.
In June of 2012, I took a trip to Minneapolis to speak at the Eyeo Festival. Venus was going to transit while I was there. I was curious. I had not seen a transit before. At 5:09 pm on June 5th, a nearly imperceptible black circle began its march across the sun. Were it not a predicted mathematical certainty, it is doubtful anyone would have noticed. For six minutes, the light from the sun was 0.087% dimmer.
It is a significant thing to see an object silhouetted against the sun. We are so accustom to seeing our perfect circle of pure light that we can't help but to celebrate the occasions where something blocks the view. I still feel a little more excitement when a slight shadow shoots across the landscape on a cloudless day, the source being an extremely rare transit of a commercial jet liner.
Exponentially more rare is the planetary transit. When Venus hangs on the horizon, glowing against the night sky, it is all too easy to think it another star. Only when it is viewed in silhouette can its position in our universe be fully appreciated: orbitally locked like us, and forever drawing it's path around the sun. That tiny black circle effected me in a big way. The scale of the cosmos shifted into perspective. That doesn’t happen often. I was incredibly moved. It was an experience I will never forget. This project is an homage to that strange once-in-a-lifetime event.
As it turns out, I was very lucky to have seen it at all. In the time since my birth in 1972, a Venus transit has only happened twice. The 1st time was in 2004 but I lived in a part of the world where it was not visible. The 2nd time was in 2012. Unless I live to be 145 years old, there won’t be a 3rd time. There are a couple silver linings: the Great American solar eclipse is on April 8 2024, and Mercury will transit in 2032.
The first 10 sales will have the option to receive their output in the form of a framed daguerreotype.
Solar Transits: The Lost Daguerreotypes is a procedural exploration of the origins of astrophotography. Each image in this series depicts a randomly generated astronomical event but viewed through the lens of mid-to-late 19th century image capture techniques. The collection features a variety of rare alignments of stars, planets and moons, and are rendered in the spirit of the daguerreotype.
In June of 2012, I took a trip to Minneapolis to speak at the Eyeo Festival. Venus was going to transit while I was there. I was curious. I had not seen a transit before. At 5:09 pm on June 5th, a nearly imperceptible black circle began its march across the sun. Were it not a predicted mathematical certainty, it is doubtful anyone would have noticed. For six minutes, the light from the sun was 0.087% dimmer.
It is a significant thing to see an object silhouetted against the sun. We are so accustom to seeing our perfect circle of pure light that we can't help but to celebrate the occasions where something blocks the view. I still feel a little more excitement when a slight shadow shoots across the landscape on a cloudless day, the source being an extremely rare transit of a commercial jet liner.
Exponentially more rare is the planetary transit. When Venus hangs on the horizon, glowing against the night sky, it is all too easy to think it another star. Only when it is viewed in silhouette can its position in our universe be fully appreciated: orbitally locked like us, and forever drawing it's path around the sun. That tiny black circle effected me in a big way. The scale of the cosmos shifted into perspective. That doesn’t happen often. I was incredibly moved. It was an experience I will never forget. This project is an homage to that strange once-in-a-lifetime event.
As it turns out, I was very lucky to have seen it at all. In the time since my birth in 1972, a Venus transit has only happened twice. The 1st time was in 2004 but I lived in a part of the world where it was not visible. The 2nd time was in 2012. Unless I live to be 145 years old, there won’t be a 3rd time. There are a couple silver linings: the Great American solar eclipse is on April 8 2024, and Mercury will transit in 2032.
The first 10 sales will receive their output in the form of a framed daguerreotype.
Solar Transits: The Lost Daguerreotypes is a procedural exploration of the origins of astrophotography. Each image in this series depicts a randomly generated astronomical event but viewed through the lens of mid-to-late 19th century image capture techniques. The collection features a variety of rare alignments of stars, planets and moons, and are rendered in the spirit of the daguerreotype.
In June of 2012, I took a trip to Minneapolis to speak at the Eyeo Festival. Venus was going to transit while I was there. I was curious. I had not seen a transit before. At 5:09 pm on June 5th, a nearly imperceptible black circle began its march across the sun. Were it not a predicted mathematical certainty, it is doubtful anyone would have noticed. For six minutes, the light from the sun was 0.087% dimmer.
It is a significant thing to see an object silhouetted against the sun. We are so accustom to seeing our perfect circle of pure light that we can't help but to celebrate the occasions where something blocks the view. I still feel a little more excitement when a slight shadow shoots across the landscape on a cloudless day, the source being an extremely rare transit of a commercial jet liner.
Exponentially more rare is the planetary transit. When Venus hangs on the horizon, glowing against the night sky, it is all too easy to think it another star. Only when it is viewed in silhouette can its position in our universe be fully appreciated: orbitally locked like us, and forever drawing it's path around the sun. That tiny black circle effected me in a big way. The scale of the cosmos shifted into perspective. That doesn’t happen often. I was incredibly moved. It was an experience I will never forget. This project is an homage to that strange once-in-a-lifetime event.
As it turns out, I was very lucky to have seen it at all. In the time since my birth in 1972, a Venus transit has only happened twice. The 1st time was in 2004 but I lived in a part of the world where it was not visible. The 2nd time was in 2012. Unless I live to be 145 years old, there won’t be a 3rd time. There are a couple silver linings: the Great American solar eclipse is on April 8 2024, and Mercury will transit in 2032.
The first 10 purchases (above 4 Eth) will receive their output in the form of a framed daguerreotype.
let dim,dimHalf,buffer,STROKESCALE,img,paperBg,paperMg,paperFg,paperTg,pSystem,blurryBg,rorschach,rorschachTop,BG_ID,SOURCE_ID,BASIS_ID,BASIS_OCTAVES,OUTLOOK_ID,SURFACE_VAR,myFrameCount,frameMark1,frameMark2,frameMarkPer,frameMarkTrigger,totalFrames,MYSIZE=1600,MYHALF=MYSIZE/2,SCENESCALE=100,GRAVITY=0,MINSPEED=.01,MAXSPEED=.75,papers=[],cs=[],csTrans=[],csIrri=[],AURAS=["pale yellow on deep blue","an intense green","an aggressive orange","bright deep red","soft green on a deep purple","grey and green with bright red","bright blue and pink","an intense yellow","peach orange and yellow","pale orange and dark teal","neon green in a grey void","powder blue","bright but lacking color","dark and lacking color","dark shadowy red"],MEANINGS=["filled with an impenetrable calm","enjoying growth and renewal","experiencing focused anger","full of fear, uncertainty and doubt","very calm and alert","very wise and energetic","introverted and highly compassionate","nurturing hope","an outgoing social creature","secure but sad","suspicious","eager and resourceful","aware but distant","sensing a foreboding future","confident and energetic"],BGS=["You are a blank slate","Your obstructions are indistinct","However, you have many deep obstructions","You are aligned","You carry a spirit with you"],SOURCES=["normal","very centered","unusual","surprisingly bright"],ODDS=["This usually means","This often means","This generally means","This can mean"],BASIS_TYPES=["disorganized","organized"],OUTLOOK_TYPES=["negativity","positivity"],FLIP_VERT=!1,SHOW_FORCES=!0,DEBUG=!1,SAVE_PRINTRES=!1;function genTokenData(e){let t={},r="0x";for(var s=0;s<64;s++)r+=Math.floor(16*Math.random()).toString(16);return t.hash=r,t.tokenId=(1e6*e).toString(),t}class Random{constructor(){this.useA=!1;let e=function(e){let t=parseInt(e.substr(0,8),16),r=parseInt(e.substr(8,8),16),s=parseInt(e.substr(16,8),16),i=parseInt(e.substr(24,8),16);return function(){let e=((t|=0)+(r|=0)|0)+(i|=0)|0;return i=i+1|0,t=r^r>>>9,r=(s|=0)+(s<<3)|0,s=(s=s<<21|s>>>11)+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(e,t){return e+(t-e)*this.random_dec()}random_int(e,t){return Math.floor(this.random_num(e,t+1))}random_bool(e){return this.random_dec()<e}random_choice(e){return e[this.random_int(0,e.length-1)]}}function createColors(e){let t=[];append(t,[1,3,38,1,31,38,166,138,55,242,209,109,242,235,141]),append(t,[4,41,64,0,92,83,159,193,49,219,242,39,255,252,102]),append(t,[31,38,35,59,64,57,255,133,0,255,179,0,255,230,67]),append(t,[15,15,15,35,35,35,107,9,47,255,41,58,255,125,74]),append(t,[45,7,77,75,39,122,0,148,134,35,235,178,183,255,227]),append(t,[117,10,10,255,74,11,79,180,139,167,233,177,212,255,185]),append(t,[142,2,45,242,21,143,148,7,242,4,107,242,4,156,216]),append(t,[12,49,94,7,101,219,255,192,18,255,239,3,255,255,102]),append(t,[242,232,101,242,177,99,242,142,106,242,106,94,225,253,247]),append(t,[23,42,46,22,63,69,217,103,37,242,150,80,247,206,105]),append(t,[25,25,25,55,55,55,100,100,100,200,255,100,235,255,150]),append(t,[36,39,41,68,69,55,65,185,220,124,204,217,244,247,217]),append(t,[11,11,11,40,40,40,210,210,210,240,240,240,255,255,255]),append(t,[205,205,205,255,255,255,0,0,0,15,15,15,235,235,235]),append(t,[89,1,1,165,9,51,242,55,105,0,0,0,242,75,136]),cs=[],csTrans=[],csIrri=[];let r=t[e];for(let e=0;e<5;e++){let t=3*e,s=r[t+0],i=r[t+1],a=r[t+2],n=color(s,i,a),o=color(s,i,a,60);append(cs,n),append(csTrans,o)}for(let e=0;e<5;e++)append(csIrri,color(255,100,100)),append(csIrri,color(255,190,100)),append(csIrri,color(200,255,110)),append(csIrri,color(100,155,255)),append(csIrri,color(150,100,200))}function getColor(e){let t;if(e<.25){let r=map(e,0,.25,0,1);t=lerpColor(cs[0],cs[1],r)}else if(e<.5){let r=map(e,.25,.5,0,1);t=lerpColor(cs[1],cs[2],r)}else if(e<.75){let r=map(e,.5,.75,0,1);t=lerpColor(cs[2],cs[3],r)}else{let r=map(e,.75,1,0,1);t=lerpColor(cs[3],cs[4],r)}return t}function getIrriColor(e){let t;if(e<.2){let r=map(e,0,.2,0,1);t=lerpColor(csIrri[0],csIrri[1],r)}else if(e<.4){let r=map(e,.2,.4,0,1);t=lerpColor(csIrri[1],csIrri[2],r)}else if(e<.6){let r=map(e,.4,.6,0,1);t=lerpColor(csIrri[2],csIrri[3],r)}else if(e<.8){let r=map(e,.6,.8,0,1);t=lerpColor(csIrri[3],csIrri[4],r)}else{let r=map(e,.8,1,0,1);t=lerpColor(csIrri[4],csIrri[0],r)}return t}function drawDragLine(e,t,r,s,i,a,n,o){i.stroke(a),i.strokeWeight(n),i.line(e,t,r,s)}function drawStatic(e,t,r,s,i){for(let a=0;a<i;a++){let i=R.random_num(0,750*sqrt(r)),a=R.random_num(-PI,PI),n=sin(a),o=e+cos(a)*i,h=t+n*i;s.circle(o,h,STROKESCALE)}}function drawSplatter(e,t,r,s,i){for(let a=0;a<i;a++){let i=R.random_num(0,130*sqrt(r)),a=R.random_num(-PI,PI),n=sin(a),o=e+cos(a)*i,h=t+n*i,l=1*pow(.9*R.random_dec(),3)+.05;s.circle(o,h,l)}}function drawStreakedStatic(e,t,r,s,i){for(let a=0;a<i;a++){let i=R.random_num(0,750*sqrt(r)),a=R.random_num(-PI,PI),n=sin(a),o=e+cos(a)*i,h=t+n*i*.25;s.circle(o,h,STROKESCALE)}}function keyTyped(){"d"==key&&(DEBUG=!DEBUG),"r"==key||("s"==key?(reset(6),SAVE_PRINTRES=!0):"v"==key?FLIP_VERT=!FLIP_VERT:"f"==key&&(SHOW_FORCES=!SHOW_FORCES))}function drawForceLines(e,t){if(e.length>1)for(let r=0;r<e.length;r+=2){let s=e[r],i=e[r+1],a=R.random_int(0,3),n=paperBg;1==a?n=paperMg:2==a?n=paperFg:3==a&&(n=paperTg),n.stroke(t),n.strokeWeight(2),n.fill(cs[0]),n.line(s.x,s.y,i.x,i.y),n.circle(s.x,s.y,4),n.circle(i.x,i.y,4)}}class BlurryBg{constructor(){}drawMain(e){e.noStroke();let t=1.375*MYSIZE,r=MYHALF,s=MYHALF-55;for(let i=0;i<200;i++){let a=map(i,0,129,0,1,!0),n=lerpColor(cs[0],cs[1],a);e.fill(n),e.circle(r,s,t),s-=.002*(t*=.995)}}drawAnarchic(e,t){e.noStroke();let r=MYHALF;for(let s=0;s<10;s++){let s=R.random_num(100,650)*t;R.random_bool(.6)?e.fill(cs[1]):(e.fill(cs[3]),s*=1.5);let i=R.random_num(MYHALF-350,MYHALF+260);e.circle(r,i,s)}}drawSpiritual(e){let t=MYSIZE*R.random_num(.45,.8),r=MYHALF,s=MYHALF-150;e.noStroke(),e.fill(cs[2]),e.circle(r,s,t)}drawConcentric(e){let t=e,r=.95*MYSIZE,s=MYHALF,i=MYHALF-300;for(let e=0;e<7;e++){let a=map(e,0,7,.1,.9);(t=0==e?paperBg:1==e?paperBg:2==e?paperMg:3==e?paperMg:paperFg).noStroke(),t.fill(getColor(a)),t.circle(s,i,r),r-=170,i+=55}}}class Rorschach{constructor(){this.numDark=R.random_int(5,11),this.numLight=R.random_int(5,11),this.darks=[],this.lights=[];for(let e=0;e<this.numDark;e++){let e=R.random_num(-400,400),t=R.random_num(-200,150),r=R.random_num(100,500),s=createVector(e,t,r);append(this.darks,s)}for(let e=0;e<this.numLight;e++){let e=R.random_num(-420,420),t=R.random_num(-200,150);e*=map(t,-300,250,1,.5);let r=R.random_num(170,330),s=createVector(e,t,r);append(this.lights,s)}}drawDarks(e,t){let r=cs[0];e.fill(color(red(r),green(r),blue(r),4)),e.noStroke();for(let r=0;r<this.numDark;r++){let s=this.darks[r],i=s.x*t,a=s.y*t,n=s.z*t;e.circle(MYHALF+i,MYHALF+a,n),e.circle(MYHALF-i,MYHALF+a,n),s.z*=.975}}drawLights(e,t){let r=cs[1];e.fill(color(red(r),green(r),blue(r),4)),e.noStroke();for(let r=0;r<this.numLight;r++){let s=this.lights[r],i=s.x*t,a=s.y*t,n=s.z*t;e.circle(MYHALF+i,MYHALF+a,n),e.circle(MYHALF-i,MYHALF+a,n),s.z*=.985}}}class Force{constructor(e,t,r,s,i,a){this.id=e,this.pos=t.copy(),this.origPos=t.copy(),this.force=2*r,this.rotForce=2*s,this.isEmitter=i,this.isBoundary=a,this.radius=5,this.age=0,this.isEmitter&&(this.cd=color(255,255,0),this.radius=15)}updateForce(e,t,r){this.force=e,this.rotForce=t,this.isEmitter=r}update(){this.age+=1}draw(e){if(!this.isBoundary&&this.radius>6){let t=SCENESCALE,r=map(this.pos.x,-t,t,0,MYSIZE),s=map(this.pos.y,-t,t,0,MYSIZE),i=min(abs(this.pos.x),this.radius);e.noStroke();for(let t=0;t<5;t++)e.fill(cs[t]),e.circle(r,s,i),i*=.8}}drawToPaper(e){if(e.fill(color(0,0,0,25)),e.noStroke(),!this.isBoundary){let t=SCENESCALE,r=map(1.08*this.pos.x,-t,t,0,MYSIZE),s=map(1.08*this.pos.y,-t,t,0,MYSIZE),i=15*this.radius;for(let t=0;t<25;t++)e.circle(r,s,i),i*=.95}}}class Particle{constructor(e){this.context=Math.min(int(map(frameMarkPer,0,1,0,6)),5),this.x=e.x,this.y=e.y,this.px=e.x,this.py=e.y;let t=R.random_num(-PI,PI);if(this.context>=2&&1==BASIS_ID){let e=map(t,-PI,PI,0,1);e=int(e*BASIS_OCTAVES)/float(BASIS_OCTAVES),t=e=map(e,0,1,-PI,PI)}this.speed=R.random_num(1,2.1),this.vx=Math.cos(t)*this.speed,this.vy=Math.sin(t)*this.speed,this.px+=.05*this.vx,this.py+=.05*this.vy,this.x+=.1*this.vx,this.y+=.1*this.vy,this.renderx=map(this.x,-SCENESCALE,SCENESCALE,0,MYSIZE),this.rendery=map(this.y,-SCENESCALE,SCENESCALE,0,MYSIZE),this.renderxo=map(this.px,-SCENESCALE,SCENESCALE,0,MYSIZE),this.renderyo=map(this.py,-SCENESCALE,SCENESCALE,0,MYSIZE),this.ax=0,this.ay=0,this.speedLerp=this.speed,this.cd=color(0,0,0),this.radius=R.random_num(.3,3),this.mass=R.random_num(.8,1.2),this.augRadius=this.radius,this.dp=0,this.ftd=0,this.std=0,this.totalDist=0,this.decay=R.random_num(.95,.975),this.age=0,this.agePer=0,this.life=300,this.dead=!1}update(e){this.px=this.x,this.py=this.y,this.ftd=0,this.std=0;for(let t=0;t<e.length;t++){let r=e[t],s=this.x-r.pos.x,i=this.y-r.pos.y,a=createVector(s,i),n=a.mag(),o=n*n,h=1/o;a=a.normalize();let l=createVector(a.y,-a.x);l=p5.Vector.mult(l,h*r.rotForce*this.mass),a=p5.Vector.mult(a,h*r.force*this.mass),this.ax+=a.x+l.x,this.ay+=a.y+l.y,o<.5&&!r.isEmitter&&(this.dead=!0,r.radius+=.025),r.isEmitter&&(this.ftd+=n,this.std+=sin(10*n))}this.ay+=map(myFrameCount,0,75,GRAVITY,.01,!0),this.vx+=this.ax,this.vy+=this.ay;let t=createVector(this.vx,this.vy),r=t.copy().normalize();this.speed=t.mag(),this.speed>MAXSPEED?(t=p5.Vector.mult(r,MAXSPEED),this.speed=MAXSPEED):this.speed<MINSPEED&&(t=p5.Vector.mult(r,MINSPEED),this.speed=MINSPEED),this.vx=t.x,this.vy=t.y,this.dp=p5.Vector.dot(r,createVector(0,1)),this.dp=map(this.dp,-1,1,0,1),this.totalDist+=this.vx*this.vx+this.vy*this.vy,this.x+=this.vx,this.y+=this.vy,this.vx*=this.decay,this.vy*=this.decay,this.speed=this.vx*this.vx+this.vy*this.vy,this.ax=0,this.ay=0,this.age+=1,this.agePer=this.age/this.life,this.radius*=.99,this.augRadius=this.radius*map(cos(.25*this.totalDist),-1,1,.3,1),this.speedLerp-=.15*(this.speedLerp-this.speed),this.renderxo=this.renderx,this.renderyo=this.rendery,this.renderx=map(this.x,-SCENESCALE,SCENESCALE,0,MYSIZE),this.rendery=map(this.y,-SCENESCALE,SCENESCALE,0,MYSIZE),(abs(this.x)>1.1*SCENESCALE||abs(this.y)>1.1*SCENESCALE)&&(this.dead=!0),this.age>this.life&&(this.dead=!0)}}
🐺🐵🐶🐺🐱🦁🐯🦒🦊🐻🐰🐹🐭🐗🐷🐮🦝🐨🐼🐸
Rorschach meets Pareidolia. Spirit Animal meets Mood Ring.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
What will be revealed about who you are --- who you become.
What do YOU see?
's' to re-render at print res
'f' to toggle force node positions
'v' to invert vertically
'd' to toggle progress bar
Ancient Courses is a generative experience that explores the aesthetics of meandering rivers and the settlements that form on their banks. The design is graphic and cartographic with bold color palettes rendered against map iconography and line sensibility. From the river banks, roads stretch across the landscape: sometimes a single access road, other times sprawling towns. The river meandering is simulated via a custom algorithm which closely models the real world process.
Press 'r' to reset the simulation.
Press 's' to save an image to disk.
Press 'h' to re-run the simulation at print res. This is significantly slower than the default screen res version. The progress bar at the bottom of the screen shows how long before the print-res image is automatically saved to disk.
A limited number of Ancient Courses mints will come with a Treasure Map feature. The owner can request a physical print (max one print per treasure map).
Best viewed on Chrome, Firefox, or Safari.
Ancient Courses is a generative experience that explores the aesthetics of meandering rivers and the settlements that form on their banks. The design is graphic and cartographic with bold color palettes rendered against map iconography and line sensibility. From the river banks, roads stretch across the landscape: sometimes a single access road, other times sprawling towns. The river meandering is simulated via a custom algorithm which closely models the real world process.
Press 'r' to reset the simulation.
Press 's' to save an image to disk.
Press 'h' to re-run the simulation at print res. This is significantly slower than the default screen res version. The progress bar at the bottom of the screen shows how long before the print-res image is automatically saved to disk.
A limited number of Ancient Courses mints will come with a Treasure Map feature. The original purchaser will receive a physical print.
Best viewed on Chrome, Firefox, or Safari.