[{"data":1,"prerenderedAt":192},["ShallowReactive",2],{"lab-list":3},[4,88,105,155,174],{"id":5,"title":6,"accent":7,"body":8,"description":14,"extension":77,"kind":78,"meta":79,"navigation":80,"order":81,"path":82,"seo":83,"source":84,"stem":85,"tagline":86,"__hash__":87},"lab\u002Flab\u002Fproc-anim.md","Procedural Creatures","#7FB069",{"type":9,"value":10,"toc":72},"minimark",[11,15,20],[12,13,14],"p",{},"A test of whether small creatures can be fully procedurally animated in plain Canvas 2D, cheap enough for a phone, with the verbs an idle game needs: idle, wander, poke, feed.",[16,17,19],"h2",{"id":18},"controls","Controls",[21,22,23,39,42,45,52,62],"ul",{},[24,25,26,30,31,34,35,38],"li",{},[27,28,29],"code",{},"‹ Fish ›"," pill or ",[27,32,33],{},"←"," \u002F ",[27,36,37],{},"→"," — switch creature",[24,40,41],{},"Tap a creature — poke it",[24,43,44],{},"Tap empty space — drop food",[24,46,47,51],{},[48,49,50],"strong",{},"Follow"," + hold — creatures chase the pointer",[24,53,54,57,58,61],{},[48,55,56],{},"Bones"," or ",[27,59,60],{},"b"," — show the joints",[24,63,64,67,68,71],{},[48,65,66],{},"count"," + ",[48,69,70],{},"Reset"," — spawn a crowd for a stress test",{"title":73,"searchDepth":74,"depth":74,"links":75},"",2,[76],{"id":18,"depth":74,"text":19},"md","toy",{},true,1,"\u002Flab\u002Fproc-anim",{"title":6,"description":14},null,"lab\u002Fproc-anim","Spiders, lizards, fish, snakes and chickens animated entirely from math on a 2D canvas.","6gMAx7S34r4nXkhUPu5v74IzC5DXNBapXPOG-t86Tjc",{"id":89,"title":90,"accent":91,"body":92,"description":96,"extension":77,"kind":78,"meta":99,"navigation":80,"order":74,"path":100,"seo":101,"source":84,"stem":102,"tagline":103,"__hash__":104},"lab\u002Flab\u002Ffalling-sand.md","Falling Sand","#D9A441",{"type":9,"value":93,"toc":97},[94],[12,95,96],{},"The first spike on falling-sand simulation: one HTML file, one grid, one update loop. It exists to answer \"how many cells can we push per frame before it hurts\" and to be the seed for the sand games that came after it.",{"title":73,"searchDepth":74,"depth":74,"links":98},[],{},"\u002Flab\u002Ffalling-sand",{"title":90,"description":96},"lab\u002Ffalling-sand","A single-file cellular sandbox. Sand, water, and whatever else falls.","gEcRGaRgmyh8oHiRG7za_HIEXMGoCEoJOtL3IA4ZJww",{"id":106,"title":107,"accent":108,"body":109,"description":113,"extension":77,"kind":147,"meta":148,"navigation":80,"order":149,"path":150,"seo":151,"source":84,"stem":152,"tagline":153,"__hash__":154},"lab\u002Flab\u002Fsand-well.md","Sand Well","#C97B3A",{"type":9,"value":110,"toc":144},[111,114,116],[12,112,113],{},"One simulation, two gravity fields. Suck up material, sell it, buy a better vacuum, and expose 75% of the bedrock to win — through ice, clogging wet sand, and dust storms that blow your pit shut. Every upgrade changes the physics rather than a number on a panel.",[16,115,19],{"id":18},[21,117,118,121,127,133,139],{},[24,119,120],{},"Drag on the canvas — vacuum",[24,122,123,126],{},[27,124,125],{},"space"," — pause",[24,128,129,132],{},[27,130,131],{},"r"," — reset",[24,134,135,138],{},[27,136,137],{},"w"," — add water",[24,140,141,143],{},[27,142,12],{}," — toggle the pump",{"title":73,"searchDepth":74,"depth":74,"links":145},[146],{"id":18,"depth":74,"text":19},"prototype",{},3,"\u002Flab\u002Fsand-well",{"title":107,"description":113},"lab\u002Fsand-well","Vacuum-mine a falling-sand desert and a planetoid with gravity pointing at its core.","HLfYkpVss6nKzBq0GReq3m2GNk6mmn4ZhUKLSck_Ly4",{"id":156,"title":157,"accent":158,"body":159,"description":163,"extension":77,"kind":166,"meta":167,"navigation":80,"order":168,"path":169,"seo":170,"source":84,"stem":171,"tagline":172,"__hash__":173},"lab\u002Flab\u002Fincremental-contagion.md","Incremental Contagion","#9B5DE5",{"type":9,"value":160,"toc":164},[161],[12,162,163],{},"An incremental built around contagion: things spread across neighbours instead of ticking up in a column. Still finding out whether watching it spread is enough of a hook on its own.",{"title":73,"searchDepth":74,"depth":74,"links":165},[],"concept",{},4,"\u002Flab\u002Fincremental-contagion",{"title":157,"description":163},"lab\u002Fincremental-contagion","A petri-dish town where growth spreads cell to cell.","Q8MZCJO2mSvFjer5zIvbWHr0e8Ec8GE44k6je-H2vOE",{"id":175,"title":176,"accent":177,"body":178,"description":182,"extension":77,"kind":147,"meta":185,"navigation":80,"order":186,"path":187,"seo":188,"source":84,"stem":189,"tagline":190,"__hash__":191},"lab\u002Flab\u002Fmulti-snake.md","Multi Snake Meadow","#6AA64A",{"type":9,"value":179,"toc":183},[180],[12,181,182],{},"Snake, but many of them, and idle. Snakes forage on their own; you nudge the meadow, spend gems on upgrades, and collect rarer snakes over time. Built as one hand-drawn HTML file.",{"title":73,"searchDepth":74,"depth":74,"links":184},[],{},5,"\u002Flab\u002Fmulti-snake",{"title":176,"description":182},"lab\u002Fmulti-snake","A meadow full of snakes that eat, grow, and level up while you watch.","uroOftJEXNccCGmYA3XAQY4dLqcOk7Ctu1nqoeogfFs",1788566664365]