[{"data":1,"prerenderedAt":2254},["ShallowReactive",2],{"posts:\u002Fposts\u002F2024-02-05-mycellium":3},{"id":4,"title":5,"body":6,"categories":2237,"date":2239,"description":2240,"extension":2241,"image":2242,"lang":2240,"meta":2243,"navigation":49,"path":2244,"seo":2245,"stem":2246,"tags":2247,"titleInPicture":2252,"__hash__":2253},"posts\u002Fposts\u002F2024-02-05-mycellium.md","Mycellium 1",{"type":7,"value":8,"toc":2235},"minimark",[9,13,16,19,29,2231],[10,11,12],"p",{},"My partner, Dorothy Zablah with a close person of hers, are founding a consultancy company. They use take inspiration on mycellium to provide facilitation consultancy. They are designing their website and it came to my mind that it would be so satisfying to create an algorithm that would simulate their growth. I thought of it as few agents containing position and angle, which would grow towards their (ever-changing) angle; and upon a certain time, they would branch out by creating a new agent that inherits their properties.",[10,14,15],{},"Note that if you resize the window, the drawing will get erased.",[10,17,18],{},"Possible improvements:",[20,21,22,26],"ul",{},[23,24,25],"li",{},"Fading out of existing lines, and end time of agents, so that the animation could continue endlessly",[23,27,28],{},"Gradual thinkening of older branches (perhaps using feathering + sharpening?)",[30,31,32],"code-runner",{},[33,34,39],"pre",{"className":35,"code":36,"language":37,"meta":38,"style":38},"language-javascript shiki shiki-themes github-dark","\n    const canvas = document.createElement('canvas');\n    const container = document.getElementById('code-target')\n    const restartButton = document.createElement('button');\n    container.appendChild(canvas);\n    container.appendChild(restartButton);\n\n    restartButton.innerText = 'Restart';\n    restartButton.onclick = () => {\n        window.location.reload();\n    }\n\n\n    \u002F**\n     * @typedef {Object} DrawScope\n     * @property {CanvasRenderingContext2D} context\n     * @property {number} width\n     * @property {number} height\n     *\u002F\n\n    let drawScope = {\n        context: null,\n        width: 0,\n        height: 0\n    }\n\n    \u002F**\n     * @type Vector2\n     * @property {number} x\n     * @property {number} y\n     *\u002F\n\n    const wrapCoords = (inputCords) => {\n        const coords = { ...inputCords };\n        if (coords.x \u003C 0) {\n            coords.x = 1 + coords.x;\n        }\n        if (coords.y \u003C 0) {\n            coords.y = 1 + coords.y;\n        }\n        const res = {\n            x: coords.x % 1,\n            y: coords.y % 1,\n            jumped: false,\n        }\n\n        res.jumped = res.x !== inputCords.x || res.y !== inputCords.y;\n        return res;\n    }\n\n    const rootWalkers = [];\n\n    \u002F**\n     * @param {RootWalker | undefined} parent\n     * @returns {RootWalker}\n     *\u002F\n    const makeRootWalker = (parent) => {\n        const pxSpeed = 0.1;\n        const existingOne = rootWalkers.find(walker => walker.inUse === false);\n        \u002F\u002F angle in range 0-1, I dont know what to call that\n        const plop = (parent?.plop || Math.random() * 360) + 90;\n        const inUse = true;\n        const x = parent?.x || 0.5;\n        const y = parent?.y || 0;\n        const age = 0;\n        const jumped = false;\n\n        if (existingOne) {\n            Object.assign(existingOne, {\n                inUse, plop, x, y, age, jumped\n            });\n            return existingOne;\n        } else {\n            return {\n                inUse, plop, x, y, age, jumped,\n                update(deltaTime) {\n                    if (!this.inUse) return;\n\n                    const deltaMicros = deltaTime * 0.001;\n\n                    const dx = pxSpeed * Math.cos(this.plop * Math.PI * 2) * deltaMicros;\n                    const dy = pxSpeed * Math.sin(this.plop * Math.PI * 2) * deltaMicros;\n\n                    Object.assign(this, wrapCoords({\n                        x: this.x + dx,\n                        y: this.y + dy\n                    }));\n\n                    this.age += deltaMicros;\n                    this.plop += (Math.random() * 0.1 - 0.05) * deltaMicros * 10\n\n                    if (this.age > 2000 * (Math.random() + 1)) {\n                        this.inUse = false;\n                    }\n                }\n            }\n        }\n    }\n\n    rootWalkers.push(\n        makeRootWalker()\n    );\n\n    const normalizeCoords = ({ x, y }) => {\n        return {\n            x: x \u002F drawScope.width,\n            y: y \u002F drawScope.height\n        }\n    }\n\n    const projectCoords = ({ x, y }) => {\n        return {\n            x: x * drawScope.width,\n            y: y * drawScope.height\n        }\n    }\n\n    const xy = (coords) => [coords.x, coords.y];\n\n    let lastTime = new Date().getTime();\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        const cv = 255;\n        context.fillStyle = `rgba(0,0,0,0.001)`;\n        context.fillRect(0, 0, width, height);\n        context.strokeStyle = `rgb(${cv},${cv},${cv})`;\n        context.lineWidth = 1;\n\n\n        rootWalkers.forEach(walker => {\n            context.beginPath();\n            context.moveTo(...xy(projectCoords(walker)));\n            walker.update(deltaTime);\n            if (walker.jumped) {\n                context.moveTo(...xy(projectCoords(walker)));\n            }\n            context.lineTo(...xy(projectCoords(walker)));\n            context.stroke();\n            const livingWalkersCount = rootWalkers.filter(walker => walker.inUse).length;\n            \u002F\u002F the more walkers exist, the longer it takes to spawn new ones\n            if (walker.age > 1 + Math.random() * livingWalkersCount * livingWalkersCount) {\n                rootWalkers.push(makeRootWalker(walker));\n                walker.age = 0;\n            }\n        });\n\n\n    }\n\n    const windowResizedListener = () => {\n        const containerRect = container.getBoundingClientRect();\n        canvas.width = containerRect.width;\n        canvas.height = containerRect.width * 0.86;\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    drawScope.context = canvas.getContext('2d');\n    drawScope.context.fillStyle = 'white';\n    drawScope.context.fillRect(0, 0, drawScope.width, drawScope.height);\n    windowResizedListener();\n    frame();\n\n\n","javascript","",[40,41,42,51,83,106,127,139,149,154,169,189,201,207,212,217,224,239,253,266,278,284,289,302,314,325,334,339,344,349,360,372,384,389,394,418,438,456,473,479,493,508,513,525,538,550,561,566,571,599,608,613,618,631,636,641,655,666,671,692,707,742,748,788,803,823,842,856,870,875,883,895,901,907,916,927,934,940,953,975,980,1001,1006,1053,1094,1099,1120,1136,1152,1158,1163,1177,1215,1220,1252,1267,1273,1279,1285,1290,1295,1300,1312,1321,1327,1332,1360,1367,1379,1390,1395,1400,1405,1429,1436,1445,1454,1459,1464,1469,1491,1496,1520,1525,1537,1550,1555,1568,1574,1580,1586,1596,1615,1626,1641,1654,1674,1702,1714,1719,1724,1741,1752,1775,1787,1796,1816,1821,1841,1851,1881,1887,1917,1933,1945,1950,1956,1961,1966,1971,1976,1992,2010,2021,2039,2050,2061,2066,2071,2088,2093,2109,2129,2138,2147,2152,2157,2162,2183,2196,2215,2223],"code",{"__ignoreMap":38},[43,44,47],"span",{"class":45,"line":46},"line",1,[43,48,50],{"emptyLinePlaceholder":49},true,"\n",[43,52,54,58,62,65,69,73,76,80],{"class":45,"line":53},2,[43,55,57],{"class":56},"snl16","    const",[43,59,61],{"class":60},"sDLfK"," canvas",[43,63,64],{"class":56}," =",[43,66,68],{"class":67},"s95oV"," document.",[43,70,72],{"class":71},"svObZ","createElement",[43,74,75],{"class":67},"(",[43,77,79],{"class":78},"sU2Wk","'canvas'",[43,81,82],{"class":67},");\n",[43,84,86,88,91,93,95,98,100,103],{"class":45,"line":85},3,[43,87,57],{"class":56},[43,89,90],{"class":60}," container",[43,92,64],{"class":56},[43,94,68],{"class":67},[43,96,97],{"class":71},"getElementById",[43,99,75],{"class":67},[43,101,102],{"class":78},"'code-target'",[43,104,105],{"class":67},")\n",[43,107,109,111,114,116,118,120,122,125],{"class":45,"line":108},4,[43,110,57],{"class":56},[43,112,113],{"class":60}," restartButton",[43,115,64],{"class":56},[43,117,68],{"class":67},[43,119,72],{"class":71},[43,121,75],{"class":67},[43,123,124],{"class":78},"'button'",[43,126,82],{"class":67},[43,128,130,133,136],{"class":45,"line":129},5,[43,131,132],{"class":67},"    container.",[43,134,135],{"class":71},"appendChild",[43,137,138],{"class":67},"(canvas);\n",[43,140,142,144,146],{"class":45,"line":141},6,[43,143,132],{"class":67},[43,145,135],{"class":71},[43,147,148],{"class":67},"(restartButton);\n",[43,150,152],{"class":45,"line":151},7,[43,153,50],{"emptyLinePlaceholder":49},[43,155,157,160,163,166],{"class":45,"line":156},8,[43,158,159],{"class":67},"    restartButton.innerText ",[43,161,162],{"class":56},"=",[43,164,165],{"class":78}," 'Restart'",[43,167,168],{"class":67},";\n",[43,170,172,175,178,180,183,186],{"class":45,"line":171},9,[43,173,174],{"class":67},"    restartButton.",[43,176,177],{"class":71},"onclick",[43,179,64],{"class":56},[43,181,182],{"class":67}," () ",[43,184,185],{"class":56},"=>",[43,187,188],{"class":67}," {\n",[43,190,192,195,198],{"class":45,"line":191},10,[43,193,194],{"class":67},"        window.location.",[43,196,197],{"class":71},"reload",[43,199,200],{"class":67},"();\n",[43,202,204],{"class":45,"line":203},11,[43,205,206],{"class":67},"    }\n",[43,208,210],{"class":45,"line":209},12,[43,211,50],{"emptyLinePlaceholder":49},[43,213,215],{"class":45,"line":214},13,[43,216,50],{"emptyLinePlaceholder":49},[43,218,220],{"class":45,"line":219},14,[43,221,223],{"class":222},"sAwPA","    \u002F**\n",[43,225,227,230,233,236],{"class":45,"line":226},15,[43,228,229],{"class":222},"     * ",[43,231,232],{"class":56},"@typedef",[43,234,235],{"class":71}," {Object}",[43,237,238],{"class":71}," DrawScope\n",[43,240,242,244,247,250],{"class":45,"line":241},16,[43,243,229],{"class":222},[43,245,246],{"class":56},"@property",[43,248,249],{"class":71}," {CanvasRenderingContext2D}",[43,251,252],{"class":67}," context\n",[43,254,256,258,260,263],{"class":45,"line":255},17,[43,257,229],{"class":222},[43,259,246],{"class":56},[43,261,262],{"class":71}," {number}",[43,264,265],{"class":67}," width\n",[43,267,269,271,273,275],{"class":45,"line":268},18,[43,270,229],{"class":222},[43,272,246],{"class":56},[43,274,262],{"class":71},[43,276,277],{"class":67}," height\n",[43,279,281],{"class":45,"line":280},19,[43,282,283],{"class":222},"     *\u002F\n",[43,285,287],{"class":45,"line":286},20,[43,288,50],{"emptyLinePlaceholder":49},[43,290,292,295,298,300],{"class":45,"line":291},21,[43,293,294],{"class":56},"    let",[43,296,297],{"class":67}," drawScope ",[43,299,162],{"class":56},[43,301,188],{"class":67},[43,303,305,308,311],{"class":45,"line":304},22,[43,306,307],{"class":67},"        context: ",[43,309,310],{"class":60},"null",[43,312,313],{"class":67},",\n",[43,315,317,320,323],{"class":45,"line":316},23,[43,318,319],{"class":67},"        width: ",[43,321,322],{"class":60},"0",[43,324,313],{"class":67},[43,326,328,331],{"class":45,"line":327},24,[43,329,330],{"class":67},"        height: ",[43,332,333],{"class":60},"0\n",[43,335,337],{"class":45,"line":336},25,[43,338,206],{"class":67},[43,340,342],{"class":45,"line":341},26,[43,343,50],{"emptyLinePlaceholder":49},[43,345,347],{"class":45,"line":346},27,[43,348,223],{"class":222},[43,350,352,354,357],{"class":45,"line":351},28,[43,353,229],{"class":222},[43,355,356],{"class":56},"@type",[43,358,359],{"class":222}," Vector2\n",[43,361,363,365,367,369],{"class":45,"line":362},29,[43,364,229],{"class":222},[43,366,246],{"class":56},[43,368,262],{"class":71},[43,370,371],{"class":67}," x\n",[43,373,375,377,379,381],{"class":45,"line":374},30,[43,376,229],{"class":222},[43,378,246],{"class":56},[43,380,262],{"class":71},[43,382,383],{"class":67}," y\n",[43,385,387],{"class":45,"line":386},31,[43,388,283],{"class":222},[43,390,392],{"class":45,"line":391},32,[43,393,50],{"emptyLinePlaceholder":49},[43,395,397,399,402,404,407,411,414,416],{"class":45,"line":396},33,[43,398,57],{"class":56},[43,400,401],{"class":71}," wrapCoords",[43,403,64],{"class":56},[43,405,406],{"class":67}," (",[43,408,410],{"class":409},"s9osk","inputCords",[43,412,413],{"class":67},") ",[43,415,185],{"class":56},[43,417,188],{"class":67},[43,419,421,424,427,429,432,435],{"class":45,"line":420},34,[43,422,423],{"class":56},"        const",[43,425,426],{"class":60}," coords",[43,428,64],{"class":56},[43,430,431],{"class":67}," { ",[43,433,434],{"class":56},"...",[43,436,437],{"class":67},"inputCords };\n",[43,439,441,444,447,450,453],{"class":45,"line":440},35,[43,442,443],{"class":56},"        if",[43,445,446],{"class":67}," (coords.x ",[43,448,449],{"class":56},"\u003C",[43,451,452],{"class":60}," 0",[43,454,455],{"class":67},") {\n",[43,457,459,462,464,467,470],{"class":45,"line":458},36,[43,460,461],{"class":67},"            coords.x ",[43,463,162],{"class":56},[43,465,466],{"class":60}," 1",[43,468,469],{"class":56}," +",[43,471,472],{"class":67}," coords.x;\n",[43,474,476],{"class":45,"line":475},37,[43,477,478],{"class":67},"        }\n",[43,480,482,484,487,489,491],{"class":45,"line":481},38,[43,483,443],{"class":56},[43,485,486],{"class":67}," (coords.y ",[43,488,449],{"class":56},[43,490,452],{"class":60},[43,492,455],{"class":67},[43,494,496,499,501,503,505],{"class":45,"line":495},39,[43,497,498],{"class":67},"            coords.y ",[43,500,162],{"class":56},[43,502,466],{"class":60},[43,504,469],{"class":56},[43,506,507],{"class":67}," coords.y;\n",[43,509,511],{"class":45,"line":510},40,[43,512,478],{"class":67},[43,514,516,518,521,523],{"class":45,"line":515},41,[43,517,423],{"class":56},[43,519,520],{"class":60}," res",[43,522,64],{"class":56},[43,524,188],{"class":67},[43,526,528,531,534,536],{"class":45,"line":527},42,[43,529,530],{"class":67},"            x: coords.x ",[43,532,533],{"class":56},"%",[43,535,466],{"class":60},[43,537,313],{"class":67},[43,539,541,544,546,548],{"class":45,"line":540},43,[43,542,543],{"class":67},"            y: coords.y ",[43,545,533],{"class":56},[43,547,466],{"class":60},[43,549,313],{"class":67},[43,551,553,556,559],{"class":45,"line":552},44,[43,554,555],{"class":67},"            jumped: ",[43,557,558],{"class":60},"false",[43,560,313],{"class":67},[43,562,564],{"class":45,"line":563},45,[43,565,478],{"class":67},[43,567,569],{"class":45,"line":568},46,[43,570,50],{"emptyLinePlaceholder":49},[43,572,574,577,579,582,585,588,591,594,596],{"class":45,"line":573},47,[43,575,576],{"class":67},"        res.jumped ",[43,578,162],{"class":56},[43,580,581],{"class":67}," res.x ",[43,583,584],{"class":56},"!==",[43,586,587],{"class":67}," inputCords.x ",[43,589,590],{"class":56},"||",[43,592,593],{"class":67}," res.y ",[43,595,584],{"class":56},[43,597,598],{"class":67}," inputCords.y;\n",[43,600,602,605],{"class":45,"line":601},48,[43,603,604],{"class":56},"        return",[43,606,607],{"class":67}," res;\n",[43,609,611],{"class":45,"line":610},49,[43,612,206],{"class":67},[43,614,616],{"class":45,"line":615},50,[43,617,50],{"emptyLinePlaceholder":49},[43,619,621,623,626,628],{"class":45,"line":620},51,[43,622,57],{"class":56},[43,624,625],{"class":60}," rootWalkers",[43,627,64],{"class":56},[43,629,630],{"class":67}," [];\n",[43,632,634],{"class":45,"line":633},52,[43,635,50],{"emptyLinePlaceholder":49},[43,637,639],{"class":45,"line":638},53,[43,640,223],{"class":222},[43,642,644,646,649,652],{"class":45,"line":643},54,[43,645,229],{"class":222},[43,647,648],{"class":56},"@param",[43,650,651],{"class":71}," {RootWalker | undefined}",[43,653,654],{"class":67}," parent\n",[43,656,658,660,663],{"class":45,"line":657},55,[43,659,229],{"class":222},[43,661,662],{"class":56},"@returns",[43,664,665],{"class":71}," {RootWalker}\n",[43,667,669],{"class":45,"line":668},56,[43,670,283],{"class":222},[43,672,674,676,679,681,683,686,688,690],{"class":45,"line":673},57,[43,675,57],{"class":56},[43,677,678],{"class":71}," makeRootWalker",[43,680,64],{"class":56},[43,682,406],{"class":67},[43,684,685],{"class":409},"parent",[43,687,413],{"class":67},[43,689,185],{"class":56},[43,691,188],{"class":67},[43,693,695,697,700,702,705],{"class":45,"line":694},58,[43,696,423],{"class":56},[43,698,699],{"class":60}," pxSpeed",[43,701,64],{"class":56},[43,703,704],{"class":60}," 0.1",[43,706,168],{"class":67},[43,708,710,712,715,717,720,723,725,728,731,734,737,740],{"class":45,"line":709},59,[43,711,423],{"class":56},[43,713,714],{"class":60}," existingOne",[43,716,64],{"class":56},[43,718,719],{"class":67}," rootWalkers.",[43,721,722],{"class":71},"find",[43,724,75],{"class":67},[43,726,727],{"class":409},"walker",[43,729,730],{"class":56}," =>",[43,732,733],{"class":67}," walker.inUse ",[43,735,736],{"class":56},"===",[43,738,739],{"class":60}," false",[43,741,82],{"class":67},[43,743,745],{"class":45,"line":744},60,[43,746,747],{"class":222},"        \u002F\u002F angle in range 0-1, I dont know what to call that\n",[43,749,751,753,756,758,761,763,766,769,772,775,778,780,783,786],{"class":45,"line":750},61,[43,752,423],{"class":56},[43,754,755],{"class":60}," plop",[43,757,64],{"class":56},[43,759,760],{"class":67}," (parent?.plop ",[43,762,590],{"class":56},[43,764,765],{"class":67}," Math.",[43,767,768],{"class":71},"random",[43,770,771],{"class":67},"() ",[43,773,774],{"class":56},"*",[43,776,777],{"class":60}," 360",[43,779,413],{"class":67},[43,781,782],{"class":56},"+",[43,784,785],{"class":60}," 90",[43,787,168],{"class":67},[43,789,791,793,796,798,801],{"class":45,"line":790},62,[43,792,423],{"class":56},[43,794,795],{"class":60}," inUse",[43,797,64],{"class":56},[43,799,800],{"class":60}," true",[43,802,168],{"class":67},[43,804,806,808,811,813,816,818,821],{"class":45,"line":805},63,[43,807,423],{"class":56},[43,809,810],{"class":60}," x",[43,812,64],{"class":56},[43,814,815],{"class":67}," parent?.x ",[43,817,590],{"class":56},[43,819,820],{"class":60}," 0.5",[43,822,168],{"class":67},[43,824,826,828,831,833,836,838,840],{"class":45,"line":825},64,[43,827,423],{"class":56},[43,829,830],{"class":60}," y",[43,832,64],{"class":56},[43,834,835],{"class":67}," parent?.y ",[43,837,590],{"class":56},[43,839,452],{"class":60},[43,841,168],{"class":67},[43,843,845,847,850,852,854],{"class":45,"line":844},65,[43,846,423],{"class":56},[43,848,849],{"class":60}," age",[43,851,64],{"class":56},[43,853,452],{"class":60},[43,855,168],{"class":67},[43,857,859,861,864,866,868],{"class":45,"line":858},66,[43,860,423],{"class":56},[43,862,863],{"class":60}," jumped",[43,865,64],{"class":56},[43,867,739],{"class":60},[43,869,168],{"class":67},[43,871,873],{"class":45,"line":872},67,[43,874,50],{"emptyLinePlaceholder":49},[43,876,878,880],{"class":45,"line":877},68,[43,879,443],{"class":56},[43,881,882],{"class":67}," (existingOne) {\n",[43,884,886,889,892],{"class":45,"line":885},69,[43,887,888],{"class":67},"            Object.",[43,890,891],{"class":71},"assign",[43,893,894],{"class":67},"(existingOne, {\n",[43,896,898],{"class":45,"line":897},70,[43,899,900],{"class":67},"                inUse, plop, x, y, age, jumped\n",[43,902,904],{"class":45,"line":903},71,[43,905,906],{"class":67},"            });\n",[43,908,910,913],{"class":45,"line":909},72,[43,911,912],{"class":56},"            return",[43,914,915],{"class":67}," existingOne;\n",[43,917,919,922,925],{"class":45,"line":918},73,[43,920,921],{"class":67},"        } ",[43,923,924],{"class":56},"else",[43,926,188],{"class":67},[43,928,930,932],{"class":45,"line":929},74,[43,931,912],{"class":56},[43,933,188],{"class":67},[43,935,937],{"class":45,"line":936},75,[43,938,939],{"class":67},"                inUse, plop, x, y, age, jumped,\n",[43,941,943,946,948,951],{"class":45,"line":942},76,[43,944,945],{"class":71},"                update",[43,947,75],{"class":67},[43,949,950],{"class":409},"deltaTime",[43,952,455],{"class":67},[43,954,956,959,961,964,967,970,973],{"class":45,"line":955},77,[43,957,958],{"class":56},"                    if",[43,960,406],{"class":67},[43,962,963],{"class":56},"!",[43,965,966],{"class":60},"this",[43,968,969],{"class":67},".inUse) ",[43,971,972],{"class":56},"return",[43,974,168],{"class":67},[43,976,978],{"class":45,"line":977},78,[43,979,50],{"emptyLinePlaceholder":49},[43,981,983,986,989,991,994,996,999],{"class":45,"line":982},79,[43,984,985],{"class":56},"                    const",[43,987,988],{"class":60}," deltaMicros",[43,990,64],{"class":56},[43,992,993],{"class":67}," deltaTime ",[43,995,774],{"class":56},[43,997,998],{"class":60}," 0.001",[43,1000,168],{"class":67},[43,1002,1004],{"class":45,"line":1003},80,[43,1005,50],{"emptyLinePlaceholder":49},[43,1007,1009,1011,1014,1016,1019,1021,1023,1026,1028,1030,1033,1035,1037,1040,1043,1046,1048,1050],{"class":45,"line":1008},81,[43,1010,985],{"class":56},[43,1012,1013],{"class":60}," dx",[43,1015,64],{"class":56},[43,1017,1018],{"class":67}," pxSpeed ",[43,1020,774],{"class":56},[43,1022,765],{"class":67},[43,1024,1025],{"class":71},"cos",[43,1027,75],{"class":67},[43,1029,966],{"class":60},[43,1031,1032],{"class":67},".plop ",[43,1034,774],{"class":56},[43,1036,765],{"class":67},[43,1038,1039],{"class":60},"PI",[43,1041,1042],{"class":56}," *",[43,1044,1045],{"class":60}," 2",[43,1047,413],{"class":67},[43,1049,774],{"class":56},[43,1051,1052],{"class":67}," deltaMicros;\n",[43,1054,1056,1058,1061,1063,1065,1067,1069,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092],{"class":45,"line":1055},82,[43,1057,985],{"class":56},[43,1059,1060],{"class":60}," dy",[43,1062,64],{"class":56},[43,1064,1018],{"class":67},[43,1066,774],{"class":56},[43,1068,765],{"class":67},[43,1070,1071],{"class":71},"sin",[43,1073,75],{"class":67},[43,1075,966],{"class":60},[43,1077,1032],{"class":67},[43,1079,774],{"class":56},[43,1081,765],{"class":67},[43,1083,1039],{"class":60},[43,1085,1042],{"class":56},[43,1087,1045],{"class":60},[43,1089,413],{"class":67},[43,1091,774],{"class":56},[43,1093,1052],{"class":67},[43,1095,1097],{"class":45,"line":1096},83,[43,1098,50],{"emptyLinePlaceholder":49},[43,1100,1102,1105,1107,1109,1111,1114,1117],{"class":45,"line":1101},84,[43,1103,1104],{"class":67},"                    Object.",[43,1106,891],{"class":71},[43,1108,75],{"class":67},[43,1110,966],{"class":60},[43,1112,1113],{"class":67},", ",[43,1115,1116],{"class":71},"wrapCoords",[43,1118,1119],{"class":67},"({\n",[43,1121,1123,1126,1128,1131,1133],{"class":45,"line":1122},85,[43,1124,1125],{"class":67},"                        x: ",[43,1127,966],{"class":60},[43,1129,1130],{"class":67},".x ",[43,1132,782],{"class":56},[43,1134,1135],{"class":67}," dx,\n",[43,1137,1139,1142,1144,1147,1149],{"class":45,"line":1138},86,[43,1140,1141],{"class":67},"                        y: ",[43,1143,966],{"class":60},[43,1145,1146],{"class":67},".y ",[43,1148,782],{"class":56},[43,1150,1151],{"class":67}," dy\n",[43,1153,1155],{"class":45,"line":1154},87,[43,1156,1157],{"class":67},"                    }));\n",[43,1159,1161],{"class":45,"line":1160},88,[43,1162,50],{"emptyLinePlaceholder":49},[43,1164,1166,1169,1172,1175],{"class":45,"line":1165},89,[43,1167,1168],{"class":60},"                    this",[43,1170,1171],{"class":67},".age ",[43,1173,1174],{"class":56},"+=",[43,1176,1052],{"class":67},[43,1178,1180,1182,1184,1186,1189,1191,1193,1195,1197,1200,1203,1205,1207,1210,1212],{"class":45,"line":1179},90,[43,1181,1168],{"class":60},[43,1183,1032],{"class":67},[43,1185,1174],{"class":56},[43,1187,1188],{"class":67}," (Math.",[43,1190,768],{"class":71},[43,1192,771],{"class":67},[43,1194,774],{"class":56},[43,1196,704],{"class":60},[43,1198,1199],{"class":56}," -",[43,1201,1202],{"class":60}," 0.05",[43,1204,413],{"class":67},[43,1206,774],{"class":56},[43,1208,1209],{"class":67}," deltaMicros ",[43,1211,774],{"class":56},[43,1213,1214],{"class":60}," 10\n",[43,1216,1218],{"class":45,"line":1217},91,[43,1219,50],{"emptyLinePlaceholder":49},[43,1221,1223,1225,1227,1229,1231,1234,1237,1239,1241,1243,1245,1247,1249],{"class":45,"line":1222},92,[43,1224,958],{"class":56},[43,1226,406],{"class":67},[43,1228,966],{"class":60},[43,1230,1171],{"class":67},[43,1232,1233],{"class":56},">",[43,1235,1236],{"class":60}," 2000",[43,1238,1042],{"class":56},[43,1240,1188],{"class":67},[43,1242,768],{"class":71},[43,1244,771],{"class":67},[43,1246,782],{"class":56},[43,1248,466],{"class":60},[43,1250,1251],{"class":67},")) {\n",[43,1253,1255,1258,1261,1263,1265],{"class":45,"line":1254},93,[43,1256,1257],{"class":60},"                        this",[43,1259,1260],{"class":67},".inUse ",[43,1262,162],{"class":56},[43,1264,739],{"class":60},[43,1266,168],{"class":67},[43,1268,1270],{"class":45,"line":1269},94,[43,1271,1272],{"class":67},"                    }\n",[43,1274,1276],{"class":45,"line":1275},95,[43,1277,1278],{"class":67},"                }\n",[43,1280,1282],{"class":45,"line":1281},96,[43,1283,1284],{"class":67},"            }\n",[43,1286,1288],{"class":45,"line":1287},97,[43,1289,478],{"class":67},[43,1291,1293],{"class":45,"line":1292},98,[43,1294,206],{"class":67},[43,1296,1298],{"class":45,"line":1297},99,[43,1299,50],{"emptyLinePlaceholder":49},[43,1301,1303,1306,1309],{"class":45,"line":1302},100,[43,1304,1305],{"class":67},"    rootWalkers.",[43,1307,1308],{"class":71},"push",[43,1310,1311],{"class":67},"(\n",[43,1313,1315,1318],{"class":45,"line":1314},101,[43,1316,1317],{"class":71},"        makeRootWalker",[43,1319,1320],{"class":67},"()\n",[43,1322,1324],{"class":45,"line":1323},102,[43,1325,1326],{"class":67},"    );\n",[43,1328,1330],{"class":45,"line":1329},103,[43,1331,50],{"emptyLinePlaceholder":49},[43,1333,1335,1337,1340,1342,1345,1348,1350,1353,1356,1358],{"class":45,"line":1334},104,[43,1336,57],{"class":56},[43,1338,1339],{"class":71}," normalizeCoords",[43,1341,64],{"class":56},[43,1343,1344],{"class":67}," ({ ",[43,1346,1347],{"class":409},"x",[43,1349,1113],{"class":67},[43,1351,1352],{"class":409},"y",[43,1354,1355],{"class":67}," }) ",[43,1357,185],{"class":56},[43,1359,188],{"class":67},[43,1361,1363,1365],{"class":45,"line":1362},105,[43,1364,604],{"class":56},[43,1366,188],{"class":67},[43,1368,1370,1373,1376],{"class":45,"line":1369},106,[43,1371,1372],{"class":67},"            x: x ",[43,1374,1375],{"class":56},"\u002F",[43,1377,1378],{"class":67}," drawScope.width,\n",[43,1380,1382,1385,1387],{"class":45,"line":1381},107,[43,1383,1384],{"class":67},"            y: y ",[43,1386,1375],{"class":56},[43,1388,1389],{"class":67}," drawScope.height\n",[43,1391,1393],{"class":45,"line":1392},108,[43,1394,478],{"class":67},[43,1396,1398],{"class":45,"line":1397},109,[43,1399,206],{"class":67},[43,1401,1403],{"class":45,"line":1402},110,[43,1404,50],{"emptyLinePlaceholder":49},[43,1406,1408,1410,1413,1415,1417,1419,1421,1423,1425,1427],{"class":45,"line":1407},111,[43,1409,57],{"class":56},[43,1411,1412],{"class":71}," projectCoords",[43,1414,64],{"class":56},[43,1416,1344],{"class":67},[43,1418,1347],{"class":409},[43,1420,1113],{"class":67},[43,1422,1352],{"class":409},[43,1424,1355],{"class":67},[43,1426,185],{"class":56},[43,1428,188],{"class":67},[43,1430,1432,1434],{"class":45,"line":1431},112,[43,1433,604],{"class":56},[43,1435,188],{"class":67},[43,1437,1439,1441,1443],{"class":45,"line":1438},113,[43,1440,1372],{"class":67},[43,1442,774],{"class":56},[43,1444,1378],{"class":67},[43,1446,1448,1450,1452],{"class":45,"line":1447},114,[43,1449,1384],{"class":67},[43,1451,774],{"class":56},[43,1453,1389],{"class":67},[43,1455,1457],{"class":45,"line":1456},115,[43,1458,478],{"class":67},[43,1460,1462],{"class":45,"line":1461},116,[43,1463,206],{"class":67},[43,1465,1467],{"class":45,"line":1466},117,[43,1468,50],{"emptyLinePlaceholder":49},[43,1470,1472,1474,1477,1479,1481,1484,1486,1488],{"class":45,"line":1471},118,[43,1473,57],{"class":56},[43,1475,1476],{"class":71}," xy",[43,1478,64],{"class":56},[43,1480,406],{"class":67},[43,1482,1483],{"class":409},"coords",[43,1485,413],{"class":67},[43,1487,185],{"class":56},[43,1489,1490],{"class":67}," [coords.x, coords.y];\n",[43,1492,1494],{"class":45,"line":1493},119,[43,1495,50],{"emptyLinePlaceholder":49},[43,1497,1499,1501,1504,1506,1509,1512,1515,1518],{"class":45,"line":1498},120,[43,1500,294],{"class":56},[43,1502,1503],{"class":67}," lastTime ",[43,1505,162],{"class":56},[43,1507,1508],{"class":56}," new",[43,1510,1511],{"class":71}," Date",[43,1513,1514],{"class":67},"().",[43,1516,1517],{"class":71},"getTime",[43,1519,200],{"class":67},[43,1521,1523],{"class":45,"line":1522},121,[43,1524,223],{"class":222},[43,1526,1528,1530,1532,1534],{"class":45,"line":1527},122,[43,1529,229],{"class":222},[43,1531,648],{"class":56},[43,1533,262],{"class":71},[43,1535,1536],{"class":67}," time\n",[43,1538,1540,1542,1544,1547],{"class":45,"line":1539},123,[43,1541,229],{"class":222},[43,1543,648],{"class":56},[43,1545,1546],{"class":71}," {DrawScope}",[43,1548,1549],{"class":67}," drawScope\n",[43,1551,1553],{"class":45,"line":1552},124,[43,1554,283],{"class":222},[43,1556,1558,1560,1563,1565],{"class":45,"line":1557},125,[43,1559,294],{"class":56},[43,1561,1562],{"class":67}," draw ",[43,1564,162],{"class":56},[43,1566,1567],{"class":67}," (time, {\n",[43,1569,1571],{"class":45,"line":1570},126,[43,1572,1573],{"class":67},"        context,\n",[43,1575,1577],{"class":45,"line":1576},127,[43,1578,1579],{"class":67},"        width,\n",[43,1581,1583],{"class":45,"line":1582},128,[43,1584,1585],{"class":67},"        height\n",[43,1587,1589,1592,1594],{"class":45,"line":1588},129,[43,1590,1591],{"class":67},"    }) ",[43,1593,185],{"class":56},[43,1595,188],{"class":67},[43,1597,1599,1601,1604,1606,1609,1612],{"class":45,"line":1598},130,[43,1600,423],{"class":56},[43,1602,1603],{"class":60}," deltaTime",[43,1605,64],{"class":56},[43,1607,1608],{"class":67}," time ",[43,1610,1611],{"class":56},"-",[43,1613,1614],{"class":67}," lastTime;\n",[43,1616,1618,1621,1623],{"class":45,"line":1617},131,[43,1619,1620],{"class":67},"        lastTime ",[43,1622,162],{"class":56},[43,1624,1625],{"class":67}," time;\n",[43,1627,1629,1631,1634,1636,1639],{"class":45,"line":1628},132,[43,1630,423],{"class":56},[43,1632,1633],{"class":60}," cv",[43,1635,64],{"class":56},[43,1637,1638],{"class":60}," 255",[43,1640,168],{"class":67},[43,1642,1644,1647,1649,1652],{"class":45,"line":1643},133,[43,1645,1646],{"class":67},"        context.fillStyle ",[43,1648,162],{"class":56},[43,1650,1651],{"class":78}," `rgba(0,0,0,0.001)`",[43,1653,168],{"class":67},[43,1655,1657,1660,1663,1665,1667,1669,1671],{"class":45,"line":1656},134,[43,1658,1659],{"class":67},"        context.",[43,1661,1662],{"class":71},"fillRect",[43,1664,75],{"class":67},[43,1666,322],{"class":60},[43,1668,1113],{"class":67},[43,1670,322],{"class":60},[43,1672,1673],{"class":67},", width, height);\n",[43,1675,1677,1680,1682,1685,1688,1691,1693,1695,1697,1700],{"class":45,"line":1676},135,[43,1678,1679],{"class":67},"        context.strokeStyle ",[43,1681,162],{"class":56},[43,1683,1684],{"class":78}," `rgb(${",[43,1686,1687],{"class":67},"cv",[43,1689,1690],{"class":78},"},${",[43,1692,1687],{"class":67},[43,1694,1690],{"class":78},[43,1696,1687],{"class":67},[43,1698,1699],{"class":78},"})`",[43,1701,168],{"class":67},[43,1703,1705,1708,1710,1712],{"class":45,"line":1704},136,[43,1706,1707],{"class":67},"        context.lineWidth ",[43,1709,162],{"class":56},[43,1711,466],{"class":60},[43,1713,168],{"class":67},[43,1715,1717],{"class":45,"line":1716},137,[43,1718,50],{"emptyLinePlaceholder":49},[43,1720,1722],{"class":45,"line":1721},138,[43,1723,50],{"emptyLinePlaceholder":49},[43,1725,1727,1730,1733,1735,1737,1739],{"class":45,"line":1726},139,[43,1728,1729],{"class":67},"        rootWalkers.",[43,1731,1732],{"class":71},"forEach",[43,1734,75],{"class":67},[43,1736,727],{"class":409},[43,1738,730],{"class":56},[43,1740,188],{"class":67},[43,1742,1744,1747,1750],{"class":45,"line":1743},140,[43,1745,1746],{"class":67},"            context.",[43,1748,1749],{"class":71},"beginPath",[43,1751,200],{"class":67},[43,1753,1755,1757,1760,1762,1764,1767,1769,1772],{"class":45,"line":1754},141,[43,1756,1746],{"class":67},[43,1758,1759],{"class":71},"moveTo",[43,1761,75],{"class":67},[43,1763,434],{"class":56},[43,1765,1766],{"class":71},"xy",[43,1768,75],{"class":67},[43,1770,1771],{"class":71},"projectCoords",[43,1773,1774],{"class":67},"(walker)));\n",[43,1776,1778,1781,1784],{"class":45,"line":1777},142,[43,1779,1780],{"class":67},"            walker.",[43,1782,1783],{"class":71},"update",[43,1785,1786],{"class":67},"(deltaTime);\n",[43,1788,1790,1793],{"class":45,"line":1789},143,[43,1791,1792],{"class":56},"            if",[43,1794,1795],{"class":67}," (walker.jumped) {\n",[43,1797,1799,1802,1804,1806,1808,1810,1812,1814],{"class":45,"line":1798},144,[43,1800,1801],{"class":67},"                context.",[43,1803,1759],{"class":71},[43,1805,75],{"class":67},[43,1807,434],{"class":56},[43,1809,1766],{"class":71},[43,1811,75],{"class":67},[43,1813,1771],{"class":71},[43,1815,1774],{"class":67},[43,1817,1819],{"class":45,"line":1818},145,[43,1820,1284],{"class":67},[43,1822,1824,1826,1829,1831,1833,1835,1837,1839],{"class":45,"line":1823},146,[43,1825,1746],{"class":67},[43,1827,1828],{"class":71},"lineTo",[43,1830,75],{"class":67},[43,1832,434],{"class":56},[43,1834,1766],{"class":71},[43,1836,75],{"class":67},[43,1838,1771],{"class":71},[43,1840,1774],{"class":67},[43,1842,1844,1846,1849],{"class":45,"line":1843},147,[43,1845,1746],{"class":67},[43,1847,1848],{"class":71},"stroke",[43,1850,200],{"class":67},[43,1852,1854,1857,1860,1862,1864,1867,1869,1871,1873,1876,1879],{"class":45,"line":1853},148,[43,1855,1856],{"class":56},"            const",[43,1858,1859],{"class":60}," livingWalkersCount",[43,1861,64],{"class":56},[43,1863,719],{"class":67},[43,1865,1866],{"class":71},"filter",[43,1868,75],{"class":67},[43,1870,727],{"class":409},[43,1872,730],{"class":56},[43,1874,1875],{"class":67}," walker.inUse).",[43,1877,1878],{"class":60},"length",[43,1880,168],{"class":67},[43,1882,1884],{"class":45,"line":1883},149,[43,1885,1886],{"class":222},"            \u002F\u002F the more walkers exist, the longer it takes to spawn new ones\n",[43,1888,1890,1892,1895,1897,1899,1901,1903,1905,1907,1909,1912,1914],{"class":45,"line":1889},150,[43,1891,1792],{"class":56},[43,1893,1894],{"class":67}," (walker.age ",[43,1896,1233],{"class":56},[43,1898,466],{"class":60},[43,1900,469],{"class":56},[43,1902,765],{"class":67},[43,1904,768],{"class":71},[43,1906,771],{"class":67},[43,1908,774],{"class":56},[43,1910,1911],{"class":67}," livingWalkersCount ",[43,1913,774],{"class":56},[43,1915,1916],{"class":67}," livingWalkersCount) {\n",[43,1918,1920,1923,1925,1927,1930],{"class":45,"line":1919},151,[43,1921,1922],{"class":67},"                rootWalkers.",[43,1924,1308],{"class":71},[43,1926,75],{"class":67},[43,1928,1929],{"class":71},"makeRootWalker",[43,1931,1932],{"class":67},"(walker));\n",[43,1934,1936,1939,1941,1943],{"class":45,"line":1935},152,[43,1937,1938],{"class":67},"                walker.age ",[43,1940,162],{"class":56},[43,1942,452],{"class":60},[43,1944,168],{"class":67},[43,1946,1948],{"class":45,"line":1947},153,[43,1949,1284],{"class":67},[43,1951,1953],{"class":45,"line":1952},154,[43,1954,1955],{"class":67},"        });\n",[43,1957,1959],{"class":45,"line":1958},155,[43,1960,50],{"emptyLinePlaceholder":49},[43,1962,1964],{"class":45,"line":1963},156,[43,1965,50],{"emptyLinePlaceholder":49},[43,1967,1969],{"class":45,"line":1968},157,[43,1970,206],{"class":67},[43,1972,1974],{"class":45,"line":1973},158,[43,1975,50],{"emptyLinePlaceholder":49},[43,1977,1979,1981,1984,1986,1988,1990],{"class":45,"line":1978},159,[43,1980,57],{"class":56},[43,1982,1983],{"class":71}," windowResizedListener",[43,1985,64],{"class":56},[43,1987,182],{"class":67},[43,1989,185],{"class":56},[43,1991,188],{"class":67},[43,1993,1995,1997,2000,2002,2005,2008],{"class":45,"line":1994},160,[43,1996,423],{"class":56},[43,1998,1999],{"class":60}," containerRect",[43,2001,64],{"class":56},[43,2003,2004],{"class":67}," container.",[43,2006,2007],{"class":71},"getBoundingClientRect",[43,2009,200],{"class":67},[43,2011,2013,2016,2018],{"class":45,"line":2012},161,[43,2014,2015],{"class":67},"        canvas.width ",[43,2017,162],{"class":56},[43,2019,2020],{"class":67}," containerRect.width;\n",[43,2022,2024,2027,2029,2032,2034,2037],{"class":45,"line":2023},162,[43,2025,2026],{"class":67},"        canvas.height ",[43,2028,162],{"class":56},[43,2030,2031],{"class":67}," containerRect.width ",[43,2033,774],{"class":56},[43,2035,2036],{"class":60}," 0.86",[43,2038,168],{"class":67},[43,2040,2042,2045,2047],{"class":45,"line":2041},163,[43,2043,2044],{"class":67},"        drawScope.width ",[43,2046,162],{"class":56},[43,2048,2049],{"class":67}," canvas.width;\n",[43,2051,2053,2056,2058],{"class":45,"line":2052},164,[43,2054,2055],{"class":67},"        drawScope.height ",[43,2057,162],{"class":56},[43,2059,2060],{"class":67}," canvas.height;\n",[43,2062,2064],{"class":45,"line":2063},165,[43,2065,206],{"class":67},[43,2067,2069],{"class":45,"line":2068},166,[43,2070,50],{"emptyLinePlaceholder":49},[43,2072,2074,2077,2080,2082,2085],{"class":45,"line":2073},167,[43,2075,2076],{"class":67},"    window.",[43,2078,2079],{"class":71},"addEventListener",[43,2081,75],{"class":67},[43,2083,2084],{"class":78},"'resize'",[43,2086,2087],{"class":67},", windowResizedListener);\n",[43,2089,2091],{"class":45,"line":2090},168,[43,2092,50],{"emptyLinePlaceholder":49},[43,2094,2096,2098,2101,2103,2105,2107],{"class":45,"line":2095},169,[43,2097,57],{"class":56},[43,2099,2100],{"class":71}," frame",[43,2102,64],{"class":56},[43,2104,182],{"class":67},[43,2106,185],{"class":56},[43,2108,188],{"class":67},[43,2110,2112,2114,2117,2119,2121,2123,2125,2127],{"class":45,"line":2111},170,[43,2113,423],{"class":56},[43,2115,2116],{"class":60}," time",[43,2118,64],{"class":56},[43,2120,1508],{"class":56},[43,2122,1511],{"class":71},[43,2124,1514],{"class":67},[43,2126,1517],{"class":71},[43,2128,200],{"class":67},[43,2130,2132,2135],{"class":45,"line":2131},171,[43,2133,2134],{"class":71},"        draw",[43,2136,2137],{"class":67},"(time, drawScope);\n",[43,2139,2141,2144],{"class":45,"line":2140},172,[43,2142,2143],{"class":71},"        requestAnimationFrame",[43,2145,2146],{"class":67},"(frame);\n",[43,2148,2150],{"class":45,"line":2149},173,[43,2151,206],{"class":67},[43,2153,2155],{"class":45,"line":2154},174,[43,2156,50],{"emptyLinePlaceholder":49},[43,2158,2160],{"class":45,"line":2159},175,[43,2161,50],{"emptyLinePlaceholder":49},[43,2163,2165,2168,2170,2173,2176,2178,2181],{"class":45,"line":2164},176,[43,2166,2167],{"class":67},"    drawScope.context ",[43,2169,162],{"class":56},[43,2171,2172],{"class":67}," canvas.",[43,2174,2175],{"class":71},"getContext",[43,2177,75],{"class":67},[43,2179,2180],{"class":78},"'2d'",[43,2182,82],{"class":67},[43,2184,2186,2189,2191,2194],{"class":45,"line":2185},177,[43,2187,2188],{"class":67},"    drawScope.context.fillStyle ",[43,2190,162],{"class":56},[43,2192,2193],{"class":78}," 'white'",[43,2195,168],{"class":67},[43,2197,2199,2202,2204,2206,2208,2210,2212],{"class":45,"line":2198},178,[43,2200,2201],{"class":67},"    drawScope.context.",[43,2203,1662],{"class":71},[43,2205,75],{"class":67},[43,2207,322],{"class":60},[43,2209,1113],{"class":67},[43,2211,322],{"class":60},[43,2213,2214],{"class":67},", drawScope.width, drawScope.height);\n",[43,2216,2218,2221],{"class":45,"line":2217},179,[43,2219,2220],{"class":71},"    windowResizedListener",[43,2222,200],{"class":67},[43,2224,2226,2229],{"class":45,"line":2225},180,[43,2227,2228],{"class":71},"    frame",[43,2230,200],{"class":67},[2232,2233,2234],"style",{},"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 .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}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":38,"searchDepth":53,"depth":53,"links":2236},[],[2238],"blog","2024-02-05",null,"md","\u002Fimages\u002F2024\u002F02\u002Fmycellium-visual-canvas.png",{},"\u002Fposts\u002F2024-02-05-mycellium",{"title":5,"description":12},"posts\u002F2024-02-05-mycellium",[2248,2249,2250,2251],"generative","visuals","gist","tool_javascript",false,"4Fxcc7sb80yf9ts4C697pbJcJ27TwRYpHzBylzeoMQI",1792083598388]