Built on mechanics, checked against published answers.
Elementarium is finite element software for structural engineers, developed in Prague. Its history goes back to 2021: first a finite element library in TypeScript, then EduBeam, a teaching program for frames, and now a full analysis and design package. This page covers how it was built and how it's checked, with the numbers.
- Stage
- Public beta
- new releases every week or two
- Solver
- C++ → WebAssembly
- runs on your machine
- Codes
- Eurocode & AISC
- steel section and member checks
- Based in
- Prague, CZ
- development and support

Five years, three codebases
Everyday structural work is frames, slabs, walls, a code check and a report a reviewer will accept. The programs that do it are built for large offices: a licence server, a module per material, an installer per version. A freelancer or a small practice either pays for all of that or goes back to a spreadsheet.
It did not start as a commercial program. It started as a stiffness matrix in a browser tab, then became a teaching tool, then grew shells. Each step showed what the next one had to fix.
Along the way, the premise changed. Analysis software doesn't have to be cumbersome to be serious, or simplified to be easy to use: the mechanics are the same either way. Browsers now run compiled C++ at close to native speed, so a real solver can run on the engineer's own machine and still be one link away. Elementarium is built around that, not ported to it.
Elementarium was founded by Jan Vorisek, a structural engineer and CTU Prague graduate. Everything is written in-house: the element formulations, the C++ solver, the design checks and the editor. A question about a result is answered by someone who can open the code that produced it.
A finite element library in TypeScript
Beams, trusses and frames solved in the browser, written for speed from the start. It showed that a stiffness method answer doesn't need an installer.
EduBeam, rewritten for the web
A teaching program for beams, trusses and frames. The web edition was written from scratch to replace the old desktop program and is still maintained: open source under GPL-3.0, in twelve languages, with more than 650 commits since. Building that editor showed where engineers trip over a model.
EduBeam on GitHubShells, and the services around them
The first shell prototypes ran MITC4 models, a cooling tower among them, and drew the results in a browser. The same year the account service and the sync server that keep projects on every device went in.
Our own solver core, compiled to WebAssembly
The analysis was rewritten as a C++ library that runs in the browser tab: about 45,700 lines, with its own sparse factorisation, eigensolvers, multigrid-preconditioned iterative solver and mesher. A finite element program has to solve on your machine, not on ours, or it can't be fast and private at once.
Public beta
Frames, slabs and walls; linear static, modal, buckling and second-order analysis; Eurocode and AISC steel checks; a calculation report that prints every substituted number.
Version 0.5
A release every week or two, each one recorded in the release notes.
What runs when you press solve
Nothing is uploaded. The whole solver ships with the page and runs on your processor, on up to eight threads. These are its parts; each element's formulation is written up in the knowledge base.
- Elements
- Shear-flexible 3D beam with releases and eccentricities, truss, rigid arm, and a four-node shell for slabs and walls: MITC4 bending and shear (Dvorkin–Bathe), an enhanced-strain membrane, Hughes–Brezzi drilling and a warping correction.
- Direct solvers
- Supernodal LDLᵀ and LLᵀ factorisation with AMD or METIS reordering.
- Iterative solver
- Conjugate gradients with Jacobi, incomplete Cholesky or smoothed-aggregation multigrid preconditioning.
- Modal
- Shift-invert Lanczos or subspace iteration, lumped or consistent mass, and a Sturm-sequence check that no mode was skipped.
- Stability
- Linear buckling with a consistent geometric stiffness, and second-order analysis that captures P-Δ and P-δ.
- Code
- About 45,700 lines of C++, built on Eigen and amgcl, compiled with Emscripten.
How it's checked
A simply supported beam proves very little: the beam element's cubic shape functions get it right by construction. The tests that count reproduce a worked example someone else published, in a design guide, a manual table or a textbook. The example is modelled the way you would model it, and the published figure is the expected value.
Those tests run on every code change. Ten of them are below, with the figure the source prints and the figure Elementarium computes.
| Published example | Run as | Published | Elementarium | Difference±1 % |
|---|---|---|---|---|
| SBE Multi-storey Part 4, App. A.1IPE 330 floor beam, 5.70 m: characteristic deflection | Model, solved | 8.8 mm | 8.792 mm | -0.09 % |
| SBE Multi-storey Part 4, App. A.2IPE 400 roof beam, 15 m, 30 mm precamber: total deflection | Design check | 82.10 mm | 82.104 mm | 0.00 % |
| SCI P364, Example 2533 × 210 × 92 UKB, 6.5 m: deflection under variable actions | Design check | 8.5 mm | 8.483 mm | -0.20 % |
| TU Delft SDE, §17.3HE 320 A, 6 m span with 2 m overhang: tip deflection | Model, solved | 5.0 mm | 4.984 mm | -0.32 % |
| Structville, EN 1995 worked exampleC24 joist 75 × 200, 2.85 m: instantaneous deflection with shear | Model, solved | 5.765 mm | 5.767 mm | +0.03 % |
| AISC Design Examples v16, F.1-1AW18×50, 35 ft: live load deflection | Model, solved | 1.09 in | 1.0915 in | +0.14 % |
| AISC Manual, Table 3-2W18×50 A992: available flexural strength φ_b M_p | Design check | 379 kip-ft | 378.75 kip-ft | -0.07 % |
| AISC Manual, Table 4-1aW14×90 A992, L_c = 20 ft: available compressive strength φ_c P_n | Design check | 877 kips | 876.7 kips | -0.03 % |
| SSB03, App. BTwo-span hall 60 × 32 m: peak velocity pressure q_p | Load generator | 659.5 N/m² | 661.8 N/m² | +0.35 % |
| JRC Handbook 3Multi-span roof 40° / 30°: snow load on the roof | Load generator | 1.51 kN/m² | 1.52 kN/m² | +0.66 % |
SBE Multi-storey Part 4, App. A.1
IPE 330 floor beam, 5.70 m: characteristic deflection
- Published
- Elementarium
- 8.8 mm
- 8.792 mm
-0.09 %Model, solved
SBE Multi-storey Part 4, App. A.2
IPE 400 roof beam, 15 m, 30 mm precamber: total deflection
- Published
- Elementarium
- 82.10 mm
- 82.104 mm
0.00 %Design check
SCI P364, Example 2
533 × 210 × 92 UKB, 6.5 m: deflection under variable actions
- Published
- Elementarium
- 8.5 mm
- 8.483 mm
-0.20 %Design check
TU Delft SDE, §17.3
HE 320 A, 6 m span with 2 m overhang: tip deflection
- Published
- Elementarium
- 5.0 mm
- 4.984 mm
-0.32 %Model, solved
Structville, EN 1995 worked example
C24 joist 75 × 200, 2.85 m: instantaneous deflection with shear
- Published
- Elementarium
- 5.765 mm
- 5.767 mm
+0.03 %Model, solved
AISC Design Examples v16, F.1-1A
W18×50, 35 ft: live load deflection
- Published
- Elementarium
- 1.09 in
- 1.0915 in
+0.14 %Model, solved
AISC Manual, Table 3-2
W18×50 A992: available flexural strength φ_b M_p
- Published
- Elementarium
- 379 kip-ft
- 378.75 kip-ft
-0.07 %Design check
AISC Manual, Table 4-1a
W14×90 A992, L_c = 20 ft: available compressive strength φ_c P_n
- Published
- Elementarium
- 877 kips
- 876.7 kips
-0.03 %Design check
SSB03, App. B
Two-span hall 60 × 32 m: peak velocity pressure q_p
- Published
- Elementarium
- 659.5 N/m²
- 661.8 N/m²
+0.35 %Load generator
JRC Handbook 3
Multi-span roof 40° / 30°: snow load on the roof
- Published
- Elementarium
- 1.51 kN/m²
- 1.52 kN/m²
+0.66 %Load generator
The example that found a bug
Access Steel SX016 is a 72 × 30 m portal hall with a 5° roof. Modelled as published, it came out of Elementarium's wind generator with a flat roof: the pitch was computed as 4.99999°, just under the 5° below which EN 1991-1-4 treats a roof as flat.
A hand check wouldn't have caught it, because a person reads 5° as 5°. The fix compares pitch with a tolerance, and SX016 stays in the suite with its published q_p of 0.911 kN/m² and snow load of 0.618 kN/m², so the same mistake can't come back unnoticed.
The test suite
The editor's suite runs on every code change. The solver tests run against the compiled WebAssembly, the same build the editor ships, and every example on this site is meshed, solved and compared with its stored results.
- tests in the editor: modelling, loads, results, design checks, IFC, SAF and DXF
- 2,880
- tests in the solver library, against closed forms and against each other
- 431
- editor tests that build a model and solve it with the real solver
- 144
- tests on the account service and the sync server
- 604
Counted on 14 October 2026. The numbers go up with every release.
Closed forms, held to a tolerance
The solver library checks each analysis against a closed-form answer, with the tolerance written into the test. The tolerance is how far the result may stray before the build fails.
- AISC 360 Commentary App. 7 benchmark cases 1 and 2, second-order, at P/P_cr from 0 to 0.6
- deflection 0.02 %, moment 1 %
- Euler load, pin-ended, converging with 2, 4 and 8 elements; cantilever and fixed–fixed
- 1 %, 0.1 %, 0.02 %
- Simply supported square plate in uniaxial compression, k = 4, MITC4
- 3 % at 8 × 8
- Simply supported square plate under pressure, centre deflection 0.00406 qa⁴/D, and reactions against the applied load
- 0.5 %, reactions 10⁻⁸
- Torsional and axial bar frequencies, a tip-mass oscillator, and Lanczos against the direct eigensolver
- 0.2 %, spectra 10⁻⁶
Shells, against the published benchmarks
The shell element runs the standard set of MacNeal and Harder (1985) and the thin twisted beam of Belytschko and colleagues (1989), each against its published reference value, on the meshes the papers prescribe.
- Patch tests on a distorted mesh, membrane and bending, stresses and moments included
- exact, 10⁻⁶
- Straight cantilever, in-plane tip shear, 6 × 1 rectangular elements
- within 2 %
- Twisted beam, 90° over its length, 12 × 2, thick and thin (t/L = 1/3750)
- 0.5 %, thin 1.5 %
- Scordelis–Lo roof, free-edge midspan deflection 0.3024
- 1 % at 8 × 8, 0.5 % at 16 × 16
- Pinched hemisphere with an 18° hole, and the same answer with every length scaled by 1000 or by 1/1000, as a change of units does
- 1 % at 4 × 4, 0.5 % at 8 × 8; units 10⁻⁹
- Pinched cylinder with end diaphragms, the slowest to converge of the set
- ≥ 74 % at 8 × 8, ≥ 92 % at 16 × 16
Try it on a structure you know.
The free plan needs no card and no install. Open a structure you already have the answer for and compare. If the numbers disagree, send us the project and the hand calculation: either the solver or the documentation gets corrected.
Where it stands
Elementarium models, solves, checks and reports today. It is a public beta, so it changes quickly; what comes next is on the roadmap.
Mail goes straight to development, with an answer within one working day.
The roadmap