[{"data":1,"prerenderedAt":163},["ShallowReactive",2],{"palette-posts":3,"work-edubeam":7,"work-all":152},[4],{"title":5,"path":6},"Threaded WebAssembly doesn't crash. It hangs.","\u002Fblog\u002Fthreads-that-hang",{"id":8,"title":9,"body":10,"cover":109,"coverCaption":102,"coverType":110,"description":111,"extension":112,"facts":113,"kicker":129,"links":130,"meta":137,"navigation":138,"order":139,"path":140,"role":141,"seo":142,"stack":143,"stem":150,"__hash__":151},"work\u002Fwork\u002Fedubeam.md","Edubeam",{"type":11,"value":12,"toc":101},"minimark",[13,18,27,34,38,45,49,57,61,89,95],[14,15,17],"h2",{"id":16},"what-it-is","What it is",[19,20,21,22,26],"p",{},"Edubeam is meant to be the open-source go-to for ",[23,24,25],"strong",{},"learning and teaching structural mechanics",". It's a 2D frame and truss solver built for the classroom. Draw nodes and members, add supports and loads, and the internal force diagrams and the deformed shape are there immediately. There's no account and nothing to install.",[19,28,29],{},[30,31],"img",{"alt":32,"src":33},"Bending moment diagram of a portal frame","\u002Fmedia\u002Feb-results-moment.webp",[14,35,37],{"id":36},"under-the-hood","Under the hood",[19,39,40,41,44],{},"The analysis runs in the browser on ",[23,42,43],{},"ts-fem",", a finite element library I wrote in TypeScript. The UI is Vue 3 with Vuetify, and every edit goes through a command manager, so undo and redo cover the whole model.",[14,46,48],{"id":47},"for-teachers-and-students","For teachers and students",[19,50,51,52,56],{},"Teachers can build an exercise once and hand it out as a link. Students can check a hand calculation in seconds and see ",[53,54,55],"em",{},"why"," the moment diagram looks the way it does. Because it's free and open source (GPL-3.0), a course can rely on it without licences, accounts or IT tickets.",[14,58,60],{"id":59},"the-details-that-matter-in-a-classroom","The details that matter in a classroom",[62,63,64,71,77,83],"ul",{},[65,66,67,70],"li",{},[23,68,69],{},"Polygonal cross sections."," Draw any outline, with holes, and get the area, second moments, centroid, principal axes and the ellipse of inertia.",[65,72,73,76],{},[23,74,75],{},"Share by link."," A model is serialised, deflate-compressed and packed into the URL, so a teacher can hand out an exercise as a link.",[65,78,79,82],{},[23,80,81],{},"Works offline."," It's an installable PWA.",[65,84,85,88],{},[23,86,87],{},"Everyone's language."," The interface is internationalised and the documentation exists in 11 languages.",[19,90,91],{},[30,92],{"alt":93,"src":94},"Polygonal cross-section editor with principal axes and ellipse of inertia","\u002Fmedia\u002Feb-sections-polygon.webp",[19,96,97],{},[30,98],{"alt":99,"src":100},"Sharing a model as a compressed link","\u002Fmedia\u002Feb-share.webp",{"title":102,"searchDepth":103,"depth":103,"links":104},"",2,[105,106,107,108],{"id":16,"depth":103,"text":17},{"id":36,"depth":103,"text":37},{"id":47,"depth":103,"text":48},{"id":59,"depth":103,"text":60},"\u002Fmedia\u002Fedubeam-app.webp","image","Free, open-source structural analysis for beams and trusses, right in the browser. Built for students and educators.","md",[114,117,120,123,126],{"k":115,"v":116},"Solver","ts-fem, my TypeScript FEM library",{"k":118,"v":119},"Results","Normal, shear, moment, deflection, reactions",{"k":121,"v":122},"Sharing","Models as deflate-compressed links",{"k":124,"v":125},"Docs","11 languages, VitePress",{"k":127,"v":128},"Runs","Offline, installable PWA","Open source · structural mechanics education",[131,134],{"label":132,"href":133},"edubeam.app","https:\u002F\u002Fedubeam.app",{"label":135,"href":136},"Source on GitHub","https:\u002F\u002Fgithub.com\u002Fjanvorisek\u002Fedubeam",{},true,3,"\u002Fwork\u002Fedubeam","Author and maintainer.",{"title":9,"description":111},[144,145,146,43,147,148,149],"Vue 3","Vuetify","TypeScript","vue-i18n","VitePress","PWA","work\u002Fedubeam","vFsXQxDC8TRxq-j228nG1AclZ7iuXRFCxI7za1kGwCw",[153,158,162],{"title":154,"path":155,"order":156,"kicker":157},"Elementarium","\u002Fwork\u002Felementarium",1,"Product · built end to end",{"title":159,"path":160,"order":103,"kicker":161},"Interior designer","\u002Fwork\u002Finterior-designer","Client work · confidential",{"title":9,"path":140,"order":139,"kicker":129},1791464838305]