[{"data":1,"prerenderedAt":3758},["ShallowReactive",2],{"posts:\u002Fposts\u002F2024-03-02-wavy-generative-animation":3},{"id":4,"title":5,"body":6,"categories":3741,"date":3743,"description":3744,"extension":3745,"image":3746,"lang":3744,"meta":3747,"navigation":448,"path":3748,"seo":3749,"stem":3750,"tags":3751,"titleInPicture":3756,"__hash__":3757},"posts\u002Fposts\u002F2024-03-02-wavy-generative-animation.md","wavy generative animation",{"type":7,"value":8,"toc":3739},"minimark",[9,13,3735],[10,11,12],"p",{},"I made this one just to get the kick out of it. It's agent-based, and each agent changes in direction according to a set of frequency\u002Famplitude pairs, akin to inverse FFT, only that frequencies are not restricted to bins. The trail of these \"agents\" is warped according, too, to sin\u002Fcos function to get a sort of 3d-wavy effect.",[14,15,16],"code-runner",{},[17,18,23],"pre",{"className":19,"code":20,"language":21,"meta":22,"style":22},"language-javascript shiki shiki-themes github-dark","    \u002F\u002F @ts-check\n    const canvas = document.createElement('canvas');\n    const container = document.getElementById('code-target')\n    \n    \n    const listOfColors1 = [\n        '#220055',\n        '#280260',\n        '#2e0365',\n        '#34046a',\n        '#3a056f',\n        '#400674',\n        '#460779',\n        '#4c087e',\n        '#520983',\n        '#580a88',\n        '#5e0b8d',\n        '#640c92',\n        '#6a0d97',\n        '#700e9c',\n        '#760fa1',\n    ];\n    const listOfColors2 = [\n        '#550022',\n        '#600228',\n        '#65032e',\n        '#6a0434',\n        '#6f053a',\n        '#740640',\n        '#790746',\n        '#7e084c',\n        '#830952',\n        '#880a58',\n        '#8d0b5e',\n        '#920c64',\n        '#970d6a',\n        '#9c0e70',\n        '#a10f76',\n    ];\n    if (!container) {\n        throw new Error('Container not found');\n    }\n    container.appendChild(canvas);\n    const listOfThings = [];\n\n    const makeThing = (mycolor) => {\n        \u002F** @type {Vector2} *\u002F\n        const pos = [0, 0];\n        \u002F** @type {Vector2} *\u002F\n        const speed = [0, 0];\n        let index = listOfThings.length;\n        \u002F** @type {{jumped:boolean, v:Vector2}[]} *\u002F\n        let pastPos = [];\n        let phase = 0;\n        let initialized = false;\n\n        \u002F\u002F representation of frequency and amplitude\n        const mults = [\n            [0.5, 1],\n\n            \u002F\u002F [0.25, 0.3],\n            \u002F\u002F [-0.5, -0.5],\n            \u002F\u002F [0.125, 1],\n            \n            [-0.0125, -1],\n            [-0.01245, -1.1],\n\n\n            [0.01, Math.random() * 0.001],\n\n            [-2, 0.1],\n            [2.2, -0.13],\n            [-2.3, -0.15],\n            [8, 0.12],\n            [-12, -0.01],\n\n        ]\n        \u002F** apply polar to cartesian into the array of frequency, amplitude  pairs*\u002F\n        const getRotatingSpeed = () => {\n            let result = [0, 0];\n            for (let i = 0; i \u003C mults.length; i++) {\n                const mult = mults[i];\n                result[0] += Math.sin(phase * mult[0]) * mult[1];\n                result[1] += Math.cos(phase * mult[0]) * mult[1];\n            }\n            return result;\n        }\n        \u002F** \n         * @param {number} dt delta time\n         * @param {CanvasRenderingContext2D} context\n         *\u002F\n        const frame = (dt, context) => {\n            context.strokeStyle = mycolor\n            context.lineWidth = 2;\n\n            if (!initialized) {\n                phase = (index \u002F listOfThings.length) * Math.PI * 2;\n                initialized = true;\n            }\n            phase += dt * 0.01\n            const newSpeed = getRotatingSpeed();\n            speed[0] = newSpeed[0] * 0.00025;\n            speed[1] = newSpeed[1] * 0.00025;\n\n            const { v: wrappedPos, jumped } = wrapCoords(pos);\n            let drawPos = spaceToScreenCoords(wrappedPos);\n            \n            context.beginPath();\n            const historyLength = 200;\n            pastPos.forEach(({ v, jumped }, i) => {\n                \u002F** @type {Vector2} *\u002F\n                const movedPoint = [\n                    v[0] + Math.sin(phase * 0.03 - i \u002F 30) * 0.01,\n                    v[1] + Math.cos(phase * 0.07 - i \u002F 30) * 0.02,\n                    \u002F\u002F ...v\n                    \u002F\u002F v[1]\n                ]\n                const drawPoint = spaceToScreenCoords(movedPoint);\n                if (jumped) {\n                    context.moveTo(...drawPoint);\n                } else {\n                    context.lineTo(...drawPoint);\n                }\n            });\n            context.stroke();\n\n            pos[0] = wrappedPos[0] + speed[0] * dt;\n            pos[1] = wrappedPos[1] + speed[1] * dt;\n\n            pastPos.push({ v: wrappedPos, jumped });\n            if (pastPos.length > historyLength) {\n                pastPos.shift();\n            }\n        }\n        const newThing = {\n            pos,\n            speed,\n            frame,\n            set phase(value) {\n                phase = value;\n            },\n            get phase() {\n                return phase;\n            }\n        }\n        listOfThings.push(newThing);\n        return newThing;\n    }\n\n    const context = canvas.getContext('2d');\n    if (!context) {\n        throw new Error('Canvas context not found');\n    }\n\n    \u002F**\n     * @typedef {Object} DrawScope\n     * @property {CanvasRenderingContext2D} context - canvas context\n     * @property {number} width - \n     * @property {number} height - \n     *\u002F\n\n\n    \u002F** \n     * @type {DrawScope}\n     *\u002F\n    const drawScope = {\n        context,\n        width: 0,\n        height: 0,\n    }\n    const view = {\n        range: [1, 1],\n        offset: [0.5, 0.5],\n    }\n\n    drawScope.width = canvas.width;\n    drawScope.height = canvas.height;\n\n    \u002F**\n     * @typedef { [number, number]} Vector2\n     *\u002F\n\n    \u002F**\n     * @param {Vector2} inputCords\n     * @returns {{ jumped: boolean, v: Vector2 }}\n     *\u002F\n    const wrapCoords = (inputCords) => {\n        const detransposedCoords = [\n            inputCords[0] + view.offset[0],\n            inputCords[1] + view.offset[1],\n        ];\n        while (detransposedCoords[0] \u003C 0) {\n            detransposedCoords[0] = 1 + detransposedCoords[0];\n        }\n        while (detransposedCoords[1] \u003C 0) {\n            detransposedCoords[1] = 1 + detransposedCoords[1];\n        }\n\n        \u002F** @type {Vector2} *\u002F\n        const v = [\n            detransposedCoords[0] % 1,\n            detransposedCoords[1] % 1,\n        ];\n\n        v[0] = v[0] - view.offset[0];\n        v[1] = v[1] - view.offset[1];\n\n        const res = {\n            v,\n            jumped: false,\n        }\n        const diff = [\n            Math.abs(res.v[0] - inputCords[0]),\n            Math.abs(res.v[1] - inputCords[1]),\n        ];\n        res.jumped = diff[0] > 0.5 || diff[1] > 0.5;\n        return res;\n    }\n    \u002F**\n     * @param {Vector2} coords\n     * @returns {Vector2}\n     *\u002F\n    const screenToSpaceCoords = ([x, y]) => {\n        const viewTransformed = [\n            x \u002F view.range[0] - view.offset[0],\n            y \u002F view.range[1] - view.offset[1]\n        ];\n        return [\n            viewTransformed[0] \u002F drawScope.width,\n            viewTransformed[1] \u002F drawScope.height\n        ]\n    }\n    \u002F**\n     * @param {Vector2} coords\n     * @returns {Vector2}\n     *\u002F\n    const spaceToScreenCoords = ([x, y]) => {\n        const viewTransformed = [\n            (x + view.offset[0]) * view.range[0],\n            (y + view.offset[1]) * view.range[1]\n        ];\n        return [\n            viewTransformed[0] * drawScope.width,\n            viewTransformed[1] * drawScope.height\n        ]\n    }\n\n\n    let lastTime = new Date().getTime();\n\n    const mouseHistory = [];\n    const mouseHistoryLength = 255;\n\n    \u002F**\n     * @param {Vector2} point\n     *\u002F\n    const addMouseHistoryPoint = (point) => {\n        mouseHistory.push(point);\n        if (mouseHistory.length > mouseHistoryLength) {\n            mouseHistory.shift();\n        }\n    }\n\n    listOfColors1.forEach((color, a) => {\n        const thing = makeThing(listOfColors1[a % listOfColors1.length]);\n    })\n    listOfColors2.forEach((color, a) => {\n        const thing = makeThing(listOfColors2[a % listOfColors2.length]);\n        thing.pos[0] = 0.25\n        thing.pos[1] = 0.25\n        thing.phase += 123.1298719;\n    })\n    \u002F**\n     * @param {number} time\n     * @param {DrawScope} drawScope\n     *\u002F\n    let draw = (time, {\n        context,\n        width,\n        height\n    }) => {\n        const deltaTime = time - lastTime;\n        lastTime = time;\n        context.strokeStyle = 'white';\n        context.fillStyle = 'white';\n\n        context.clearRect(0, 0, width, height);\n\n        listOfThings.forEach((thing, i) => {\n            thing.frame(deltaTime, context);\n\n        });\n\n    }\n\n    const windowResizedListener = () => {\n        const containerRect = container.getBoundingClientRect();\n        canvas.width = containerRect.width;\n        canvas.height = containerRect.width;\n        drawScope.width = canvas.width;\n        drawScope.height = canvas.height;\n    }\n\n    window.addEventListener('resize', windowResizedListener);\n\n    const frame = () => {\n        const time = new Date().getTime();\n        draw(time, drawScope);\n        requestAnimationFrame(frame);\n    }\n\n\n\n    window.addEventListener('load', () => {\n        windowResizedListener();\n    });\n\n    frame();\n","javascript","",[24,25,26,35,67,90,96,101,114,123,131,139,147,155,163,171,179,187,195,203,211,219,227,235,241,253,261,269,277,285,293,301,309,317,325,333,341,349,357,365,373,378,393,412,418,430,443,450,475,490,515,526,546,567,579,591,606,621,626,632,644,661,666,672,678,684,690,709,728,733,738,763,768,785,802,821,836,854,859,865,871,888,909,947,961,1002,1036,1042,1051,1057,1063,1081,1094,1100,1126,1137,1150,1155,1168,1202,1215,1220,1236,1252,1278,1301,1306,1339,1355,1360,1371,1386,1416,1428,1440,1483,1522,1528,1534,1540,1555,1564,1581,1592,1606,1612,1618,1628,1633,1666,1695,1700,1711,1727,1738,1743,1748,1760,1766,1772,1778,1794,1804,1810,1821,1830,1835,1840,1851,1860,1865,1870,1893,1905,1921,1926,1931,1937,1952,1967,1982,1996,2002,2007,2012,2018,2028,2033,2045,2051,2061,2071,2076,2088,2102,2116,2121,2126,2137,2148,2153,2158,2171,2176,2181,2186,2198,2209,2214,2234,2246,2265,2282,2288,2307,2332,2337,2354,2375,2380,2385,2396,2408,2424,2439,2444,2449,2476,2501,2506,2518,2524,2535,2540,2552,2578,2599,2604,2640,2648,2653,2658,2670,2680,2685,2712,2724,2747,2770,2775,2782,2797,2811,2816,2821,2826,2837,2846,2851,2874,2885,2907,2929,2934,2941,2954,2967,2972,2977,2982,2987,3011,3016,3028,3043,3048,3053,3065,3070,3091,3102,3118,3128,3133,3138,3143,3168,3193,3199,3221,3244,3259,3272,3285,3290,3295,3307,3320,3325,3338,3343,3349,3355,3365,3383,3394,3407,3419,3424,3444,3449,3471,3483,3488,3494,3499,3504,3509,3525,3543,3554,3564,3574,3584,3589,3594,3611,3616,3631,3651,3660,3669,3674,3679,3684,3689,3708,3716,3722,3727],"code",{"__ignoreMap":22},[27,28,31],"span",{"class":29,"line":30},"line",1,[27,32,34],{"class":33},"sAwPA","    \u002F\u002F @ts-check\n",[27,36,38,42,46,49,53,57,60,64],{"class":29,"line":37},2,[27,39,41],{"class":40},"snl16","    const",[27,43,45],{"class":44},"sDLfK"," canvas",[27,47,48],{"class":40}," =",[27,50,52],{"class":51},"s95oV"," document.",[27,54,56],{"class":55},"svObZ","createElement",[27,58,59],{"class":51},"(",[27,61,63],{"class":62},"sU2Wk","'canvas'",[27,65,66],{"class":51},");\n",[27,68,70,72,75,77,79,82,84,87],{"class":29,"line":69},3,[27,71,41],{"class":40},[27,73,74],{"class":44}," container",[27,76,48],{"class":40},[27,78,52],{"class":51},[27,80,81],{"class":55},"getElementById",[27,83,59],{"class":51},[27,85,86],{"class":62},"'code-target'",[27,88,89],{"class":51},")\n",[27,91,93],{"class":29,"line":92},4,[27,94,95],{"class":51},"    \n",[27,97,99],{"class":29,"line":98},5,[27,100,95],{"class":51},[27,102,104,106,109,111],{"class":29,"line":103},6,[27,105,41],{"class":40},[27,107,108],{"class":44}," listOfColors1",[27,110,48],{"class":40},[27,112,113],{"class":51}," [\n",[27,115,117,120],{"class":29,"line":116},7,[27,118,119],{"class":62},"        '#220055'",[27,121,122],{"class":51},",\n",[27,124,126,129],{"class":29,"line":125},8,[27,127,128],{"class":62},"        '#280260'",[27,130,122],{"class":51},[27,132,134,137],{"class":29,"line":133},9,[27,135,136],{"class":62},"        '#2e0365'",[27,138,122],{"class":51},[27,140,142,145],{"class":29,"line":141},10,[27,143,144],{"class":62},"        '#34046a'",[27,146,122],{"class":51},[27,148,150,153],{"class":29,"line":149},11,[27,151,152],{"class":62},"        '#3a056f'",[27,154,122],{"class":51},[27,156,158,161],{"class":29,"line":157},12,[27,159,160],{"class":62},"        '#400674'",[27,162,122],{"class":51},[27,164,166,169],{"class":29,"line":165},13,[27,167,168],{"class":62},"        '#460779'",[27,170,122],{"class":51},[27,172,174,177],{"class":29,"line":173},14,[27,175,176],{"class":62},"        '#4c087e'",[27,178,122],{"class":51},[27,180,182,185],{"class":29,"line":181},15,[27,183,184],{"class":62},"        '#520983'",[27,186,122],{"class":51},[27,188,190,193],{"class":29,"line":189},16,[27,191,192],{"class":62},"        '#580a88'",[27,194,122],{"class":51},[27,196,198,201],{"class":29,"line":197},17,[27,199,200],{"class":62},"        '#5e0b8d'",[27,202,122],{"class":51},[27,204,206,209],{"class":29,"line":205},18,[27,207,208],{"class":62},"        '#640c92'",[27,210,122],{"class":51},[27,212,214,217],{"class":29,"line":213},19,[27,215,216],{"class":62},"        '#6a0d97'",[27,218,122],{"class":51},[27,220,222,225],{"class":29,"line":221},20,[27,223,224],{"class":62},"        '#700e9c'",[27,226,122],{"class":51},[27,228,230,233],{"class":29,"line":229},21,[27,231,232],{"class":62},"        '#760fa1'",[27,234,122],{"class":51},[27,236,238],{"class":29,"line":237},22,[27,239,240],{"class":51},"    ];\n",[27,242,244,246,249,251],{"class":29,"line":243},23,[27,245,41],{"class":40},[27,247,248],{"class":44}," listOfColors2",[27,250,48],{"class":40},[27,252,113],{"class":51},[27,254,256,259],{"class":29,"line":255},24,[27,257,258],{"class":62},"        '#550022'",[27,260,122],{"class":51},[27,262,264,267],{"class":29,"line":263},25,[27,265,266],{"class":62},"        '#600228'",[27,268,122],{"class":51},[27,270,272,275],{"class":29,"line":271},26,[27,273,274],{"class":62},"        '#65032e'",[27,276,122],{"class":51},[27,278,280,283],{"class":29,"line":279},27,[27,281,282],{"class":62},"        '#6a0434'",[27,284,122],{"class":51},[27,286,288,291],{"class":29,"line":287},28,[27,289,290],{"class":62},"        '#6f053a'",[27,292,122],{"class":51},[27,294,296,299],{"class":29,"line":295},29,[27,297,298],{"class":62},"        '#740640'",[27,300,122],{"class":51},[27,302,304,307],{"class":29,"line":303},30,[27,305,306],{"class":62},"        '#790746'",[27,308,122],{"class":51},[27,310,312,315],{"class":29,"line":311},31,[27,313,314],{"class":62},"        '#7e084c'",[27,316,122],{"class":51},[27,318,320,323],{"class":29,"line":319},32,[27,321,322],{"class":62},"        '#830952'",[27,324,122],{"class":51},[27,326,328,331],{"class":29,"line":327},33,[27,329,330],{"class":62},"        '#880a58'",[27,332,122],{"class":51},[27,334,336,339],{"class":29,"line":335},34,[27,337,338],{"class":62},"        '#8d0b5e'",[27,340,122],{"class":51},[27,342,344,347],{"class":29,"line":343},35,[27,345,346],{"class":62},"        '#920c64'",[27,348,122],{"class":51},[27,350,352,355],{"class":29,"line":351},36,[27,353,354],{"class":62},"        '#970d6a'",[27,356,122],{"class":51},[27,358,360,363],{"class":29,"line":359},37,[27,361,362],{"class":62},"        '#9c0e70'",[27,364,122],{"class":51},[27,366,368,371],{"class":29,"line":367},38,[27,369,370],{"class":62},"        '#a10f76'",[27,372,122],{"class":51},[27,374,376],{"class":29,"line":375},39,[27,377,240],{"class":51},[27,379,381,384,387,390],{"class":29,"line":380},40,[27,382,383],{"class":40},"    if",[27,385,386],{"class":51}," (",[27,388,389],{"class":40},"!",[27,391,392],{"class":51},"container) {\n",[27,394,396,399,402,405,407,410],{"class":29,"line":395},41,[27,397,398],{"class":40},"        throw",[27,400,401],{"class":40}," new",[27,403,404],{"class":55}," Error",[27,406,59],{"class":51},[27,408,409],{"class":62},"'Container not found'",[27,411,66],{"class":51},[27,413,415],{"class":29,"line":414},42,[27,416,417],{"class":51},"    }\n",[27,419,421,424,427],{"class":29,"line":420},43,[27,422,423],{"class":51},"    container.",[27,425,426],{"class":55},"appendChild",[27,428,429],{"class":51},"(canvas);\n",[27,431,433,435,438,440],{"class":29,"line":432},44,[27,434,41],{"class":40},[27,436,437],{"class":44}," listOfThings",[27,439,48],{"class":40},[27,441,442],{"class":51}," [];\n",[27,444,446],{"class":29,"line":445},45,[27,447,449],{"emptyLinePlaceholder":448},true,"\n",[27,451,453,455,458,460,462,466,469,472],{"class":29,"line":452},46,[27,454,41],{"class":40},[27,456,457],{"class":55}," makeThing",[27,459,48],{"class":40},[27,461,386],{"class":51},[27,463,465],{"class":464},"s9osk","mycolor",[27,467,468],{"class":51},") ",[27,470,471],{"class":40},"=>",[27,473,474],{"class":51}," {\n",[27,476,478,481,484,487],{"class":29,"line":477},47,[27,479,480],{"class":33},"        \u002F** ",[27,482,483],{"class":40},"@type",[27,485,486],{"class":55}," {Vector2}",[27,488,489],{"class":33}," *\u002F\n",[27,491,493,496,499,501,504,507,510,512],{"class":29,"line":492},48,[27,494,495],{"class":40},"        const",[27,497,498],{"class":44}," pos",[27,500,48],{"class":40},[27,502,503],{"class":51}," [",[27,505,506],{"class":44},"0",[27,508,509],{"class":51},", ",[27,511,506],{"class":44},[27,513,514],{"class":51},"];\n",[27,516,518,520,522,524],{"class":29,"line":517},49,[27,519,480],{"class":33},[27,521,483],{"class":40},[27,523,486],{"class":55},[27,525,489],{"class":33},[27,527,529,531,534,536,538,540,542,544],{"class":29,"line":528},50,[27,530,495],{"class":40},[27,532,533],{"class":44}," speed",[27,535,48],{"class":40},[27,537,503],{"class":51},[27,539,506],{"class":44},[27,541,509],{"class":51},[27,543,506],{"class":44},[27,545,514],{"class":51},[27,547,549,552,555,558,561,564],{"class":29,"line":548},51,[27,550,551],{"class":40},"        let",[27,553,554],{"class":51}," index ",[27,556,557],{"class":40},"=",[27,559,560],{"class":51}," listOfThings.",[27,562,563],{"class":44},"length",[27,565,566],{"class":51},";\n",[27,568,570,572,574,577],{"class":29,"line":569},52,[27,571,480],{"class":33},[27,573,483],{"class":40},[27,575,576],{"class":55}," {{jumped:boolean, v:Vector2}[]}",[27,578,489],{"class":33},[27,580,582,584,587,589],{"class":29,"line":581},53,[27,583,551],{"class":40},[27,585,586],{"class":51}," pastPos ",[27,588,557],{"class":40},[27,590,442],{"class":51},[27,592,594,596,599,601,604],{"class":29,"line":593},54,[27,595,551],{"class":40},[27,597,598],{"class":51}," phase ",[27,600,557],{"class":40},[27,602,603],{"class":44}," 0",[27,605,566],{"class":51},[27,607,609,611,614,616,619],{"class":29,"line":608},55,[27,610,551],{"class":40},[27,612,613],{"class":51}," initialized ",[27,615,557],{"class":40},[27,617,618],{"class":44}," false",[27,620,566],{"class":51},[27,622,624],{"class":29,"line":623},56,[27,625,449],{"emptyLinePlaceholder":448},[27,627,629],{"class":29,"line":628},57,[27,630,631],{"class":33},"        \u002F\u002F representation of frequency and amplitude\n",[27,633,635,637,640,642],{"class":29,"line":634},58,[27,636,495],{"class":40},[27,638,639],{"class":44}," mults",[27,641,48],{"class":40},[27,643,113],{"class":51},[27,645,647,650,653,655,658],{"class":29,"line":646},59,[27,648,649],{"class":51},"            [",[27,651,652],{"class":44},"0.5",[27,654,509],{"class":51},[27,656,657],{"class":44},"1",[27,659,660],{"class":51},"],\n",[27,662,664],{"class":29,"line":663},60,[27,665,449],{"emptyLinePlaceholder":448},[27,667,669],{"class":29,"line":668},61,[27,670,671],{"class":33},"            \u002F\u002F [0.25, 0.3],\n",[27,673,675],{"class":29,"line":674},62,[27,676,677],{"class":33},"            \u002F\u002F [-0.5, -0.5],\n",[27,679,681],{"class":29,"line":680},63,[27,682,683],{"class":33},"            \u002F\u002F [0.125, 1],\n",[27,685,687],{"class":29,"line":686},64,[27,688,689],{"class":51},"            \n",[27,691,693,695,698,701,703,705,707],{"class":29,"line":692},65,[27,694,649],{"class":51},[27,696,697],{"class":40},"-",[27,699,700],{"class":44},"0.0125",[27,702,509],{"class":51},[27,704,697],{"class":40},[27,706,657],{"class":44},[27,708,660],{"class":51},[27,710,712,714,716,719,721,723,726],{"class":29,"line":711},66,[27,713,649],{"class":51},[27,715,697],{"class":40},[27,717,718],{"class":44},"0.01245",[27,720,509],{"class":51},[27,722,697],{"class":40},[27,724,725],{"class":44},"1.1",[27,727,660],{"class":51},[27,729,731],{"class":29,"line":730},67,[27,732,449],{"emptyLinePlaceholder":448},[27,734,736],{"class":29,"line":735},68,[27,737,449],{"emptyLinePlaceholder":448},[27,739,741,743,746,749,752,755,758,761],{"class":29,"line":740},69,[27,742,649],{"class":51},[27,744,745],{"class":44},"0.01",[27,747,748],{"class":51},", Math.",[27,750,751],{"class":55},"random",[27,753,754],{"class":51},"() ",[27,756,757],{"class":40},"*",[27,759,760],{"class":44}," 0.001",[27,762,660],{"class":51},[27,764,766],{"class":29,"line":765},70,[27,767,449],{"emptyLinePlaceholder":448},[27,769,771,773,775,778,780,783],{"class":29,"line":770},71,[27,772,649],{"class":51},[27,774,697],{"class":40},[27,776,777],{"class":44},"2",[27,779,509],{"class":51},[27,781,782],{"class":44},"0.1",[27,784,660],{"class":51},[27,786,788,790,793,795,797,800],{"class":29,"line":787},72,[27,789,649],{"class":51},[27,791,792],{"class":44},"2.2",[27,794,509],{"class":51},[27,796,697],{"class":40},[27,798,799],{"class":44},"0.13",[27,801,660],{"class":51},[27,803,805,807,809,812,814,816,819],{"class":29,"line":804},73,[27,806,649],{"class":51},[27,808,697],{"class":40},[27,810,811],{"class":44},"2.3",[27,813,509],{"class":51},[27,815,697],{"class":40},[27,817,818],{"class":44},"0.15",[27,820,660],{"class":51},[27,822,824,826,829,831,834],{"class":29,"line":823},74,[27,825,649],{"class":51},[27,827,828],{"class":44},"8",[27,830,509],{"class":51},[27,832,833],{"class":44},"0.12",[27,835,660],{"class":51},[27,837,839,841,843,846,848,850,852],{"class":29,"line":838},75,[27,840,649],{"class":51},[27,842,697],{"class":40},[27,844,845],{"class":44},"12",[27,847,509],{"class":51},[27,849,697],{"class":40},[27,851,745],{"class":44},[27,853,660],{"class":51},[27,855,857],{"class":29,"line":856},76,[27,858,449],{"emptyLinePlaceholder":448},[27,860,862],{"class":29,"line":861},77,[27,863,864],{"class":51},"        ]\n",[27,866,868],{"class":29,"line":867},78,[27,869,870],{"class":33},"        \u002F** apply polar to cartesian into the array of frequency, amplitude  pairs*\u002F\n",[27,872,874,876,879,881,884,886],{"class":29,"line":873},79,[27,875,495],{"class":40},[27,877,878],{"class":55}," getRotatingSpeed",[27,880,48],{"class":40},[27,882,883],{"class":51}," () ",[27,885,471],{"class":40},[27,887,474],{"class":51},[27,889,891,894,897,899,901,903,905,907],{"class":29,"line":890},80,[27,892,893],{"class":40},"            let",[27,895,896],{"class":51}," result ",[27,898,557],{"class":40},[27,900,503],{"class":51},[27,902,506],{"class":44},[27,904,509],{"class":51},[27,906,506],{"class":44},[27,908,514],{"class":51},[27,910,912,915,917,920,923,925,927,930,933,936,938,941,944],{"class":29,"line":911},81,[27,913,914],{"class":40},"            for",[27,916,386],{"class":51},[27,918,919],{"class":40},"let",[27,921,922],{"class":51}," i ",[27,924,557],{"class":40},[27,926,603],{"class":44},[27,928,929],{"class":51},"; i ",[27,931,932],{"class":40},"\u003C",[27,934,935],{"class":51}," mults.",[27,937,563],{"class":44},[27,939,940],{"class":51},"; i",[27,942,943],{"class":40},"++",[27,945,946],{"class":51},") {\n",[27,948,950,953,956,958],{"class":29,"line":949},82,[27,951,952],{"class":40},"                const",[27,954,955],{"class":44}," mult",[27,957,48],{"class":40},[27,959,960],{"class":51}," mults[i];\n",[27,962,964,967,969,972,975,978,981,984,986,989,991,994,996,998,1000],{"class":29,"line":963},83,[27,965,966],{"class":51},"                result[",[27,968,506],{"class":44},[27,970,971],{"class":51},"] ",[27,973,974],{"class":40},"+=",[27,976,977],{"class":51}," Math.",[27,979,980],{"class":55},"sin",[27,982,983],{"class":51},"(phase ",[27,985,757],{"class":40},[27,987,988],{"class":51}," mult[",[27,990,506],{"class":44},[27,992,993],{"class":51},"]) ",[27,995,757],{"class":40},[27,997,988],{"class":51},[27,999,657],{"class":44},[27,1001,514],{"class":51},[27,1003,1005,1007,1009,1011,1013,1015,1018,1020,1022,1024,1026,1028,1030,1032,1034],{"class":29,"line":1004},84,[27,1006,966],{"class":51},[27,1008,657],{"class":44},[27,1010,971],{"class":51},[27,1012,974],{"class":40},[27,1014,977],{"class":51},[27,1016,1017],{"class":55},"cos",[27,1019,983],{"class":51},[27,1021,757],{"class":40},[27,1023,988],{"class":51},[27,1025,506],{"class":44},[27,1027,993],{"class":51},[27,1029,757],{"class":40},[27,1031,988],{"class":51},[27,1033,657],{"class":44},[27,1035,514],{"class":51},[27,1037,1039],{"class":29,"line":1038},85,[27,1040,1041],{"class":51},"            }\n",[27,1043,1045,1048],{"class":29,"line":1044},86,[27,1046,1047],{"class":40},"            return",[27,1049,1050],{"class":51}," result;\n",[27,1052,1054],{"class":29,"line":1053},87,[27,1055,1056],{"class":51},"        }\n",[27,1058,1060],{"class":29,"line":1059},88,[27,1061,1062],{"class":33},"        \u002F** \n",[27,1064,1066,1069,1072,1075,1078],{"class":29,"line":1065},89,[27,1067,1068],{"class":33},"         * ",[27,1070,1071],{"class":40},"@param",[27,1073,1074],{"class":55}," {number}",[27,1076,1077],{"class":51}," dt",[27,1079,1080],{"class":33}," delta time\n",[27,1082,1084,1086,1088,1091],{"class":29,"line":1083},90,[27,1085,1068],{"class":33},[27,1087,1071],{"class":40},[27,1089,1090],{"class":55}," {CanvasRenderingContext2D}",[27,1092,1093],{"class":51}," context\n",[27,1095,1097],{"class":29,"line":1096},91,[27,1098,1099],{"class":33},"         *\u002F\n",[27,1101,1103,1105,1108,1110,1112,1115,1117,1120,1122,1124],{"class":29,"line":1102},92,[27,1104,495],{"class":40},[27,1106,1107],{"class":55}," frame",[27,1109,48],{"class":40},[27,1111,386],{"class":51},[27,1113,1114],{"class":464},"dt",[27,1116,509],{"class":51},[27,1118,1119],{"class":464},"context",[27,1121,468],{"class":51},[27,1123,471],{"class":40},[27,1125,474],{"class":51},[27,1127,1129,1132,1134],{"class":29,"line":1128},93,[27,1130,1131],{"class":51},"            context.strokeStyle ",[27,1133,557],{"class":40},[27,1135,1136],{"class":51}," mycolor\n",[27,1138,1140,1143,1145,1148],{"class":29,"line":1139},94,[27,1141,1142],{"class":51},"            context.lineWidth ",[27,1144,557],{"class":40},[27,1146,1147],{"class":44}," 2",[27,1149,566],{"class":51},[27,1151,1153],{"class":29,"line":1152},95,[27,1154,449],{"emptyLinePlaceholder":448},[27,1156,1158,1161,1163,1165],{"class":29,"line":1157},96,[27,1159,1160],{"class":40},"            if",[27,1162,386],{"class":51},[27,1164,389],{"class":40},[27,1166,1167],{"class":51},"initialized) {\n",[27,1169,1171,1174,1176,1179,1182,1184,1186,1188,1190,1192,1195,1198,1200],{"class":29,"line":1170},97,[27,1172,1173],{"class":51},"                phase ",[27,1175,557],{"class":40},[27,1177,1178],{"class":51}," (index ",[27,1180,1181],{"class":40},"\u002F",[27,1183,560],{"class":51},[27,1185,563],{"class":44},[27,1187,468],{"class":51},[27,1189,757],{"class":40},[27,1191,977],{"class":51},[27,1193,1194],{"class":44},"PI",[27,1196,1197],{"class":40}," *",[27,1199,1147],{"class":44},[27,1201,566],{"class":51},[27,1203,1205,1208,1210,1213],{"class":29,"line":1204},98,[27,1206,1207],{"class":51},"                initialized ",[27,1209,557],{"class":40},[27,1211,1212],{"class":44}," true",[27,1214,566],{"class":51},[27,1216,1218],{"class":29,"line":1217},99,[27,1219,1041],{"class":51},[27,1221,1223,1226,1228,1231,1233],{"class":29,"line":1222},100,[27,1224,1225],{"class":51},"            phase ",[27,1227,974],{"class":40},[27,1229,1230],{"class":51}," dt ",[27,1232,757],{"class":40},[27,1234,1235],{"class":44}," 0.01\n",[27,1237,1239,1242,1245,1247,1249],{"class":29,"line":1238},101,[27,1240,1241],{"class":40},"            const",[27,1243,1244],{"class":44}," newSpeed",[27,1246,48],{"class":40},[27,1248,878],{"class":55},[27,1250,1251],{"class":51},"();\n",[27,1253,1255,1258,1260,1262,1264,1267,1269,1271,1273,1276],{"class":29,"line":1254},102,[27,1256,1257],{"class":51},"            speed[",[27,1259,506],{"class":44},[27,1261,971],{"class":51},[27,1263,557],{"class":40},[27,1265,1266],{"class":51}," newSpeed[",[27,1268,506],{"class":44},[27,1270,971],{"class":51},[27,1272,757],{"class":40},[27,1274,1275],{"class":44}," 0.00025",[27,1277,566],{"class":51},[27,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299],{"class":29,"line":1280},103,[27,1282,1257],{"class":51},[27,1284,657],{"class":44},[27,1286,971],{"class":51},[27,1288,557],{"class":40},[27,1290,1266],{"class":51},[27,1292,657],{"class":44},[27,1294,971],{"class":51},[27,1296,757],{"class":40},[27,1298,1275],{"class":44},[27,1300,566],{"class":51},[27,1302,1304],{"class":29,"line":1303},104,[27,1305,449],{"emptyLinePlaceholder":448},[27,1307,1309,1311,1314,1317,1320,1323,1325,1328,1331,1333,1336],{"class":29,"line":1308},105,[27,1310,1241],{"class":40},[27,1312,1313],{"class":51}," { ",[27,1315,1316],{"class":464},"v",[27,1318,1319],{"class":51},": ",[27,1321,1322],{"class":44},"wrappedPos",[27,1324,509],{"class":51},[27,1326,1327],{"class":44},"jumped",[27,1329,1330],{"class":51}," } ",[27,1332,557],{"class":40},[27,1334,1335],{"class":55}," wrapCoords",[27,1337,1338],{"class":51},"(pos);\n",[27,1340,1342,1344,1347,1349,1352],{"class":29,"line":1341},106,[27,1343,893],{"class":40},[27,1345,1346],{"class":51}," drawPos ",[27,1348,557],{"class":40},[27,1350,1351],{"class":55}," spaceToScreenCoords",[27,1353,1354],{"class":51},"(wrappedPos);\n",[27,1356,1358],{"class":29,"line":1357},107,[27,1359,689],{"class":51},[27,1361,1363,1366,1369],{"class":29,"line":1362},108,[27,1364,1365],{"class":51},"            context.",[27,1367,1368],{"class":55},"beginPath",[27,1370,1251],{"class":51},[27,1372,1374,1376,1379,1381,1384],{"class":29,"line":1373},109,[27,1375,1241],{"class":40},[27,1377,1378],{"class":44}," historyLength",[27,1380,48],{"class":40},[27,1382,1383],{"class":44}," 200",[27,1385,566],{"class":51},[27,1387,1389,1392,1395,1398,1400,1402,1404,1407,1410,1412,1414],{"class":29,"line":1388},110,[27,1390,1391],{"class":51},"            pastPos.",[27,1393,1394],{"class":55},"forEach",[27,1396,1397],{"class":51},"(({ ",[27,1399,1316],{"class":464},[27,1401,509],{"class":51},[27,1403,1327],{"class":464},[27,1405,1406],{"class":51}," }, ",[27,1408,1409],{"class":464},"i",[27,1411,468],{"class":51},[27,1413,471],{"class":40},[27,1415,474],{"class":51},[27,1417,1419,1422,1424,1426],{"class":29,"line":1418},111,[27,1420,1421],{"class":33},"                \u002F** ",[27,1423,483],{"class":40},[27,1425,486],{"class":55},[27,1427,489],{"class":33},[27,1429,1431,1433,1436,1438],{"class":29,"line":1430},112,[27,1432,952],{"class":40},[27,1434,1435],{"class":44}," movedPoint",[27,1437,48],{"class":40},[27,1439,113],{"class":51},[27,1441,1443,1446,1448,1450,1453,1455,1457,1459,1461,1464,1467,1469,1471,1474,1476,1478,1481],{"class":29,"line":1442},113,[27,1444,1445],{"class":51},"                    v[",[27,1447,506],{"class":44},[27,1449,971],{"class":51},[27,1451,1452],{"class":40},"+",[27,1454,977],{"class":51},[27,1456,980],{"class":55},[27,1458,983],{"class":51},[27,1460,757],{"class":40},[27,1462,1463],{"class":44}," 0.03",[27,1465,1466],{"class":40}," -",[27,1468,922],{"class":51},[27,1470,1181],{"class":40},[27,1472,1473],{"class":44}," 30",[27,1475,468],{"class":51},[27,1477,757],{"class":40},[27,1479,1480],{"class":44}," 0.01",[27,1482,122],{"class":51},[27,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1505,1507,1509,1511,1513,1515,1517,1520],{"class":29,"line":1485},114,[27,1487,1445],{"class":51},[27,1489,657],{"class":44},[27,1491,971],{"class":51},[27,1493,1452],{"class":40},[27,1495,977],{"class":51},[27,1497,1017],{"class":55},[27,1499,983],{"class":51},[27,1501,757],{"class":40},[27,1503,1504],{"class":44}," 0.07",[27,1506,1466],{"class":40},[27,1508,922],{"class":51},[27,1510,1181],{"class":40},[27,1512,1473],{"class":44},[27,1514,468],{"class":51},[27,1516,757],{"class":40},[27,1518,1519],{"class":44}," 0.02",[27,1521,122],{"class":51},[27,1523,1525],{"class":29,"line":1524},115,[27,1526,1527],{"class":33},"                    \u002F\u002F ...v\n",[27,1529,1531],{"class":29,"line":1530},116,[27,1532,1533],{"class":33},"                    \u002F\u002F v[1]\n",[27,1535,1537],{"class":29,"line":1536},117,[27,1538,1539],{"class":51},"                ]\n",[27,1541,1543,1545,1548,1550,1552],{"class":29,"line":1542},118,[27,1544,952],{"class":40},[27,1546,1547],{"class":44}," drawPoint",[27,1549,48],{"class":40},[27,1551,1351],{"class":55},[27,1553,1554],{"class":51},"(movedPoint);\n",[27,1556,1558,1561],{"class":29,"line":1557},119,[27,1559,1560],{"class":40},"                if",[27,1562,1563],{"class":51}," (jumped) {\n",[27,1565,1567,1570,1573,1575,1578],{"class":29,"line":1566},120,[27,1568,1569],{"class":51},"                    context.",[27,1571,1572],{"class":55},"moveTo",[27,1574,59],{"class":51},[27,1576,1577],{"class":40},"...",[27,1579,1580],{"class":51},"drawPoint);\n",[27,1582,1584,1587,1590],{"class":29,"line":1583},121,[27,1585,1586],{"class":51},"                } ",[27,1588,1589],{"class":40},"else",[27,1591,474],{"class":51},[27,1593,1595,1597,1600,1602,1604],{"class":29,"line":1594},122,[27,1596,1569],{"class":51},[27,1598,1599],{"class":55},"lineTo",[27,1601,59],{"class":51},[27,1603,1577],{"class":40},[27,1605,1580],{"class":51},[27,1607,1609],{"class":29,"line":1608},123,[27,1610,1611],{"class":51},"                }\n",[27,1613,1615],{"class":29,"line":1614},124,[27,1616,1617],{"class":51},"            });\n",[27,1619,1621,1623,1626],{"class":29,"line":1620},125,[27,1622,1365],{"class":51},[27,1624,1625],{"class":55},"stroke",[27,1627,1251],{"class":51},[27,1629,1631],{"class":29,"line":1630},126,[27,1632,449],{"emptyLinePlaceholder":448},[27,1634,1636,1639,1641,1643,1645,1648,1650,1652,1654,1657,1659,1661,1663],{"class":29,"line":1635},127,[27,1637,1638],{"class":51},"            pos[",[27,1640,506],{"class":44},[27,1642,971],{"class":51},[27,1644,557],{"class":40},[27,1646,1647],{"class":51}," wrappedPos[",[27,1649,506],{"class":44},[27,1651,971],{"class":51},[27,1653,1452],{"class":40},[27,1655,1656],{"class":51}," speed[",[27,1658,506],{"class":44},[27,1660,971],{"class":51},[27,1662,757],{"class":40},[27,1664,1665],{"class":51}," dt;\n",[27,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1687,1689,1691,1693],{"class":29,"line":1668},128,[27,1670,1638],{"class":51},[27,1672,657],{"class":44},[27,1674,971],{"class":51},[27,1676,557],{"class":40},[27,1678,1647],{"class":51},[27,1680,657],{"class":44},[27,1682,971],{"class":51},[27,1684,1452],{"class":40},[27,1686,1656],{"class":51},[27,1688,657],{"class":44},[27,1690,971],{"class":51},[27,1692,757],{"class":40},[27,1694,1665],{"class":51},[27,1696,1698],{"class":29,"line":1697},129,[27,1699,449],{"emptyLinePlaceholder":448},[27,1701,1703,1705,1708],{"class":29,"line":1702},130,[27,1704,1391],{"class":51},[27,1706,1707],{"class":55},"push",[27,1709,1710],{"class":51},"({ v: wrappedPos, jumped });\n",[27,1712,1714,1716,1719,1721,1724],{"class":29,"line":1713},131,[27,1715,1160],{"class":40},[27,1717,1718],{"class":51}," (pastPos.",[27,1720,563],{"class":44},[27,1722,1723],{"class":40}," >",[27,1725,1726],{"class":51}," historyLength) {\n",[27,1728,1730,1733,1736],{"class":29,"line":1729},132,[27,1731,1732],{"class":51},"                pastPos.",[27,1734,1735],{"class":55},"shift",[27,1737,1251],{"class":51},[27,1739,1741],{"class":29,"line":1740},133,[27,1742,1041],{"class":51},[27,1744,1746],{"class":29,"line":1745},134,[27,1747,1056],{"class":51},[27,1749,1751,1753,1756,1758],{"class":29,"line":1750},135,[27,1752,495],{"class":40},[27,1754,1755],{"class":44}," newThing",[27,1757,48],{"class":40},[27,1759,474],{"class":51},[27,1761,1763],{"class":29,"line":1762},136,[27,1764,1765],{"class":51},"            pos,\n",[27,1767,1769],{"class":29,"line":1768},137,[27,1770,1771],{"class":51},"            speed,\n",[27,1773,1775],{"class":29,"line":1774},138,[27,1776,1777],{"class":51},"            frame,\n",[27,1779,1781,1784,1787,1789,1792],{"class":29,"line":1780},139,[27,1782,1783],{"class":40},"            set",[27,1785,1786],{"class":55}," phase",[27,1788,59],{"class":51},[27,1790,1791],{"class":464},"value",[27,1793,946],{"class":51},[27,1795,1797,1799,1801],{"class":29,"line":1796},140,[27,1798,1173],{"class":51},[27,1800,557],{"class":40},[27,1802,1803],{"class":51}," value;\n",[27,1805,1807],{"class":29,"line":1806},141,[27,1808,1809],{"class":51},"            },\n",[27,1811,1813,1816,1818],{"class":29,"line":1812},142,[27,1814,1815],{"class":40},"            get",[27,1817,1786],{"class":55},[27,1819,1820],{"class":51},"() {\n",[27,1822,1824,1827],{"class":29,"line":1823},143,[27,1825,1826],{"class":40},"                return",[27,1828,1829],{"class":51}," phase;\n",[27,1831,1833],{"class":29,"line":1832},144,[27,1834,1041],{"class":51},[27,1836,1838],{"class":29,"line":1837},145,[27,1839,1056],{"class":51},[27,1841,1843,1846,1848],{"class":29,"line":1842},146,[27,1844,1845],{"class":51},"        listOfThings.",[27,1847,1707],{"class":55},[27,1849,1850],{"class":51},"(newThing);\n",[27,1852,1854,1857],{"class":29,"line":1853},147,[27,1855,1856],{"class":40},"        return",[27,1858,1859],{"class":51}," newThing;\n",[27,1861,1863],{"class":29,"line":1862},148,[27,1864,417],{"class":51},[27,1866,1868],{"class":29,"line":1867},149,[27,1869,449],{"emptyLinePlaceholder":448},[27,1871,1873,1875,1878,1880,1883,1886,1888,1891],{"class":29,"line":1872},150,[27,1874,41],{"class":40},[27,1876,1877],{"class":44}," context",[27,1879,48],{"class":40},[27,1881,1882],{"class":51}," canvas.",[27,1884,1885],{"class":55},"getContext",[27,1887,59],{"class":51},[27,1889,1890],{"class":62},"'2d'",[27,1892,66],{"class":51},[27,1894,1896,1898,1900,1902],{"class":29,"line":1895},151,[27,1897,383],{"class":40},[27,1899,386],{"class":51},[27,1901,389],{"class":40},[27,1903,1904],{"class":51},"context) {\n",[27,1906,1908,1910,1912,1914,1916,1919],{"class":29,"line":1907},152,[27,1909,398],{"class":40},[27,1911,401],{"class":40},[27,1913,404],{"class":55},[27,1915,59],{"class":51},[27,1917,1918],{"class":62},"'Canvas context not found'",[27,1920,66],{"class":51},[27,1922,1924],{"class":29,"line":1923},153,[27,1925,417],{"class":51},[27,1927,1929],{"class":29,"line":1928},154,[27,1930,449],{"emptyLinePlaceholder":448},[27,1932,1934],{"class":29,"line":1933},155,[27,1935,1936],{"class":33},"    \u002F**\n",[27,1938,1940,1943,1946,1949],{"class":29,"line":1939},156,[27,1941,1942],{"class":33},"     * ",[27,1944,1945],{"class":40},"@typedef",[27,1947,1948],{"class":55}," {Object}",[27,1950,1951],{"class":55}," DrawScope\n",[27,1953,1955,1957,1960,1962,1964],{"class":29,"line":1954},157,[27,1956,1942],{"class":33},[27,1958,1959],{"class":40},"@property",[27,1961,1090],{"class":55},[27,1963,1877],{"class":51},[27,1965,1966],{"class":33}," - canvas context\n",[27,1968,1970,1972,1974,1976,1979],{"class":29,"line":1969},158,[27,1971,1942],{"class":33},[27,1973,1959],{"class":40},[27,1975,1074],{"class":55},[27,1977,1978],{"class":51}," width",[27,1980,1981],{"class":33}," - \n",[27,1983,1985,1987,1989,1991,1994],{"class":29,"line":1984},159,[27,1986,1942],{"class":33},[27,1988,1959],{"class":40},[27,1990,1074],{"class":55},[27,1992,1993],{"class":51}," height",[27,1995,1981],{"class":33},[27,1997,1999],{"class":29,"line":1998},160,[27,2000,2001],{"class":33},"     *\u002F\n",[27,2003,2005],{"class":29,"line":2004},161,[27,2006,449],{"emptyLinePlaceholder":448},[27,2008,2010],{"class":29,"line":2009},162,[27,2011,449],{"emptyLinePlaceholder":448},[27,2013,2015],{"class":29,"line":2014},163,[27,2016,2017],{"class":33},"    \u002F** \n",[27,2019,2021,2023,2025],{"class":29,"line":2020},164,[27,2022,1942],{"class":33},[27,2024,483],{"class":40},[27,2026,2027],{"class":55}," {DrawScope}\n",[27,2029,2031],{"class":29,"line":2030},165,[27,2032,2001],{"class":33},[27,2034,2036,2038,2041,2043],{"class":29,"line":2035},166,[27,2037,41],{"class":40},[27,2039,2040],{"class":44}," drawScope",[27,2042,48],{"class":40},[27,2044,474],{"class":51},[27,2046,2048],{"class":29,"line":2047},167,[27,2049,2050],{"class":51},"        context,\n",[27,2052,2054,2057,2059],{"class":29,"line":2053},168,[27,2055,2056],{"class":51},"        width: ",[27,2058,506],{"class":44},[27,2060,122],{"class":51},[27,2062,2064,2067,2069],{"class":29,"line":2063},169,[27,2065,2066],{"class":51},"        height: ",[27,2068,506],{"class":44},[27,2070,122],{"class":51},[27,2072,2074],{"class":29,"line":2073},170,[27,2075,417],{"class":51},[27,2077,2079,2081,2084,2086],{"class":29,"line":2078},171,[27,2080,41],{"class":40},[27,2082,2083],{"class":44}," view",[27,2085,48],{"class":40},[27,2087,474],{"class":51},[27,2089,2091,2094,2096,2098,2100],{"class":29,"line":2090},172,[27,2092,2093],{"class":51},"        range: [",[27,2095,657],{"class":44},[27,2097,509],{"class":51},[27,2099,657],{"class":44},[27,2101,660],{"class":51},[27,2103,2105,2108,2110,2112,2114],{"class":29,"line":2104},173,[27,2106,2107],{"class":51},"        offset: [",[27,2109,652],{"class":44},[27,2111,509],{"class":51},[27,2113,652],{"class":44},[27,2115,660],{"class":51},[27,2117,2119],{"class":29,"line":2118},174,[27,2120,417],{"class":51},[27,2122,2124],{"class":29,"line":2123},175,[27,2125,449],{"emptyLinePlaceholder":448},[27,2127,2129,2132,2134],{"class":29,"line":2128},176,[27,2130,2131],{"class":51},"    drawScope.width ",[27,2133,557],{"class":40},[27,2135,2136],{"class":51}," canvas.width;\n",[27,2138,2140,2143,2145],{"class":29,"line":2139},177,[27,2141,2142],{"class":51},"    drawScope.height ",[27,2144,557],{"class":40},[27,2146,2147],{"class":51}," canvas.height;\n",[27,2149,2151],{"class":29,"line":2150},178,[27,2152,449],{"emptyLinePlaceholder":448},[27,2154,2156],{"class":29,"line":2155},179,[27,2157,1936],{"class":33},[27,2159,2161,2163,2165,2168],{"class":29,"line":2160},180,[27,2162,1942],{"class":33},[27,2164,1945],{"class":40},[27,2166,2167],{"class":55}," { [number, number]}",[27,2169,2170],{"class":55}," Vector2\n",[27,2172,2174],{"class":29,"line":2173},181,[27,2175,2001],{"class":33},[27,2177,2179],{"class":29,"line":2178},182,[27,2180,449],{"emptyLinePlaceholder":448},[27,2182,2184],{"class":29,"line":2183},183,[27,2185,1936],{"class":33},[27,2187,2189,2191,2193,2195],{"class":29,"line":2188},184,[27,2190,1942],{"class":33},[27,2192,1071],{"class":40},[27,2194,486],{"class":55},[27,2196,2197],{"class":51}," inputCords\n",[27,2199,2201,2203,2206],{"class":29,"line":2200},185,[27,2202,1942],{"class":33},[27,2204,2205],{"class":40},"@returns",[27,2207,2208],{"class":55}," {{ jumped: boolean, v: Vector2 }}\n",[27,2210,2212],{"class":29,"line":2211},186,[27,2213,2001],{"class":33},[27,2215,2217,2219,2221,2223,2225,2228,2230,2232],{"class":29,"line":2216},187,[27,2218,41],{"class":40},[27,2220,1335],{"class":55},[27,2222,48],{"class":40},[27,2224,386],{"class":51},[27,2226,2227],{"class":464},"inputCords",[27,2229,468],{"class":51},[27,2231,471],{"class":40},[27,2233,474],{"class":51},[27,2235,2237,2239,2242,2244],{"class":29,"line":2236},188,[27,2238,495],{"class":40},[27,2240,2241],{"class":44}," detransposedCoords",[27,2243,48],{"class":40},[27,2245,113],{"class":51},[27,2247,2249,2252,2254,2256,2258,2261,2263],{"class":29,"line":2248},189,[27,2250,2251],{"class":51},"            inputCords[",[27,2253,506],{"class":44},[27,2255,971],{"class":51},[27,2257,1452],{"class":40},[27,2259,2260],{"class":51}," view.offset[",[27,2262,506],{"class":44},[27,2264,660],{"class":51},[27,2266,2268,2270,2272,2274,2276,2278,2280],{"class":29,"line":2267},190,[27,2269,2251],{"class":51},[27,2271,657],{"class":44},[27,2273,971],{"class":51},[27,2275,1452],{"class":40},[27,2277,2260],{"class":51},[27,2279,657],{"class":44},[27,2281,660],{"class":51},[27,2283,2285],{"class":29,"line":2284},191,[27,2286,2287],{"class":51},"        ];\n",[27,2289,2291,2294,2297,2299,2301,2303,2305],{"class":29,"line":2290},192,[27,2292,2293],{"class":40},"        while",[27,2295,2296],{"class":51}," (detransposedCoords[",[27,2298,506],{"class":44},[27,2300,971],{"class":51},[27,2302,932],{"class":40},[27,2304,603],{"class":44},[27,2306,946],{"class":51},[27,2308,2310,2313,2315,2317,2319,2322,2325,2328,2330],{"class":29,"line":2309},193,[27,2311,2312],{"class":51},"            detransposedCoords[",[27,2314,506],{"class":44},[27,2316,971],{"class":51},[27,2318,557],{"class":40},[27,2320,2321],{"class":44}," 1",[27,2323,2324],{"class":40}," +",[27,2326,2327],{"class":51}," detransposedCoords[",[27,2329,506],{"class":44},[27,2331,514],{"class":51},[27,2333,2335],{"class":29,"line":2334},194,[27,2336,1056],{"class":51},[27,2338,2340,2342,2344,2346,2348,2350,2352],{"class":29,"line":2339},195,[27,2341,2293],{"class":40},[27,2343,2296],{"class":51},[27,2345,657],{"class":44},[27,2347,971],{"class":51},[27,2349,932],{"class":40},[27,2351,603],{"class":44},[27,2353,946],{"class":51},[27,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373],{"class":29,"line":2356},196,[27,2358,2312],{"class":51},[27,2360,657],{"class":44},[27,2362,971],{"class":51},[27,2364,557],{"class":40},[27,2366,2321],{"class":44},[27,2368,2324],{"class":40},[27,2370,2327],{"class":51},[27,2372,657],{"class":44},[27,2374,514],{"class":51},[27,2376,2378],{"class":29,"line":2377},197,[27,2379,1056],{"class":51},[27,2381,2383],{"class":29,"line":2382},198,[27,2384,449],{"emptyLinePlaceholder":448},[27,2386,2388,2390,2392,2394],{"class":29,"line":2387},199,[27,2389,480],{"class":33},[27,2391,483],{"class":40},[27,2393,486],{"class":55},[27,2395,489],{"class":33},[27,2397,2399,2401,2404,2406],{"class":29,"line":2398},200,[27,2400,495],{"class":40},[27,2402,2403],{"class":44}," v",[27,2405,48],{"class":40},[27,2407,113],{"class":51},[27,2409,2411,2413,2415,2417,2420,2422],{"class":29,"line":2410},201,[27,2412,2312],{"class":51},[27,2414,506],{"class":44},[27,2416,971],{"class":51},[27,2418,2419],{"class":40},"%",[27,2421,2321],{"class":44},[27,2423,122],{"class":51},[27,2425,2427,2429,2431,2433,2435,2437],{"class":29,"line":2426},202,[27,2428,2312],{"class":51},[27,2430,657],{"class":44},[27,2432,971],{"class":51},[27,2434,2419],{"class":40},[27,2436,2321],{"class":44},[27,2438,122],{"class":51},[27,2440,2442],{"class":29,"line":2441},203,[27,2443,2287],{"class":51},[27,2445,2447],{"class":29,"line":2446},204,[27,2448,449],{"emptyLinePlaceholder":448},[27,2450,2452,2455,2457,2459,2461,2464,2466,2468,2470,2472,2474],{"class":29,"line":2451},205,[27,2453,2454],{"class":51},"        v[",[27,2456,506],{"class":44},[27,2458,971],{"class":51},[27,2460,557],{"class":40},[27,2462,2463],{"class":51}," v[",[27,2465,506],{"class":44},[27,2467,971],{"class":51},[27,2469,697],{"class":40},[27,2471,2260],{"class":51},[27,2473,506],{"class":44},[27,2475,514],{"class":51},[27,2477,2479,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499],{"class":29,"line":2478},206,[27,2480,2454],{"class":51},[27,2482,657],{"class":44},[27,2484,971],{"class":51},[27,2486,557],{"class":40},[27,2488,2463],{"class":51},[27,2490,657],{"class":44},[27,2492,971],{"class":51},[27,2494,697],{"class":40},[27,2496,2260],{"class":51},[27,2498,657],{"class":44},[27,2500,514],{"class":51},[27,2502,2504],{"class":29,"line":2503},207,[27,2505,449],{"emptyLinePlaceholder":448},[27,2507,2509,2511,2514,2516],{"class":29,"line":2508},208,[27,2510,495],{"class":40},[27,2512,2513],{"class":44}," res",[27,2515,48],{"class":40},[27,2517,474],{"class":51},[27,2519,2521],{"class":29,"line":2520},209,[27,2522,2523],{"class":51},"            v,\n",[27,2525,2527,2530,2533],{"class":29,"line":2526},210,[27,2528,2529],{"class":51},"            jumped: ",[27,2531,2532],{"class":44},"false",[27,2534,122],{"class":51},[27,2536,2538],{"class":29,"line":2537},211,[27,2539,1056],{"class":51},[27,2541,2543,2545,2548,2550],{"class":29,"line":2542},212,[27,2544,495],{"class":40},[27,2546,2547],{"class":44}," diff",[27,2549,48],{"class":40},[27,2551,113],{"class":51},[27,2553,2555,2558,2561,2564,2566,2568,2570,2573,2575],{"class":29,"line":2554},213,[27,2556,2557],{"class":51},"            Math.",[27,2559,2560],{"class":55},"abs",[27,2562,2563],{"class":51},"(res.v[",[27,2565,506],{"class":44},[27,2567,971],{"class":51},[27,2569,697],{"class":40},[27,2571,2572],{"class":51}," inputCords[",[27,2574,506],{"class":44},[27,2576,2577],{"class":51},"]),\n",[27,2579,2581,2583,2585,2587,2589,2591,2593,2595,2597],{"class":29,"line":2580},214,[27,2582,2557],{"class":51},[27,2584,2560],{"class":55},[27,2586,2563],{"class":51},[27,2588,657],{"class":44},[27,2590,971],{"class":51},[27,2592,697],{"class":40},[27,2594,2572],{"class":51},[27,2596,657],{"class":44},[27,2598,2577],{"class":51},[27,2600,2602],{"class":29,"line":2601},215,[27,2603,2287],{"class":51},[27,2605,2607,2610,2612,2615,2617,2619,2622,2625,2628,2630,2632,2634,2636,2638],{"class":29,"line":2606},216,[27,2608,2609],{"class":51},"        res.jumped ",[27,2611,557],{"class":40},[27,2613,2614],{"class":51}," diff[",[27,2616,506],{"class":44},[27,2618,971],{"class":51},[27,2620,2621],{"class":40},">",[27,2623,2624],{"class":44}," 0.5",[27,2626,2627],{"class":40}," ||",[27,2629,2614],{"class":51},[27,2631,657],{"class":44},[27,2633,971],{"class":51},[27,2635,2621],{"class":40},[27,2637,2624],{"class":44},[27,2639,566],{"class":51},[27,2641,2643,2645],{"class":29,"line":2642},217,[27,2644,1856],{"class":40},[27,2646,2647],{"class":51}," res;\n",[27,2649,2651],{"class":29,"line":2650},218,[27,2652,417],{"class":51},[27,2654,2656],{"class":29,"line":2655},219,[27,2657,1936],{"class":33},[27,2659,2661,2663,2665,2667],{"class":29,"line":2660},220,[27,2662,1942],{"class":33},[27,2664,1071],{"class":40},[27,2666,486],{"class":55},[27,2668,2669],{"class":51}," coords\n",[27,2671,2673,2675,2677],{"class":29,"line":2672},221,[27,2674,1942],{"class":33},[27,2676,2205],{"class":40},[27,2678,2679],{"class":55}," {Vector2}\n",[27,2681,2683],{"class":29,"line":2682},222,[27,2684,2001],{"class":33},[27,2686,2688,2690,2693,2695,2698,2701,2703,2706,2708,2710],{"class":29,"line":2687},223,[27,2689,41],{"class":40},[27,2691,2692],{"class":55}," screenToSpaceCoords",[27,2694,48],{"class":40},[27,2696,2697],{"class":51}," ([",[27,2699,2700],{"class":464},"x",[27,2702,509],{"class":51},[27,2704,2705],{"class":464},"y",[27,2707,993],{"class":51},[27,2709,471],{"class":40},[27,2711,474],{"class":51},[27,2713,2715,2717,2720,2722],{"class":29,"line":2714},224,[27,2716,495],{"class":40},[27,2718,2719],{"class":44}," viewTransformed",[27,2721,48],{"class":40},[27,2723,113],{"class":51},[27,2725,2727,2730,2732,2735,2737,2739,2741,2743,2745],{"class":29,"line":2726},225,[27,2728,2729],{"class":51},"            x ",[27,2731,1181],{"class":40},[27,2733,2734],{"class":51}," view.range[",[27,2736,506],{"class":44},[27,2738,971],{"class":51},[27,2740,697],{"class":40},[27,2742,2260],{"class":51},[27,2744,506],{"class":44},[27,2746,660],{"class":51},[27,2748,2750,2753,2755,2757,2759,2761,2763,2765,2767],{"class":29,"line":2749},226,[27,2751,2752],{"class":51},"            y ",[27,2754,1181],{"class":40},[27,2756,2734],{"class":51},[27,2758,657],{"class":44},[27,2760,971],{"class":51},[27,2762,697],{"class":40},[27,2764,2260],{"class":51},[27,2766,657],{"class":44},[27,2768,2769],{"class":51},"]\n",[27,2771,2773],{"class":29,"line":2772},227,[27,2774,2287],{"class":51},[27,2776,2778,2780],{"class":29,"line":2777},228,[27,2779,1856],{"class":40},[27,2781,113],{"class":51},[27,2783,2785,2788,2790,2792,2794],{"class":29,"line":2784},229,[27,2786,2787],{"class":51},"            viewTransformed[",[27,2789,506],{"class":44},[27,2791,971],{"class":51},[27,2793,1181],{"class":40},[27,2795,2796],{"class":51}," drawScope.width,\n",[27,2798,2800,2802,2804,2806,2808],{"class":29,"line":2799},230,[27,2801,2787],{"class":51},[27,2803,657],{"class":44},[27,2805,971],{"class":51},[27,2807,1181],{"class":40},[27,2809,2810],{"class":51}," drawScope.height\n",[27,2812,2814],{"class":29,"line":2813},231,[27,2815,864],{"class":51},[27,2817,2819],{"class":29,"line":2818},232,[27,2820,417],{"class":51},[27,2822,2824],{"class":29,"line":2823},233,[27,2825,1936],{"class":33},[27,2827,2829,2831,2833,2835],{"class":29,"line":2828},234,[27,2830,1942],{"class":33},[27,2832,1071],{"class":40},[27,2834,486],{"class":55},[27,2836,2669],{"class":51},[27,2838,2840,2842,2844],{"class":29,"line":2839},235,[27,2841,1942],{"class":33},[27,2843,2205],{"class":40},[27,2845,2679],{"class":55},[27,2847,2849],{"class":29,"line":2848},236,[27,2850,2001],{"class":33},[27,2852,2854,2856,2858,2860,2862,2864,2866,2868,2870,2872],{"class":29,"line":2853},237,[27,2855,41],{"class":40},[27,2857,1351],{"class":55},[27,2859,48],{"class":40},[27,2861,2697],{"class":51},[27,2863,2700],{"class":464},[27,2865,509],{"class":51},[27,2867,2705],{"class":464},[27,2869,993],{"class":51},[27,2871,471],{"class":40},[27,2873,474],{"class":51},[27,2875,2877,2879,2881,2883],{"class":29,"line":2876},238,[27,2878,495],{"class":40},[27,2880,2719],{"class":44},[27,2882,48],{"class":40},[27,2884,113],{"class":51},[27,2886,2888,2891,2893,2895,2897,2899,2901,2903,2905],{"class":29,"line":2887},239,[27,2889,2890],{"class":51},"            (x ",[27,2892,1452],{"class":40},[27,2894,2260],{"class":51},[27,2896,506],{"class":44},[27,2898,993],{"class":51},[27,2900,757],{"class":40},[27,2902,2734],{"class":51},[27,2904,506],{"class":44},[27,2906,660],{"class":51},[27,2908,2910,2913,2915,2917,2919,2921,2923,2925,2927],{"class":29,"line":2909},240,[27,2911,2912],{"class":51},"            (y ",[27,2914,1452],{"class":40},[27,2916,2260],{"class":51},[27,2918,657],{"class":44},[27,2920,993],{"class":51},[27,2922,757],{"class":40},[27,2924,2734],{"class":51},[27,2926,657],{"class":44},[27,2928,2769],{"class":51},[27,2930,2932],{"class":29,"line":2931},241,[27,2933,2287],{"class":51},[27,2935,2937,2939],{"class":29,"line":2936},242,[27,2938,1856],{"class":40},[27,2940,113],{"class":51},[27,2942,2944,2946,2948,2950,2952],{"class":29,"line":2943},243,[27,2945,2787],{"class":51},[27,2947,506],{"class":44},[27,2949,971],{"class":51},[27,2951,757],{"class":40},[27,2953,2796],{"class":51},[27,2955,2957,2959,2961,2963,2965],{"class":29,"line":2956},244,[27,2958,2787],{"class":51},[27,2960,657],{"class":44},[27,2962,971],{"class":51},[27,2964,757],{"class":40},[27,2966,2810],{"class":51},[27,2968,2970],{"class":29,"line":2969},245,[27,2971,864],{"class":51},[27,2973,2975],{"class":29,"line":2974},246,[27,2976,417],{"class":51},[27,2978,2980],{"class":29,"line":2979},247,[27,2981,449],{"emptyLinePlaceholder":448},[27,2983,2985],{"class":29,"line":2984},248,[27,2986,449],{"emptyLinePlaceholder":448},[27,2988,2990,2993,2996,2998,3000,3003,3006,3009],{"class":29,"line":2989},249,[27,2991,2992],{"class":40},"    let",[27,2994,2995],{"class":51}," lastTime ",[27,2997,557],{"class":40},[27,2999,401],{"class":40},[27,3001,3002],{"class":55}," Date",[27,3004,3005],{"class":51},"().",[27,3007,3008],{"class":55},"getTime",[27,3010,1251],{"class":51},[27,3012,3014],{"class":29,"line":3013},250,[27,3015,449],{"emptyLinePlaceholder":448},[27,3017,3019,3021,3024,3026],{"class":29,"line":3018},251,[27,3020,41],{"class":40},[27,3022,3023],{"class":44}," mouseHistory",[27,3025,48],{"class":40},[27,3027,442],{"class":51},[27,3029,3031,3033,3036,3038,3041],{"class":29,"line":3030},252,[27,3032,41],{"class":40},[27,3034,3035],{"class":44}," mouseHistoryLength",[27,3037,48],{"class":40},[27,3039,3040],{"class":44}," 255",[27,3042,566],{"class":51},[27,3044,3046],{"class":29,"line":3045},253,[27,3047,449],{"emptyLinePlaceholder":448},[27,3049,3051],{"class":29,"line":3050},254,[27,3052,1936],{"class":33},[27,3054,3056,3058,3060,3062],{"class":29,"line":3055},255,[27,3057,1942],{"class":33},[27,3059,1071],{"class":40},[27,3061,486],{"class":55},[27,3063,3064],{"class":51}," point\n",[27,3066,3068],{"class":29,"line":3067},256,[27,3069,2001],{"class":33},[27,3071,3073,3075,3078,3080,3082,3085,3087,3089],{"class":29,"line":3072},257,[27,3074,41],{"class":40},[27,3076,3077],{"class":55}," addMouseHistoryPoint",[27,3079,48],{"class":40},[27,3081,386],{"class":51},[27,3083,3084],{"class":464},"point",[27,3086,468],{"class":51},[27,3088,471],{"class":40},[27,3090,474],{"class":51},[27,3092,3094,3097,3099],{"class":29,"line":3093},258,[27,3095,3096],{"class":51},"        mouseHistory.",[27,3098,1707],{"class":55},[27,3100,3101],{"class":51},"(point);\n",[27,3103,3105,3108,3111,3113,3115],{"class":29,"line":3104},259,[27,3106,3107],{"class":40},"        if",[27,3109,3110],{"class":51}," (mouseHistory.",[27,3112,563],{"class":44},[27,3114,1723],{"class":40},[27,3116,3117],{"class":51}," mouseHistoryLength) {\n",[27,3119,3121,3124,3126],{"class":29,"line":3120},260,[27,3122,3123],{"class":51},"            mouseHistory.",[27,3125,1735],{"class":55},[27,3127,1251],{"class":51},[27,3129,3131],{"class":29,"line":3130},261,[27,3132,1056],{"class":51},[27,3134,3136],{"class":29,"line":3135},262,[27,3137,417],{"class":51},[27,3139,3141],{"class":29,"line":3140},263,[27,3142,449],{"emptyLinePlaceholder":448},[27,3144,3146,3149,3151,3154,3157,3159,3162,3164,3166],{"class":29,"line":3145},264,[27,3147,3148],{"class":51},"    listOfColors1.",[27,3150,1394],{"class":55},[27,3152,3153],{"class":51},"((",[27,3155,3156],{"class":464},"color",[27,3158,509],{"class":51},[27,3160,3161],{"class":464},"a",[27,3163,468],{"class":51},[27,3165,471],{"class":40},[27,3167,474],{"class":51},[27,3169,3171,3173,3176,3178,3180,3183,3185,3188,3190],{"class":29,"line":3170},265,[27,3172,495],{"class":40},[27,3174,3175],{"class":44}," thing",[27,3177,48],{"class":40},[27,3179,457],{"class":55},[27,3181,3182],{"class":51},"(listOfColors1[a ",[27,3184,2419],{"class":40},[27,3186,3187],{"class":51}," listOfColors1.",[27,3189,563],{"class":44},[27,3191,3192],{"class":51},"]);\n",[27,3194,3196],{"class":29,"line":3195},266,[27,3197,3198],{"class":51},"    })\n",[27,3200,3202,3205,3207,3209,3211,3213,3215,3217,3219],{"class":29,"line":3201},267,[27,3203,3204],{"class":51},"    listOfColors2.",[27,3206,1394],{"class":55},[27,3208,3153],{"class":51},[27,3210,3156],{"class":464},[27,3212,509],{"class":51},[27,3214,3161],{"class":464},[27,3216,468],{"class":51},[27,3218,471],{"class":40},[27,3220,474],{"class":51},[27,3222,3224,3226,3228,3230,3232,3235,3237,3240,3242],{"class":29,"line":3223},268,[27,3225,495],{"class":40},[27,3227,3175],{"class":44},[27,3229,48],{"class":40},[27,3231,457],{"class":55},[27,3233,3234],{"class":51},"(listOfColors2[a ",[27,3236,2419],{"class":40},[27,3238,3239],{"class":51}," listOfColors2.",[27,3241,563],{"class":44},[27,3243,3192],{"class":51},[27,3245,3247,3250,3252,3254,3256],{"class":29,"line":3246},269,[27,3248,3249],{"class":51},"        thing.pos[",[27,3251,506],{"class":44},[27,3253,971],{"class":51},[27,3255,557],{"class":40},[27,3257,3258],{"class":44}," 0.25\n",[27,3260,3262,3264,3266,3268,3270],{"class":29,"line":3261},270,[27,3263,3249],{"class":51},[27,3265,657],{"class":44},[27,3267,971],{"class":51},[27,3269,557],{"class":40},[27,3271,3258],{"class":44},[27,3273,3275,3278,3280,3283],{"class":29,"line":3274},271,[27,3276,3277],{"class":51},"        thing.phase ",[27,3279,974],{"class":40},[27,3281,3282],{"class":44}," 123.1298719",[27,3284,566],{"class":51},[27,3286,3288],{"class":29,"line":3287},272,[27,3289,3198],{"class":51},[27,3291,3293],{"class":29,"line":3292},273,[27,3294,1936],{"class":33},[27,3296,3298,3300,3302,3304],{"class":29,"line":3297},274,[27,3299,1942],{"class":33},[27,3301,1071],{"class":40},[27,3303,1074],{"class":55},[27,3305,3306],{"class":51}," time\n",[27,3308,3310,3312,3314,3317],{"class":29,"line":3309},275,[27,3311,1942],{"class":33},[27,3313,1071],{"class":40},[27,3315,3316],{"class":55}," {DrawScope}",[27,3318,3319],{"class":51}," drawScope\n",[27,3321,3323],{"class":29,"line":3322},276,[27,3324,2001],{"class":33},[27,3326,3328,3330,3333,3335],{"class":29,"line":3327},277,[27,3329,2992],{"class":40},[27,3331,3332],{"class":51}," draw ",[27,3334,557],{"class":40},[27,3336,3337],{"class":51}," (time, {\n",[27,3339,3341],{"class":29,"line":3340},278,[27,3342,2050],{"class":51},[27,3344,3346],{"class":29,"line":3345},279,[27,3347,3348],{"class":51},"        width,\n",[27,3350,3352],{"class":29,"line":3351},280,[27,3353,3354],{"class":51},"        height\n",[27,3356,3358,3361,3363],{"class":29,"line":3357},281,[27,3359,3360],{"class":51},"    }) ",[27,3362,471],{"class":40},[27,3364,474],{"class":51},[27,3366,3368,3370,3373,3375,3378,3380],{"class":29,"line":3367},282,[27,3369,495],{"class":40},[27,3371,3372],{"class":44}," deltaTime",[27,3374,48],{"class":40},[27,3376,3377],{"class":51}," time ",[27,3379,697],{"class":40},[27,3381,3382],{"class":51}," lastTime;\n",[27,3384,3386,3389,3391],{"class":29,"line":3385},283,[27,3387,3388],{"class":51},"        lastTime ",[27,3390,557],{"class":40},[27,3392,3393],{"class":51}," time;\n",[27,3395,3397,3400,3402,3405],{"class":29,"line":3396},284,[27,3398,3399],{"class":51},"        context.strokeStyle ",[27,3401,557],{"class":40},[27,3403,3404],{"class":62}," 'white'",[27,3406,566],{"class":51},[27,3408,3410,3413,3415,3417],{"class":29,"line":3409},285,[27,3411,3412],{"class":51},"        context.fillStyle ",[27,3414,557],{"class":40},[27,3416,3404],{"class":62},[27,3418,566],{"class":51},[27,3420,3422],{"class":29,"line":3421},286,[27,3423,449],{"emptyLinePlaceholder":448},[27,3425,3427,3430,3433,3435,3437,3439,3441],{"class":29,"line":3426},287,[27,3428,3429],{"class":51},"        context.",[27,3431,3432],{"class":55},"clearRect",[27,3434,59],{"class":51},[27,3436,506],{"class":44},[27,3438,509],{"class":51},[27,3440,506],{"class":44},[27,3442,3443],{"class":51},", width, height);\n",[27,3445,3447],{"class":29,"line":3446},288,[27,3448,449],{"emptyLinePlaceholder":448},[27,3450,3452,3454,3456,3458,3461,3463,3465,3467,3469],{"class":29,"line":3451},289,[27,3453,1845],{"class":51},[27,3455,1394],{"class":55},[27,3457,3153],{"class":51},[27,3459,3460],{"class":464},"thing",[27,3462,509],{"class":51},[27,3464,1409],{"class":464},[27,3466,468],{"class":51},[27,3468,471],{"class":40},[27,3470,474],{"class":51},[27,3472,3474,3477,3480],{"class":29,"line":3473},290,[27,3475,3476],{"class":51},"            thing.",[27,3478,3479],{"class":55},"frame",[27,3481,3482],{"class":51},"(deltaTime, context);\n",[27,3484,3486],{"class":29,"line":3485},291,[27,3487,449],{"emptyLinePlaceholder":448},[27,3489,3491],{"class":29,"line":3490},292,[27,3492,3493],{"class":51},"        });\n",[27,3495,3497],{"class":29,"line":3496},293,[27,3498,449],{"emptyLinePlaceholder":448},[27,3500,3502],{"class":29,"line":3501},294,[27,3503,417],{"class":51},[27,3505,3507],{"class":29,"line":3506},295,[27,3508,449],{"emptyLinePlaceholder":448},[27,3510,3512,3514,3517,3519,3521,3523],{"class":29,"line":3511},296,[27,3513,41],{"class":40},[27,3515,3516],{"class":55}," windowResizedListener",[27,3518,48],{"class":40},[27,3520,883],{"class":51},[27,3522,471],{"class":40},[27,3524,474],{"class":51},[27,3526,3528,3530,3533,3535,3538,3541],{"class":29,"line":3527},297,[27,3529,495],{"class":40},[27,3531,3532],{"class":44}," containerRect",[27,3534,48],{"class":40},[27,3536,3537],{"class":51}," container.",[27,3539,3540],{"class":55},"getBoundingClientRect",[27,3542,1251],{"class":51},[27,3544,3546,3549,3551],{"class":29,"line":3545},298,[27,3547,3548],{"class":51},"        canvas.width ",[27,3550,557],{"class":40},[27,3552,3553],{"class":51}," containerRect.width;\n",[27,3555,3557,3560,3562],{"class":29,"line":3556},299,[27,3558,3559],{"class":51},"        canvas.height ",[27,3561,557],{"class":40},[27,3563,3553],{"class":51},[27,3565,3567,3570,3572],{"class":29,"line":3566},300,[27,3568,3569],{"class":51},"        drawScope.width ",[27,3571,557],{"class":40},[27,3573,2136],{"class":51},[27,3575,3577,3580,3582],{"class":29,"line":3576},301,[27,3578,3579],{"class":51},"        drawScope.height ",[27,3581,557],{"class":40},[27,3583,2147],{"class":51},[27,3585,3587],{"class":29,"line":3586},302,[27,3588,417],{"class":51},[27,3590,3592],{"class":29,"line":3591},303,[27,3593,449],{"emptyLinePlaceholder":448},[27,3595,3597,3600,3603,3605,3608],{"class":29,"line":3596},304,[27,3598,3599],{"class":51},"    window.",[27,3601,3602],{"class":55},"addEventListener",[27,3604,59],{"class":51},[27,3606,3607],{"class":62},"'resize'",[27,3609,3610],{"class":51},", windowResizedListener);\n",[27,3612,3614],{"class":29,"line":3613},305,[27,3615,449],{"emptyLinePlaceholder":448},[27,3617,3619,3621,3623,3625,3627,3629],{"class":29,"line":3618},306,[27,3620,41],{"class":40},[27,3622,1107],{"class":55},[27,3624,48],{"class":40},[27,3626,883],{"class":51},[27,3628,471],{"class":40},[27,3630,474],{"class":51},[27,3632,3634,3636,3639,3641,3643,3645,3647,3649],{"class":29,"line":3633},307,[27,3635,495],{"class":40},[27,3637,3638],{"class":44}," time",[27,3640,48],{"class":40},[27,3642,401],{"class":40},[27,3644,3002],{"class":55},[27,3646,3005],{"class":51},[27,3648,3008],{"class":55},[27,3650,1251],{"class":51},[27,3652,3654,3657],{"class":29,"line":3653},308,[27,3655,3656],{"class":55},"        draw",[27,3658,3659],{"class":51},"(time, drawScope);\n",[27,3661,3663,3666],{"class":29,"line":3662},309,[27,3664,3665],{"class":55},"        requestAnimationFrame",[27,3667,3668],{"class":51},"(frame);\n",[27,3670,3672],{"class":29,"line":3671},310,[27,3673,417],{"class":51},[27,3675,3677],{"class":29,"line":3676},311,[27,3678,449],{"emptyLinePlaceholder":448},[27,3680,3682],{"class":29,"line":3681},312,[27,3683,449],{"emptyLinePlaceholder":448},[27,3685,3687],{"class":29,"line":3686},313,[27,3688,449],{"emptyLinePlaceholder":448},[27,3690,3692,3694,3696,3698,3701,3704,3706],{"class":29,"line":3691},314,[27,3693,3599],{"class":51},[27,3695,3602],{"class":55},[27,3697,59],{"class":51},[27,3699,3700],{"class":62},"'load'",[27,3702,3703],{"class":51},", () ",[27,3705,471],{"class":40},[27,3707,474],{"class":51},[27,3709,3711,3714],{"class":29,"line":3710},315,[27,3712,3713],{"class":55},"        windowResizedListener",[27,3715,1251],{"class":51},[27,3717,3719],{"class":29,"line":3718},316,[27,3720,3721],{"class":51},"    });\n",[27,3723,3725],{"class":29,"line":3724},317,[27,3726,449],{"emptyLinePlaceholder":448},[27,3728,3730,3733],{"class":29,"line":3729},318,[27,3731,3732],{"class":55},"    frame",[27,3734,1251],{"class":51},[3736,3737,3738],"style",{},"html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":22,"searchDepth":37,"depth":37,"links":3740},[],[3742],"blog","2024-03-02",null,"md","\u002Finstagram\u002Fautotel\u002F2024-03-02_19-40-09_UTC_1.jpg",{},"\u002Fposts\u002F2024-03-02-wavy-generative-animation",{"title":5,"description":12},"posts\u002F2024-03-02-wavy-generative-animation",[3752,3753,3754,3755],"generative","visuals","gist","tool_javascript",false,"ZRGhWAEUmeqPMoIszI5hWmaL2Z398lhvmw2MyXSWr-M",1790978019359]