i(ivec2 m,int x){return `4 u=i(x);x=u.x-128;@Y=m-i;if(i>765)i-=1530`texelFetch(uC,d,0)),r=Rb);z=t(z)*u>>8&3;foref(e>=nN[z])break`T R,1600),M=p*e+40&%Vi(ofs[e+D],clamp('),(1+g)*4096);h$$`,bv=`#version 300 es
preci`ØDe ,
v*(iS/oR))+ hq(41
var e=t.key@.href=jg.cv.toDataURL("image/png
Default(),nd() rq.isInitialized?q7({-addEA0 Listener("!
/*
Artwork Title: R7or: Kazuhiro Tanimoto
Exhib"c - Worlds Emerg"X1 -", NEORT++(Tokyo), May 15–31to Shono and NORI, who fou ould be shared.@ f
ese years.
*/
}e=e||{h:m,s:h,b:c,shapeWidth:n}}!t&&e&&vz(this.mldPat,e.h .scheduleNextFrame(a9)}else }class MCnvs{constructor( }cv=document.createEle@
tx.globalCompositeOperation,m=e*n,h=r*s,i=.5*
let mq,vf,bp,p!00,zk,u_,gy,v7,vv@,c0=[],z3=new Uint8Array(4*en ),po,nj,l9,ru,y2,i7,ym,g8,wt,ik=fillStyle="#000" .@"T"F
work requi"
e}usePg(t=! T N@( +
COLOR_BUFFE
(a)?a:[a,a]):[ V6$m [
UNSIGNED_SHORT&COMPILE_STATUS)||c*"webgl2",{premultip,k ~ } | { z y x w v ; @@F 4 R X ^"#Ar!CLAMP_TO_EDG1A #],nj=[],l9=0,po.,FBO not complete:"i,a,n,s,o,m,h,c,l,fb:0}&< rc=r7(uh,u/)*o,sustainLevel<r?"sawtooth":"triangle0#E
e&&"number"==t"if(rq.isInitialized&&xk.ch,vq.setNodeParam(ln@l=vb7
St.get(o);l7
l={lastTrigger`.A
+.26)&&!(d<C%";c=((17'U
31*n)%101/100-'i=n;m<g&&f<m?(f`/u$2 t,140,9500 ,cf.ctx.globalCompositeO! s of[1-l9,l9])+iSYNC_FLUSH_COMMANDS_CONDITION_SATISFIED||ALREADY_SIGNALEDT
300 es
preci`p float;out vec2 v# sampler2D uC,uLr
>=0?i+m>>x:-(-
**"Rain Blooms"** is an audiovisual work built on an original cellular automaton designed by Kazuhiro Tanimoto to produce complex behavior. By running a cellular automaton program, one of the representative models in ALife (Artificial Life), the work generates visual and audio change in real time through ongoing interactions among multiple elements.
In its presentation at **NEORT++ (Tokyo)** in May 2026, this real-time generative process is configured as an immersive environment. Images that continue to transform through the execution of code fill the walls, while the corresponding sound creates an environment in which vision and hearing are closely linked. The viewer is placed inside images and sounds that are continuously updated through computation.
In many visual works, including those produced with AI generation, the creator often defines in advance the image they want to show, shapes the output toward that target, and then presents the result as fixed data. In this work, what the artist designs is not a completed image, but local rules at the pixel level: an algorithm. The rendering proceeds through the real-time iterative execution of that algorithm, and diverse patterns and movements not directly specified in advance by the artist continue to arise from interactions among elements.
The cellular automaton used in this work is not a reproduction of a classical cellular automaton such as the Game of Life. It is constructed as an extended rule system combining how neighborhoods are defined, interactions among multiple species, interactions such as attack, assimilation, and indifference, and a vitality parameter held by each cell. Through repeated application of these local rules, the work produces a range of changes including organic, upwelling motion, linear and inorganic motion, collapse, proliferation, and cycles.
Simple geometric forms are periodically introduced from outside, much like dropping paint onto a canvas. These forms are not preserved as independent motifs; they immediately begin to behave as part of the cellular automaton itself. Through local interactions with surrounding cells, they break apart, proliferate, and transform into other patterns. What the viewer observes is not the inserted form itself, but how it is transformed within the computational system and unfolds into the overall image.
The sound is not added afterward to accompany the image. Changes in the cells are detected, and sound frequencies and other parameters are varied according to information such as hue, brightness, and saturation, generating an ambient soundscape that corresponds to the changes on screen. Image and sound originate from the same computational process, and the changes occurring on screen also appear as sound.
At the start of each run, the work determines neighborhood settings and various parameter sets involved in the generation of both image and sound. When the work is run again, a different parameter set is selected. Even though the program itself remains the same, generation begins under different conditions and produces different results. Rather than playing back a fixed video, the work presents a process in which image and sound are continuously updated through computation.
What is attempted here is not to fix a single determinate meaning, claim, or interpretation in advance as the work itself. Rather, the work consists in designing computational rules, such as how neighborhoods are defined, how multiple species relate to one another, how vitality operates, and how image and sound are linked, and in presenting a bottom-up, dynamic generative system in which change continues to emerge from their interaction. Through this method, the artist examines what forms of expression are possible precisely because they are produced by a computer: forms whose final shape is not directly decided by a human, but arises through repeated computation and interaction among elements.
More information
- <https://two.neort.io/en/exhibitions/rain_blooms>
- <https://www.kazuhirotanimoto.com/works/rain_blooms/>
_Lucky Clover 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._
Four-leaf clovers, with their rare and mystical allure, have captivated hearts for centuries, bringing happiness to those fortunate enough to discover them. When I was little, I used to embark on quests in search of one. In a sea of lush green clovers, I carefully examined each specimen and time would slip away.
_Lucky Clover_, developed in collaboration with generative artist [Kazuhiro Tanimoto](https://www.kazuhirotanimoto.com/), is a collection that recreates the joy of finding that special clover. Each piece represents a clover field at a certain time of day, with the four-leaf clovers hidden away for viewers to discover them.
The algorithm in _Lucky Clover_ was designed to be both realistic and surreal. The output is simultaneously photographic and illustrative, merging three-dimensional and two-dimensional elements. The myriad of clovers that fill the screen form a variety of patterns. Every color, placement, and flow is unique. Among the features assigned to the output, the “Number of Four-Leaf Clovers” is the most important feature of the work. Each output also corresponds to a specific time of day, evoking memories of the search, whether at sunrise, sunset –– when you don’t want to go home yet –– or else during mystic moonlight.
_The precious memories of the beautiful clover fields that each of us carries in our hearts are etched onto the blockchain as code._
The work is a counterpart to Sputniko’s other work [A Drone In Search For a Four-Leaf Clover](https://sputniko.com/Drone-in-search-for-a-four-leaf-clover), where the artist reflects on the era of AI-driven efficiency by creating a drone with advanced image recognition algorithms. The drone can discover the lucky clover with unparalleled efficiency. Would you rather use the drone to guarantee rare treasure or do you prefer the nostalgia of a sunlit search, with the chance that you might not find one?
_Lucky Clover_ is a charitable project in support of research into Alzheimer’s disease, which seeks to illuminate both new treatments and a possible cure like a beautiful clover. We respect the ongoing efforts of the many researchers around the world and believe that scientific and technological advances will make the world a better place.
_**Notes**_
Press [F] for full-screen mode.
Press [L] to highlight the four-leaf clovers (if you want to spoil the fun and immediately discover them)
Press the number keys to download a high-resolution image.
[1] 1600x2400px image
[2] 3200x4800px image…
[7] 11200x16800px image
[8] 12800x19200px image
It may take time to draw depending on the environment.
When I started using a computer, I believed that digital data could be stored forever. I saved my favorite picture files and small free software files to floppy disks with a capacity of roughly 1 megabyte and stored them carefully. Those floppy disks were my treasure. Later, when the disks deteriorated and became unreadable or were lost, the data became memories with a deep feeling of loss.
Blockchains have arisen. Are these truly persistent?
After all, digital data are also a type of memories. They are stored in a person's mind, deteriorate, and one day will be lost with that person.
I find the fragility and beauty in them.
In this work, I attempted to represent a fictional collapsed blockchain world with visuals and sound.
The chain has already been abandoned, and the few nodes that remain barely alive are just maintaining their appearances. Visualizing the remnants of blocks that no longer serve their original purpose, they form something like a submerged city. Then, a large amount of data that has lost its connection to the blocks and has deteriorated to the point that it can no longer be opened, flutters through the sky. The countless remnants of data form a cloud, which undulates like a wave. The details of the data cannot be confirmed, however, they can be seen as glittering lights. As I try to recall the contents of the data that can no longer be opened, I am filled with vague memories and a sense of nostalgia.
This work started with generating sound by code. The sound of rippling waves can be heard by clicking on the screen. Since it would be impractical to store huge sound data on the blockchain, the sound was formed from white noise. In order to reproduce the sound of rippling waves, it was necessary to deepen my understanding of the structure of the sound by referring to academic papers. Then the sound was completed, and the visual imagination expanded from there.
I like to visit the sea near my home and in other places. Different seascapes can be seen from different locations and angles. When I am there, idly gazing at the seascape and listening to the sound of the waves, I sometimes feel as if I am the only human there and the world has gone to ruin. If the world were ruined, this seascape and the sound of the waves would remain for a long time. This feeling and the fragility felt in digital data are the basis of this work. I imagine that the heaven or the graveyard where the lost data flies up in the sky and arrives may be a seascape like this.
The reason why I used data as lights and clouds drifting in the sky and moved them like waves is because I wanted to depict unrealistic behavior with a realistic subject matter and to express a beautiful and bizarre world in which these intertwine.
For the visual expression technique, I further pursued and evolved the drawing system that I have developed in "GHOST IN THE CODE" and my other works. Everything is composed of rectangles, indicating that this world is beginning to become low-resolution. Depth is linked to the size of the rectangles, and distant objects are represented by small rectangles as if they were in focus. Dispersion in the position and color of the rectangles indicate the degree of deterioration of the world. Moreover, the sky, blocks, and the surface of the water are identified and each has its own characteristics.
Algorithms generate various compositions, colors, and other features. I have attempted to make each output feel nostalgic and fresh at the same time. The blocks, which have lost their original meaning, are contrasted with the data, which exists in isolation from them, in stillness and movement. Occasional red clouds or blocks mean that they are corrected as red, the first color, due to missing information.
Through these integrations, I have attempted to create a work that can be stored on a blockchain, and that is both visually and sonically interactive.
[NOTE]
-To save the image press the 'S' key.
-To change the flow velocity press the '↑' or '↓' key.
Modern hardware and browser hardware acceleration is recommended. The Chrome browser on a desktop with a high-end GPU is optimal. On iOS, the best experience is available on iOS 15 or later.
300,1e3)),d=1e4,c=2e4,fi2.fill(0,0,r(50,150))),4==b_pat&&(B=r(0,500),A=r(0,3.14*20),s=B*Math.cos(A),o=0,a=B*Math.sin(A),A=r(30,100)*u/(Math.min(m,100)/20),H=r(5,A+h)*Math.pow(r(1,3),g),f=H*(1e3-(a+700))/200*Math.pow(2-B/700,3)*(.03*m),a<-100&&(f*=3),n=A,l=A*r(.75,1.25),d=500,c=1e3,fi2.fill(0,0,200*(1-(a+300)/600)/u+r(-20,20))),5==b_pat&&(s=r(-1e3,1e3),o=0,H=((a=r(-500,500))+500)/1e3,n=r(10,50)*(.2+H),f=0,.4<noise((s+1e3)*D,(a+500)*v)?r(0,1)<x?f=10*(.2+H):(f=r(200,600)*(.2+H)*u,n*=r(1,2)*u,200<a&&Math.abs(s)<200&&(s=Math.round(s/(2*n))*n*2,a=Math.round(a/(2*n))*n*2,300<f&&(f*=.25),r(0,1)<.5&&(n*=.25))):(f=0,n=0),l=n,20<f?fi2.fill(0,0,100*(1-H)+r(-20,20)):fi2.fill(0,0,50*(1-H)+r(-10,10)),d=500,c=1e3),6==b_pat&&(s=r(-1100,1100),o=0,a=-700,B=r(10,100)*u,A=r(5,B+h)*Math.pow(r(1,3),g),f=A*(r(0,1)<.05?r(3,10):1),n=B,l=B*r(.75,1.25),d=700,c=700,fi2.fill(0,0,r(0,100))),7==b_pat&&(s=r(-1300,1300),o=0,a=300*Math.pow(t%3,.8)-300,G=Math.pow(1-a/750,1),G*=Math.pow(noise(s*D*u,a*v),1)*(2-2*(.3+tn3)),f=10+r(5,15)*G*Math.pow(3-t%3+1,2),f*=h,r(0,1)<.05&&(f*=2),n=r(5,15)*(3-t%3+1)*2*u,l=2*n*u,a+=r(-50,50),fi2.fill(0,0,70*Math.pow(t%3,1.5)+r(-30,30)),d=300,c=700),8==b_pat){s=r(-1e3,1e3),o=0;let t=((a=r(-1500,500))+1500)/2e3,e=(x&&(t=1-t),r(10,50));200<a&&(e=r(10,30)),n=e*(t+.2),f=0;var G=noise((s+1e3)*D*1,(a+500)*v*1);let i=1;x&&(i=3),.4<G?(f=r(100,800)*(.5*t+.2)*u*Math.pow(G,4)*3*i,n*=r(1,2)*u*Math.pow(G,4)*3*i,200<a&&Math.abs(s)<200?(s=Math.round(s/(2*n))*n*2,a=Math.round(a/(2*n))*n*2,300<f&&(f*=.25),r(0,1)<.5&&(n*=.25)):r(0,1)<.05&&(f*=3)):(f=0,n=0),l=n,fi2.fill(0,0,150-150*t+r(-20,20)),d=1500,c=2e3}9==b_pat&&(s=r(-1e3,1e3),o=0,E=((a=r(-500,500))+500)/1e3,n=r(10,50)*(.2+E),z=Math.pow(noise((s+1e3)*D,a*v),g),f=(1e3*z-200)*h*Math.min(1,1.5-E),l=n,fi2.fill(0,0,100*(1-E)+r(-20,20)),d=500,c=1e3),b&&(7==b_pat?fi2.fill(0,255,90*Math.pow(t%3,1.5)+r(-30,30)):9==b_pat||5==b_pat&&f<20?fi2.fill(0,255,100*(1-(a+d)/c)+r(-30,30)):fi2.fill(0,255,200*(1-(a+d)/c)+r(-30,30))),2!=b_pat&&fi4.fill(0,0,Math.max(0,(a+d)/c*200)+5);var z,E,I;fi2.translate(s,o,a),fi4.translate(s,o,a),fi2.rotateY(.19625),fi4.rotateY(.19625),M&&r(0,1)<y&&(z=r(.1*-p*1,.1*p*1),E=r(.1*-p*1,.1*p*1),I=r(-p,+p),fi2.rotateX(z),fi2.rotateY(E),fi2.rotateZ(I),fi4.rotateX(z),fi4.rotateY(E),fi4.rotateZ(I)),0<=f&&(fi2.box(n,f,l),9!=b_pat&&(I=Math.round(r(0,btex_n-1)),20<f&&(fi2.texture(btex[I]),fi2.box(n+2,f,l+2))),fi2.box(n,f,l),fi4.box(n,f,l)),fi2.pop(),fi4.pop()}fi2.translate(0,0,500),fi2.rotateX(1.57),fi4.translate(0,0,500),fi4.rotateX(1.57),fi2.normalMaterial(),fi2.noLights();let N=r(0,100),R=(5!=b_pat&&6!=b_pat||(N=100),r(0,255)),V=(b&&(R=0),fi2.fill(R,N,N,100),fi4.fill(255,0,175,255),0),F=(V=1==b_pat||8==b_pat?4e3:3==b_pat?1e4:2e3,fi2.plane(1e4,V),fi4.plane(1e4,V),fi2.rotateX(-1.57),fi2.translate(0,-1200,0),fi2.rotateX(1.57),fi2.fill(0,0,0,255),fi2.pop(),fi4.pop(),createGraphics(DeS,DeS,WEBGL));F.setAttributes("alpha",!0),F.noStroke(),F.background(0,0);t=F.createShader(vts2,fgs1);F.shader(t),sU(t,"ut",fi2),sU(t,"ut2",fi4),sU(t,"hol",!1),sU(t,"rad",.03),F.rect(0,0,DeS/2,DeS/2),F.resetShader(),F.shader(t),sU(t,"ut",F),sU(t,"ut2",fi4),sU(t,"hol",!0),sU(t,"rad",.03),F.rect(0,0,DeS/2,DeS/2),F.resetShader(),ig1=F.get(),ig2=fi4.get(),ig1.loadPixels(),ig2.loadPixels();for(let r=0;r<=DeS;r++)for(let t=0;t<=DeS;t++){var q=4*(r+t*DeS);0==ig2.pixels[0+q]&&0<ig2.pixels[2+q]&&10<ig1.pixels[3+q]&&ig1.pixels[3+q]<245&&(ig1.pixels[3+q]=255)}ig1.updatePixels(),F.remove(),fi2.remove(),fi4.remove()}function genBtex(){let e=createGraphics(100,500),i=1;2!=b_pat&&4!=b_pat||(i=.5);for(let t=0;t<btex_n;t++){e.clear();e.noFill();for(let t=0;t<500;t+=1)e.stroke(0,t),e.line(0,t,100,t);e.noStroke(),e.fill(0),tn17&&e.fill(0,0,0);var a=10*Math.round(r(2,4))*i,s=a*r(.3,.9);if(.1<r(0,1))if(t%3==0)for(let t=0;t<500;t+=a)e.rect(0,t,100,s);else if(t%3==1)for(let t=0;t<100;t+=a)e.rect(t,0,s,500);else if(t%3==2)for(let r=0;r<100;r+=a)for(let t=0;t<500;t+=.5*a)e.rect(r,t,s,.5*s);btex[t]=e.get()}}function genSkBg(){fi1.colorMode(RGB,255),fi1.strokeWeight(2);let e=.5<r(0,1),t=Math.round(r(120,295)),i=(255<t&&(t-=255),Math.round(Math.min(r(50,255),200))),a=(tn21&&(i=0),0);tn21&&(a=50);var s=Math.round(Math.min(r(75,255),255-a)),o=color(t,i,s);let n=Math.round(r(120,295));255<n&&(n-=255),i=Math.round(Math.min(r(50,255),200)),tn21&&(i=0);var s=Math.round(Math.min(r(75,255),255-a)),f=color(n,i,s);130<Math.abs(t-n)&&0==e&&r(0,1)<.8&&(e=!0),c_sky=f,c_sky2=o;for(let t=0;t<=100;t++)e?fi1.stroke(fi1.lerpColor(o,f,t/100)):fi1.stroke(lerpColor(o,f,t/100)),fi1.line(0,t,100,t)}function genMp(){fm.colorMode(RGB,1),fm.rectMode(CENTER);var p=r(5.5,6.5)*M*.5,h=r(.65,.8),m=tn20,w=tn4;fm.loadPixels();for(let r=0;r<=DW;r++)for(let t=0;t<=DH;t++){var e=color(((DW-DI)/2+.3*DI)/DW*255,127.5,0);fm.set(r-1,t,e)}fm.updatePixels();var u=(u=4e4/.75*2)*(DW/DI)*(DH/DI);ig2.loadPixels();for(let c=0;c<u;c++){var x=r(0,1)*DW,b=r(0,1)*DH;let t=r(0,5*m),e=t;var y=r(0,6.28318);let i=1;var g=4*(Math.round(x/DW*DeS)+Math.round(b/DH*DeS)*DeS),D=ig2.pixels[2+g],v=(ig2.pixels[3+g],0!=D?(v=1+2*Math.pow(D/255,2),i=.75<r(0,1)?1:v,t*=3*(Math.pow(D/255,2)+0),e*=3*(Math.pow(D/255,2)+0)):i*=2*Math.max(.5,Math.pow(1-b/DH*2,2)),ig2.pixels[0+g]);50<v&&3!=b_pat&&(i*=3*Math.max(.2,Math.pow(1-b/DH*2,2)),t*=r(1,5));let a=(x+t*Math.cos(y))/DW,s=(b+e*Math.sin(y))/DH,o=h,n=(r(0,1)<.01&&(a=r(0,1),s=r(0,1),o=.8*h),1),f=1,l=((3==b_pat||0==v&&0==D)&&c>.9985*u&&(i/=2*Math.max(.5,Math.pow(1-b/DH*2,2)),.5<r(0,1)&&(n=r(5,10)/2,f=r(5,10)/2,o=.85,3==b_pat&&(n*=.7,f*=.7))),0!=D&&(0!=v?(f*=.5,n/=.5):(n*=.5,f/=.5)),fm.fill(a,s,0,o),fm.push(),fm.translate(x,b),fm.rotate(w),p*r(.1,3)*n*i),d=p*r(.1,3)*f*i;0!=D&&(0!=v?d<M&&(d=M,l=Math.max(8*M,p*r(.1,3)*n*i)):l<M&&(l=M,d=Math.max(8*M,p*r(.1,3)*f*i))),fm.rect(0,0,l,d),fm.pop()}fm.blendMode(ADD)}function genCvs(){switch(Math.round(r(0,1))){case 0:cr1(15e4,0,.03,.01,50,1,.2,1),cr1(75e3,255,.05,.03,150,1,.2,1),cr1(1500,0,1,1,50,3,1,1.5),cr1(750,255,1,1,150,3,1,1.5),cr1(10,0,1,1,50,10,1,3);break;case 1:cr1(5e4,120,10,10,100,1,.2,.5),cr1(5e4,220,10,10,100,1,.2,.5),ci.image(ci,DW,0,-DW,DH,0,0,DW,DH),ci.image(ci,0,DH,DW,-DH,0,0,DW,DH);for(let t=0;t<3;t++)ci.image(ci,0,0,DW/2,DH/2,0,0,DW,DH),ci.image(ci,DW/2,0,DW/2,DH/2,0,0,DW,DH),ci.image(ci,0,DH/2,DW/2,DH/2,0,0,DW,DH),ci.image(ci,DW/2,DH/2,DW/2,DH/2,0,0,DW,DH);cr1(50,0,1,1,100,3,1,2)}}r=(t,r)=>R.r_n(t,r),nS=t=>{t.noStroke()},pD=t=>{t.pixelDensity(1)},sU=(t,r,e)=>{t.setUniform(r,e)},cG=t=>createGraphics(DeS,DeS,t),cG2=t=>createGraphics(DW,DH,t),cr1=(e,i,a,p,s,h,o,n)=>{e=e*(DW/DI)*(DH/DI);for(let t=0;t<e;t++){var f=r(0,DeS*DW/DI),l=r(0,DeS*DH/DI);for(let t=0;t<h;t++){var d=r(o,n)*M,c=r(o,n)*M;let t=d*c<.5?M*M:M;ci.fill(i,noise(f*a,l*p)*min(s*t,s)),ci.ellipse((f+r(-o,o))*M,(l+r(-o,o))*M,d,c)}}};var wslgm=2e3,wslgs=16e3;function generateNoise(){if(AudioContext){const t=aCtx.createBuffer(1,3*aCtx.sampleRate,aCtx.sampleRate),r=t.getChannelData(0);for(let t=0;t<3*aCtx.sampleRate;t++)r[t]=Math.random(-1,1);(gainNode=aCtx.createGain()).connect(aCtx.destination),gainNode.gain.value=0,gainNode.gain.setValueAtTime(1,aCtx.currentTime),(adfl4=aCtx.createBiquadFilter()).type="notch",adfl4.frequency.setValueAtTime(tn22,aCtx.currentTime),adfl4.Q.setValueAtTime(10,aCtx.currentTime),adfl4.connect(gainNode),(adfl=aCtx.createBiquadFilter()).type="lowpass",adfl.frequency.setValueAtTime(2e4,aCtx.currentTime),adfl.Q.setValueAtTime(.01,aCtx.currentTime),adfl.connect(adfl4),(adfl2=aCtx.createBiquadFilter()).type="notch",adfl2.frequency.setValueAtTime(22e3,aCtx.currentTime),adfl2.Q.setValueAtTime(.01,aCtx.currentTime),adfl2.connect(adfl),(adfl3=aCtx.createBiquadFilter()).type="highpass",adfl3.frequency.setValueAtTime(tn19,aCtx.currentTime),adfl3.Q.setValueAtTime(.01,aCtx.currentTime),adfl3.connect(adfl2),(wns=aCtx.createBufferSource()).buffer=t,wns.connect(adfl3),wns.loop=!0}}function keyPressed(){"c"!=key&&"C"!=key||(t49=!t49),"s"!=key&&"S"!=key||save(tokenData.hash+".png"),"ArrowUp"==key&&flve++,"ArrowDown"==key&&flve--,5<(flve=flve<1?1:flve)&&(flve=5)}function mousePressed(){first&&(first=!1,generateNoise(),wns.start())}function mouseReleased(){}
// I dedicate this work to my uncle, Yoshihiro Tanimoto.
// In 1993, when I was 10 years old, he showed me his Macintosh LC 520, which changed my life and shaped who I am today. He has Parkinson's disease and esophageal cancer and now refuses life-prolonging treatment. He is told he has only a few months to live. I pray that his soul will depart in peace.
//
// I thank everyone at ArtBlocks from the bottom of my heart. It really is a great platform. I was truly excited when I discovered ArtBlocks and secretly vowed to give it my all. I could not have done this work if it were not for ArtBlocks. I would like to thank sross and madpinney for always being so encouraging and kind to me.
//
// I always give my utmost thanks to my wife and daughter.
//
//
// Kazuhiro Tanimoto Feb. 11, 2023
When I started using a computer, I believed that digital data could be stored forever. I saved my favorite picture files and small free software files to floppy disks with a capacity of roughly 1 megabyte and stored them carefully. Those floppy disks were my treasure. Later, when the disks deteriorated and became unreadable or were lost, the data became memories with a deep feeling of loss.
Blockchains have arisen. Are these truly persistent?
After all, digital data are also a type of memories. They are stored in a person's mind, deteriorate, and one day will be lost with that person.
I find the fragility and beauty in them.
In this work, I attempted to represent a fictional collapsed blockchain world with visuals and sound.
The chain has already been abandoned, and the few nodes that remain barely alive are just maitaining their appearances. Visualizing the remnants of blocks that no longer serve their original purpose, they form something like a submerged city. Then, a large amount of data that has lost its connection to the blocks and has deteriorated to the point that it can no longer be opened, flutters through the sky. The countless remnants of data form a cloud, which undulates like a wave. The details of the data cannot be confirmed, however, they can be seen as glittering lights. As I try to recall the contents of the data that can no longer be opened, I am filled with vague memories and a sense of nostalgia.
This work started with generating sound by code. The sound of rippling waves can be heard by clicking on the screen. Since it would be impractical to store huge sound data on the blockchain, the sound was formed from white noise. In order to reproduce the sound of rippling waves, it was necessary to deepen my understanding of the structure of the sound by referring to academic papers. Then the sound was completed, and the visual imagination expanded from there.
I like to visit the sea near my home and in other places. Different seascapes can be seen from different locations and angles. When I am there, idly gazing at the seascape and listening to the sound of the waves, I sometimes feel as if I am the only human there and the world has gone to ruin. If the world were ruined, this seascape and the sound of the waves would remain for a long time. This feeling and the fragility felt in digital data are the basis of this work. I imagine that the heaven or the graveyard where the lost data flies up in the sky and arrives may be a seascape like this.
The reason why I used data as lights and clouds drifting in the sky and moved them like waves is because I wanted to depict unrealistic behavior with a realistic subject matter and to express a beautiful and bizarre world in which these intertwine.
For the visual expression technique, I further pursued and evolved the drawing system that I have developed in "GHOST IN THE CODE" and my other works. Everything is composed of rectangles, indicating that this world is beginning to become low-resolution. Depth is linked to the size of the rectangles, and distant objects are represented by small rectangles as if they were in focus. Dispersion in the position and color of the rectangles indicate the degree of deterioration of the world. Moreover, the sky, blocks, and the surface of the water are identified and each has its own characteristics.
Algorithms generate various compositions, colors, and other features. I have attempted to make each output feel nostalgic and fresh at the same time. The blocks, which have lost their original meaning, are contrasted with the data, which exists in isolation from them, in stillness and movement. Occasional red clouds or blocks mean that they are corrected as red, the first color, due to missing information.
Through these integrations, I have attempted to create a work that can be stored on a blockchain, and that is both visually and sonically interactive.
[NOTE]
-To save the image press the 'S' key.
-To change the flow velocity press the '↑' or '↓' key.
Modern hardware and browser hardware acceleration is recommended. The Chrome browser on a desktop with a high-end GPU is optimal. On iOS, the best experience is available on iOS 15 or later.
Wabi-sabi, an ancient Japanese aesthetic sense, refers to finding beauty in imperfect and lonely things.
Life is irrational and ephemeral.
Peace and happiness are illusory, built on a fragile balance.
Wabi-sabi is an immersion of the quality of loneliness within ourselves that accepts various nuances to be beautiful, through a sophisticated lens.
This work attempts to store the compelling concept of Wabi-sabi on the blockchain as the code dynamically generates brushstrokes based on motifs of Shodo (Japanese calligraphy)
Wabi-sabi begins with a deliberate movement in which an ink-soaked brush is plopped down onto the paper, causing the ink to splatter.
Thereafter, a unique algorithm assists in drawing brushstrokes.
The various forms that emerge from the balance of lines that are straight or curved, regular or irregular, strong or slight, complex or delicate, with varying speeds analogize a person’s will through the brushstrokes. The bleeding, scratching, and splattering of ink lend the modelling even more complexity. Wabi-sabi does not impose precision in creating Shodo strokes. You may notice how the colors always bleed in the same direction, which is impossible to generate in our physical reality. This is because even if the brush is impregnated with multiple hues of ink, the bristles rotate as the brushstrokes are drawn. It may also generate three-dimensional patterns, a feature that is absent in physical practice, offering the impression of depth, as if brushstrokes were drawn arbitrarily in space. This is achieved by controlling the focus.
A key feature of each artwork is that it can be edited. A piece of art is usually completed by the artist and presented to the viewer. I intended to make this work as imperfect as the concept of Wabi-sabi, which can be infinitely edited by the viewer. This is impossible with conventional NFTs, with generated image data uploaded to a server. Such is the luxury in art created with on-chain generative art by code.
For each composition, the blank space as the foreground and background is a conscious and elemental choice in this work.
Wabi-sabi is to accept the lacking. Some artworks can have much of the space as blank, which may seem odd but is consistent with the narrative. Digitally native art often takes full advantage of the computing power to lay out complex patterns across the entire canvas. Wabi-sabi is minimal as a contemporary take on that trend. Through the bleeding and scratching of ink in each brushstroke along with the blank space represented in this work, we welcome imperfection. Conceptually, contrasts between movement and stillness, strength and weakness, audacity and delicacy, complexity and simplicity, vividness and fadedness reveal a melancholic beauty.
The search for beauty through imitation and slight modification, and the exploration of the techniques used to create traditional or innovative shapes, is akin to the training in Shodo.
Simply said, you cannot do it well the first time. The Japanese word for Shodo ("do") means "road". It is by travelling down the long road involving hours of training and exploration, that the sensitive concept of Wabi-sabi may be understood.
The underlying intention is to facilitate partaking in the process of the artist's exploration. The viewer is the artist and the artist is the viewer, sharing a sense of camaraderie that lives forever on the blockchain
[NOTE]
-Move the mouse over the left edge of the canvas and press the Edit button.
-To edit, press the ‘S’ key
-To save the image press the ‘R’ key.
-To redraw, modern hardware and browser hardware acceleration is recommended. The Chrome browser on a desktop with a high-end GPU is optimal. On iOS, the best experience is available on iOS 12 or later.
Wabi-sabi, an ancient Japanese aesthetic sense, refers to finding beauty in imperfect and lonely things.
Life is irrational and ephemeral.
Peace and happiness are illusory, built on a fragile balance.
Wabi-sabi is an immersion of the quality of loneliness within the self that accepts these things as beautiful with a sense of maturity.
This work attempts to store the compelling concept of Wabi-sabi on the blockchain as the code dynamically generates brushstrokes based on motifs of Shodo (Japanese calligraphy)
Wabi Sabi begins with a daring movement in which an ink-soaked brush is plopped down onto the paper, causing the ink to splatter.
Thereafter, a unique algorithm assists in drawing brushstrokes.
The various shapes that emerge from the balance of lines that are straight or curved, regular or irregular, strong or slight, complex or delicate, with varying speeds analogizes a person’s will in the brushstrokes. The bleeding, scratching, and splattering of ink lend the modelling even more complexity. Wabi-Sabi doesn’t impose precision in creating Shodo strokes. You may notice how the colors always bleed in the same direction, which is impossible to generate in our physical reality. This is because even if the brush is impregnated with multiple hues of ink, the bristles rotate as the brushstrokes are drawn. It may also generate three-dimensional patterns, a feature that is absent in physical practice, offering the impression of depth, as if brushstrokes were drawn arbitrarily in space. This is achieved by controlling the focus.
The blank space for the foreground and background is an important element in this work. Wabi-sabi is to accept the lacking. Some artworks can have a majority of the space as blank, which may seem odd but is consistent with the narrative. Digitally native art often takes full advantage of the computing power to lay out complex patterns across the entire canvas. Wabi Sabi is minimal as a contemporary take on that trend. Through the bleeding and scratching of ink in each brushstroke along with the blank space represented in this work, we welcome imperfection. Conceptually, contrasts between movement and stillness, strength and weakness, audacity and delicacy, complexity and simplicity, vividness and fadedness reveal a sad beauty.
A key feature of each artwork is that it can be edited. A piece of art is usually completed by the artist and presented to the viewer. I intended to make this work as imperfect as the concept of Wabi-sabi, which can be infinitely edited by the viewer. This is impossible with conventional NFTs, with generated image data uploaded to a server. Such is the luxury in art created with on-chain generative art by code.
The search for beauty through imitation and slight modification, and the exploration of the techniques used to create traditional or innovative shapes, is akin to the training in Shodo.
Simply said, you cannot do it well the first time. The Japanese word for Shodo ("do") means "road". It is by travelling down the long road involving hours of training and exploration, that the sensitive concept of Wabi-sabi may be understood.
The underlying intention is about partaking in the process of the artist's exploration. The viewer is the artist and the artist is the viewer, sharing a sense of camaraderie that lives forever on the blockchain.
[NOTE]
Move the mouse over the left edge of the canvas and press the Edit button.
To edit, press the ‘S’ key and to save the image press the ‘R’ key.
To redraw, modern hardware and browser hardware acceleration is recommended. The Chrome browser on a desktop with a high-end GPU is optimal. On iOS, the best experience is available on iOS 12 or later.
Wabi-sabi, an ancient Japanese aesthetic sense, refers to finding beauty in imperfect and lonely things.
Life is irrational and ephemeral.
Peace and happiness are illusory, built on a fragile balance.
Wabi-sabi is a immersion of the quality of loneliness within the self that accepts these things as beautiful with a sense of maturity.
This work attempts to store the compelling concept of Wabi-sabi on the blockchain as the code dynamically generates brushstrokes based on motifs of Shodo (Japanese calligraphy)
Wabi Sabi begins with a daring movement in which an ink-soaked brush is plopped down onto the paper, causing the ink to splatter.
Thereafter, a unique algorithm assists in drawing brushstrokes.
The various shapes that emerge from the balance of lines that are straight or curved, regular or irregular, strong or slight, complex or delicate, with varying speeds analogizes a person’s will in the brushstrokes. The bleeding, scratching, and splattering of ink lend the modelling even more complexity. Wabi-Sabi doesn’t impose precision in creating Shodo strokes. You may notice how the colors always bleed in the same direction, which is impossible to generate in our physical reality. This is because even if the brush is impregnated with multiple hues of ink, the bristles rotate as the brushstrokes are drawn. It may also generate three-dimensional patterns, a feature that is absent in physical practice, offering the impression of depth, as if brushstrokes were drawn arbitrarily in space. This is achieved by controlling the focus.
The blank space for the foreground and background is an important element in this work. Wabi-sabi is to accept the lacking. Some artworks can have a majority of the space as blank, which may seem odd but is consistent with the narrative. Digitally native art often takes full advantage of the computing power to lay out complex patterns across the entire canvas. Wabi Sabi is minimal as a contemporary take on that trend. Through the bleeding and scratching of ink in each brushstroke along with the blank space represented in this work, we welcome imperfection. Conceptually, contrasts between movement and stillness, strength and weakness, audacity and delicacy, complexity and simplicity, vividness and fadedness reveal a sad beauty.
A key feature of each artwork is that it can be edited. A piece of art is usually completed by the artist and presented to the viewer. I intended to make this work as imperfect as the concept of Wabi-sabi, which can be infinitely edited by the viewer. This is impossible with conventional NFTs, with generated image data uploaded to a server. Such is the luxury in art created with on-chain generative art by code.
The search for beauty through imitation and slight modification, and the exploration of the techniques used to create traditional or innovative shapes, is akin to the training in Shodo.
Simply said, you cannot do it well the first time. The Japanese word for Shodo ("do") means "road". It is by travelling down the long road involving hours of training and exploration, that the sensitive concept of Wabi-sabi may be understood.
The underlying intention is about partaking in the process of the artist's exploration. The viewer is the artist and the artist is the viewer, sharing a sense of camaraderie that lives forever on the blockchain.
[NOTE]
Move the mouse over the left edge of the canvas and press the Edit button.
To edit, press the ‘S’ key and to save the image press the ‘R’ key.
To redraw, modern hardware and browser hardware acceleration is recommended. The Chrome browser on a desktop with a high-end GPU is optimal. On iOS, the best experience is available on iOS 12 or later.
Wabi-sabi is one of the ancient Japanese aesthetic senses, which is to find beauty in imperfect and lonely things.
Current life is irrational and ephemeral. Peace and happiness are like a momentary illusion built on a fragile balance. Wabi-sabi is a conversion of the quality of loneliness within the self that accepts these things as beautiful with a sense of maturity.
This work attempts to store the complex concept of Wabi-sabi on the blockchain. Directly, the code dynamically generates brushstrokes based on motifs of Shodo, Japanese calligraphy.
Wabi Sabi begins with a daring movement in which an ink-soaked brush is shaken down onto the paper, causing the ink to splatter. From there, a unique algorithm is used to draw the brushstrokes. The various shapes that emerge from the balance of straight and curved lines, regular and irregular, strong and slight, complex and delicate, and the change in speed makes it seem as if a person's will is in the brushstrokes. At this time, the bleeding, scratching and splattering of ink give the modeling even more complexity. On the other hand, Wabi Sabi is not only trying to recreate Shodo strokes with precision. You will notice that the colors always bleed in the same direction. It is impossible to generate this appearance in reality. This is because even if the brush is impregnated with multiple colors of ink, the brush will rotate as it draws the brushstrokes. It may also generate three-dimensional patterns that are impossible in reality and give the impression of depth, as if brushstrokes were drawn in space. This is achieved by controlling the focus.
The blank spaceare is an important element in this work. Wabi-sabi is to accept the lacking. Some mints may have 90% of the blank space. This may seem odd to be some people. Digital art often takes full advantage of the calculating power of the computer to lay out complex patterns across the entire canvas. Wabi Sabi is minimal in comparison to these pieces.
Each of the brushstrokes, the bleeding and scratching of ink, and the blank space represented in this work is imperfect. However, the contrasts between movement and stillness, strength and weakness, audacity and delicacy, complexity and simplicity, vividness and fadedness reveal a sad beauty.
There is another important feature of this work. It can be edited. A artwork is usually completed by the artist and presented to the viewer. I wanted to make this work as imperfect as the concept of Wabi-sabi, which can be infinitely edited by the viewer. This is not possible with conventional NFT, which uploads the generated image data to a server, and is only possible with on-chain generative art by code.
The search for beauty through imitation and slight modification, and the exploration of the techniques used to create traditional or innovative shapes, is similar to the training in Shodo. In other words, you can't do it well at first. The Japanese word for Shodo, "do", means "road". It is a long road. With long training and exploration, the sensitive concept of Wabi-sabi may be understood.
More broadly, this is also about reliving the process of the artist's exploration. The viewer is the artist and the artist is the viewer.
I wanted to store the work on the blockchain.
[NOTE]
Mouse over the left edge of the canvas and press the Edit button to edit
S key to save image
R key to redraw
Modern hardware and browser hardware acceleration recommended. Chrome on a desktop with a high-end GPU is optimal. If you are on iOS, for the best experience, view in iOS 12 or later.
Wabi-sabi is one of the ancient Japanese aesthetic senses, which is to find beauty in imperfect and lonely things.
Current life is irrational and ephemeral. Peace and happiness are like a momentary illusion built on a fragile balance. Wabi-sabi is a conversion of the quality of loneliness within the self that accepts these things as beautiful with a sense of maturity.
This work attempts to store the complex concept of Wabi-sabi on the blockchain. Directly, the code dynamically generates brushstrokes based on motifs of Shodo, Japanese calligraphy.
Wabi Sabi begins with a daring movement in which an ink-soaked brush is shaken down onto the paper, causing the ink to splatter. From there, a unique algorithm is used to draw the brushstrokes. The various shapes that emerge from the balance of straight and curved lines, regular and irregular, strong and slight, complex and delicate, and the change in speed makes it seem as if a person's will is in the brushstrokes. At this time, the bleeding, scratching and splattering of ink give the modeling even more complexity. On the other hand, Wabi Sabi is not only trying to recreate Shodo strokes with precision. You will notice that the colors always bleed in the same direction. It is impossible to generate this appearance in reality. This is because even if the brush is impregnated with multiple colors of ink, the brush will rotate as it draws the brushstrokes. It may also generate three-dimensional patterns that are impossible in reality and give the impression of depth, as if brushstrokes were drawn in space. This is achieved by controlling the focus.
The blank spaceare is an important element in this work. Wabi-sabi is to accept the lacking. Some mints may have 90% of the blank space. This may seem odd to be some people. Digital art often takes full advantage of the calculating power of the computer to lay out complex patterns across the entire canvas. Wabi Sabi is minimal in comparison to these pieces.
Each of the brushstrokes, the bleeding and scratching of ink, and the blank space represented in this work is imperfect. However, the contrasts between movement and stillness, strength and weakness, audacity and delicacy, complexity and simplicity, vividness and fadedness reveal a sad beauty.
There is another important feature of this work. It can be edited. A artwork is usually completed by the artist and presented to the viewer. I wanted to make this work as imperfect as the concept of Wabi-sabi, which can be infinitely edited by the viewer. This is not possible with conventional NFT, which uploads the generated image data to a server, and is only possible with on-chain generative art by code.
The search for beauty through imitation and slight modification, and the exploration of the techniques used to create traditional or innovative shapes, is similar to the training in Shodo. In other words, you can't do it well at first. The Japanese word for Shodo, "do", means "road". It is a long road. With long training and exploration, the sensitive concept of Wabi-sabi may be understood.
More broadly, this is also about reliving the process of the artist's exploration. The viewer is the artist and the artist is the viewer.
I wanted to store the work on the blockchain.
[NOTE]
Mouse over the left edge of the canvas and press the Edit button to edit
S key to save image
R key to redraw
Modern hardware and browser hardware acceleration recommended. Chrome on a desktop with a high-end GPU is optimal. If you are on iOS, for the best experience, view in iOS 12 or later.
This work is the product of a project to dwell undeletable souls on the blockchain. A system that generates human faces with different personalities and expressions from a minimum of code. After determining the personality from a hash, the face continues to change into various expressions. It is a living portrait, a fragment of minter's soul, forever adrift in the vast net.
Living organisms are coded by a sequence of the four bases in DNA, and a human DNA is composed of 3 billion base pairs. This is about 750 MB of information. And the difference in code between individual people is only 0.1%, or 750 KB. This slight difference creates all kinds of differences in appearance and physical functions. This is quite astonishing to our ordinary senses.
However, if we are surprised by this fact, we need to suspect our senses.
I was interested in these points and explored what are the elements by which people identify the faces and facial expressions of others, how little code can create personality and emotion, and conversely, to what extent can an observer identify personality and facial expressions. As a result, I succeeded in expressing the personalities, emotions, and complex feelings of various people with 14 KB of code.
We like to think of humans are supernatural and one-of-a-kind. This is a common background to the past, when many people favored the Ptolemaic theory.
However, this work leads us to suspect that we humans are only a program that can be coded.
Then, what is the essential difference between a code written in DNA and a code written in programming language? I believe the only difference is whether the execution space is real or digital space. Is it a prerequisite for the existence of the soul to operate an organic computer in real space? It is merely a medium.
This is not meant to be pessimistic, such as we are mere code, the soul does not exist and is an illusion, a mere electrical signal in the brain.
Rather, the soul, the function that makes us aware of our existence, makes us think, causes us to emotion, and makes us act, certainly dwells in the code.
I store this code on the blockchain, thereby spreading undeletable ghosts on the vast net forever.
In this work, the ghost is output on the net by minting. This act is part of the work. The personality of the ghost is also determined by the hash owned by the minter. In other words, the ghost output by you from the code on the blockchain is a fragment of your soul on the net.
[NOTES]
Press C to turn canvas on/off
Press S to save image