FrameLab bent beams & frames
Open the interactive version →

This is a static copy of the chapter for search engines. The interactive version has animated figures, check questions, and buttons that load the example into the calculator.

How the calculator works

FrameLab is a small displacement-method (stiffness-method) finite-element solver written from scratch in plain JavaScript. Everything runs in your browser; nothing is sent anywhere.

Discretisation

The polyline is cut at every corner, support and load position, and each resulting span is subdivided further, to about 260 elements in total. Elements never cross a corner, so every element is a straight bar with a well-defined local frame.

Two decoupled problems

Because the axis is planar, the six degrees of freedom per node split into two independent groups that share no stiffness terms:

In-planeOut-of-plane
Nodal unknowns (global)u, v, θzw, θx, θy
Element modelaxial bar (EA) + Euler–Bernoulli bending (EI)Euler–Bernoulli bending (EI) + St Venant torsion (GJt)
Element matrix6 × 6, rotated by the member angle6 × 6, rotated by the member angle

The essential trick is that the rotation unknowns are the global components θx, θy, θz, not local slopes. Sharing the rotation vector at a node is exactly what a rigid corner does, and it is what makes bending on one member turn into torsion on the next without any special corner code.

Loads

Point forces and moments go straight onto the nearest node (the mesh always has a node at every load position). Distributed loads are converted into consistent nodal loads from the Hermite shape functions, so a uniform or linearly varying load is represented exactly, not lumped.

Solution and recovery

The constrained system is solved by Gaussian elimination with partial pivoting; a singular matrix is reported as a mechanism. Internal actions are recovered element by element from f = k·ulocal − feq, which gives the exact end forces for the assumed displacement field. Reactions come from R = K·u − F on the restrained degrees of freedom.

Accuracy

For prismatic members with the load cases offered here, the displacement-method solution is exact for bending and axial action — the cubic Hermite shape functions are the exact solution of the governing differential equation between loads. The only discretisation error is in the sampling of the diagrams, which is invisible at 260 elements. The tool has been checked against closed-form results for the simply supported beam, the cantilever at arbitrary angles, the L-bracket in and out of plane, the pinned portal-frame thrust formula, and axially and transversely loaded columns; all agree to better than 0.1 %.

What is deliberately not modelled

  • Shear deformation (Timoshenko) — an Euler–Bernoulli tool.
  • Warping torsion (Vlasov) — St Venant only, see chapter 7.
  • Second-order effects and buckling — the analysis is linear and computed on the undeformed geometry.
  • Finite joint size, haunches, fillets and stress concentrations.
  • Material non-linearity, plastic hinges, cracking, creep.
⚠ This is a teaching tool. It gives you correct internal actions for the idealised model you drew — it does not replace a design code check, and it does not know what your structure is really made of.
💡 Everything you type is kept in your browser’s local storage, so your model is still there when you come back. There is no server and no account.