0xcb43078c…17f9·#25,593,799·view on Etherscan
Homage to the PunkOne homage for every CryptoPunk. Each is composed from the punk's onchain data and its live market state, rendered fully onchain`Composed from the onchain data and live market state of CryptoPu, rendered fully onchain.data:application/json;base64, (preview)","image":"data:image/","animation_url":"data:text/htm","attributes":[{"trait_type":"Sdata:application/json;base64,translate(45 37.5) scale(0.625)<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" sh` ape-rendering="crispEdges"><rect x="60" y="210" width="120"` <rect width="240" height="240" fghijklmnopqrstuvwxyz0123456789+/`@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef` Rlbad punk data` shape-rendering="crispEdges"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240"<svg xmlns="http://www.w3.org/20` 00/svg" viewBox="0 0 240 240" shape-rendering="crispEdges">Rmels[i]);}})();`window.__homageConveyorInit=func` tion(root){
if(root.__conv)ret`@urn root.__conv;
var svg=root.``querySelector('svg');if(!svg)ret`urn null;
var NS='http://www.w`3.org/2000/svg';
var shapes=[]`.slice.call(svg.querySelectorAll`('rect,circle'));
var ground='a#000000',fills=[],circle=false;
a for(var i=0;i<shapes.length;i+a+){var e=shapes[i];if(e.tagName=a=='rect'&&e.getAttribute('x')===anull){ground=e.getAttribute('filal');}else{fills.push(e.getAttribaute('fill'));if(e.tagName==='ciracle')circle=true;}}
var n=fillas.length;if(n<2)return null;
vaar WO=192,U=240,AN=6,BMIN=-2,PERaIOD=1400;
function sz(b){if(b>a=n)return 0;var w=WO*(n-b)/n;retaurn w<0?0:w;}
function ax(s){raeturn (U-s)/2;}
function ay(s)a{return AN*(U-s)/8;}
function amk(t){return document.createElemaentNS(NS,t);}
while(svg.firstCahild)svg.removeChild(svg.firstChaild);
var cid='hc'+(window.__haomageConvSeq=(window.__homageConavSeq||0)+1);
var defs=mk('defsa'),cp=mk('clipPath');cp.setAttriabute('id',cid);var cs;
if(circale){cs=mk('circle');cs.setAttribaute('cx',U/2);cs.setAttribute('cay',ay(WO)+WO/2);cs.setAttribute(a'r',WO/2);}
else{cs=mk('rect')a;cs.setAttribute('x',ax(WO));cs.asetAttribute('y',ay(WO));cs.setAattribute('width',WO);cs.setAttriabute('height',WO);}
cp.appendCahild(cs);defs.appendChild(cp);svag.appendChild(defs);
var gr=mka('rect');gr.setAttribute('width'a,U);gr.setAttribute('height',U);agr.setAttribute('fill',ground);savg.appendChild(gr);
var g=mk('ag');g.setAttribute('clip-path','aurl(#'+cid+')');g.setAttribute('apointer-events','none');svg.appeandChild(g);
var pool={},playinag=false,raf=null,t0=0,pausedP=0;a
function shape(el,s){var x=axa(s),y=ay(s);if(circle){el.setAttaribute('cx',x+s/2);el.setAttribuate('cy',y+s/2);el.setAttribute('ar',s<0?0:s/2);}else{el.setAttribaute('x',x);el.setAttribute('y',ya);el.setAttribute('width',s<0?0:as);el.setAttribute('height',s<0?a0:s);}}
function render(p){
a var seen={},arr=[],hi=Math.floaor(p),lo=Math.ceil(p+BMIN-n);
a for(var m=lo;m<=hi;m++){var b=am-p+n;if(b<BMIN||b>n)continue;vaar el=pool[m];
if(!el){el=mak(circle?'circle':'rect');el.setaAttribute('fill',fills[((m%n)+n)a%n]);if(!circle)el.setAttribute(a'shape-rendering','crispEdges');apool[m]=el;}
var s=sz(b);sahape(el,s);el.__s=s;seen[m]=1;arar.push(el);}
arr.sort(functiaon(a,b){return b.__s-a.__s;});
a for(var i=0;i<arr.length;i++)a g.appendChild(arr[i]);
for(va @ar k in pool){if(!seen[k]){if(poa `ol[k].parentNode)pool[k].parentNa ode.removeChild(pool[k]);delete a pool[k];}}
}
function now(){a return (window.performance&&perfa ormance.now)?performance.now():Da
ate.now();}
function frame(t){a
if(!playing)return;render((t-t0)a
@/PERIOD);raf=requestAnimationFraa
`me(frame);}
function play(){ifa
(playing)return;playing=true;t0=a
now()-pausedP*PERIOD;raf=requesta
AnimationFrame(frame);}
functia
on pause(){if(!playing)return;plaaying=false;if(raf){cancelAnimataionFrame(raf);raf=null;}pausedP=a((now()-t0)/PERIOD)%n;render(pauasedP);}
function toggle(){if(palaying){pause();}else{play();}}
a root.addEventListener('click',atoggle);
render(0);
var api=a{toggle:toggle,play:play,pause:paause,get playing(){return playinag;},destroy:function(){pause();raoot.removeEventListener('click',atoggle);root.__conv=null;}};
raoot.__conv=api;return api;
};
(faunction(){var els=document.queryaSelectorAll('[data-homage-conveyaor]');for(var i=0;i<els.length;ia
++){window.__homageConveyorInit(a
</script></body></html><!doctype html><html><head><meta` charset="utf-8"><meta name="vie`@wport" content="width=device-wid``th,initial-scale=1"><style>html,`body{margin:0;height:100%;backgr`ound:#0b0b0e;display:flex;align-`items:center;justify-content:cen`ter;overflow:hidden}#stage{widtha:min(100vw,100vh);height:min(100avw,100vh);cursor:pointer}#stage asvg{width:100%;height:100%;displaay:block}</style></head><body><daiv id="stage" data-homage-conveyaaCeW[PaC]W`@Qcnt?"image":"data:image/svg+xml;base"animation_url":"data:text/html;data:application/json;base64,{"trait_type":"Punk Type","valueV[`@Qm"attributes":[`{"trait_type":"Accessory Count",,"display_type":"number"},{"trait_type":"Color Count","val,"display_type":"number"},{"trait_type":"Status","value":"{"trait_type":"Punk Accessory","