Transaction d16726aa2c2e6bc3ec20777fceb40058b1d25b9de5837b2662c5cdfca92b65c0
1 Input
-
03c5297327c235d964fe066aeb1d92573bd836b46cf603929be2e22cc45bb75b:0
OP_DATA_32(32) 93f529d7b3d7ba34585439501c3be4ffe797e66467614020d6013f919380e0b3OP_CHECKSIG(172)OP_0(0)OP_IF(99)OP_DATA_3(3) ordOP_DATA_1(1)OP_DATA_23(23) text/html;charset=utf-8OP_0(0)OP_PUSHDATA2(77) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Spring</title> <script type="text/javascript"> (function(global){ var module=global.noise={}; function Grad(x, y, z) {this.x=x;this.y=y;this.z=z;} Grad.prototype.dot2 = function(x,y){return this.x*x+this.y*y;}; Grad.prototype.dot3=function(x,y,z){return this.x*x+this.y*y+this.z*z;}; var grad3 = [new Grad(1,1,0),new Grad(-1,1,0),new Grad(1,-1,0),new Grad(-1,-1,0), new Grad(1,0,1),new Grad(-1,0,1),new Grad(1,0,-1),new Grad(-1,0,-1), neOP_PUSHDATA2(77) w Grad(0,1,1),new Grad(0,-1,1),new Grad(0,1,-1),new Grad(0,-1,-1)]; var p = [151,160,137,91,90,15, 131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23, 190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33, 88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166, 77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244, 102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196, 135,130,116,188,159,86,164,100,109OP_PUSHDATA2(77) ,198,173,186,3,64,52,217,226,250,124,123, 5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42, 223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9, 129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228, 251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107, 49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254, 138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180]; var perm=new Array(51OP_PUSHDATA2(77) 2); var gradP=new Array(512); module.seed=function(seed){ if(seed>0&&seed<1){seed*=65536} seed=Math.floor(seed); if(seed<256){seed|=seed<<8} for(var i=0;i<256;i++){ var v; if(i&1){v=p[i]^(seed&255); }else{v=p[i]^((seed>>8) & 255);} perm[i]=perm[i+256]=v; gradP[i]=gradP[i+256]=grad3[v%12]; } }; module.seed(0); function fade(t){return t*t*t*(t*(t*6-15)+10);} function lerp(a, b, t) {return (1-t)*a + t*b;} module.perlin2=function(x,y){ var X=Math.floor(x),Y=Math.floor(y); x=x-X;y=y-Y; X=X&255;Y=Y&25OP_PUSHDATA2(77) 5; var n00=gradP[X+perm[Y]].dot2(x,y); var n01=gradP[X+perm[Y+1]].dot2(x,y-1); var n10=gradP[X+1+perm[Y]].dot2(x-1,y); var n11=gradP[X+1+perm[Y+1]].dot2(x-1,y-1); var u=fade(x); return lerp(lerp(n00,n10,u),lerp(n01,n11,u),fade(y)); }; })(this); </script> <script id="snippet-random-code" type="text/javascript"> let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.seOP_PUSHDATA2(77) arch).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; } else { let pattern="seed="; for(let i=0;i<seed.length-pattern.length;++i){ if(seed.substring(i,i+pattern.length)==pattern){ seed=seed.substring(i+pattern.length); break; }}} function cyrb128($) { let _ =1779033703,u=3144134277,i=1013904242,l=2773480762; for (let n=0,r;n<$.length;n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.iOP_PUSHDATA2(77) mul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] } function sfc32($, _, u, i) { return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0OP_PUSHDATA2(77) ) | 0, (l >>> 0) / 4294967296 } } let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin:0px;}</style> </head> <body> <canvas id="target"></canvas> <script type="text/javascript"> const rd1=mathRand(),rd2=mathRand(),rd3=mathRand(),rd4=mathRand(); let sqpix,cp,tex=true,wrm=false,blm=true,spk=true,tip=0.3,twt=false; function T1(rd) { if(rd<0.1){cp=1;return"Heath";} if(rd<0.2){cp=2;return"Sakura";} if(rd<0.3){cp=3;return"Flash";} if(rd<0.4){cp=4;return"Rock";} if(rd<0.45){cp=5;return"Mono"OP_PUSHDATA2(77) ;} if(rd<0.55){cp=6;return"Lilac";} if(rd<0.6){cp=7;return"Frost";} if(rd<0.65){cp=8;return"Bark";} if(rd<0.75){cp=9;return"Flame";} if(rd<0.8){cp=10;return"Heather";} if(rd<0.9){cp=11;return"Shoots";}cp=0;return"Saint";} function T2(rd) {if(rd<0.7){return"twist";}wrm=true;return"stick"} function T3(rd) { if(rd<0.7){return"full";} if(rd<0.8){spk=false;return"slim";} if(rd<0.9){tex=false;return"smooth";} if(rd<0.5){twt=true;return"tangle";} spk=false;blm=false;return"clean"} function T4(rd) { if(rd<0.OP_PUSHDATA2(77) 25){tip=0.14;return"top";} if(rd<0.5){tip=0.3;return"normal";} if(rd<0.75){tip=0.4;return"ext";} tip=0.6;return"long" } window.$generativeTraits={"Pallet":T1(rd1),"Stem":T2(rd2),"Growth":T3(rd3),"Tip":T4(rd4)} const container=document.createElement("div") container.innerHTML="<span>seed: "+seed+"</span><br>"; var ratio=0.707; let resizeTmr=null,aniFrame=null; let ofw,ofh,sz,rz=1,gi=0,gj=0,gf=0,drawphase=0,ux,uy,ac=[],nm=[],nm2=[]; let pnw=30,pnh=40,setupmap=false,bcol,hist=0,lost=100,grn=true; const iniOP_PUSHDATA2(77) t = async () => { window.addEventListener('resize',async()=>{ clearTimeout(resizeTmr) resizeTmr = setTimeout(async()=>{ await layoutCanvas() }, 100) }) await layoutCanvas() } const layoutCanvas = async () => { const wWidth=window.innerWidth const wHeight=window.innerHeight if(sqpix>0)ratio=1; let cHeight=wHeight; let cWidth=cHeight*ratio; if(cWidth>wWidth){cWidth=wWidth;cHeight=cWidth/ratio;} drawphase=0;gi=0;gj=0;gf=0; const canvas=document.getElementById('target') canvas.width=2000*rz; canvas.hOP_PUSHDATA2(77) eight=(2000*rz)/ratio; canvas.style.position='absolute' canvas.style.width=`${cWidth}px` canvas.style.height=`${cHeight}px` canvas.style.left=`${(wWidth-cWidth)/2}px` canvas.style.top=`${(wHeight-cHeight)/2}px` ofw=canvas.width; ofh=canvas.height; sz=ofw/1000; drawCanvas() } const drawCanvas = async () => { if(!setupmap)setupart(); if(aniFrame)window.cancelAnimationFrame(aniFrame) const canvas=document.getElementById('target') const ctx=canvas.getContext('2d') ux=Math.floor(Math.floor(ofw/100*70)/pnOP_PUSHDATA2(77) w); uy=Math.floor(Math.floor(ofh/100*80)/pnh); let opx=ofw*0.15; let opy=ofh*0.15; if(drawphase==2){ ctx.globalAlpha=0.02; let bx=ofw/500,by=ofh/500; if(grn)for(let f=10;f<20;f++){ for(let i=0;i<500;i++){ dl(ctx,bx*i+ri(3)*sz,by*gj,bx*i+ri(30)*sz,by*gj,'white',1*sz) dl(ctx,bx*i,by*gj+ri(3)*sz,bx*i,by*gj+ri(30)*sz,'#323205',1*sz)} gj++;} if(gj>500){drawphase=3;gj=0;}} if(drawphase==1){ for(gi=0;gi<pnw;gi++){ let hei=(nm[gi][gj]*100)*sz; let st=nm[gi][gj]; let ccb,ax1,ay1,ax2,ay2,ox=opx+(ux*gi)+(ux*gOP_PUSHDATA2(77) f),oy=opy+((uy)*gj); if(st>1.2&&st<1.25){ccb=ac[1];ax1=ox-ux*5;ay1=oy+uy*10;ax2=ox+ux*5;ay2=oy+ofh-ux*10;} if(st>1.25&&st<1.26){ccb=ac[2];ax1=ox+ux*25;ay1=oy+uy*5;ax2=ox-ux*25;ay2=oy+ofh-uy*5;} if(st>1.26&&st<1.3){ccb=ac[3];ax1=ox-ux*12;ay1=oy+uy*22;ax2=ox+ux*13;ay2=oy+ofh-uy*22;} if(st>1.3&&st<1.4){ccb=ac[4];ax1=ox-ux*13;ay1=oy+uy*20;ax2=ox+ux*12;ay2=oy+ofh-uy*20;} if(st>1.4){ccb=ac[0];ax1=ox-ux*5;ay1=oy+uy*10;ax2=ox+ux*5;ay2=oy+ofh-uy*10;} if(twt){ax1=ox-ux*rir(-11,12);ay1=oy+uy*rir(-10,20);ax2=ox+ux*rir(-1OP_PUSHDATA2(77) 2,12);ay2=oy+ofh-uy*rir(10,20);} ctx.lineCap="round"; if(st>1.2)gbez(ox,oy-hei,ax1,ay1,ax2,ay2,ofw/2,oy+ofh,ccb,ac[5],bcol,tip,ux,ctx,false) if(st>hist)hist=st; if(st<lost)lost=st; }gj++;if(gj>pnh){ gj=0;gi=0;gf=0;drawphase=2;}} if(drawphase==0){ mathRand=sfc32(...cyrb128(seed)); bcol="#EDECE0";if(ri(100)>50)bcol="#303030";ctx.fillStyle=bcol;ctx.fillRect(0,0,ofw,ofh); drawphase=1;} ctx.restore() aniFrame = window.requestAnimationFrame(drawCanvas) } const autoDownloadCanvas = async () => { const elemenOP_PUSHDATA2(77) t = document.createElement('a') element.setAttribute('download', `Spring-${ofw}x${ofh}-${seed}`) element.style.display = 'none' document.body.appendChild(element) let imageBlob=null imageBlob=await new Promise(resolve=>document.getElementById('target').toBlob(resolve,'image/png')) element.setAttribute('href',window.URL.createObjectURL(imageBlob,{ type:'image/png' })) element.click() document.body.removeChild(element) } document.addEventListener('keypress',async(e)=>{ e = e || window.event let rd=falseOP_PUSHDATA2(77) ; if(e.key==='s')autoDownloadCanvas() if(e.key==='h'){rz++;if(rz>5)rz=1;rd=true;} if(e.key==='g'){if(grn)grn=false;else grn=true; rd=true;} if(rd){drawphase=0;gi=0;gj=0;gf=0;await layoutCanvas()} }) function drawEllipse(x,y,rx,ry,fill,st,sw,ctx) { ctx.beginPath() ctx.ellipse(x,y,rx,ry,0,0,2*Math.PI); if (fill) {ctx.fillStyle=fill;ctx.fill();} if (sw>0) {ctx.lineWidth=sw;ctx.strokeStyle=st;ctx.stroke();}} function gbez(x1,y1,x2,y2,x3,y3,x4,y4,c1,c2,c3,ct,width,ctx,branch) { let t=0,bp,cc,lx=x1,ly=y1,ct1OP_PUSHDATA2(77) =0,ct2=0,step=0.001; if(branch)step=0.01; let cs1=step/ct,cs2=step/(1-ct); ctx.globalAlpha=0.8; while(t<1) { bp=bezierpoint(t,x1,y1,x2,y2,x3,y3,x4,y4); if(t<ct){ cc=lerpcol(c1,c2,ct1); ct1+=cs1;} else { cc=lerpcol(c2,c3,ct2); ct2+=cs2;} let n =noise.perlin2(lx*t,ly*t); let wd=width*n; if(wrm)wd=width*(1-t); if(tex){ctx.globalAlpha=0.2;dl(ctx,lx+(2*sz),ly-(2*sz),bp.x+(2*sz),bp.y-(2*sz),'white',wd);} if(!branch && ri(100)>95){ bd=sz; if(ri(100)>50) bd=-sz; if(spk) gbez(lx,ly,lx-(20*bd),ly-(20*sz),lOP_PUSHDATA2(77) x-(40*bd),ly-(50*sz),lx-rir(40,80)*bd,ly-(rir(40,100)*sz),cc,c2,c3,0.7,width/4,ctx,true)} if(blm&&ri(100)>97){ for(let l=0;l<20;l++) { ctx.translate(lx,ly);ctx.rotate(rrf(-3.14,3.14)); drawEllipse(-10*sz,0,10*sz,3*sz, c1,c2,0,ctx); ctx.setTransform(1, 0, 0, 1, 0, 0); } } ctx.globalAlpha=0.8;dl(ctx,lx,ly,bp.x,bp.y,cc,wd); let sn=Math.floor(wd/2);if(sn<1)sn=1; ctx.globalAlpha=0.2; if(tex)drawEllipse((lx+bp.x)/2+rir(-sn,sn),(ly+bp.y)/2+rir(-sn,sn),ri(sn),ri(sn),bcol,bcol,0,ctx); lx=bp.x;ly=bp.y; t+=step;OP_PUSHDATA2(77) } } function bezierpoint(t, x0,y0,x1,y1,x2,y2,x3,y3){ var cX=3*(x1-x0),bX=3*(x2-x1)-cX,aX=x3-x0-cX-bX; var cY=3*(y1-y0),bY=3*(y2-y1)-cY,aY=y3-y0-cY-bY; var x=(aX*Math.pow(t,3))+(bX*Math.pow(t,2))+(cX*t)+x0; var y=(aY*Math.pow(t,3))+(bY*Math.pow(t,2))+(cY*t)+y0; return {x:x,y:y};} function lerpcol(c1,c2,t){ let rc1=hex_to_RGB(c1); let rc2=hex_to_RGB(c2); let nr=mlerp(rc1.r,rc2.r,t); let ng=mlerp(rc1.g,rc2.g,t); let nb=mlerp(rc1.b,rc2.b,t); let nh=rgbToHex(Math.floor(nr),Math.floor(ng),Math.floor(nb))OP_PUSHDATA2(77) ; return nh;} function mlerp(a,b,alp){return a+alp*(b-a)} function hex_to_RGB(hex){ var m=hex.match(/^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})$/i); return{r:parseInt(m[1],16),g:parseInt(m[2],16),b:parseInt(m[3],16)};} function componentToHex(c){var hex=c.toString(16);return hex.length==1?"0"+hex:hex;} function rgbToHex(r,g,b){return "#"+componentToHex(r)+componentToHex(g)+componentToHex(b);} function dl(ctx,lx,ly,ex,ey,st,ww) { if(st){ctx.strokeStyle=st;} if(ww){ctx.lineWidth=ww;} ctx.beginPath();ctx.moveTOP_PUSHDATA2(77) o(lx,ly);ctx.lineTo(ex,ey);ctx.stroke();} function setupart(){ if(setupmap)return; mathRand = sfc32(...cyrb128(seed)); setupmap=true; if(cp==0)ac=['#F0BEB2','#F25B40','#3A8D3B','#1F5FB3','#355026','#B4CBCA']; if(cp==11)ac=['#4F97BA','#F9E1B5','#BD2C41','#EDC902','#B9BEC0','#704730']; if(cp==1)ac=['#686C22','#633420','#908434','#D3A252','#46460A','#25201E',]; if(cp==2)ac=['#fe87d7','#fc51bc','#f9c607','#dccade','#b384aa','#a59195']; if(cp==3)ac=['#D1C7C5','#F25D34','#8D695D','#AC937F','#BBAB9C','#534845'];OP_PUSHDATA2(77) if(cp==4)ac=['#E4DBBE','#8BB8B3','#D0C19A','#AF799A','#766047','#E6DFC3']; if(cp==5)ac=['#333333','#B8B8B3','#474747','#5A5A5A','#787878','#0A0A0A']; if(cp==6)ac=['#363F50','#48517A','#A6B2C7','#323642','#394A69','#2C2D35']; if(cp==7)ac=['#FFFFFF','#E6E6E4','#343523','#06070A','#636228','#B2B2AD']; if(cp==8)ac=['#706B5C','#606A4D','#5E533D','#6D532F','#A9A18E','#383021']; if(cp==9)ac=['#944645','#F25D34','#433042','#3D1214','#B82E23','#F99A87']; if(cp==10)ac=['#9FA6A4','#77694E','#978465','#B54933','#8493AC'OP_PUSHDATA2(77) ,'#806451']; let m=rrf(0.001,30),nn=rrf(0.001,30),intx=rrf(0.01,0.09),inty=rrf(0.01,0.09); while(m==nn){nn=rrf(0.001,30);} let L=pnw,a=rf(1,2),d=rf(1,2),mult=4 for(let x=0;x<pnw*mult;x+=mult){ nm[Math.floor(x/mult)]=[]; for(let y=0;y<pnh*mult;y+=mult){ var n=noise.perlin2(x*intx,y*inty); nm[Math.floor(x/mult)][Math.floor(y/mult)]=(n*1)+1; if(ri(100)>50){ nm[Math.floor(x/mult)][Math.floor(y/mult)]=a*Math.cos(nn*Math.PI*Math.floor(x/mult)/L)*Math.cos(m*Math.PI*Math.floor(y/mult)/L)-d*Math.cos(m*Math.PI*MathOP_PUSHDATA2(77) .floor(x/mult)/L)*Math.cos(nn*Math.PI*Math.floor(y/mult)/L); nm[Math.floor(x/mult)][Math.floor(y/mult)]=(nm[Math.floor(Math.floor(x/mult)/mult)][Math.floor(y/mult)]+2)/4;} }}} function ri(x){return Math.floor(mathRand()*x);} function rrf(x,y){let nr=(y-x);return(mathRand()*nr) + x;} function rir(x,y){let nr=(y-x);return Math.floor((mathRand()*nr)+x);} function rf(x){return mathRand()*x;} init(); </script> </body> </html>OP_ENDIF(104)
1 Outputs
- d16726aa2c2e6bc3ec20777fceb40058b1d25b9de5837b2662c5cdfca92b65c0:0
value 10000
address bc1pg8hpja4pq3pglqd3pel8tgldysm2kqw6qn90wer0u4qmrzq6plvsvvdz37