1. Overview
The STR-LAB 2D Frame Analysis Tool is a structural design aid that lets you define, analyze and visualize planar frame structures (rigid frames, trusses, continuous beams, etc.) entirely in your browser. No server communication is required β all computation runs locally.
| Feature | Description |
|---|---|
| Analysis method | 2D direct stiffness method (linear elastic analysis) |
| Connections | Rigid and pinned member ends can be mixed |
| Load types | Nodal loads / 5 member load types Γ 4 directions / prescribed displacements |
| Output plots | Structural model, deformed shape, N / Q / M diagrams (with midspan values) |
| Samples | Preset frame models (1β5 stories, 1β3 bays) loadable in one click |
| Analysis settings | Unit system (N/kN, mm/cm) and axial deformation on/off (β Settings) |
| Data storage | Automatic localStorage saving + JSON export/import |
| Requirements | Latest Chrome, Firefox, Edge or Safari |
2. Screen Layout
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β Header (STR-LAB 2D Frame Analysis Tool) [πManual][βTheory]β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β Site nav (Seismic Isolation / Steel Tables / Frame Analysis)β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β [Run][Reset] status [SampleβΌ][Load][Save][β Settings] β ββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ€ β β View panel β β Input panel β [Model] [Deformed*] [Force diagrams*] β β (left column) β βββββββββββββββββββββββββββββββββββββββ β β [Nodes] β β β β β [Materials] β β Canvas drawing area β β β [Sections] β β β β β [Members] β βββββββββββββββββββββββββββββββββββββββ β β βββββββββ βββββββββββββββββββββββββββββββββββββββββββββ€ β [Nodal loads] β Result panel [Font size: S M L] β β [Member loads] β (displacements / reactions / end forces) β β [Presc. disp.] β β ββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββ * Grayed out until an analysis has been run
3. Workflow
When the analysis finishes, the Run button briefly turns green ("β Done") and a status message appears in the toolbar.
Sample models
Preset models can be loaded instantly from the "Select a sampleβ¦" dropdown in the toolbar.
| Option | Description |
|---|---|
| 1 story Γ 1 bay | Basic portal frame with 2 columns and 1 beam |
| 2 stories Γ 1 bay | Two-story single-bay frame |
| 5 stories Γ 1 bay | Five-story single-bay frame |
| 2 stories Γ 2 bays | Two-story two-bay frame |
| 3 stories Γ 3 bays | Large three-story three-bay frame |
4. Input Data
4.1 Nodes
Defines node coordinates and boundary (support) conditions.
| Column | Description |
|---|---|
ID | Name identifying the node (e.g. N1, N2 β¦) |
x | X coordinate (mm recommended) |
y | Y coordinate (mm recommended); positive upward |
dx | β restrains translation in X |
dy | β restrains translation in Y |
rz | β restrains rotation about the Z axis |
Support types
| Support type | dx | dy | rz |
|---|---|---|---|
| Pin support | β | β | |
| Roller support (Y fixed) | β | ||
| Roller support (X fixed) | β | ||
| Fixed support | β | β | β |
| Free node |
4.2 Materials
| Column | Description |
|---|---|
ID | Name identifying the material (e.g. M1) |
E | Young's modulus [N/mmΒ²] |
Typical Young's moduli
| Material | E [N/mmΒ²] |
|---|---|
| Structural steel | 205,000 |
| Aluminum alloy | 70,000 |
| Concrete (Fc21) | approx. 21,000 |
| Timber (cedar, etc.) | 7,000β9,000 |
4.3 Sections
| Column | Description |
|---|---|
ID | Name identifying the section (e.g. S1) |
A | Cross-sectional area [mmΒ²] |
I | Moment of inertia [mmβ΄] (used for the bending stiffness EI) |
4.4 Members
| Column | Description |
|---|---|
ID | Name identifying the member (e.g. B1) |
i-node | Node ID at the start (i-end) of the member |
j-node | Node ID at the end (j-end) of the member |
Mat. | Material ID to use |
Sec. | Section ID to use |
iEnd | β = rigid connection / β‘ = pinned (free rotation) |
jEnd | β = rigid connection / β‘ = pinned (free rotation) |
Choosing connection conditions
| i-end | j-end | Use case |
|---|---|---|
| β rigid | β rigid | Standard for rigid (moment) frames β moment is transferred |
| β rigid | β‘ pin | Beam with pinned end (zero moment at the j-end) |
| β‘ pin | β rigid | Beam with pinned end (zero moment at the i-end) |
| β‘ pin | β‘ pin | Truss member (axial force only, no moment) |
4.5 Nodal Loads
| Column | Description |
|---|---|
Node | Node ID where the load is applied |
Px | Concentrated force in X [N] (positive to the right) |
Py | Concentrated force in Y [N] (positive upward) |
Mz | Concentrated moment [NΒ·mm] (counterclockwise positive) |
4.6 Member Loads
Defines loads distributed along a member.
Opening the Member Loads tab shows a reference panel with diagrams and parameter
descriptions for all 5 load types. Click any image to enlarge it.
Load direction
| Direction | Description |
|---|---|
| 1 Local Y | Perpendicular to the member axis (typical transverse load) |
| 2 Local X | Parallel to the member axis (axial distributed load) |
| 3 Global Y | Vertical (gravity, snow load, etc.) |
| 4 Global X | Horizontal (wind load, etc.) |
Direction 1 acts in local coordinates (perpendicular to the member axis), which does not coincide with the direction of gravity on an inclined member.
Enter a negative p1 for downward (gravity-direction) loads (the coordinate system is positive-Y-up).
Load type shapes and parameters
p1 | Load P [N] |
p2 | Distance a from the i-end [mm] |
p3, p4 | Not used |
A concentrated load at an arbitrary point along the member (unlike a nodal load, it acts within the member)
p1 | Peak w [N/mm] |
p2 | Peak position a [mm] (0 = midspan, same as Type 4) |
p3, p4 | Not used |
Zero at both ends with a peak of w at position a. With p2 = 0 the peak is at midspan (same shape as Type 4)
p1 | w at the i-end [N/mm] |
p2 | w at the j-end [N/mm] |
p3 | Offset p3 from the i-end [mm] |
p4 | Offset p4 from the j-end [mm] |
Set p1 = p2 for a uniform load. With p3 = p4 = 0 the load covers the full length
p1 | Peak intensity w [N/mm] |
p2βp4 | Not used |
Isosceles triangular distribution: maximum at midspan, zero at both ends. Same shape as Type 2 with p2 = 0 (midspan)
p1 | Peak intensity w [N/mm] |
p2 | Ramp length at both ends [mm] |
p3, p4 | Not used |
Constant w in the middle, dropping linearly to zero over length p2 at each end
4.7 Prescribed Displacements
Applies prescribed displacements to restrained degrees of freedom β used for support settlement, imposed rotation, and the like.
| Column | Description |
|---|---|
Node | Node ID to which the displacement is applied |
Ξ΄x | Prescribed displacement in X [mm] |
Ξ΄y | Prescribed displacement in Y [mm] (settlement is negative) |
ΞΈz | Prescribed rotation about Z [rad] |
Example: support settlement Ξ΄y = β2 mm β set dy = β on the node and enter Ξ΄y = β2.
Example: imposed rotation ΞΈz = 0.2 rad β set rz = β on the node and enter ΞΈz = 0.2.
Values specified on free (unrestrained) nodes are ignored.
Kff Β· Uf = Ff β Kfc Β· Uc, so the specified values are reflected
exactly in displacements, reactions and internal forces.
5. View Panel
Structural model view
| Element | Color / shape |
|---|---|
| Nodes | Blue circles (with the node ID) |
| Members | Black lines (member ID at midspan) |
| Pinned connection | Small white circle at the member end |
| Fixed support | Black hatched block |
| Pin support | Triangle (red) |
| Roller support | Triangle (green) |
| Nodal loads | Blue arrows |
| Member loads | Multiple blue arrows with a dashed envelope |
| Reactions (after analysis) | Red arrows |
| Coordinate axes | X and Y directions shown in the lower-left corner |
| Dimension lines | Horizontal and vertical model dimensions shown faintly at the edges |
Deformed shape
Shows the deformed shape after analysis; the original shape is drawn faintly. Deformation is interpolated with Bezier curves (EulerβBernoulli beam theory).
| Item | Description |
|---|---|
| Top-left label | Max nodal disp. = ββ [mm] (largest displacement magnitude among all nodes) |
| Max displacement marker | Orange ring and value at the node(s) with the maximum displacement |
| Midspan displacement | Bezier midpoint displacement of members inclined β€ 45Β° shown as Ξ΄=ββ |
| Bottom-left label | Deformation scale Γn. Zoom buttons double or halve the scale |
Force diagrams
Switch between the M, Q and N diagrams. Positive and negative values are drawn in different colors.
| Item | Description |
|---|---|
| End labels | Numeric force values at the i-end and j-end |
| Midspan M label | M diagram only: midspan moment value shown for members inclined β€ 45Β° |
| Top-left label | M diagram max=ββ [NΒ·mm] / Q diagram max=ββ [N] / N diagram max=ββ [N] |
6. Reading the Analysis Results
After running the analysis, results appear in the panel at the lower right. The "Font size: S M L" buttons at the right of the header change the text size (the setting is saved in your browser).
Nodal displacements
| Column | Description |
|---|---|
| Node | Node ID |
| Ξ΄x [mm] | Displacement in X |
| Ξ΄y [mm] | Displacement in Y |
| ΞΈz [rad] | Rotation about the Z axis |
Reactions
| Column | Description |
|---|---|
| Node | Support node ID |
| Rx [N] | Reaction in X (positive to the right) |
| Ry [N] | Reaction in Y (positive upward) |
| Rm [NΒ·mm] | Moment reaction (CCW positive) |
Member end forces
| Column | Description |
|---|---|
| Member | Member ID |
| End | i-end (start) or j-end (end) |
| N [N] | Axial force (tension positive) |
| Q [N] | Shear force |
| M [NΒ·mm] | Bending moment (CCW positive) |
7. Saving and Loading Data
| Feature | Description |
|---|---|
| Auto-save | Saved to localStorage after every change; restored even after closing the page |
| Save Input Data | Downloads the model as strlab_model.json (toolbar, right side) |
| Load Input Data | Restores a previously saved JSON file and re-runs the analysis automatically (toolbar, right side) |
| Reset | Restores the default portal frame model (with a confirmation dialog) |
8. Analysis Settings (Units and Axial Deformation)
The "β Settings" button at the right end of the toolbar opens the analysis settings dialog. The current settings are always shown to the left of the button, e.g. "Units: NΒ·mm / Axial deformation: considered" (clicking that text also opens the dialog).
| Setting | Choices | Description |
|---|---|---|
| Force unit | N / kN | Force unit for input values and results |
| Length unit | mm / cm | Length unit for input values and results |
| Axial deformation | Considered / Ignored | Whether axial elongation of members is ignored (see below) |
How the unit setting works
- Input table headers (e.g. E [N/mmΒ²]) and the units in the result tables switch automatically with the setting.
- Loading a sample model resets the units to NΒ·mm (samples are defined in the NΒ·mm system). The axial deformation setting is preserved.
- The unit setting is stored as part of the model data in localStorage and in exported JSON.
Ignoring axial deformation
Selecting "Axial deformation: ignored" performs the analysis with axial elongation of members suppressed β handy for comparing against hand-calculation methods that neglect column shortening (moment distribution, D-value method, etc.). Internally a penalty method treats the axial stiffness as effectively infinite. See the Theory of Computation for details.
9. Analysis Theory (Summary)
This tool performs linear elastic analysis using the direct stiffness method. The computation proceeds as follows.
- Build the local stiffness matrix (6Γ6) for each member (pinned ends handled by static condensation)
- Transform to global coordinates and assemble into the global stiffness matrix K
- Build the load vector F from nodal loads and equivalent nodal forces converted from member loads
- Handle support conditions and prescribed displacements with the partition method (KffΒ·Uf = Ff β KfcΒ·Uc)
- Solve for nodal displacements by Gaussian elimination with partial pivoting
- Compute reactions, member end forces and internal force diagrams
It covers the stiffness matrix components, equivalent nodal force formulas, pin-end corrections, the partition method for prescribed displacements, the penalty method for ignoring axial deformation, and verification examples against theoretical solutions.
10. Sign Conventions
11. Notes and Limitations
- Linear elastic analysis only β plasticity, geometric nonlinearity and buckling are not covered.
- Use consistent units β mm, N and N/mmΒ² are recommended. Mixing units produces wrong results.
- Minimum restraints are required β the supports must restrain Ξ£Fx, Ξ£Fy and Ξ£M.
- Truss analysis β set all members to pinned at both ends (β‘β‘) and use only nodal loads to analyze a pure truss.
- Self-weight is not computed automatically β convert it manually into member or nodal loads.
- Numerical precision β models mixing members with extremely different stiffness ratios (EA/EI) can become numerically unstable.
- Sign of member loads (downward loads) β the coordinate system is positive-Y-up. Enter negative p1 (e.g. p1 = β5) for gravity-direction (downward) loads.
- Activating prescribed displacements β to impose settlement or similar, restrain the target DOF (dx/dy/rz with β) and then enter the prescribed value. Values entered while the restraint flag is β‘ are not reflected in the analysis.
12. Input Examples
| Node N1 | x=0, y=0, dx=β, dy=β, rz=β (fixed end) |
| Node N2 | x=3000, y=0, dx=β‘, dy=β‘, rz=β‘ (free end) |
| Material M1 | E=205000 [N/mmΒ²] |
| Section S1 | A=6353, I=47200000 (β H-200Γ200) |
| Member B1 | N1βN2, M1, S1, rigid at both ends |
| Nodal load | N2: Py = β10000 [N] (downward) |
| Node N1 | x=0, y=0, dx=β, dy=β (pin support) |
| Node N2 | x=6000, y=0, dy=β (roller support) |
| Member B1 | N1βN2, rigid at both ends |
| Member load | Member=B1, Type=3, Dir=1, p1=β1.0, p2=β1.0, p3=0, p4=0 |
* Because the Y axis is positive upward, enter negative p1 for downward loads.
The default model shown when the page loads is a basic portal frame with fixed supports at both bases, two columns and one beam. A horizontal concentrated load of 10 N acts on the upper-left node.
| Node N1 | x=0, y=0, dx=β, dy=β (pin support) |
| Node N2 | x=6000, y=0, dy=β (roller support) |
| Prescribed disp. | Node=N2, Ξ΄y=β5 [mm] (downward settlement) |
The prescribed displacement is not reflected in the analysis while the restraint flag is β‘.
The "Select a sampleβ¦" dropdown in the toolbar instantly loads portal frames from 1 story Γ 1 bay up to 3 stories Γ 3 bays. Every horizontal member carries a downward trapezoidal load (Type 5, p1 = β5 N/mm, p2 = 1500 mm).
Related pages: STR-LAB Frame Analysis Tool | Theory of Computation | ζ₯ζ¬θͺηγγγ₯γ’γ« | Hyper Steel Section Tables | Seismic Isolation Simulator