0x7f5a0a68…e37csent to0xa7d8d9ef…d270·#13,458,940·view on Etherscan
S=Uint32Array.from([0,1,s=t=2,3].map(i=>parseInt(tokenData.hash.substr(i*8+2,8),16)));R=_=>(t=S[3],S[3]=S[2],S[2]=S[1],S[1]=s=S[0],t^=t<<11,S[0]^=(t^t>>>8)^(s>>>19),S[0]/2**32);'tx piter, you rock :)'
var DEFAULT_SIZE=1024;var DIM=Math.min(window.innerWidth,window.innerHeight)
var M=DIM/DEFAULT_SIZE
let we=Math.floor(R(255)+1);let mW=Math.floor(R(8)+1)*20;let palettes=[[[249,222,89],[232,166,40],[249,131,101],[195,49,36],[161,223,251]],[[30,5,33],[1,11,139],[254,204,80],[11,231,251],[255,109,105]],[[17,16,16],[208,204,209],[233,255,136],[254,10,183],[229,1,133]],[[179,231,220],[166,180,1],[239,246,123],[213,1,2],[108,1,2]],[[36,224,184],[255,204,81],[255,139,118],[255,48,49],[0,123,0]],[[169,67,0],[255,176,0],[91,155,55],[21,61,2],[255,223,0]],[[161,5,50],[255,111,169],[0,183,204],[0,95,129],[255,208,204]],[[246,213,31],[95,165,90],[1,180,188],[250,137,37],[250,84,87]],[[99,26,17],[187,96,47],[203,130,20],[68,64,101],[239,216,131]],[[48,4,61],[142,31,81],[229,64,89],[222,131,127],[253,179,106]],[[10,0,48],[255,251,196],[182,190,246],[53,30,191],[16,1,93]],[[140,7,20],[252,64,124],[27,78,136],[5,8,30],[250,240,228]],[[0,0,63],[1,0,142],[144,1,245],[254,0,234],[255,1,120]],[[8,44,68],[114,234,245],[254,230,226],[255,169,76],[254,44,137]],[[1,99,141],[171,206,204],[255,242,205],[255,0,76],[97,13,75]],[[34,125,172],[68,57,136],[159,0,82],[255,63,32],[255,190,0]],[[129,237,247],[2,116,143],[247,1,16],[110,5,22],[0,164,192]],[[255,254,1],[255,134,6],[232,59,54],[96,5,56],[70,10,64]],[[51,51,51],[204,204,204],[48,48,48],[221,221,221],[0,0,0]],[[215,0,95],[215,215,0],[38,38,38],[175,0,95],[0,255,255]],[[0,0,170],[255,85,255],[255,255,85],[170,0,0],[85,255,255]],[[255,85,85],[85,255,85],[255,255,85],[85,255,255],[85,85,85]],[[0,0,0],[255,85,255],[85,255,255],[255,0,255],[255,255,255]],[[0,0,0],[0,85,0],[0,170,0],[170,0,0],[170,85,0]],[[15,139,141],[168,32,26],[236,154,41],[218,210,216],[20,54,66]]]
let radiations=["vec3(1.,1.,0.)","vec3(1.,0.,0.)","vec3(0.,1.,1.)","vec3(0.,0.,1.)","vec3(1.,0.,1.)","vec3(0.,1.,0.)","vec3(1.,1.,1.)","vec3(0.,0.,0.)","vec3(1.,2.,3.)",]
let rad=gV(radiations)
let cls=rad==="vec3(0.,0.,0.)"?!0:!1;let rbw=rad==="vec3(1.,2.,3.)"?!0:!1;if(rbw){cls=!1}
let pId=Math.floor(R()*palettes.length);let pT=Math.floor(R()*16);let pq=palettes[pId];let rbwS=[`(iF + jF)`,`(iF - jF)`,`(jF - iF)`,`abs(jF - iF)`]
let mwSM=[`mX /= .25;`,`mX /= .5;`,`mX /= 2.;`,`mX /= 4.;`,`mX /= 8.;`,]
let mwS=[`mX = bcSize;`,`mX = bcSize * float(${mW});${gV(mwSM)}`,`mX = bcSize * (abs(jF - (float(bc) / 2.)) + bcSize);`,`mX = bcSize * (abs(iF - (float(vCount) / 2.)) + bcSize);`]
let mwO=[``,`mX = segmentHeight / .25;`,`mX = segmentHeight / .5;`]
let hS=[`0.`,`(segmentHeight / 8.)`,`(segmentHeight / 4.)`]
let hSv=gV(hS);let n=['2.','4.','8.','16.','32.',]
let n2=['.25','.5','2.','4.',]
let wB=[`wd = dis / ${gV(n)};`,`wd = dis * ${gV(n)};`,`wd = (jF + 1.);`,`wd = mX * (jF + 1.);`,`wd = mX * (iF + 1.);`,`wd = (iF + 1.);`,`wd = (iF + 1.) * (jF + 1.);`,`wd = sqrt((iF + 1.) * (jF + 1.));`,`wd = iF - jF;`,`wd = jF - iF;`,`wd = jF + iF;`,]
let wM=[``,`wd *= we * (jF + 1.);`,`wd *= we * (iF + 1.);`,`wd *= sin((jF + 1.) / float(bc));`,`wd *= cos((iF + 1.) / float(vCount));`,`wd *= sin(2. / ${gV(n)}) * dis;`,`wd *= dis;`,`wd += (iF + 1.) * (jF + 1.);`,`wd *= dis2;`]
let wM2=[``,`wd /= we;`,`wd -= dis2;`,`wd -= dis;`,`wd -= xM * yM;`,`wd -= xM;`,`wd -= yM;`,`wd -= sqrt(xM * yM);`,]
let wM3=[``,`wd *= 2.;`,`wd *= 4.;`,`wd *= 8.;`,]
let wMo=[`wd = floor(mod(wd,(mX + 1.)));`,`wd = floor(mod(wd,(mX + 1.) * 2.));`,`wd = floor(mod(wd,(mX + 1.) * 4.));`,`wd = floor(mod(wd,(mX + 1.) * 8.));`]
let fn=[0,128,256,512,768,1024]
let fn1=[4,8,16,32,64]
let f0=[`vec2 focus = vec2(${gV(fn)}., ${gV(fn)}.);`]
let f1=[`vec2 focus2 = vec2(${gV(fn)}., ${gV(fn)}.);`]
let dz=[``,`if (dis < ${gV(fn)}.) {wd = mX;}`,`if (dis > ${gV(fn)}.) {wd = mX;}`,`float aW0 = ${gV(fn)}.;if (dis < aW0 && dis > aW0 - ${gV(fn1)}.) {wd *= 2.;}`,`float aW1 = ${gV(fn)}.;if (dis < aW1 && dis > aW1 - ${gV(fn1)}.) {wd /= 2.;
}`]
let dz2=[``,`if (jF < iF) {wd *= ${gV(n2)};}`,`if (jF > iF) {wd *= ${gV(n2)};}`,`if (jF > ${gV(n)}) {wd /= ${gV(n2)};}`,`if (iF > ${gV(n2)}) {wd /= ${gV(n2)};}`,`if (jF < ${gV(n)}) {wd /= ${gV(n2)};}`,`if (iF < ${gV(n)}) {wd /= ${gV(n2)};
}`]
let aa=[`wd *= 1. - (lineDistance / 512.);`,`wd *= 2. - ((lineDistance / 512.) * 2.);`,`wd *= 4. - ((lineDistance / 512.) * 4.);`,`wd *= 1. - (n < 0.5 ? 4. * n * n * n : 1. - pow(-2. * n + 2., 3.) / 2.);`,`wd *= 1. - (n < 0.5 ? (1. - sqrt(1. - pow(2. * n, 2.))) / 2. : (sqrt(1. - pow(-2. * n + 2., 2.)) + 1.) / 2.);`]
var tz=0;var canDraw=!0;const canvas = document.getElementsByTagName("canvas")[0];canvas.width=DIM;canvas.height=DIM;const gl=canvas.getContext('webgl');let barCounts=[1,4,16,32,64,128]
let barCount=barCounts[Math.floor(R()*barCounts.length)]
let vCounts=[8,16,32,64,128];let vCount=vCounts[Math.floor(R()*vCounts.length)];let oR=(R()*10)>5;if(barCount<16){oR=!1}
let barInit=`
const int bc = ${barCount};
vec3 a[bc];
`;function gV(a){let temp=Math.floor(R()*a.length);return a[temp]}
const positionsData=new Float32Array([1.0,1.0,-1.0,1.0,1.0,-1.0,-1.0,-1.0]);const textureData=new Float32Array([1.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0])
var texture=gl.createTexture();const targetTexture=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,targetTexture);{texBind()}
function texBind(){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,DIM,DIM,0,gl.RGBA,gl.UNSIGNED_BYTE,null);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE)}
var attachmentPoint=gl.COLOR_ATTACHMENT0;var level=0;function HSVtoRGB(h,s,v){var r,g,b,i,f,p,q,t;if(arguments.length===1){s=h.s,v=h.v,h=h.h}
i=Math.floor(h*6);f=h*6-i;p=v*(1-s);q=v*(1-f*s);t=v*(1-(1-f)*s);switch(i%6){case 0:r=v,g=t,b=p;break;case 1:r=q,g=v,b=p;break;case 2:r=p,g=v,b=t;break;case 3:r=p,g=q,b=v;break;case 4:r=t,g=p,b=v;break;case 5:r=v,g=p,b=q;break}
return{r:Math.round(r*255),g:Math.round(g*255),b:Math.round(b*255)}}
var aDt={}
function compileShader(shaderSource,shaderType){var shader=gl.createShader(shaderType);gl.shaderSource(shader,shaderSource);gl.compileShader(shader);if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){throw "Shader compile failed with: "+gl.getShaderInfoLog(shader)}
return shader}
function drawArt(){gl.useProgram(aPg);gl.bindBuffer(gl.ARRAY_BUFFER,buffer);gl.vertexAttribPointer(aDt.positionAttribute,2,gl.FLOAT,!1,2*4,0);gl.enableVertexAttribArray(aDt.positionAttribute);gl.uniform1f(aDt.tickSet,tz);gl.activeTexture(gl.TEXTURE0);gl.bindTexture(gl.TEXTURE_2D,texture);gl.drawArrays(gl.TRIANGLE_STRIP,0,4)}
let baseVertexString=`
attribute vec2 position;
attribute vec2 texcoord;
varying highp vec2 vTextureCoord;
void main() {
gl_Position = vec4(position, 0.0, 1.0);
vTextureCoord = texcoord;
}
`
let baseVertShader=compileShader(baseVertexString,gl.VERTEX_SHADER);let artFragmentString=`
precision highp float;
uniform float tz;
vec3 hsv2rgb(vec3 c)
{
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
void main()
{
float tV = 255.;
${barInit}
vec3 c0 = vec3(${pq[0][0]}./tV,${pq[0][1]}./tV,${pq[0][2]}./tV);
vec3 c1 = vec3(${pq[1][0]}./tV,${pq[1][1]}./tV,${pq[1][2]}./tV);
vec3 c2 = vec3(${pq[2][0]}./tV,${pq[2][1]}./tV,${pq[2][2]}./tV);
vec3 c3 = vec3(${pq[3][0]}./tV,${pq[3][1]}./tV,${pq[3][2]}./tV);
vec3 c4 = vec3(${pq[4][0]}./tV,${pq[4][1]}./tV,${pq[4][2]}./tV);
float w = float(${DIM});
float M = float(${M});
float we = float(${we});
vec2 st = gl_FragCoord.xy / M;
${gV(f0)}
${gV(f1)}
float mX;
float wd;
float bcSize = 1024. / float(bc);
int vCount = ${vCount};
float segmentHeight = 1024. / float(vCount);
int i = int(st.y / segmentHeight);
int j = int(st.x / bcSize);
float iF = float(i);
float jF = float(j);
float wStart;
float hx = (iF * segmentHeight) + ${hSv};
segmentHeight -= ${hSv} * 2.;
float xM = (jF * bcSize) + (bcSize / 2.);
float yM = hx + (segmentHeight / 2.);
vec2 pos = vec2(xM,yM);
gl_FragColor = vec4(.3,.3,.3,1.);
bool bar = false;
float linePos = ((256. - tz) * 8.) - 512.;
float lineDistance;
if(${oR}) {
lineDistance = abs(1024. - st.x - linePos);
}
else {
lineDistance = abs(st.y - linePos);
}
float dis = distance(focus,pos);
float dis2 = distance(focus2,pos);${gV(mwS)}${gV(mwO)}${gV(wB)}${gV(wM)}${gV(wM3)}${gV(wM2)}${gV(dz)}${gV(dz2)}
mX = mod(mX,480.);mX += 32.;wd = abs(floor(wd - mX));wd += mX;float n = (lineDistance / 512.);${gV(wMo)}${gV(aa)}
if (wd < 2.) {
wd = 2.;
}
if ( lineDistance > 512.) {
wd = 2.;
}
wStart = xM - (wd / 2.);
if(st.x >= wStart && st.x <= wStart + wd && st.y >= hx && st.y <= hx + segmentHeight) {
bar = true;
}
if (${pT} > 14) {
if (bar) {
vec3 colorBase = vec3(.2,.2,.2) / (mX - wd) * 256.;
gl_FragColor = vec4(colorBase * ${rad},1.);
if (${cls}) {
gl_FragColor = vec4(.2,.2,.2,1.);
}
if (${rbw}) {
gl_FragColor = vec4(colorBase * hsv2rgb(vec3(${gV(rbwS)} / float(vCount + bc),1.,1.)),1.0);
}
}
else {
gl_FragColor = vec4(0.,0.,0.,1.);
if (${cls}) {
gl_FragColor = vec4(.6,.6,.6,1.);
}
}
}
else {
if (bar) { if (wd / mX < .3) { gl_FragColor = vec4(c4.x,c4.y,c4.z,1.);}else if (wd / mX < .6) {gl_FragColor = vec4(c3.x,c3.y,c3.z,1.);}else if (wd / mX < .85) {
gl_FragColor = vec4(c2.x,c2.y,c2.z,1.);
}
else {
gl_FragColor = vec4(c1.x,c1.y,c1.z,1.);
}
}
else {
gl_FragColor = vec4(c0.x,c0.y,c0.z,1.);
}
}
}
`
var artFragmentShader=compileShader(artFragmentString,gl.FRAGMENT_SHADER);const aPg=gl.createProgram();gl.attachShader(aPg,baseVertShader);gl.attachShader(aPg,artFragmentShader);gl.linkProgram(aPg);if(!gl.getProgramParameter(aPg,gl.LINK_STATUS)){console.error(gl.getProgramInfoLog(aPg));throw new Error('Failed to link art program')}
const buffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,buffer);gl.bufferData(gl.ARRAY_BUFFER,positionsData,gl.STATIC_DRAW);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer);gl.bufferData(gl.ARRAY_BUFFER,textureData,gl.STATIC_DRAW);aDt.positionAttribute=gl.getAttribLocation(aPg,'position');aDt.tickSet=gl.getUniformLocation(aPg,'tz');let cD=!0;function draw(){if(cD){drawArt();tz++;tz=tz%256}
requestAnimationFrame(draw)}
canvas.addEventListener('pointerdown',(e)=>{cD=!cD})
requestAnimationFrame(draw)