0xe0071208…67f5sent to0xa7d8d9ef…d270·#13,375,186·view on Etherscan
var camera,scene,renderer,uniforms,material,mesh,gui,settings={};function getDimension(){let r,e;return window.innerHeight>=window.innerWidth?(r=window.innerWidth,e=window.innerWidth):(e=window.innerHeight,r=window.innerHeight),{x:r,y:e}}function setupWindow(){cpd=1,ddd=getDimension(),(isMobile=/iPhone|iPad|iPod|Android/i.test(navigator.userAgent))&&(cpd=1),isHeadless=!1,/\bHeadlessChrome\//.test(navigator.userAgent)&&(isHeadless=!0,cpd=2),renderer.setPixelRatio(cpd),uniforms.resolution.value.x=ddd.x*cpd,uniforms.resolution.value.y=ddd.y*cpd,uniforms.targetResolution.value.x=1024,uniforms.targetResolution.value.y=1024,renderer.setSize(ddd.x,ddd.y),camera.aspect=1}function renameKeys(obj,newKeys){const keyValues=Object.keys(obj).map((key=>({[newKeys[key]||key]:obj[key]})));return Object.assign({},...keyValues)}function togglePause(){if(anim=!anim,0==anim){var density=2;renderer.setPixelRatio(density),uniforms.resolution.value.x=ddd.x*density,uniforms.resolution.value.y=ddd.y*density,uniforms.targetResolution.value.x=1024,uniforms.targetResolution.value.y=1024,uniforms.time.value=timeAdder+.33*timeAdd,uniforms.elapsedTime.value=timeAdder+.33*timeAdd,renderer.render(scene,camera)}else{density=1;renderer.setPixelRatio(density),uniforms.resolution.value.x=ddd.x*density,uniforms.resolution.value.y=ddd.y*density,uniforms.targetResolution.value.x=1024,uniforms.targetResolution.value.y=1024,uniforms.time.value=timeAdder+.33*timeAdd,uniforms.elapsedTime.value=timeAdder+.33*timeAdd}}function tapOrClick(event){return event.preventDefault(),togglePause(),!1}function init(){for(var key in startTime=Date.now(),timeAdder=1e5,uniforms={time:{type:"f",value:1},elapsedTime:{type:"f",value:1},resolution:{type:"v2",value:new THREE.Vector2},targetResolution:{type:"v2",value:new THREE.Vector2}},(camera=new THREE.Camera).position.z=1,scene=new THREE.Scene,os.is){let name=key,val=os.is[key].val,min=(os.is[key].max,0);"min"in os.is[key]&&(min=os.is[key].min),uniforms[name]={},uniforms[name].type="i",uniforms[name].value=val}for(let i=0;i<os.fs.length;i++){let val=os.fs[i].val,name=os.fs[i].name;uniforms[name]={},uniforms[name].type="f",uniforms[name].value=val}for(var key in os.is){let name=key,val=os.is[key].val;settings[name]=val}for(let i=0;i<os.fs.length;i++){let name=os.fs[i].name,val=os.fs[i].val;settings[name]=val}for(var key in os.is){os.is[key].val,os.is[key].max;let min=0;"min"in os.is[key]&&(min=os.is[key].min)}for(let i=0;i<os.fs.length;i++){os.fs[i].val,os.fs[i].max,os.fs[i].min,os.fs[i].name;false}randomize();{const str=shaderSrc.shaders[0].contents,str2="const int r = "+os.is.modeState.val.toString()+"; const int p = "+os.is.positionState.val.toString()+"; const int L = "+os.is.angleState.val.toString()+"; const int n = "+os.is.colorState.val.toString()+"; const int m = "+os.is.effectState.val.toString()+";"+str;let uniformString=JSON.stringify(uniforms);for(const[key,value]of Object.entries(shaderSrc.renaming)){let k=`${key}`,v=`${value}`,res=uniformString.replace(k,v);uniformString=res}modifiedUniforms=JSON.parse(uniformString),material=new THREE.ShaderMaterial({uniforms:modifiedUniforms,vertexShader:vShader,fragmentShader:str2})}mesh=new THREE.Mesh(new THREE.PlaneGeometry(2,2),material),scene.add(mesh);let divElem=document.createElement("div");document.body.appendChild(divElem),divElem.addEventListener("touchend",tapOrClick,!1),renderer=new THREE.WebGL1Renderer,divElem.appendChild(renderer.domElement),setupWindow()}function randomSelectionFromWeights(wght,pct){let pcts=wght,total=pcts.reduce(((accumulator,currentValue)=>accumulator+currentValue));var pctsFixed=pcts.map((i=>i/total)),pctf=R.random_dec(),whichi=0;let tt=0;for(let i=0;i<pctsFixed.length;i++)if(tt+=pctsFixed[i],pctf<tt){whichi=i;break}return whichi}function getRandomInt(min,max,pct){return Math.floor(pct*(max-min+1))+min}function animate(){for(var key in resized&&resize(),os.is){let name=key,val=os.is[key].val;uniforms[name].value=val}for(let i=0;i<os.fs.length;i++){let val=os.fs[i].val,name=os.fs[i].name;uniforms[name].value=val}for(const[key,value]of Object.entries(shaderSrc.renaming)){let k=`${key}`;modifiedUniforms[`${value}`]=uniforms[k]}render(),requestAnimationFrame(animate)}function resize(){resized=!1,setupWindow()}function onDocumentKeyDown(event){var keyCode=event.which;32==keyCode&&togglePause()}function render(){var elapsedSeconds=(Date.now()-startTime)/1e3;anim&&(timeAdd+=elapsedSeconds-lastTime),lastTime=elapsedSeconds,uniforms.time.value=timeAdder+.33*timeAdd,uniforms.elapsedTime.value=timeAdder+.33*timeAdd,0!=anim&&renderer.render(scene,camera)}init(),window.addEventListener("resize",(function(){resized=!0})),animate(),document.addEventListener("keydown",onDocumentKeyDown,!1);