0x35ed1634…9501sent to0x0a1bbd57…3676·#15,983,547·view on Etherscan
!function e(t,n,r){function o(s,a){if(!n[s]){if(!t[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var d=n[s]={exports:{}};t[s][0].call(d.exports,(function(e){return o(t[s][1][e]||e)}),d,d.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)o(r[s]);return o}({1:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Artwork=void 0;var r=p(e("../lib/nanogl/fbo")),o=p(e("../lib/nanogl/texture-2d")),i=(p(e("../lib/nanogl/renderbuffer")),p(e("../programs"))),s=p(e("../lib/simplex-noise")),a=e("../random"),l=e("../gl/geoms/rect"),c=e("../utils/math"),d=e("../settings"),u=p(e("../glsl/base.vert")),f=p(e("../glsl/artwork.frag")),h=e("./grain"),g=e("./noises"),v=e("../lib/colorramp/index_prod");function p(e){return e&&e.__esModule?e:{default:e}}const b=a.R.random(),m=new s.default(b),x=d.settings.dpr,y=[d.settings.dimensions[0]*x,d.settings.dimensions[1]*x],_=d.settings.timeLimit;let w=null;n.Artwork=e=>{a.R.random(),a.R.random();const t=[];let n=[];const s=[],p=[];let x=0;const S=e,R=new l.Rect(S);let C=null;const T=i.default.get("artwork_pass1"),P=(0,h.Grain)(S),z=(0,g.Noises)(S);let E,F,M,A=null,O=null,L=null;const D=d.settings.brushSizeScl;let B=d.settings.brushSizeOpts;B=B.map((e=>e*D));let I=a.R.pick(B),k=I/2,G=I/2+20/d.settings.dimensions[1],N=16,U=6,j=a.R.range(-1,1)*Math.PI*2,Y=5,H=1,q=0,V=0,K=!1;const X=()=>{L.bind(),L.fromImage(w.getCanvas())};return(()=>{let e="\n";e+="#define NB_RECTS 1\n",C=i.default.makeProgram(u.default,f.default,{name:"artwork",defs:"\n#define NB_RECTS 1\n"})})(),P.render(),z.renderPerlin(x),z.renderFlows(x),z.renderCurl(0),(()=>{for(let e=0;e<1;e++){const e=0,r=0,o=I,i=1,l=0,c=a.R.pick([2,5,10,20,50]);t.push(e,r,o,i),n.push(e,r,o,i),s.push(l),p.push(c)}})(),w=new v.ColorRamp,w.onChange=X,L=new o.default(S),d.settings.isBuild?w.onAppendedToDOM():(document.body.appendChild(w.getEl()),setTimeout(w.onAppendedToDOM,0)),(()=>{let e=new o.default(S,S.RGBA,S.UNSIGNED_BYTE);e.bind(),E=new r.default(S),E.attach(S.COLOR_ATTACHMENT0,e),E.resize(y[0],y[1]),e=new o.default(S,S.RGBA,S.UNSIGNED_BYTE),e.bind(),F=new r.default(S),F.attach(S.COLOR_ATTACHMENT0,e),F.resize(y[0],y[1]),O=E,M=F;e=new o.default(S,S.RGBA,S.UNSIGNED_BYTE),e.bind(),e.clamp(),A=new r.default(S),A.attach(S.COLOR_ATTACHMENT0,e),A.resize(1024,1024)})(),{update:e=>{x=.5*e+100*b;for(let e=0;e<t.length;e+=4){const n=x;let r=m.noise2D(100*G,100*G+1e3*b);r=(0,c.fit)(r,-1,1,.005,.008),j=m.noise2D(2e3*G+n*Y*d.settings.brushRotationScl,2e3*G+1e3*b)*Math.PI*2,I==d.settings.brushMaxSize&&(j*=.2);let o=m.noise2D(1e3*G+500*n,1e4*G+1e3*b);o=(0,c.fit)(o,-1,1,2,4)*d.settings.glbSpeedScale,k+=r*o*H;const i=.7;let s=m.noise2D(k*i+n*d.settings.brushSVarSpeed+500*b,G*i*3+1e3*b);s=(0,c.fit)(s,-1,1,1,d.settings.brushSVarMax);let l=I/2,u=1-1.5*I;if(.35==I&&.5==d.settings.brushSizeScl&&(u=a.R.range(u,1+I)),k>u){V++;const t=a.R.pick(B);let n=d.settings.brushSizeScl<1?.9:1,r=a.R.random()>n?a.R.pick([.5,.5]):1;G+=I*r,d.settings.currentY=G,K=d.settings.useEraser&&V%d.settings.eraserFreq==0,U=6,N=K?U:16,Y=a.R.range(5,20),I=t,k=l*a.R.range(.7,1.5),I==d.settings.brushMaxSize&&.7==d.settings.brushMaxSize&&(k=a.R.range(-I,0));const o=1,i=a.R.pick([2,5,10,20,50])*o;p[e]=i,q=a.R.pick([0,.001,.003,.005]),d.settings.smoothOverride&&(q=d.settings.smoothOverride);const s=.3;H=a.R.random()<s&&d.settings.shouldSlowDown&&.5==d.settings.glbSpeedScale?.5:1}t[e]=k,t[e+1]=G,t[e+2]=I*s}},render:()=>{x-100*b>_||(S.bindFramebuffer(S.FRAMEBUFFER,null),S.clearColor(0,0,0,0),S.clear(S.COLOR_BUFFER_BIT),T.use(),T.use(),T.tTex(O.getColor()),T.tGrain(P.getColor()),T.tGradientMap(L),T.tPerlin(z.getPerlinColor()),T.tCurl(z.getCurlColor()),T.uResolution(d.settings.dprDimensions),T.uSeed&&T.uSeed(b),R.bind(),R.attribPointer(T),R.render())},renderArtwork:()=>{if(x-100*b>_)return;const e=x-100*b;S.bindFramebuffer(S.FRAMEBUFFER,null);var n=O;O=M,M=n,M.bind(),S.clearColor(0,0,0,1),S.clear(S.COLOR_BUFFER_BIT),C.use(),C.tPrevFrame(O.getColor()),C.uRects(t),C.uTime(e),C.uTimeOffsets(s),C.uRectsThickness(p),C.uResolution(d.settings.dprDimensions),C.tCurl(z.getCurlColor()),C.tPerlin(z.getPerlinColor()),C.tFlow1(z.getFlow1Color()),C.tFlow2(z.getFlow2Color()),C.uBlendingMode(N),C.uRotation(j),C.uSmoothness(q),C.tGradientMap(L),C.uPushForce(d.settings.pushForce),C.uPivotScl(d.settings.pivotScl),C.uShapeType&&C.uShapeType(0),R.bind(),R.attribPointer(C),R.render()}}}},{"../gl/geoms/rect":4,"../glsl/artwork.frag":5,"../glsl/base.vert":11,"../lib/colorramp/index_prod":25,"../lib/nanogl/fbo":29,"../lib/nanogl/renderbuffer":31,"../lib/nanogl/texture-2d":32,"../lib/simplex-noise":36,"../programs":40,"../random":41,"../settings":43,"../utils/math":44,"./grain":2,"./noises":3}],2:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Grain=void 0;var r=a(e("../programs")),o=e("../gl/geoms/rect"),i=a(e("../lib/nanogl/fbo")),s=a(e("../lib/nanogl/texture-2d"));function a(e){return e&&e.__esModule?e:{default:e}}const l=e("../random").R.random(),c=1024;n.Grain=e=>{let t=e,n=null,a=null,d=null;return n=r.default.get("grain"),a=new o.Rect(t),d=new i.default(t),d.attach(t.COLOR_ATTACHMENT0,new s.default(t,t.RGBA,t.UNSIGNED_BYTE)),d.resize(c,c),{getColor:()=>d.getColor(),render:()=>{d.bind(),n.use(),n.uSeed(l),n.uResolution&&n.uResolution([c,c]),a.bind(),a.attribPointer(n),a.render()}}}},{"../gl/geoms/rect":4,"../lib/nanogl/fbo":29,"../lib/nanogl/texture-2d":32,"../programs":40,"../random":41}],3:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Noises=void 0;var r=l(e("../programs")),o=e("../gl/geoms/rect"),i=l(e("../lib/nanogl/fbo")),s=l(e("../lib/nanogl/texture-2d")),a=(e("../random"),e("../settings"));function l(e){return e&&e.__esModule?e:{default:e}}const c=1/16,d=a.settings.dimensions[1]*a.settings.dpr*c;n.Noises=e=>{let t,n,l,c,u,f=e,h=null,g=null,v=null;const p=[a.settings.flowsFreq[0],a.settings.flowsFreq[1]],b=[a.settings.flowsFreq[2],a.settings.flowsFreq[3]],m=e=>{f.viewport(0,0,16*d,16*d),c.bind(),h.use(),h.uSeed(a.settings.rnd),h.uFreq(p),h.uOffset(a.settings.flow1Offset),h.uFboRes(16),h.uResolution&&h.uResolution([d,d]),g.bind(),g.attribPointer(h),g.render(),u.bind(),h.uFreq(b),h.uOffset(a.settings.flow2Offset),g.render()},x=e=>{f.viewport(0,0,16*d,16*d),l.bind(),t.use(),t.uSeed(a.settings.rnd),t.uTime(e),t.uFboRes(16),t.uResolution&&t.uResolution([d,d]),g.bind(),g.attribPointer(t),g.render()},y=e=>{f.viewport(0,0,16*d,16*d),v.bind(),n.use(),n.uSeed(a.settings.rnd),n.uResolution&&n.uResolution([d,d]),g.bind(),g.attribPointer(n),g.render()};return(()=>{t=r.default.get("curl"),n=r.default.get("perlin"),h=r.default.get("flow"),g=new o.Rect(f);let e=new s.default(f,f.RGBA,f.UNSIGNED_BYTE);e.bind(),e.repeat(),l=new i.default(f),l.attach(f.COLOR_ATTACHMENT0,new s.default(f,f.RGBA,f.UNSIGNED_BYTE)),l.resize(d,d),e=new s.default(f,f.RGBA,f.UNSIGNED_BYTE),e.bind(),e.repeat(),c=new i.default(f),c.attach(f.COLOR_ATTACHMENT0,new s.default(f,f.RGBA,f.UNSIGNED_BYTE)),c.resize(8*d,8*d),e=new s.default(f,f.RGBA,f.UNSIGNED_BYTE),e.bind(),e.repeat(),u=new i.default(f),u.attach(f.COLOR_ATTACHMENT0,new s.default(f,f.RGBA,f.UNSIGNED_BYTE)),u.resize(8*d,8*d),e=new s.default(f,f.RGBA,f.UNSIGNED_BYTE),e.bind(),e.repeat(),v=new i.default(f),v.attach(f.COLOR_ATTACHMENT0,e),v.resize(16*d,16*d)})(),{getCurlColor:()=>l.getColor(),getPerlinColor:()=>v.getColor(),getFlow1Color:()=>c.getColor(),getFlow2Color:()=>u.getColor(),render:e=>{x(e),y(),m()},renderCurl:x,renderPerlin:y,renderFlows:m}}},{"../gl/geoms/rect":4,"../lib/nanogl/fbo":29,"../lib/nanogl/texture-2d":32,"../programs":40,"../random":41,"../settings":43}],4:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Rect=void 0;var r,o=(r=e("../../lib/nanogl/arraybuffer"))&&r.__esModule?r:{default:r};e("../../utils/math");n.Rect=class extends o.default{constructor(e,t=-1,n=-1,r=2,o=2){super(e),this.d=new Float32Array([-1,-1,0,0,-1,1,0,1,1,-1,1,0,1,1,1,1]);const i=this.d;i[0]=i[4]=t,i[1]=i[9]=n,i[8]=i[12]=t+r,i[5]=i[13]=n+o,this.data(i),this.attrib("aPosition",2,e.FLOAT),this.attrib("aTexCoord",2,e.FLOAT),this.d=i}setPosAndSize(e,t,n,r){const o=this.d;o[0]=o[4]=e,o[1]=o[9]=t,o[8]=o[12]=e+n,o[5]=o[13]=t+r,this.subData(o),this.d=o}render(){this.drawTriangleStrip()}}},{"../../lib/nanogl/arraybuffer":27,"../../utils/math":44}],5:[function(e,t,n){t.exports="#define GLSLIFY 1\n#define PI 3.1415926538\n\nuniform vec2 uPos;\nuniform float uTime;\nuniform vec2 uResolution;\nuniform sampler2D tPrevFrame;\nuniform sampler2D tCurl;\nuniform sampler2D tPerlin;\nuniform sampler2D tFlow1;\nuniform sampler2D tFlow2;\nuniform sampler2D tGradientMap;\nuniform float uBlendingMode;\nuniform float uShapeType;\nuniform float uRotation;\nuniform float uSmoothness;\nuniform vec2 uPushForce;\nuniform float uPivotScl;\n\nin vec2 vTexCoord;\n\nuniform vec4 uRects[NB_RECTS];\nuniform float uRectsThickness[NB_RECTS];\nuniform float uTimeOffsets[NB_RECTS];\n\nout vec4 FragColor;\n\n<transform>\n<math>\n<blending>\n\nfloat rect(in vec2 _st, in vec2 _size, float smoothness){\n _size = vec2(0.5) - _size*0.5;\n float smoothing = smoothness; // 0.001\n vec2 uv = smoothstep(_size,\n _size+vec2(smoothing),\n _st);\n uv *= smoothstep(_size,\n _size+vec2(smoothing),\n vec2(1.0)-_st);\n return uv.x*uv.y;\n}\n\nvoid main() {\n float screenRatio = uResolution.x/uResolution.y;\n vec2 uv = gl_FragCoord.xy/uResolution;\n \n\n vec3 prevColor = texture(tPrevFrame, uv).rgb;\n\n float snoisePertub1 = texture(tPerlin, vTexCoord * .1).r;\n\n float upMaskVal = .98;\n \n \n float steps = 10.;\n vec2 steppedUV = floor(uv * steps) / steps; \n\n vec3 curl1 = texture(tFlow1, uv ).rgb;\n\n vec2 curl2Coords = uv;//rotate2d(.5) * uv * fit( curl1.b, 0., 1., .2, 4. );\n vec3 curl2 = texture(tFlow2, curl2Coords).rgb;\n vec3 curl = normalize(mix(curl1, curl2, snoisePertub1));\n\n float prevPertubScl = curl2.g * 5. * fit(curl2.b, 0., 1., -1., 1.);\n float shakeSpeed = fit(texture(tPrevFra