STR-LAB

2D Frame Analysis Tool β€” User Manual

kozo.info structural design tools  |  Version 1.2 / July 2026

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.

FeatureDescription
Analysis method2D direct stiffness method (linear elastic analysis)
ConnectionsRigid and pinned member ends can be mixed
Load typesNodal loads / 5 member load types Γ— 4 directions / prescribed displacements
Output plotsStructural model, deformed shape, N / Q / M diagrams (with midspan values)
SamplesPreset frame models (1–5 stories, 1–3 bays) loadable in one click
Analysis settingsUnit system (N/kN, mm/cm) and axial deformation on/off (βš™ Settings)
Data storageAutomatic localStorage saving + JSON export/import
RequirementsLatest 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

Enter nodes
β†’
Enter materials & sections
β†’
Enter members
β†’
Enter loads
β†’
Run analysis
β†’
Auto-switch to M diagram
β†’
Check results
Input data is automatically saved to localStorage after every change, so your model survives a page reload.
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.

OptionDescription
1 story Γ— 1 bayBasic portal frame with 2 columns and 1 beam
2 stories Γ— 1 bayTwo-story single-bay frame
5 stories Γ— 1 bayFive-story single-bay frame
2 stories Γ— 2 baysTwo-story two-bay frame
3 stories Γ— 3 baysLarge three-story three-bay frame
Story height 3000 mm, span 6000 mm, steel (E = 205000 N/mmΒ²). Each beam is preloaded with a trapezoidal distributed load (Type 5, w = βˆ’5 N/mm, ramp length 1500 mm).

4. Input Data

Units in this chapter are given in the default NΒ·mm system. If you select the kNΒ·cm system in the analysis settings, read the units shown in the input table headers instead.

4.1 Nodes

Defines node coordinates and boundary (support) conditions.

ColumnDescription
IDName identifying the node (e.g. N1, N2 …)
xX coordinate (mm recommended)
yY 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 typedxdyrz
Pin supportβ˜‘β˜‘
Roller support (Y fixed)β˜‘
Roller support (X fixed)β˜‘
Fixed supportβ˜‘β˜‘β˜‘
Free node
Note: Restrain at least three degrees of freedom so that the structure is stable. Insufficient restraints will trigger the error "The structural system is singular or unstable".

4.2 Materials

ColumnDescription
IDName identifying the material (e.g. M1)
EYoung's modulus [N/mmΒ²]

Typical Young's moduli

MaterialE [N/mmΒ²]
Structural steel205,000
Aluminum alloy70,000
Concrete (Fc21)approx. 21,000
Timber (cedar, etc.)7,000–9,000

4.3 Sections

ColumnDescription
IDName identifying the section (e.g. S1)
ACross-sectional area [mmΒ²]
IMoment of inertia [mm⁴] (used for the bending stiffness EI)
For detailed section properties, see the Hyper Steel Section Tables (Japanese).

4.4 Members

ColumnDescription
IDName identifying the member (e.g. B1)
i-nodeNode ID at the start (i-end) of the member
j-nodeNode 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-endj-endUse case
β˜‘ rigidβ˜‘ rigidStandard for rigid (moment) frames β€” moment is transferred
β˜‘ rigidβ–‘ pinBeam with pinned end (zero moment at the j-end)
β–‘ pinβ˜‘ rigidBeam with pinned end (zero moment at the i-end)
β–‘ pinβ–‘ pinTruss member (axial force only, no moment)

4.5 Nodal Loads

ColumnDescription
NodeNode ID where the load is applied
PxConcentrated force in X [N] (positive to the right)
PyConcentrated force in Y [N] (positive upward)
MzConcentrated 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

DirectionDescription
1 Local YPerpendicular to the member axis (typical transverse load)
2 Local XParallel to the member axis (axial distributed load)
3 Global YVertical (gravity, snow load, etc.)
4 Global XHorizontal (wind load, etc.)
Use direction 3 to apply vertical loads to inclined members.
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

Type 1: Concentrated load
Type 1
p1Load P [N]
p2Distance a from the i-end [mm]
p3, p4Not used

A concentrated load at an arbitrary point along the member (unlike a nodal load, it acts within the member)

Type 2: Triangular distribution (zero at both ends, arbitrary peak)
Type 2
p1Peak w [N/mm]
p2Peak position a [mm] (0 = midspan, same as Type 4)
p3, p4Not 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)

Type 3: Trapezoidal distribution
Type 3
p1w at the i-end [N/mm]
p2w at the j-end [N/mm]
p3Offset p3 from the i-end [mm]
p4Offset p4 from the j-end [mm]

Set p1 = p2 for a uniform load. With p3 = p4 = 0 the load covers the full length

Type 4: Triangular (peak at midspan)
Type 4
p1Peak intensity w [N/mm]
p2–p4Not used

Isosceles triangular distribution: maximum at midspan, zero at both ends. Same shape as Type 2 with p2 = 0 (midspan)

Type 5: Trapezoid with ramps at both ends
Type 5
p1Peak intensity w [N/mm]
p2Ramp length at both ends [mm]
p3, p4Not used

Constant w in the middle, dropping linearly to zero over length p2 at each end

Types 6 (ramp up) and 7 (ramp down) are not included in the current UI choices (the internal code is retained).

4.7 Prescribed Displacements

Applies prescribed displacements to restrained degrees of freedom β€” used for support settlement, imposed rotation, and the like.

ColumnDescription
NodeNode ID to which the displacement is applied
Ξ΄xPrescribed displacement in X [mm]
Ξ΄yPrescribed displacement in Y [mm] (settlement is negative)
ΞΈzPrescribed rotation about Z [rad]
Important: For a prescribed displacement to take effect, the corresponding direction must be restrained (β˜‘) in the Nodes table.
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.
Analysis theory: The partition method is used. For prescribed displacements Uc, the tool solves Kff Β· Uf = Ff βˆ’ Kfc Β· Uc, so the specified values are reflected exactly in displacements, reactions and internal forces.

5. View Panel

Structural model view

ElementColor / shape
NodesBlue circles (with the node ID)
MembersBlack lines (member ID at midspan)
Pinned connectionSmall white circle at the member end
Fixed supportBlack hatched block
Pin supportTriangle (red)
Roller supportTriangle (green)
Nodal loadsBlue arrows
Member loadsMultiple blue arrows with a dashed envelope
Reactions (after analysis)Red arrows
Coordinate axesX and Y directions shown in the lower-left corner
Dimension linesHorizontal 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).

ItemDescription
Top-left labelMax nodal disp. = β—‹β—‹ [mm] (largest displacement magnitude among all nodes)
Max displacement markerOrange ring and value at the node(s) with the maximum displacement
Midspan displacementBezier midpoint displacement of members inclined ≀ 45Β° shown as Ξ΄=β—‹β—‹
Bottom-left labelDeformation 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.

ItemDescription
End labelsNumeric force values at the i-end and j-end
Midspan M labelM diagram only: midspan moment value shown for members inclined ≀ 45Β°
Top-left labelM diagram max=β—‹β—‹ [NΒ·mm] / Q diagram max=β—‹β—‹ [N] / N diagram max=β—‹β—‹ [N]
Note: The Deformed Shape and Force Diagram tabs are grayed out and unclickable until an analysis has been run. They become available after "Run Analysis".

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

ColumnDescription
NodeNode ID
Ξ΄x [mm]Displacement in X
Ξ΄y [mm]Displacement in Y
ΞΈz [rad]Rotation about the Z axis

Reactions

ColumnDescription
NodeSupport 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)
Verification: Check that Ξ£Fx = 0, Ξ£Fy = 0 and Ξ£M = 0 hold.

Member end forces

ColumnDescription
MemberMember ID
Endi-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

FeatureDescription
Auto-saveSaved to localStorage after every change; restored even after closing the page
Save Input DataDownloads the model as strlab_model.json (toolbar, right side)
Load Input DataRestores a previously saved JSON file and re-runs the analysis automatically (toolbar, right side)
ResetRestores the default portal frame model (with a confirmation dialog)
Note: Clearing your browser's site data deletes the localStorage copy. Export important models as JSON.

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).

SettingChoicesDescription
Force unitN / kNForce unit for input values and results
Length unitmm / cmLength unit for input values and results
Axial deformationConsidered / IgnoredWhether axial elongation of members is ignored (see below)

How the unit setting works

Important: The unit setting declares how input values are interpreted β€” existing input values are not converted. Changing units while a model contains data therefore replaces it, after a confirmation dialog, with the initial model in the new unit system. Decide on the unit system before you start entering data.

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.

Note: Changing the axial deformation setting does not automatically re-run the analysis. Always press "β–Ά Run Analysis" again after changing it.

9. Analysis Theory (Summary)

This tool performs linear elastic analysis using the direct stiffness method. The computation proceeds as follows.

  1. Build the local stiffness matrix (6Γ—6) for each member (pinned ends handled by static condensation)
  2. Transform to global coordinates and assemble into the global stiffness matrix K
  3. Build the load vector F from nodal loads and equivalent nodal forces converted from member loads
  4. Handle support conditions and prescribed displacements with the partition method (KffΒ·Uf = Ff βˆ’ KfcΒ·Uc)
  5. Solve for nodal displacements by Gaussian elimination with partial pivoting
  6. Compute reactions, member end forces and internal force diagrams
β–Ά For details, see the Theory of Computation page.
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

Global coordinate system: Y↑ β”‚ └──────→ X Z (out of plane): positive toward the viewer (right-handed) ΞΈ: counterclockwise (CCW) positive Member local coordinates: Y_local ↑ β”‚ i-end ────────┼────────── j-end X_local β†’ X_local: direction from the i-end to the j-end Y_local: X_local rotated 90Β° counterclockwise Positive internal forces: N (axial force) : tension positive Q (shear force) : downward on the right face at the i-end positive M (bending moment): CCW positive

11. Notes and Limitations

  1. Linear elastic analysis only β€” plasticity, geometric nonlinearity and buckling are not covered.
  2. Use consistent units β€” mm, N and N/mmΒ² are recommended. Mixing units produces wrong results.
  3. Minimum restraints are required β€” the supports must restrain Ξ£Fx, Ξ£Fy and Ξ£M.
  4. Truss analysis β€” set all members to pinned at both ends (β–‘β–‘) and use only nodal loads to analyze a pure truss.
  5. Self-weight is not computed automatically β€” convert it manually into member or nodal loads.
  6. Numerical precision β€” models mixing members with extremely different stiffness ratios (EA/EI) can become numerically unstable.
  7. 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.
  8. 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

Example 1: Cantilever beam (10 kN concentrated load at the free end)
Node N1x=0, y=0, dx=β˜‘, dy=β˜‘, rz=β˜‘ (fixed end)
Node N2x=3000, y=0, dx=β–‘, dy=β–‘, rz=β–‘ (free end)
Material M1E=205000 [N/mmΒ²]
Section S1A=6353, I=47200000 (β‰ˆ H-200Γ—200)
Member B1N1β†’N2, M1, S1, rigid at both ends
Nodal loadN2: Py = βˆ’10000 [N] (downward)
Fixed-end moment (theory): M = P Γ— L = 10,000 Γ— 3,000 = 30,000,000 NΒ·mm
Example 2: Simply supported beam (uniform downward load w = 1.0 N/mm)
Node N1x=0, y=0, dx=β˜‘, dy=β˜‘ (pin support)
Node N2x=6000, y=0, dy=β˜‘ (roller support)
Member B1N1β†’N2, rigid at both ends
Member loadMember=B1, Type=3, Dir=1, p1=βˆ’1.0, p2=βˆ’1.0, p3=0, p4=0
Maximum midspan moment (theory): M = w Γ— LΒ² / 8 = 1.0 Γ— 6,000Β² / 8 = 4,500,000 NΒ·mm
* Because the Y axis is positive upward, enter negative p1 for downward loads.
Example 3: Portal frame (default model)

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.

Example 4: Support settlement (roller support settles 5 mm)
Node N1x=0, y=0, dx=β˜‘, dy=β˜‘ (pin support)
Node N2x=6000, y=0, dy=β˜‘ (roller support)
Prescribed disp.Node=N2, Ξ΄y=βˆ’5 [mm] (downward settlement)
Set dy of N2 to β˜‘ (restrained), then enter Ξ΄y = βˆ’5 in the Prescribed Displacements tab.
The prescribed displacement is not reflected in the analysis while the restraint flag is β–‘.
Example 5: Sample models (portal frames)

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