3D frame analysis, free, in your browser
Generate a portal frame building, a mono-pitch canopy or a multi-storey frame, or paste your own model, and get deflections, support reactions and member forces from a linear or second-order (P-Δ) finite-element solution. The solver runs on your computer: nothing is uploaded, and every run ends with an equilibrium check you can see.
Free tool · 3D frames · linear and P-Δ
Model
Sections
Loads (characteristic, kN and m)
The solver loads on the first run (about 25 MB, cached after that).
Model as JSON: edit, paste your own, run
Units kN and m. Nodes, members (with a section), supports, nodal loads and member loads in global directions. Edit and press “Run this JSON”.
How it works
- A real finite-element solver, not a formula. Members are 3D beam elements with axial, bending and torsion stiffness (shear deformation is neglected, as in classic frame analysis); the second-order run iterates the P-Δ effect of axial forces on the deflected geometry until it converges.
- Checked against an independent solver. On a test portal frame the linear results match a second, independent nonlinear finite-element engine to 15 digits and the P-Δ results agree within 0.2%. On the default building above, second order, the support reactions agree within 0.05% and the largest deflection within 0.01 mm.
- Every run proves its own equilibrium. The sum of the support reactions is compared with the sum of every load you applied, including self-weight. If they do not match, you see it.
- Sections from dimensions. I-section properties are computed from height, width, web and flange thickness and the root radius; for the 46 standard IPE, HEA and HEB sections in the list, area and bending stiffness come out within 0.5% of catalogue values, most within 0.1% (torsion within about 3%).
What this tool does not do: it gives elastic forces and deflections, not a code check. Member buckling, connection design and load combinations to a design code are part of a real design.
Use it from an AI assistant
An AI assistant can give you a ready-to-run analysis: it builds a link to this page with your model in it, and the page solves it in your browser when you open it. Nothing is sent to a server. Assistants with the Structomat MCP server (https://structomat.com/mcp/) can call prepare_frame_analysis; any assistant can also write the link itself:
- Mono-pitch canopy:
https://structomat.com/frame-analysis/#t=mono&S=12&H1=4&H2=5.5&N=5&B=5&base=pinned&col=HEA+300&beam=IPE+400&G=0.3&Q=0.75&W=0.5&fG=1.35&fQ=1.5&fW=0&an=pdelta&run=1(S span, H1 low side, H2 high side, N frames, B spacing, m; W net roof wind, + uplift) - Portal frame building:
#t=portal&S=20&H=6&R=1&N=5&B=6&…(S span, H eave height, R ridge rise, N frames, B spacing; W windward wall pressure and Ws leeward suction in +X) - Multi-storey frame:
#t=storey&nx=3&nz=2&ns=3&ax=6&az=5&h=3.5&…(bays in X and Z, storeys, bay widths, storey height) - Common parameters:
basefixed or pinned;col,beama standard European I-section written likeIPE+360orHEA+280: IPE 160, 180, 200, 220, 240, 270, 300, 330, 360, 400, 450, 500, 550, 600; HEA and HEB 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 400, 450, 500, 550, 600 (any other name is replaced by the default and the page says so; for another section send the full JSON below with its A, Iy, Iz, J);Gdead andQlive or snow load in kN/m² (member self-weight is added);fG,fQ,fWcombination factors;anpdelta or linear;run=1solves on open. Steel is E = 210 GPa, G = 81 GPa; the steel grade (S235, S355, …) does not change an elastic analysis, it matters only in the code check. - Any other frame:
#json=followed by the URL-encoded model JSON, then&run=1. Units kN and m, Y vertical:{"nodes":{"A":[0,0,0],"B":[0,4,0]}, "members":[{"id":"C1","i":"A","j":"B","sec":"COL","pinned":false}], "sections":{"COL":{"A":0.0077,"Iy":2.77e-5,"Iz":7.76e-5,"J":4.2e-7}}, "supports":{"A":"fixed"}, "nodeLoads":[{"node":"B","case":"W","F":[2,0,0]}], "memberLoads":[{"member":"C1","case":"G","dir":"FY","w":-1}], "combo":{"G":1.35,"Q":1.5,"W":1}, "selfWeight":true, "analysis":"pdelta"}(sections in m² and m⁴, Iz strong axis; member loads in kN per metre in global FX, FY, FZ; pinned releases bending at both ends). If the link is too long for the chat, paste the JSON under “Model as JSON” above. - Reading the results: when the solution finishes, the page shows “Results as JSON” (element
#resOut): equilibrium check, largest displacement and sway, every support reaction and the forces of every member, with units and sign convention. An assistant that can open the page can read the numbers there instead of parsing the tables.
Need it designed, or checked?
Send the drawings or your own analysis model. You get a full design to Eurocode, AISC 360 or the code your project requires, or an independent review of the model you already have, reviewed and signed by a licensed partner engineer.
Ask for a quote See pricing