Free online structural analysis software for 2D beams, trusses, and frames.
Real-time solver, Timoshenko beam formulation, sharable projects, and fully localized UI—perfect for classrooms, design studios, and hobby labs.
Launch the web app · Read the documentation · Explore example models
- Why edubeam?
- Product highlights
- Launch & try it
- Development setup
- Available scripts
- Documentation & localization
- Contributing
- License
Edubeam is a lightweight yet professional-grade finite element environment for 2D structural analysis. Created by civil engineers and educators, it helps you:
- Teach structural mechanics, stiffness matrices, and load paths with a live, visual tool.
- Validate early-stage beam or truss designs without installing heavy desktop suites.
- Share reproducible models via URLs or JSON for peer review, grading, or collaboration.
Under the hood Edubeam combines a Timoshenko beam formulation, axial truss elements, static condensation, and temperature/load tools into a single browser experience. Everything runs client-side, which means zero install, zero license servers, and instant updates.
- Real-time structural analysis – Every edit recalculates reactions, nodal displacements, and internal forces on the fly.
- Comprehensive loading – Point loads, distributed loads, prescribed displacements, settlement, and thermal gradients.
- Rich visualization – Overlay undeformed/deformed shapes, N-V-M diagrams, support reactions, and coordinate HUD to spot issues quickly.
- Timoshenko beams + truss elements – Mix frame members and axial-only elements in the same model.
- Education-ready – Show stiffness matrices, DOFs, and solver details to connect theory with practice.
- Localization & accessibility – Full UI translations (EN, CS, DE, ES, FR, ZH) plus keyboard-friendly navigation.
- Open source & extensible – Vue 3 + Vite + TypeScript front-end, Pinia state management, and a dedicated documentation site built with VitePress.
- Open the live app – https://run.edubeam.app
- Load an example – use the Examples sidebar or jump straight to the gallery.
- Inspect the guides – the Introduction and User Interface pages mirror the workflow inside the app.
- Share your work – use Share model to generate a link or download a JSON snapshot for grading and archives.
Edubeam is optimized for desktops/laptops but also runs on tablets with mouse or pencil input.
Requirements:
- Node.js 20.x
- npm, pnpm, or yarn (examples below use
npm)
git clone https://github.com/janvorisek/edubeam.git
cd edubeam
npm install
npm run devThe Vite dev server starts at http://localhost:5173 with hot-module reloading.
npm run buildAssets are emitted to dist/ and can be deployed to any static host. The main branch is continuously deployed to run.edubeam.app.
| Command | Description |
|---|---|
npm run dev |
Start the application in development mode (Vite) |
npm run build |
Produce the production bundle |
npm run test / npm run test:run |
Execute unit tests via Vitest |
npm run lint |
Run ESLint with auto-fix |
npm run docs:dev |
Launch the VitePress docs locally |
npm run docs:build |
Build the static documentation site |
- Docs hub: https://edubeam.app (built with VitePress).
- Guides: introduction, UI tour, essentials, and theory manuals (Timoshenko beam, truss element).
- Languages: English plus localized content for Czech, German, Spanish, French, and Chinese, matching the in-app translations.
- FAQ & examples: curated to help educators drop Edubeam into lesson plans immediately.
If you are improving docs, run npm run docs:dev for live previews.
We welcome bug reports, feature ideas, documentation edits, and localisation help. To get started:
- Check existing issues or open a new one (bug/feature templates available).
- Fork the repo and create a feature branch (
git checkout -b feature/your-topic). - Commit with clear messages, run tests/linting, and submit a pull request.
Please keep PRs scope-focused (one fix/feature per PR) and include screenshots when changing UI flows.
Distributed under the GPL-3.0 license. See LICENSE for the full text.
