memoscan
← all memos

Memo 0x5dfbbfcd…cf8c95 on Ethereum

jb_mass_mainconst LIVE_MODE=true;if(!LIVE_MODE){tokenHash=(new Date).getTime();traitsPalette=undefined;traitsObjects=undefined}const placeholderSalePrice=3e17;const placeholderRoyaltyReceived=5e14;{var MersenneTwister=function(e){if(e==undefined){e=(new Date).getTime()}this.N=624;this.M=397;this.MATRIX_A=2567483615;this.UPPER_MASK=2147483648;this.LOWER_MASK=2147483647;this.mt=new Array(this.N);this.mti=this.N+1;if(e.constructor==Array){this.init_by_array(e,e.length)}else{this.init_seed(e)}};MersenneTwister.prototype.init_seed=function(e){this.mt[0]=e>>>0;for(this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti;this.mt[this.mti]>>>=0}};MersenneTwister.prototype.init_by_array=function(e,t){var a,i,n;this.init_seed(19650218);a=1;i=0;n=this.N>t?this.N:t;for(;n;n--){var r=this.mt[a-1]^this.mt[a-1]>>>30;this.mt[a]=(this.mt[a]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i;this.mt[a]>>>=0;a++;i++;if(a>=this.N){this.mt[0]=this.mt[this.N-1];a=1}if(i>=t)i=0}for(n=this.N-1;n;n--){var r=this.mt[a-1]^this.mt[a-1]>>>30;this.mt[a]=(this.mt[a]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-a;this.mt[a]>>>=0;a++;if(a>=this.N){this.mt[0]=this.mt[this.N-1];a=1}}this.mt[0]=2147483648};MersenneTwister.prototype.random_int=function(){var e;var t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var a;if(this.mti==this.N+1)this.init_seed(5489);for(a=0;a<this.N-this.M;a++){e=this.mt[a]&this.UPPER_MASK|this.mt[a+1]&this.LOWER_MASK;this.mt[a]=this.mt[a+this.M]^e>>>1^t[e&1]}for(;a<this.N-1;a++){e=this.mt[a]&this.UPPER_MASK|this.mt[a+1]&this.LOWER_MASK;this.mt[a]=this.mt[a+(this.M-this.N)]^e>>>1^t[e&1]}e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK;this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1];this.mti=0}e=this.mt[this.mti++];e^=e>>>11;e^=e<<7&2636928640;e^=e<<15&4022730752;e^=e>>>18;return e>>>0};MersenneTwister.prototype.random_int31=function(){return this.random_int()>>>1};MersenneTwister.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};MersenneTwister.prototype.random=function(){return this.random_int()*(1/4294967296)};MersenneTwister.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};MersenneTwister.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)}}(function(e){var t=e.noise={};function a(e,t,a){this.x=e;this.y=t;this.z=a}a.prototype.dot2=function(e,t){return this.x*e+this.y*t};a.prototype.dot3=function(e,t,a){return this.x*e+this.y*t+this.z*a};var i=[new a(1,1,0),new a(-1,1,0),new a(1,-1,0),new a(-1,-1,0),new a(1,0,1),new a(-1,0,1),new a(1,0,-1),new a(-1,0,-1),new a(0,1,1),new a(0,-1,1),new a(0,1,-1),new a(0,-1,-1)];var n=[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,109,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 _=new Array(512);var Y=new Array(512);t.seed=function(e){if(e>0&&e<1){e*=65536}e=Math.floor(e);if(e<256){e|=e<<8}for(var t=0;t<256;t++){var a;if(t&1){a=n[t]^e&255}else{a=n[t]^e>>8&255}_[t]=_[t+256]=a;Y[t]=Y[t+256]=i[a%12]}};t.seed(0);var A=.5*(Math.sqrt(3)-1);var y=(3-Math.sqrt(3))/6;var Z=1/3;var j=1/6;t.simplex2=function(e,t){var a,i,n;var r=(e+t)*A;var o=Math.floor(e+r);var s=Math.floor(t+r);var l=(o+s)*y;var c=e-o+l;var p=t-s+l;var f,d;if(c>p){f=1;d=0}else{f=0;d=1}var u=c-f+y;var m=p-d+y;var g=c-1+2*y;var h=p-1+2*y;o&=255;s&=255;var E=Y[o+_[s]];var S=Y[o+f+_[s+d]];var v=Y[o+1+_[s+1]];var T=.5-c*c-p*p;if(T<0){a=0}else{T*=T;a=T*T*E.dot2(c,p)}var x=.5-u*u-m*m;if(x<0){i=0}else{x*=x;i=x*x*S.dot2(u,m)}var b=.5-g*g-h*h;if(b<0){n=0}else{b*=b;n=b*b*v.dot2(g,h)}return 70*(a+i+n)};t.simplex3=function(e,t,a){var i,n,r,o;var s=(e+t+a)*Z;var l=Math.floor(e+s);var c=Math.floor(t+s);var p=Math.floor(a+s);var f=(l+c+p)*j;var d=e-l+f;var u=t-c+f;var m=a-p+f;var g,h,E;var S,v,T;if(d>=u){if(u>=m){g=1;h=0;E=0;S=1;v=1;T=0}else if(d>=m){g=1;h=0;E=0;S=1;v=0;T=1}else{g=0;h=0;E=1;S=1;v=0;T=1}}else{if(u<m){g=0;h=0;E=1;S=0;v=1;T=1}else if(d<m){g=0;h=1;E=0;S=0;v=1;T=1}else{g=0;h=1;E=0;S=1;v=1;T=0}}var x=d-g+j;var b=u-h+j;var A=m-E+j;var y=d-S+2*j;var R=u-v+2*j;var w=m-T+2*j;var D=d-1+3*j;var C=u-1+3*j;var N=m-1+3*j;l&=255;c&=255;p&=255;var M=Y[l+_[c+_[p]]];var P=Y[l+g+_[c+h+_[p+E]]];var H=Y[l+S+_[c+v+_[p+T]]];var X=Y[l+1+_[c+1+_[p+1]]];var O=.6-d*d-u*u-m*m;if(O<0){i=0}else{O*=O;i=O*O*M.dot3(d,u,m)}var U=.6-x*x-b*b-A*A;if(U<0){n=0}else{U*=U;n=U*U*P.dot3(x,b,A)}var F=.6-y*y-R*R-w*w;if(F<0){r=0}else{F*=F;r=F*F*H.dot3(y,R,w)}var k=.6-D*D-C*C-N*N;if(k<0){o=0}else{k*=k;o=k*k*X.dot3(D,C,N)}return 32*(i+n+r+o)};function E(e){return e*e*e*(e*(e*6-15)+10)}function S(e,t,a){return(1-a)*e+a*t}t.perlin2=function(e,t){var a=Math.floor(e),i=Math.floor(t);e=e-a;t=t-i;a=a&255;i=i&255;var n=Y[a+_[i]].dot2(e,t);var r=Y[a+_[i+1]].dot2(e,t-1);var o=Y[a+1+_[i]].dot2(e-1,t);var s=Y[a+1+_[i+1]].dot2(e-1,t-1);var l=E(e);return S(S(n,o,l),S(r,s,l),E(t))};t.perlin3=function(e,t,a){var i=Math.floor(e),n=Math.floor(t),r=Math.floor(a);e=e-i;t=t-n;a=a-r;i=i&255;n=n&255;r=r&255;var o=Y[i+_[n+_[r]]].dot3(e,t,a);var s=Y[i+_[n+_[r+1]]].dot3(e,t,a-1);var l=Y[i+_[n+1+_[r]]].dot3(e,t-1,a);var c=Y[i+_[n+1+_[r+1]]].dot3(e,t-1,a-1);var p=Y[i+1+_[n+_[r]]].dot3(e-1,t,a);var f=Y[i+1+_[n+_[r+1]]].dot3(e-1,t,a-1);var d=Y[i+1+_[n+1+_[r]]].dot3(e-1,t-1,a);var u=Y[i+1+_[n+1+_[r+1]]].dot3(e-1,t-1,a-1);var m=E(e);var g=E(t);var h=E(a);return S(S(S(o,p,m),S(s,f,m),h),S(S(l,d,m),S(c,u,m),h),g)}})(this);function average_delta_array(t){let a=0;for(let e=1;e<t.length;e++){a+=Math.abs(t[e]-t[e-1])}return a/(t.length-1)}function map_scale(t,a,i){if(i<=t[0]){return a[0]}if(i>=t[t.length-1]){return a[a.length-1]}for(let e=0;e<a.length-1;e++){if(i>=t[e]&i<t[e+1]){return a[e]}}}function delta_gap(e,t){let a=average_delta_array(t);let i=e-t[t.length-1];let n=a/i-1;if(n===undefined||n===null||isNaN(n)){return 0}else{return n}}let adjust_tier=(e,t)=>{if(t==0){return t}let a=t<0?-1:1;t=Math.abs(t);if(e>=0){t-=1}if(e>=1){t-=2}if(e>=2){t-=3}t=Math.max(0,t)*a;return t==-0?0:t};function getTier(e,t,a=undefined){if(e.length==0){return 0}if(e.length==1){e=[t].concat(e)}let i=e.sort();let n=0;for(let e=1;e<i.length;e++){n+=Math.abs(i[e]-i[e-1])}let=avgGap=n/(i.length-1);let r=t-i[i.length-1];let o=r/avgGap;let s=Math.ceil(3-o);if(a!=undefined){if(s<0){s=0}else if(a<0){s*=-1}else if(a==0){s=0}}if(s==-4){s=-2}else if(s==-5){s=-1}else if(s<-5){s=0}if(s==-0){s=0}console.log("avgGap:",avgGap,"currentGap:",r,"ratio:",o,"tier:",s);return s}function calculateTiers(e){if(!e){console.warn("No data");return}let t={royalty:[[-.4,-.3,-.1,0,.1,.3,.6],[-3,-2,-1,0,1,2,3]],contract_activity:[[-1,-.5,-.25,0,.25,.5,.75],[-3,-2,-1,0,1,2,3]],clustering_mode:[[-1,-.5,-.25,0,.25,.5,.75],[-3,-2,-1,0,1,2,3]],approvals:[[-1,-.5,-.25,0,.25,.5,.75],[-3,-2,-1,0,1,2,3]]};let i=(new Date).getTime()/1e3;let n=e[1].filter((e,t)=>e>0);let r=e[3].filter((e,t)=>e>0);let a=e[5];let o=e[6];let s=a.concat(o);let l=s.filter((e,t)=>t%2===0&&e>0);let c=s.filter((e,t)=>t%2!==0&&e>0);r=[...new Set(r)];n=[...new Set(n)];l=[...new Set(l)];r.sort();n.sort();l.sort();if(SCENE.data.memory==undefined){try{let a=i-memoryLookbackPeriod;SCENE.data.memory=r.filter((e,t)=>e>=a).length+n.filter((e,t)=>e>=a).length+l.filter((e,t)=>e>=a).length;SCENE.data.memory=Math.min(SCENE.data.memory,11)}catch(A){console.warn(A)}}if(resetTimestamp){console.log("Resetting to",resetTimestamp);r=r.filter(e=>e>resetTimestamp);n=n.filter(e=>e>resetTimestamp);l=l.filter(e=>e>resetTimestamp)}let p=Array.from(n);let f=Array.from(l);let d=Array.from(r);let u=Array.from(c);if(r.length<=1){d=[contractMintTimestamp].concat(r)}if(n.length<=1){p=[contractMintTimestamp].concat(n)}if(l.length<=1){f=[contractMintTimestamp].concat(l)}if(c.length<=1){u=[placeholderRoyaltyReceived].concat(c)}try{r=r.slice(-4)}catch{}try{n=n.slice(-4)}catch{}try{l=l.slice(-4)}catch{}if(resetTimestamp){console.log("Resetting to",resetTimestamp);r=r.filter(e=>e>resetTimestamp);n=n.filter(e=>e>resetTimestamp);l=l.filter(e=>e>resetTimestamp)}let m=0;if(u.length>1){m=u[u.length-1]/(u.slice(0,-1).reduce((e,t)=>e+t)/(u.length-1))-1}let g=getTier(r,i);let h=getTier(n,i);let E=getTier(r.concat(n).sort().slice(-4),i);let S=getTier(l,i,m);let v=S!=0;let T=E!=0;let x=g!=0;let b=h!=0;if(SCENE.data.contract.tiers&&Object.keys(SCENE.data.contract.tiers).length>0){v=SCENE.data.contract.tiers.royalty_received_tier.value!=S;T=SCENE.data.contract.tiers.contract_activity_tier.value!=E;x=SCENE.data.contract.tiers.sends_tier.value!=g;b=SCENE.data.contract.tiers.approvals_tier.value!=h}SCENE.data.contract.tiers={royalty_received_tier:{value:S,changed:v},contract_activity_tier:{value:E,changed:T},sends_tier:{value:g,changed:x},approvals_tier:{value:h,changed:b}}}function calculateContractDataUpdates(){if(!SCENE.data.contractUpdates){SCENE.data.contractUpdates={}}SCENE.data.firstContractDataUpdate=true;if(!SCENE.data.contractPrev||!(SCENE.data.contractPrev.length||SCENE.data.contractPrev.size)){SCENE.data.contractUpdates.approvalCount=true;SCENE.data.contractUpdates.transferCount=true;SCENE.data.contractUpdates.holderCount=true;SCENE.data.contractUpdates.royalty=true;return}SCENE.data.firstContractDataUpdate=false;SCENE.data.contractUpdates.approvalCount=SCENE.data.contractPrev[0][0]!=SCENE.data.contract[0][0];SCENE.data.contractUpdates.transferCount=SCENE.data.contractPrev[2][0]!=SCENE.data.contract[2][0];SCENE.data.contractUpdates.holderCount=SCENE.data.contractPrev[4][0]!=SCENE.data.contract[4][0];try{SCENE.data.contractUpdates.royalty=SCENE.data.contractPrev[5].slice(SCENE.data.contractPrev[5].length-2,SCENE.data.contractPrev[5].length-1).pop()!=SCENE.data.contract[5].slice(SCENE.data.contract[5].length-2,SCENE.data.contract[5].length-1).pop()||SCENE.data.contractPrev[6].slice(SCENE.data.contractPrev[6].length-2,SCENE.data.contractPrev[6].length-1).pop()!=SCENE.data.contract[5].slice(SCENE.data.contract[6].length-2,SCENE.data.contract[6].length-1).pop()}catch{}}function tierToValue(e,t){let a=[-3,-2,-1,0,1,2,3];let i=a.indexOf(t);return e[i]}var randomNumberGenerator=new MersenneTwister((new Date).getTime());var randomNumberGeneratorSeeded=new MersenneTwister(hashString(`${tokenHash}`));function sizeOfMapping(e){return Object.keys(e).length}function makeGradientPlane(e,t,a,i,n){const r=document.createElement("canvas");r.width=256;r.height=256;const o=r.getContext("2d");if(a=="linear"){var s=o.createLinearGradient(0,0,0,r.height)}else if(a=="radial"){var s=o.createRadialGradient(r.width/2,r.height/2,0,r.width/2,r.height/2,r.width/2)}for(let e of i){s.addColorStop(e[0],e[1])}o.fillStyle=s;o.fillRect(0,0,r.width,r.height);const l=new THREE.CanvasTexture(r);const c=new THREE.PlaneGeometry(e,t);const p=new THREE.MeshBasicMaterial({map:l,fog:n});const f=new THREE.Mesh(c,p);return f}function makePerlinTexture(e,t,i,n,r,o,s,l,c="perlin3"){const a=document.createElement("canvas");a.setAttribute("id","canvas1");a.width=e;a.height=t;const p=a.getContext("2d");if(s){var f=document.createElement("canvas");f.width=e;f.height=t;var d=f.getContext("2d")}noise.seed(Math.random());let u=0;for(var m=0;m<a.width;m++){for(var g=0;g<a.height;g++){u++;if(c=="perlin3"){var h=noise.perlin3(m/i,g/n,m^g%150);var E=Math.abs(h*o)*256+r}else if(c=="simplex3"){var h=noise.simplex3(m/i,g/n,m^g%150);var E=Math.abs(h*o)*256+r}else if(c=="simple"){var E=Math.random()*255*o+r}let e=E;let t=E;let a=E;p.fillStyle="rgb("+e+","+t+","+a+")";p.fillRect(m,g,1,1);if(s){a=E/l;d.fillStyle="rgb("+a+","+a+","+a+")";d.fillRect(m,g,1,1)}}}const S=new THREE.CanvasTexture(a);S.wrapS=S.wrapT=THREE.RepeatWrapping;if(s){const v=new THREE.CanvasTexture(f);v.wrapS=v.wrapT=THREE.RepeatWrapping;return[S,v]}else{return S}}function makeLight(e,t=true){if(e.type=="point"){e.light=new THREE.PointLight(e.color,e.power,e.size);if(t){e.light.position.set(e.positionX,e.positionY,e.positionZ)}if(enableShadows){e.light.castShadow=true;e.light.shadow.mapSize.width=512;e.light.shadow.mapSize.height=512;e.light.shadow.camera.near=.5;e.light.shadow.camera.far=500;e.light.shadow.normalBias=.5}}else if(e.type=="hemisphere"){e.light=new THREE.HemisphereLight(e.color1,e.color2,e.power)}else if(e.type=="ambient"){e.light=new THREE.AmbientLight(e.color)}else if(e.type=="directional"){e.light=new THREE.DirectionalLight(e.color,e.power);e.light.position.set(e.positionX,e.positionY,e.positionZ);e.light.rotation.set(e.rotationX,e.rotationY,e.rotationZ);if(enableShadows){e.light.castShadow=true;e.light.shadow.mapSize.width=512;e.light.shadow.mapSize.height=512;e.light.shadow.camera.near=.5;e.light.shadow.camera.far=500;e.light.shadow.normalBias=.5}}}function animateAxisNegativeSpace(t,e){if(t.userData==undefined){t.userData={};t.userData.negativeSpaceTargetX=rand(t.negativeSpaceAnimationX[0],t.negativeSpaceAnimationX[1],t.negativeSpaceAnimationX[2]);t.userData.negativeSpaceTargetY=rand(t.negativeSpaceAnimationY[0],t.negativeSpaceAnimationY[1],t.negativeSpaceAnimationY[2]);t.userData.negativeSpaceCurrentX=0;t.userData.negativeSpaceCurrentY=0}let a=0;let i=0;let n=t.negativeSpaceAnimationSpeedX*e;let r=t.negativeSpaceAnimationSpeedY*e;if(t.userData.negativeSpaceCurrentX<t.userData.negativeSpaceTargetX){a=n;t.userData.negativeSpaceCurrentX+=n}else if(t.userData.negativeSpaceCurrentX>t.userData.negativeSpaceTargetX){a=-n;t.userData.negativeSpaceCurrentX-=n}if(t.userData.negativeSpaceCurrentY<t.userData.negativeSpaceTargetY){i=r;t.userData.negativeSpaceCurrentY+=r}else if(t.userData.negativeSpaceCurrentY>t.userData.negativeSpaceTargetY){i=-r;t.userData.negativeSpaceCurrentY-=r}if(t.userData.negativeSpaceTargetX>=0&&t.userData.negativeSpaceCurrentX>t.userData.negativeSpaceTargetX||t.userData.negativeSpaceTargetX<=0&&t.userData.negativeSpaceCurrentX<t.userData.negativeSpaceTargetX){t.userData.negativeSpaceTargetX=rand(t.negativeSpaceAnimationX[0],t.negativeSpaceAnimationX[1],t.negativeSpaceAnimationX[2])}if(t.userData.negativeSpaceTargetY>=0&&t.userData.negativeSpaceCurrentY>t.userData.negativeSpaceTargetY||t.userData.negativeSpaceTargetY<=0&&t.userData.negativeSpaceCurrentY<t.userData.negativeSpaceTargetY){t.userData.negativeSpaceTargetY=rand(t.negativeSpaceAnimationY[0],t.negativeSpaceAnimationX[1],t.negativeSpaceAnimationY[2])}if(a!=0||i!=0){for(let e in t.clipPlanes){t.clipPlanes[e].translate(new THREE.Vector3(a,i,0))}}}function makeCamera(){if(cameraType=="perspective"){var e=new THREE.PerspectiveCamera(fieldOfView,cameraAspect,cameraNear,cameraFar);e.aspect=rendererWidth/rendererHeight}else{var e=new THREE.OrthographicCamera(rendererWidth/-orthographicCameraScale,rendererWidth/orthographicCameraScale,rendererHeight/orthographicCameraScale,rendererHeight/-orthographicCameraScale,cameraNear,cameraFar)}cameraZ=randFromRange(cameraZ);e.position.x=cameraX;e.position.y=cameraY;e.position.z=cameraZ;e.updateProjectionMatrix();e.userData.animationQueue=[];e.userData.originalFocalLength=e.getFocalLength();return e}function makeScene(){const e=new THREE.Scene;e.fog=new THREE.Fog(fogColor,fogNear,fogFar);e.fog.userData={animationQueue:[]};e.fog.enabled=enableFog;if(!enableFog){e.fog.near=150;e.fog.far=155;e.fog.enabled=false}e.background=new THREE.Color(worldGradientColors[worldGradientColors.length-1][1]);return e}function makeRenderer(){const e=new THREE.WebGLRenderer({antialias:rendererAntialias,premultipliedAlpha:true});e.setSize(rendererWidth,rendererHeight,false);e.setPixelRatio(window.devicePixelRatio);e.toneMapping=THREE[rendererToneMapping];e.localClippingEnabled=true;if(enableShadows){e.shadowMap.enabled=true;e.shadowMap.type=THREE.PCFShadowMap}document.body.appendChild(e.domElement);return e}function loadOBJ(e,t,a,i,n){const r=new THREE.OBJLoader;object=r.parse(atob(e));object.traverse(function(e){e.material=t});object.scale.set(a[0],a[1],a[2]);object.position.set(i[0],i[1],i[2]);object.rotation.set(THREE.MathUtils.degToRad(n[0]),THREE.MathUtils.degToRad(n[1]),THREE.MathUtils.degToRad(n[2]));return object}function addPivotToAxis(e,t,a,i=undefined,n=undefined){let r=new THREE.Object3D;r.userData.name=a;r.userData.shapeType=t.userData.shapeType;var o=rand(e.axisX[0],e.axisX[1],e.axisX[2]);if(i){var s=randFromRange(i)}else{var s=rand(e.axisY[0],e.axisY[1],e.axisY[2])}var l=rand(e.axisZ[0],e.axisZ[1],e.axisZ[2]);r.userData.rotationSpeed=rand(e.coneRotationSpeed[0],e.coneRotationSpeed[1],e.coneRotationSpeed[2]);r.userData.originalRotationSpeed=r.userData.rotationSpeed;r.rotation.z=THREE.MathUtils.degToRad(rand(e.axisAngle[0],e.axisAngle[1],e.axisAngle[2]));r.userData.originalPosition=[o,s,l];r.position.set(o,s,l);r.add(t);e.pivots.push(r);e.mainPivot.add(r);if(n==undefined){return}if(r.userData.name.includes("terrain")){n*=terrainsAppearAndDisappearMultiplier}if(r.userData.name.includes("knot")){n*=knotsAppearAndDisappearMultiplier}r.children[0].userData.originalScale=JSON.parse(JSON.stringify(r.children[0].scale));r.userData.growUp=n;r.children[0].scale.set(0,0,0)}function addConeToAxis(e,t,a,i=undefined,n=undefined){let r=rand(a.radius[0],a.radius[1],a.radius[2]);let o=rand(a.height[0],a.height[1],a.height[2]);let s=rand(a.scale[0],a.scale[1],a.scale[2]);let l=s+rand(a.scaleX[0],a.scaleX[1],a.scaleX[2]);let c=s+rand(a.scaleY[0],a.scaleY[1],a.scaleY[2]);let p=s+rand(a.scaleZ[0],a.scaleZ[1],a.scaleZ[2]);let f=rand(a.positionX[0],a.positionX[1],a.positionX[2]);let d=rand(a.positionY[0],a.positionY[1],a.positionY[2]);let u=rand(a.positionZ[0],a.positionZ[1],a.positionZ[2]);let m=rand(a.rotationX[0],a.rotationX[1],a.rotationX[2]);let g=rand(a.rotationY[0],a.rotationY[1],a.rotationY[2]);let h=rand(a.rotationZ[0],a.rotationZ[1],a.rotationZ[2]);let E=a.numberOfRadialSegments;let S=a.numberOfHeightSegments;let v=a.openEnded;if(e.ellipseMode){f*=Math.pow(20-Math.abs(d),e.ellipseModePowerOf)*e.ellipseModeMultiplier;u*=Math.pow(20-Math.abs(d),e.ellipseModePowerOf)*e.ellipseModeMultiplier}if(e.enableScaleEllipseMode){l*=Math.pow(e.scaleEllipseModeBaseX-Math.abs(d),e.scaleEllipseModePowerOfX)*e.scaleEllipseModeMultiplierX;c*=Math.pow(e.scaleEllipseModeBaseY-Math.abs(d),e.scaleEllipseModePowerOfY)*e.scaleEllipseModeMultiplierY;p*=Math.pow(e.scaleEllipseModeBaseZ-Math.abs(d),e.scaleEllipseModePowerOfZ)*e.scaleEllipseModeMultiplierZ}let T={};for(let e=0;e<100;e++){let e=a.types[randS(0,a.types.length-1,1)];if(randS(0,1,.1)>1-e.probability){T=e;break}}try{var x=materialTemplates[a.material].clone()}catch(A){console.warn(a);var x=materialTemplates[pick(a.material)[1]].clone()}if(a.wireframeProbability&&randS(0,1,.01)>1-a.wireframeProbability){x.wireframe=true;E=5;S=5;v=true}else{x.wireframe=false}if(e.clipPlanes&&e.clipPlanes.length>0){x.clippingPlanes=e.clipPlanes}let b=makeCone(x,r,o,E,S,v,[l,c,p],[f,d,u],[m,g,m],T);if(i){let e=Math.max(l,c,p);let t=e/100*i;t=Math.max(t,1e-7);b.scale.set(0,0,0);b.userData.animationQueue=[makeAnimationForQueue("scale",0,e,e,t)]}if(e.enableNegativeSpace){b.material.clippingPlanes=e.clipPlanes;b.material.clipIntersection=true}b.userData.name=t;b.userData.shapeType=n;addPivotToAxis(e,b,t)}function animateWorldPlane(){if(!SCENE.worldPlane.userData.animationQueue){if(SCENE.worldPlane.scale.x>1+SCENE.worldPlane.userData.scaleAmount&&SCENE.worldPlane.userData.scaleFactor>0||SCENE.worldPlane.scale.x<1&&SCENE.worldPlane.userData.scaleFactor<0){SCENE.worldPlane.userData.scaleFactor*=-1}SCENE.worldPlane.scale.set(SCENE.worldPlane.scale.x+SCENE.worldPlane.userData.scaleFactor,SCENE.worldPlane.scale.y+SCENE.worldPlane.userData.scaleFactor,1)}}function makeWorldPlane(){worldPlane=makeGradientPlane(rendererWidth*3,rendererWidth*3,worldGradientType,worldGradientColors,false);worldPlane.userData.name="worldPlane";worldPlane.position.z=-rendererWidth;worldPlane.z=-100;worldPlane.userData.scaleFactor=rand(worldGradientAnimationSpeed[0],worldGradientAnimationSpeed[1],worldGradientAnimationSpeed[2]);worldPlane.userData.scaleAmount=rand(worldGradientAnimationScale[0],worldGradientAnimationScale[1],worldGradientAnimationScale[2]);worldPlane.userData.animationQueue=[];SCENE.worldPlane=worldPlane;SCENE.scene.add(SCENE.worldPlane)}function addExtraShapeToAxis(e,t,a,o,i=undefined){let n=a;let r=randFromRange(o.scale);let s=r+randFromRange(o.scaleX);let l=r+randFromRange(o.scaleY);let c=r+randFromRange(o.scaleZ);let p=randFromRangeS2(o.positionX);let f=randFromRangeS2(o.positionY);let d=randFromRangeS2(o.positionZ);let u=randFromRange(o.rotationX);let m=randFromRange(o.rotationY);let g=randFromRange(o.rotationZ);if(o.material){if(!materialTemplates[o.material]){console.warn("Object has no material",o)}else{var h=materialTemplates[o.material].clone()}}else{var h=e.coneMaterial.clone();if(e.coneMaterial.map){if(o.textureScale){h.map.repeat.x=o.textureScale[0];h.map.repeat.y=o.textureScale[1]}if(o.textureRotation){h.map.rotation=THREE.MathUtils.degToRad(o.textureRotation);h.map.rotation=true}}if(o.color){h.color=new THREE.Color(o.color);h.color.needsUpdate=true}}if(e.clipPlanes&&e.clipPlanes.length>0){h.clippingPlanes=e.clipPlanes}if(n=="flower1"){h.map=undefined;h.bumpMap=undefined;let t=h.clone();if(SCENE.palette.special){h.color=new THREE.Color(SCENE.palette.special.flower[0]);t.color=new THREE.Color(SCENE.palette.special.flower[1])}else{let e=pickS2(SCENE.palette.colors);h.color=new THREE.Color(e[0]);t.color=new THREE.Color(e[1])}h=[h,t]}let E=undefined;if(n=="terrain"){let e=randFromRange(o.heightScale);E=makeTerrain(h,o.worldSizeX,o.worldSizeY,e,[s,l,c],[p,f,d],[u,m,g])}if(n=="smallterrain"){let e=randFromRange(o.heightScale);E=makeTerrain(h,o.worldSizeX,o.worldSizeY,e,[s,l,c],[p,f,d],[u,m,g],1,o.bumpsRange,o.depth)}else if(n=="cloud"){let e=randFromRange(o.sizeX);let t=randFromRange(o.sizeY);let a=randFromRange(o.sizeZ);let i=randFromRange(o.nSpheres);E=makeCloud(h,e,t,a,i,o.spheresScale,[s,l,c],[p,f,d],[u,m,g])}else if(n=="frame"){let e=randFromRange(o.height);let t=randFromRange(o.width);let a=randFromRange(o.thickness);let i=randFromRange(o.depth);E=makeFrame(h,e,t,a,i,[s,l,c],[p,f,d],[u,m,g])}else if(n=="rectangle"){let e=randFromRange(o.height);let t=randFromRange(o.width);let a=randFromRange(o.depth);E=makeRectangle(h,e,t,a,[s,l,c],[p,f,d],[u,m,g])}else if(n=="arrow"){let e=randFromRange(o.depth);let t=randFromRange(o.bevelThickness);let a=randFromRange(o.bevelSize);let i=randFromRange(o.bevelSegments);let n=o.type||0;E=makeArrow(h,e,t,a,i,[s,l,c],[p,f,d],[u,m,g],n)}else if(n=="knot"){let e=randFromRange(o.radius);let t=randFromRange(o.tube);let a=randFromRange(o.tubularSegments);let i=randFromRange(o.radialSegments);let n=randFromRange(o.p);let r=randFromRange(o.q);E=makeKnot(h,e,t,a,i,n,r,[s,l,c],[p,f,d],[u,m,g])}else if(n in base64Objects){E=loadOBJ(base64Objects[n],h,[s,l,c],[p,f,d],[u,m,g])}E.userData.name=t;E.name=t;E.userData.shapeType=n;if(e.enableNegativeSpace){E.material.clippingPlanes=e.clipPlanes;E.material.clipIntersection=true}addPivotToAxis(e,E,t,o.yAxisRangeOverwrite,i)}function updateObjectRotationSpeed(t,a,i,n=1,r=.1){for(let e of Axis){if(e.name==a){for(let a of e.pivots){if(a.userData.name==t){let e=a.userData.rotationSpeed;if(e===undefined){e=0}let t=makeAnimationForQueue("rotationSpeed",e,i,i,n,r);if(a.userData.animationQueue===undefined){a.userData.animationQueue=[]}a.userData.animationQueue.push(t);return}}}}}function switchObjectRotationDirection(t,a,i=1,n=.1){for(let e of Axis){if(e.name==a){for(let a of e.pivots){if(a.userData.name==t){let e=a.userData.rotationSpeed;if(e===undefined){e=0}let t=makeAnimationForQueue("rotationSpeed",e,e*-1,e*-1,i,n);if(a.userData.animationQueue===undefined){a.userData.animationQueue=[]}a.userData.animationQueue.push(t);return}}}}}function updateObjectDistanceFromAxis(i,e,n,r=1,o=.1){for(let t of Axis){if(t.name==e){for(let e of t.pivots){if(e.userData.name==i){for(let a o