memoscan
← all memos

Memo 0x30cddcdf…80a0a7 on Ethereum

const Bg={t(t){t.colorMode(HSB,256),t.fill(cfg.bgHue,cfg.bgSat,cfg.bgBri),t.rect(0,0,cfg.i,cfg.i)}};function calculateFeatures(t,i=!1){const s=[[240,"hard-light"],[220,"color-dodge"],[200,"exclusion"],[100,"difference"],[0,"source-over"]],e=(s.map((t=>t[1])),(t,i,s)=>Math.max(Math.min(t,s),i));function c(t,i,s){const c=(t-0)/255*(s-i)+i;return i<s?Math.round(e(c,i,s)):Math.round(e(c,s,i))}function n(t){const i=s.find((i=>{if(t>=i[0])return!0}));return i?i[1]:"source-over"}function o(t){const i=[];for(let s=2;s<t.length;s+=2)i.push(t.slice(s,s+2));return{bytes:i.map((t=>parseInt(t,16))),hashPairs:i}}return function(t,i=!1){const s=o(t.hash).bytes,e=o(t.hash).hashPairs,h=function(t){let i="no",s=t[12],e=t[13],n=t[14];return t[15]>200?(i="yes",e=c(e,200,255),n=c(e,100,150)):(i="no",e=c(e,0,255),n=c(e,20,40)),{h:s,s:e,b:n,bright:i}}(s),a=n(s[6]),r=n(s[7]),g=s[17]>245?"yes":"no",f="color-dodge"===a?"yes":"no",_="difference"===a?"yes":"no";let u={bright:h.bright,fgModeName:a,skeleton:g,xray:_,keytone:f};return i&&(u=Object.assign(Object.assign({},u),{minOpacity:Math.round(c(s[15],25,50)),maxOpacity:Math.round(c(s[16],50,240)),bgHue:h.h,bgSat:h.s,bgBri:h.b,bytes:s,hashPairs:e,bgModeName:r})),u}(t,i)}class Chimes_{constructor(){this.o=0,this.g=cfg._,this.u=cfg.l,this.m=0,this.p=500,this.B=this.u,this.C=[255,0,0,0],this.m=Date.now();try{this.S=new AudioContext}catch(t){console.warn("no audio context")}}k(){var t,i;return"suspended"!==(null===(t=this.S)||void 0===t?void 0:t.state)||(this.S.resume(),"suspended"!==(null===(i=this.S)||void 0===i?void 0:i.state))}v(t=cfg.l,i="sine"){if(!this.k())return;this.M=this.S.createOscillator(),this.T=this.S.createGain(),this.M.frequency.value=t,this.M.type=i,this.M.connect(this.T),this.T.connect(this.S.destination),this.M.start(0);const s=cfg.D;this.T.gain.value=random(.1),this.T.gain.exponentialRampToValueAtTime(1e-5,this.S.currentTime+s),this.M.stop(this.S.currentTime+s/2)}P(t){const i=t.H;this.B=map(i,0,255,cfg.l,cfg._),this.v(this.B)}I(t){const i=map(t,0,255,cfg.l,cfg._);this.v(i)}L(t){this.C=t}N(){const t=graph.O();t&&cfg.R&&this.P(t),setTimeout((()=>{this.N()}),random(cfg.A))}F(){this.N()}}const CBar_={j(t){t.noStroke(),CBar_.W(t);const i=2*cfg.X,s=i/5;t.push(),t.translate(0,cfg.i-i),CBar_.W(t,!0),cfg.R&&cfg.G?CBar_.U(t,i,s):CBar_.Y(t,i,s),t.pop()},U(t,i,s){t.triangle(s,s,s,i-s,i-s,i/2)},Y(t,i,s){t.rectMode(CORNER);const e=i/8,c=i-2*s;t.rect(s,s,e,c),t.rect(2*s,s,e,c)},$(t,i=0){cfg.q=i||cfg.J,cfg.msg=t},W(t,i=!1){t.colorMode(HSB,256);const s=cfg.bgBri<128?220:20;let e;e=i?255:cfg.q*(255/cfg.J)*.75;const c=cfg.bgHue;t.fill(c,30,s,e)},K(t){tick<60||cfg.q>0&&(cfg.q--,CBar_.W(t,!1),t.textSize(cfg.X),t.noStroke(),t.textAlign(LEFT,CENTER),t.text(cfg.msg,2*cfg.X,cfg.i-cfg.X))},V:t=>(t.colorMode(HSB,256),CBar_.W(t),t.noStroke(),t.textAlign(LEFT,TOP),t.textSize(cfg.X/2),t.textAlign(CENTER,CENTER),hbox.hashPairs.map(((i,s)=>{const e=s*cfg.X+cfg.Z;t.fill(hbox.bytes[s],128,128),t.text(i,e,cfg.X/2),t.text(hbox.chars[s],e,1.5*cfg.X)})),t)};function mouseClicked(t){Evty.tt(t)}function togglePlaying_(t){cfg.R=!cfg.R;const i=cfg.R?"playing":"silent";CBar_.$(i),t.stopPropagation()}function toggleFullScreen(){let t=fullscreen();fullscreen(!t)}function keyPressed(){switch(Listener.startListen(),keyCode){case 188:cfg.A*=1.5,CBar_.$("tickTime: "+Math.round(cfg.A));break;case 190:cfg.A/=1.5,CBar_.$("tickTime: "+Math.round(cfg.A));break;case 13:case 32:hbox.it(),graph.st();break;case 46:case 8:hbox.et();break;default:Evty.ct(keyCode),chimes_&&chimes_.I(keyCode)}}let lastMouseSpot_,lastSpot;const Evty={ct(t){Evty.nt();const i=String.fromCharCode(t);CBar_.$(i),hbox.ct(t)},ot(t){hbox.it(),t.split("").map((t=>{const i=t.charCodeAt(0);hbox.ct(i)})),graph.st(),CBar_.$(t)},tt(t){cfg.G?(t.y>cfg.i-2*cfg.X?t.x<2*cfg.X&&togglePlaying_(t):Evty.ht(t),t.stopPropagation()):Evty.nt()},ht(t){const i={x:mouseX,y:t.y},s=graph.rt(i,1).pop();s&&(mt.gt=s,s.ft(!0),chimes_.P(s))},nt(){chimes_.k(),cfg.G=!0,cfg.R=!0,cfg.q/=4},_t(t){mt.track();const i={x:mouseX,y:mouseY};graph.ut();const s=graph.rt(i,1,cfg.lt).pop();s?(cursor("pointer"),mt.gt=s,s.outline=!0):cursor("crosshair")}};class Graf{constructor(){this.dt=[],this.bt=0}st(){var t,i,s,e,c;this.dt=[];const n=(null===(t=hbox.bytes)||void 0===t?void 0:t.length)-1;for(let t=0;t<=n;t++){const i=hbox.bytes[t];this.xt(i)}null===(i=this.dt[0])||void 0===i||i.ft(!0),null===(s=this.dt[1])||void 0===s||s.ft(!0),null===(e=this.dt[2])||void 0===e||e.ft(!0),null===(c=this.dt[3])||void 0===c||c.ft(!0)}xt(t){const i=new Spot;i.wt(t),this.dt.splice(this.bt-1,0,i),this.dt=this.dt.slice(0,31)}it(){hbox.it(),this.st()}ut(){for(const t of this.dt)t.outline=!1}j(t){t.colorMode(HSB,256);for(const i of this.dt)i.yt(t);for(const i of this.dt)if(i.Bt(),i.Ct>0){const s=this.rt(i,cfg.St,cfg.kt);this.vt(t,i,s)}for(const i of this.dt)i.j(t)}Mt(t){return t=Utils.modulo(t,this.dt.length),this.dt[t]}rt(t,i=3,s=cfg.lt){let e=this.dt.slice();return e=e.map((i=>(i.Et=this.Tt(t,i),i))).filter((t=>t.Et<s*s)).sort(((t,i)=>t.Et-i.Et)).slice(0,i),e}Tt(t,i){const s=t.x-i.x,e=t.y-i.y;return s*s+e*e}vt(t,i,s){t.strokeWeight(cfg.Dt),t.stroke(i.Pt,220,256,200),s.forEach((s=>{t.line(i.x,i.y,s.x,s.y)}))}O(){this.bt=(this.bt+1)%this.dt.length||0;const t=this.dt[this.bt];if(t)return this.Ht&&this.Ht.ft(!1),t.ft(!0),this.Ht=t,t}}const MAXLEN=32;class HashBox{init(t){t.hash=t.hash.toUpperCase(),this.st(t)}it(){tokenData={tokenId:0,hash:""},hbox.st(tokenData)}st(t){const i=calculateFeatures(t,!0);this.hashPairs=i.hashPairs,this.bytes=i.bytes,this.chars=this.bytes.map(this.It).join("")}Lt(t){this.bytes.push(t);const i=this.Nt(t);this.hashPairs.push(i),this.Ot()}et(){hbox.bytes.length>0&&(this.bytes.pop(),this.hashPairs.pop(),this.chars=this.chars.slice(0,this.chars.length-1),graph.st())}Rt(){return this.bytes[this.bytes.length-1]}zt(t){if(t.length<32)return t;const i=t.length-32;return t.slice(i,i+32)}Ot(){this.bytes=this.zt(this.bytes),this.hashPairs=this.zt(this.hashPairs),this.chars=this.zt(this.chars)}It(t){const i=map(t,0,255,65,90);return String.fromCharCode(i)}ct(t){const i=String.fromCharCode(t);this.chars+=i;let s=Math.round(map(t,65,90,0,255))%256;s=Math.abs(s),this.Lt(s),graph.xt(s)}Nt(t){let i=t.toString(16).toUpperCase();return i=i.padStart(2,"0"),i}}let ignore_onend_,start_timestamp_,recognition_,finalText_="",recognizing_=!1,lastIndex_=0;const Listener={setText(t){Listener.finalText(t)},startListen(){cfg.R=!0,recognizing_||(finalText_="",recognition_.lang="en",recognition_.start(),ignore_onend_=!1)},finalText(t){t=(t=t.toLocaleUpperCase()).trim(),Evty.ot(t)}};function failSpeech(){console.error("failed to get speech input")}function showError(t){console.warn("audio error:"+t)}"webkitSpeechRecognition"in window?(recognition_=new webkitSpeechRecognition,recognition_.continuous=!0,recognition_.interimResults=!0,recognition_.onstart=function(){recognizing_=!0},recognition_.onerror=function(t){"no-speech"==t.error&&(ignore_onend_=!0),"audio-capture"==t.error&&(ignore_onend_=!0),"not-allowed"==t.error&&(t.timeStamp-start_timestamp_<100?showError("audio not allowed"):showError("audio denied"),ignore_onend_=!0)},recognition_.onend=function(){recognizing_=!1,ignore_onend_||finalText_||(cfg.R=!1)},recognition_.onresult=function(t){if(void 0===t.results)return recognition_.onend=null,recognition_.stop(),void failSpeech();let i=!0;for(var s=t.resultIndex;s<t.results.length;++s){const e=t.results[s],c=e[0].transcript;e.isFinal?Listener.setText(c):t.resultIndex>lastIndex_&&(lastIndex_=t.resultIndex,finalText_+=c,Listener.setText(finalText_)),i=!1,cfg.msg=c,CBar_.$(c)}i&&(CBar_.$(finalText_),finalText_="")}):failSpeech();class MouseTracker{constructor(){this.lastMove=0,this.x=cfg.At,this.y=cfg.At,this.size=cfg.At/3,this.Ft=hbox.bytes[10]}track(){this.x=mouseX,this.y=mouseY,this.size=cfg.At/3,this.lastMove=Date.now()}render(t){Date.now()-this.lastMove>3e3||(t.strokeWeight(cfg.Dt),t.noFill(),this.gt?t.stroke(this.gt.Pt,256,256,255):t.stroke(this.Ft,256,200,255),t.circle(this.x,this.y,this.size/2))}}class Spot{constructor(){this.jt=0,this.Wt=0,this.Xt=PI2/5,this.Gt=0,this.Ut=!1,this.Ct=0,this.outline=!1,this.Yt=1,this.$t=[cfg.At,cfg.At],this.Ct=0,this.Ut=!1,this.bt=Spot.qt++}Jt(){if(this.Ct>0){this.Ct--;const t=map(this.Ct,0,cfg.Qt.Kt,cfg.Qt.Vt,cfg.Qt.Zt);return 0==this.Ct&&this.ft(!1),t}return cfg.Qt.Vt}ft(t){t?(this.Ct=cfg.Qt.Kt,this.Ut=!0):this.Ut=!1}ti(){this.outline=!0}wt(t){this.H=t,this.ii=hbox.Nt(t),this.chars=this.ii.split(""),this.a=parseInt(this.chars[0],16),this.b=parseInt(this.chars[1],16),this.si=this.b/16,this.ei=this.H,this.Pt=(this.H+cfg.Ft)%255,this.ci=`${this.chars[0]}${this.chars[1]}`,this.ni=this.si*PI2%PI2,this.oi=this.ei%256,this.oi=map(this.oi,0,256,cfg.Wt,cfg.hi),this.Xt=map(this.H,0,256,cfg.ai,cfg.ri),this.jt=map(this.H,0,255,cfg.gi,cfg.fi)*Utils.makeSign(this.H),this._i()}Bt(){this._i(),this.ni=(this.ni+this.jt)%PI2,this.ni<0&&(this.ni=PI2),this.x=this.oi*Math.cos(this.ni)*this.Yt,this.y=this.oi*Math.sin(this.ni)*this.Yt,this.x+=cfg.At,this.y+=cfg.At}_i(){const t=cfg.hi-this.oi;this.ui=map(t,0,cfg.hi,cfg.minOpacity,cfg.maxOpacity)}yt(t){t.noFill(),t.strokeWeight(cfg.Dt),t.stroke(this.Pt,200,256,2*this.ui),t.arc(cfg.At,cfg.At,2*this.oi,2*this.oi,this.ni-this.Xt,this.ni,OPEN),t.noStroke(),"yes"==cfg.skeleton?t.fill(this.Pt,200,256,this.ui/20):t.fill(this.Pt,200,256,this.ui),t.arc(cfg.At,cfg.At,2*this.oi,2*this.oi,this.ni-this.Xt,this.ni,PIE)}li(t){this.outline||"yes"==cfg.skeleton?(t.stroke(this.Pt,256,256,256),t.strokeWeight(cfg.Dt)):t.noStroke(),"yes"==cfg.skeleton?t.noFill():t.fill(this.Pt,150,256,this.ui),t.circle(this.x,this.y,this.Jt())}di(t){t.textSize(cfg.X*cfg.bi);let i=(this.Pt+120)%256,s=this.ui>128?0:256;cfg.skeleton?t.fill(this.Pt,200,256,256):t.fill(i,s,s,255),t.textAlign(CENTER,CENTER),t.noStroke(),t.text(this.ci,this.x,this.y)}j(t){this.li(t),this.di(t)}}Spot.qt=0;const Utils={makeSign:t=>(t=Math.round(t))%2==0?1:-1,modulo:(t,i)=>(t%i+i)%i};let graph,count=0,tick=0;const windowPadding=0,PI2=2*Math.PI;let hbox,chimes_,mt,mainCanvas,bgbuf,obuf,gbuf,features,cfg={mi:0,pi:30,xi:!1,wi:.1,yi:1,Bi:.7,Ci:.2,ai:Math.PI/20,ri:Math.PI/1,bi:.5,St:5,Si:Date.now(),Qt:{Kt:150,Zt:5,Vt:1},A:2e3,D:10,l:40,_:880,gi:PI2/4e3,fi:PI2/1500,msg:"play",ki:1,lt:1,kt:0,minOpacity:0,maxOpacity:128,bgHue:128,bgSat:128,bgBri:128,J:60,q:128};function mouseMoved(t){Evty._t(t)}function windowResized(){const t=getSmallSide();resizeCanvas(t,t),initDrawing()}function getSmallSide(){return(windowWidth<windowHeight?windowWidth:windowHeight)-0}function setup(){hbox=new HashBox,hbox.init(tokenData);const t=getSmallSide();mainCanvas=createCanvas(t,t),frameRate(cfg.pi),mainCanvas.mouseClicked=mouseClicked,initDrawing()}function initDrawing(){features=calculateFeatures(tokenData,!0),cfg=Object.assign(Object.assign({},cfg),features),tick=0,blendMode(BLEND),colorMode(HSB,256);const t=(windowWidth<windowHeight?windowWidth:windowHeight)-0;cfg.i=t,cfg.At=t/2,cfg.hi=cfg.At*cfg.yi,cfg.Wt=cfg.At*cfg.wi,cfg.X=cfg.i/32,cfg.Z=cfg.X/2,cfg.ki=Math.round(cfg.i/512),cfg.Qt.Zt=6*cfg.X,cfg.Qt.Vt=2*cfg.X,cfg.lt=cfg.Qt.Zt/2,cfg.kt=cfg.i,mt=new MouseTracker,cfg.Ft=hbox.bytes[3],cfg.Dt=Math.max(1*cfg.ki,1),graph=new Graf,graph.st(),Listener.startListen(),bgbuf=getBuffer(),obuf=getBuffer(),gbuf=getBuffer(),bgbuf.colorMode(HSB,256),obuf.colorMode(HSB,256),gbuf.colorMode(HSB,256),bgbuf.blendMode(BLEND),obuf.blendMode(BLEND),gbuf.blendMode(BLEND),bgbuf.background(0,0,0),delete features.hashPairs,delete features.bytes,CBar_.$("play",300);for(let t=0;t<10;t++)draw(!0)}function getBuffer(){return createGraphics(cfg.i,cfg.i)}function draw(t=!1){tick++,cfg.G||chimes_||(chimes_=new Chimes_,chimes_.F()),Bg.t(bgbuf),gbuf.clear(),graph.j(gbuf),obuf.clear(),mt.render(obuf),CBar_.V(obuf),CBar_.K(obuf),CBar_.j(obuf),blendMode(BLEND),image(bgbuf,0,0),blendMode(cfg.fgModeName),image(gbuf,0,0),blendMode(BLEND),image(obuf,0,0)}