memoscan
← all memos

Memo 0x3e33baf8…e0897d on Ethereum

0":[-.59,2.55,.96,1.24],"30_40":[-.4,2.15,.964,1.255],"30_60":[-.19,2,.958,1.3],"30_80":[.4,1.83,.92,1.38],"30_200":[.47,3.2,.92,1.21],"30_220":[.44,4,.92,1.27],"30_240":[.26,5.08,.91,1.39],"30_260":[-.51,5.4,.905,1.45],"40_0":[-1.13,2.84,1,1.25],"40_20":[-1.04,2.38,1.02,1.26],"40_40":[-.75,1.93,1,1.27],"40_60":[-.29,1.65,.963,1.385],"40_80":[.42,1.44,.91,1.53],"40_200":[1.25,3.6,1.01,1.255],"40_220":[1.24,4.7,1.005,1.298],"40_240":[.62,5.6,.955,1.42],"40_260":[-.301,6.67,.9,1.62],"50_0":[-1.707,2.77,1.1,1.25],"50_20":[-1.34,1.99,1.08,1.23],"50_40":[-.88,1.5,1.04,1.31],"50_60":[-.467,1.3,.98,1.47],"50_80":[.38,.99,.88,1.7],"50_200":[1.7,3.5,1.06,1.25],"50_220":[1.76,5.1,1.045,1.375],"50_240":[1,6.6,.93,1.55],"50_260":[-.27,8.3,.84,1.85],"60_0":[-2.42,2.66,1.25,1.25],"60_20":[-2,1.85,1.22,1.25],"60_40":[-1.209,1.2,1.185,1.34],"60_60":[-.6,.89,1.04,1.55],"60_80":[.17,.8,.885,2.14],"60_200":[2.56,3.73,1.19,1.235],"60_220":[2.74,5.4,1.18,1.34],"60_240":[1.77,7.4,1.01,1.58],"60_260":[-.1,10,.85,2.13],"0_0":[0,3.35,1.005,1.27]}],s={180:0,160:20,140:40,120:60,100:80,340:200,320:220,300:240,280:260},F="1a1a856798019400181134110f11710147100511850179114b104b1171111d01610152117d0197101010e2001f1175016610fe0189100100040177000d1007112e115510ad017d011e013f018c1048111301420153014b106a012c01961193119200f90119100b00ae017a0184018e0188118f11860092013801691186018300be001e0176001f11501189119900e7100801911110001a00ff1025013000670131011311760121018c00c4015e018b01261137010d017c001b013e1099104a1053112e018f115b114110ee019b1003017700f4114a105d10d8110200ff01790029016b0150017a018f119b11960158116e0017019a115410470077017b116e102f0182114c0180016111161158101300ea10eb00900165101b1141119b0180000c117c10ac1192014c113d119310140148016e00e001860127100c118c0184017911491098111f01200166106b101d11520108001b01690142010e01910022018a118c014c10011111019500e2111a00081166106b016b110310381005101c113f1118015e019400ce1184116f005500f80188115e017500430171104b01680022019d115601890003003110b41180017d0128016e1185017c117711630184011510a711060144118d01760179102401521133015f001f1004017f117b11951028114c0162019011521152017810eb001c10b81181019b1166112a1192118a1188116800f300be014b114801681119000511120102116300fb112000b711111199118c000c11410163012c00fd00e3111a116e1143013b1006118411561136115e015711371189017e010300250156012f01261168019c01850034118401bd0222138d10db01fc03040220132c1305130d120601fa02f6044a02a5023712a512011356122813be03bd138313d902440485133e0212020703e5136e13ed126402fd144b137d125011e203a7005512c7125412ed039b11fe129e13871457126b016b120611c0127203ea12eb1288012a02750423130311a511b0125701d31243141712b301e211501265032f12b91215138c1239042b134f01cc139711fc1227122e019113231210031801e7012001ad125711d901e611fd024f12af038e13b71387139402240219143b01c21400144b12701182129901e111d9029302c2036b141803211336126101d11225044312841216139101a0127411bd03d903141314136b11af137501d200fe1233139313a7124e130f01bc120f11d7038412e7129e02e912d9121e1271046b022c12e103a4129c01f611b20313042913a9027013b4127603bd1209022b03ab110d11db0423121702cc14010258040f1218131102581313048d02c1141d125513f2126413ef036811ed121c021002f01361132304460136036d14180256133a01b5044f020702a10116120211e301f2042612dd01e312d81242112a039303ec029301d801ef03a4148b147814a002f9129110ad02de01d8018502580223040012a913f514590267121713f302b611cc134812141280139402ba12001223025702f601d5020f03c904731331030a1280143800e311b0122e13fd129411a811dd12c804070269140d116f01a9029613ee026812de03f3132e02fc03c103581487136e144c014d11d911e7140211b303ee142e140002dc1249013401ff115e12b803190230141b1227122e014a0480560fb0e706805c0560f511011110706706005305006b12510a10b11110e04e11311405c04d11a05605c05710710711c04711a1141080fa04e01311d10712304f0fc10711f10d10b04211f12a11f04210f10a0400500580fc11f12911204911011110c06b12b10b04910911111b10805b1160481140fe13111d04e11111d0520640550491100fe06510806110904710b10410f04905e11b03e10110510a0f212e04a11005604d05c10c06f0fd11e06a10f05710610b11004810e10804806e1101201020fc05e0380fb10e11710a10806c11f1120651081070440fd0fd10a05704a11a05511c05e0fe05d04f10d05711212504e0f505e05c10811105811e04d10c05504c0fe1090570fc0480530f31121070fc11706510910a05e06a0f211105005406d11104411d04906304c04f03210811d05605710304a10f11110406305604804a06c0560ff11011804f0fa0f905206905904d05f05d10510f10805711d10d06410910411c11c10106611c0f805606306804906a06610a05d10a10205c12912510d11a10010a11604b06e10d10503c06110c07211006d10e05104f0541030f910805310b0fb11110006911d11006811e04a05511811d04807411411d11107a121121211122111212121111211221102111211012112111202120110111202221120211212101120211211012212211111221011000221111111221120102101111201112122211111221211122111110112112111121212111021110222101111111212112221121201112211111101202211112211212211212122111111001110211110111111101111102111111120201111220";function E(e){return e/180*Math.PI}let d=new class{constructor(){this.useA=!1;let e=function(e){let t=parseInt(e.substr(0,8),16),o=parseInt(e.substr(8,8),16),n=parseInt(e.substr(16,8),16),a=parseInt(e.substr(24,8),16);return function(){t|=0,o|=0,n|=0,a|=0;let e=(t+o|0)+a|0;return a=a+1|0,t=o^o>>>9,o=n+(n<<3)|0,n=n<<21|n>>>11,n=n+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}};function f(e,t){return Math.floor(d.random()*(Math.floor(t)-Math.ceil(e)+1)+Math.ceil(e))}function u(e){return e[f(0,e.length-1)]}function p(e){let t,o,n=e.length;for(;0!==n;)o=Math.floor(d.random()*n),n-=1,t=e[n],e[n]=e[o],e[o]=t;return e}function _(e,t){function o(e){const t=document.createElement("canvas");t.width=e,t.height=e;const o=t.getContext("2d");return o.imageSmoothingEnabled=!1,o.webkitImageSmoothingEnabled=!1,o.msImageSmoothingEnabled=!1,[t,o]}const[n,a]=o(e),[i,r]=o(t),c=Uint32Array.from({length:t*t},(()=>[4294967295,0][Math.random()>.5?0:1])),l=new ImageData(new Uint8ClampedArray(c.buffer),t,t);r.putImageData(l,0,0),r.globalCompositeOperation="hue",r.fillRect(0,0,t,t),a.drawImage(i,0,0,t,t,0,0,e,e);let s=new THREE.CanvasTexture(n);return s.magFilter=THREE.NearestFilter,s}function b(e,o,n){return new THREE.ShaderMaterial({depthTest:!1,uniforms:{uColorA:{value:new THREE.Color(e[0])},uColorB:{value:new THREE.Color(e[1])},uColorS:{value:new THREE.Color(e[2])},uSize:{value:t*n},uDir:{value:u([0,1])},uMin:{value:0},uMax:{value:1},noise:{type:"t",value:o}},vertexShader:"void main() {gl_Position=projectionMatrix*modelViewMatrix*vec4(position, 1.0);}",fragmentShader:"\nuniform vec3 uColorA,uColorB,uColorS;uniform float uSize,uMin,uMax;uniform int uDir;uniform sampler2D noise;void main() {vec2 uv=gl_FragCoord.xy/uSize;float m=1.0/(uMax-uMin);float y=(m*uv[uDir])+(-1.0*uMin*m);vec4 gbw=mix(vec4(0,0,0,1.0),vec4(vec3(152.0/255.0),0.6),y);float npixel=texture(noise,uv).r;gbw=(gbw*npixel)+(vec4(0,0,0,0)*(1.0-npixel));vec4 om=vec4(mix(uColorA,uColorB,y).rgb,gbw.a);vec4 color=vec4(mix(uColorS,om.rgb,om.a),1.0);gl_FragColor=color;}"})}function m(e,t,o,n,a,i,r,c,l){e.position.copy(t.position).add(n.clone().multiplyScalar(a)),e.lookAt(t.position),e.updateProjectionMatrix(),e.updateMatrixWorld();let s=t.position.clone().sub(e.position).normalize(),F=-e.position.y/s.y,d=new THREE.Vector3(e.position.x+F*s.x,0,e.position.z+F*s.z),f=t.position.clone().sub(e.position).normalize(),u=f.clone().cross(e.up).normalize().cross(f).normalize().applyAxisAngle(f,E(r)).multiplyScalar(c);e.position.add(u),e.zoom=i,e.updateProjectionMatrix(),e.updateMatrixWorld();let p=t.position.clone().sub(e.position).normalize();F=-e.position.y/p.y;let _=new THREE.Vector3(e.position.x+F*p.x,-0,e.position.z+F*p.z);o.parallaxDir=_.sub(d).normalize().multiplyScalar(Math.abs(c)/l/5/(2.5*i-1.5))}let C=[];for(let[e,t,n,a]of o)C.push([Math.min(n-e/2,n+e/2),Math.max(n-e/2,n+e/2),Math.min(a-t/2,a+t/2),Math.max(a-t/2,a+t/2)]);function D(e){let t,o,n,a,i,r,c,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,F=new THREE.Vector3,E=u([1,-1]),d=u([1,-1]);for(let f=-10+l;f<=10-l;f+=s)for(let u=-10+l;u<=10-l;u+=s)for([a,r,i,c]of(F.set(f*E/10,u*d/10,0).unproject(e).sub(e.position).normalize(),t=-e.position.y/F.y,o=e.position.x+t*F.x,n=e.position.z+t*F.z,C))if(o>=a&&o<=r&&n>=i&&n<=c)return!0;return!1}function h(e,o){const n=new THREE.Raycaster;let a={};for(let i=0;i<t;i+=5)for(let r=0;r<t;r+=5){n.setFromCamera({x:i/t*2-1,y:r/t*2-1},e);const c=n.intersectObjects(o);if(0==c.length)continue;const l=c[0];a[l.object.id]||(a[l.object.id]=[]),a[l.object.id].push([{x:i,y:r},l])}let i=!1;for(let[e,n]of Object.entries(a)){const a=Math.min(...n.map((e=>e[0].x))),r=Math.min(...n.map((e=>e[0].y))),c=Math.max(...n.map((e=>e[0].x))),l=Math.max(...n.map((e=>e[0].y))),s=o.filter((t=>t.id==e))[0],F=c-a,E=l-r;if((F<22||E<22||F*E<2e4)&&(i=!0),a==c||r==l)continue;let d,f;0==s.material.uniforms.uDir.value?(d=a/t,f=c/t):(d=r/t,f=l/t),s.material.uniforms.uMin.value=d,s.material.uniforms.uMax.value=f}return!i}function A(e,t,o,n,a,i,r){t.updateMatrixWorld(!0,!0),t.updateWorldMatrix(!0,!0),t.updateMatrix();let c=new THREE.Vector3(-10,0,0).applyAxisAngle(a.up,-1*E(i)).normalize();const F=new THREE.Vector3(0,0,-10),d=c.clone().cross(F).normalize().negate().round().y;let f=c.angleTo(F)/Math.PI*180;f=20*Math.round(f/20)*d,a.rotation.y=0,a.rotation.y+=E(f);let u=(360+(n+f))%360;t.selected.y=o,t.selected.xz=u;let p=1;Object.keys(s).map((e=>parseInt(e))).includes(u)&&(p=-1,u=s[u]),0==o&&(u=0);let _=l[r]["".concat(o,"_").concat(u)];t.position.x=_[0]*p,t.position.z=_[1],t.scale.set(_[2],_[3],1);let b=new THREE.Vector3;t.getWorldPosition(b),e.position.copy(b).add(e.parallaxDir),e.scale.set(_[2],_[3],1),e.rotation.z=E(f)}function B(e,t,o){const n=new THREE.Object3D;n.position.copy(t.position),n.position.x+=t.ea*t.scale.x+2,n.position.z-=t.eb*t.scale.y,o.add(n);const a=new THREE.Object3D;a.position.copy(t.position),a.position.x-=t.ea*t.scale.x+2,a.position.z-=t.eb*t.scale.y,o.add(a);const i=new THREE.Object3D;i.position.copy(t.position),i.position.x-=t.ea*t.scale.x+2,i.position.z-=t.eb*t.scale.y*2+2,o.add(i);const r=new THREE.Object3D;r.position.copy(t.position),r.position.x+=t.ea*t.scale.x+2,r.position.z-=t.eb*t.scale.y*2+2,o.add(r);let c=!0,l=new THREE.Vector3;for(let t of[n,