Skip to content

Tutorial

How StiffStruct works

From an empty screen to a checked, documented analysis in a few minutes. Every step below has a screenshot; click any picture to enlarge it.

The whole workflow in four steps

  1. Choose a structure

    Beam, 2D or 3D truss, or 2D or 3D frame. Start blank, from a template, or from a worked example.

  2. Describe it

    Geometry, supports, loads and, if you want deflections, a section and a material.

  3. Analyze

    Press Ctrl+Enter. The direct stiffness method runs in your browser in milliseconds.

  4. Read, check, export

    Diagrams, tables, a printable step-by-step report, and a Python or MATLAB script of the same model.

Getting started

There is nothing to install and no account is needed to build a model. Open the calculator and pick what you want to analyze.

  1. Open the calculator. It reopens the model you were working on (autosaved in this browser), or starts with a small example beam.
  2. Choose File → New model… or use the New model… button in Quick actions. You can also open app.html?new=beam directly.
  3. Pick the structure type. Beam: members in a line, loaded across their length (shear, moment, deflection). Truss: pin-jointed bars that carry axial force only. Frame: rigid joints that carry axial force, shear and bending.
  4. Pick a template. Start from a Blank model or from a parametric template (continuous beam, Pratt or Howe truss, portal frame, multi-storey frame, 3D tower…). The preview updates as you change the dimensions.
  5. Set units and a name, then press Create. You land in the Model step.
Prefer to start from a known problem? Open File → Examples… or browse the worked examples: 19 textbook problems with the published answer next to the computed one.
The New model dialog with five structure types: Beam, 2D Truss, 2D Frame, 3D Truss and 3D Frame.
Step 1 of the New model dialog: choose the structure type, then a template, then units and a name.

Worked examples

Every example opens on its own page with the problem statement, the data, the figure, the full step-by-step solution and a table that compares StiffStruct with the textbook answer. Press Open in calculator on any card to load it into the editor and change it.

The worked examples gallery with filter chips for beams, trusses and frames, a search box and the first three example cards.
Worked examples: filter by structure type or search, then read the solution or open it in the calculator.

Beam calculator walk-through

The beam mode is a guided wizard. The four tabs on the left (Geometry, Supports, Loads, Sections) are filled in from left to right, and the picture on the canvas updates after every change.

2.1 Geometry and supports

  1. Geometry. Type the total Beam length. To make a continuous beam, list the span lengths from left to right (for example 4, 6, 4) under Spans. Each span end becomes a joint.
  2. Supports. Choose a type: Pin, Roller, Fixed, Guided, Spring or Hinge (an internal hinge for Gerber beams).
  3. Position. Type a position or several, such as 0, 6, 12, or use the L M R buttons for the left end, the middle and the right end. L stands for the beam length, so L/2 and 0.25*L also work.
  4. Press Add support. A Settlement can be added to a support if you need one.

The status line under the tabs says whether the beam is stable and statically determinate, and how many redundants it has.

The beam wizard on the Supports step: buttons for pin, roller, fixed, guided, spring and hinge, a position field with L, M and R buttons, and the beam drawn on the canvas.
Supports step: pick a type, give the position, press Add support.

2.2 Loads

  1. Pick a load type: Point, Moment, UDL, Triangular, Trapezoid or Temperature (a gradient through the depth).
  2. Enter the magnitude and direction. Magnitudes are always positive; Down / Up (or CCW / CW for moments) sets the sense. Units follow the unit system you chose; you can also type units, such as 12 kN.
  3. Place it. For a point load give the position. For a distributed load give from and to; leave them empty for the full length.
  4. Press Add load. Loads appear in the list below the form, where you can edit or delete them, and on the canvas.
  5. Loads belong to a load case (dead, live, wind…). Pick the case at the top of the tab, or press + to add one. See load cases and combinations.
The beam wizard on the Loads step: load case selector, six load type buttons, a force field with Down and Up buttons, and a beam with a 12 kN per metre UDL and a 30 kN point load.
Loads step: a 12 kN/m dead UDL and a 30 kN point load at mid-span, as drawn on the canvas.

2.3 Section and material, or forces only

Do you need a section and a material? Only for deflections and slopes.

  • Reactions, shear force and bending moment do not depend on E, I or A when the beam has the same stiffness along its length. A statically determinate beam never depends on them; an indeterminate beam depends only on the relative stiffness of its spans.
  • Deflection and slope need the real section and material.
  1. Open the Sections tab and choose Forces only — no section needed if you only want reactions and the shear and moment diagrams. The material and section editors disappear, and the deflection numbers show “needs section”.
  2. Or choose Real section & material, pick a Material and a Section (search the library of IPE, HEA, HEB, AISC W, HSS and pipe sections, or enter your own properties), and assign it to the whole beam or to part of the beam.

Forces-only mode switches itself off if you add something that needs stiffness, such as a spring support or the beam’s self-weight.

The beam wizard on the Sections step with two choices: Forces only (no section needed) and Real section and material (needed for deflection), then material and section drop-downs.
Sections step: choose forces only, or a real section and material.

2.4 Analyze and read the results

  1. Press Analyze (Ctrl+Enter). The step bar at the top moves to Results.
  2. Canvas: switch between Shear, Moment, Deflection and Reactions, change the diagram scale, and turn the value labels on or off.
  3. Key results (right): largest deflection, positive and negative moment, shear and stress, with the position where each occurs.
  4. Tables (below the canvas): Reactions, Displacements, Member end forces, Member extremes, Points of interest and, with several load cases, an Envelope.
  5. Equilibrium check: the sum of the reactions must balance the sum of the loads. StiffStruct shows the residual so that you can see it is zero.
  6. Use the Case menu at the top right to look at one load case, one combination or the envelope.
The Results view of a beam: a bending moment diagram on the canvas with 96 kN·m at mid-span, key result tiles, a reactions table and shear, moment, deflection and slope charts below.
Results: diagram with values, key results, reactions and four charts.

2.5 Member detail

Press Member detail… under the charts for a closer look at one member.

  • Four large diagrams: shear V, moment M, deflection δ and slope θ.
  • Probe: drag the slider or type a position x to read every quantity at that point.
  • The equations of the diagrams along the member and its points of interest.
The member detail dialog for member 1 with four diagrams (shear, moment, deflection, slope) and a probe slider for the value at x.
Member detail: four diagrams and a probe at any position x.

Trusses and frames

For trusses and frames you work on a drawing canvas and in data tables at the same time. Both always show the same model, so use whichever is faster for the job.

Draw with the tools

The toolbar above the canvas has these tools (the key in brackets selects one):

  • Select V
  • Node N
  • Member M
  • Support S
  • Load L
  • Split X
  • Delete D
  1. Node tool: click to add a node. It snaps to the grid, to other nodes and to members; hold Alt to switch snapping off.
  2. Member tool: click the start point, then the end point. It keeps chaining from the last point; press Esc to finish.
  3. Support tool: pick a support type, then click a node.
  4. Load tool: click a node for a nodal load, or a member for a member load.
  5. Select tool: click to select, drag empty space to box-select, and drag nodes to move them. The Properties panel on the right edits whatever is selected.

Shortcuts: Ctrl+Z undo, Ctrl+Y redo, F fit the view. Press ? for the full list.

A fixed-base portal frame in Results mode: the bending moment diagram is drawn on the tension side of each member, with the node, member and support tables on the left and key results on the right.
A 2D portal frame in Results mode with the Moment overlay. Moments are drawn on the tension side. The data tables stay open on the left.

Tables and pasting from Excel

  1. The left panel lists Nodes, Members, Supports, Loads and Combinations as spreadsheet-like tables.
  2. Click a cell to select it; click again or press F2 to edit. Cells accept expressions and units, such as 3*1.5 or 12 kN.
  3. Paste rows from Excel with Ctrl+V. Copy a block of cells in your spreadsheet, select the first cell here and paste. Add appends a row; the copy and paste buttons under each table move whole tables.

Supports and member loads

  • Supports: pin, roller, fixed, or custom restraints per degree of freedom (tick ux, uy, rz…). Springs, inclined rollers and prescribed settlements are available.
  • Member loads: point and distributed loads, in global or local axes, plus temperature and fabrication-error loads.
  • Releases: mark a member end as pinned (for example a truss bar inside a frame) with the release columns, or tick Truss for an axial-only bar.

3D models

3D trusses and 3D frames use the same tables and the same workflow; the canvas becomes a 3D viewer.

  1. Move around: drag to orbit, right-drag to pan, use the wheel to zoom. The buttons Iso, Top, Front, Right and Fit set a view, and Persp switches between perspective and orthographic.
  2. Add nodes by clicking the ground grid (a dialog lets you type X, Y and Z), or type coordinates in the Nodes table. Join them with the Member tool.
  3. Local axes: a 3D frame member has its own axes, and a roll angle rotates the section about the member axis. Bending is resolved about both axes.
  4. Results: choose Deflected, Reactions, Axial, Vy, Vz, Mz, My or T (torsion) to draw that quantity on every member.

The 3D model of a building, a tower or a grid of beams is solved with six degrees of freedom per node.

A one-storey 3D frame in Results mode with the Mz bending moment diagram drawn on every beam and column, the view buttons at the top left and key results on the right.
A one-storey 3D frame with the Mz diagram on every member.

Units

Pick the unit system once; every input and every result follows it. Nothing is hard-coded.

  1. Click the unit button in the header (for example SI (kN, m)) and choose a system, or choose Custom… to set a unit for each quantity separately.
  2. You can change units at any time. All values are stored in SI internally, so changing the display never changes a result.
  3. You can also type units in any field (12 kN, 3 ft, 250 mm). A number without a unit is read in the current display unit.
PresetForceLengthTypical use
SI (kN, m)kNmMost textbooks and codes
SI (kN, mm)kNmmSmall steel and timber members
MKS (tf, m)tfmRegions that use tonne-force
US (kip, ft)kipftUS practice, long spans
US (kip, in)kipinUS practice, sections and plates

Load cases and combinations

A load case is a set of loads that act together (dead load, live load, wind). A combination adds cases with factors, such as 1.35 G + 1.5 Q.

  1. Add a case. In the beam wizard use the + next to the load case selector; in the other modes use the load case table. Give it a name and a category (dead, live, wind, snow, temperature…).
  2. Add loads to the active case. New loads go into the case that is selected. Tick Include self-weight to add the weight of the members to a case (this needs a section and a material).
  3. Create combinations. Open the Combinations table. Add a row and type a factor for each case, or press Generate… to create the combinations of a design code.
  4. Read the results. The Case menu at the top right switches between a single case, a combination and the Envelope of everything, which shows the largest and smallest value at every position.
Linear superposition. StiffStruct solves each load case once and combines the results with the factors. This is exact for the linear-elastic analysis it performs. The simply supported beam example uses a dead UDL, a live point load and the combination 1.35 G + 1.5 Q.

The step-by-step report

The Report step writes the whole calculation as a document: every matrix, every vector and every check, with the numbers of your model.

  1. Press Report in the step bar. The contents list on the left jumps to any section.
  2. Detail: Summary (results only), Standard or Full step-by-step (every member stiffness matrix, the assembly, the solution and the hand check).
  3. Case and Decimals choose which load case or combination is reported and how many digits are printed.
  4. Export: Print / Save as PDF opens the print dialog (choose “Save as PDF” as the printer), HTML downloads a standalone page, LaTeX downloads the source for your own document, and K (CSV) downloads the stiffness matrix.

The report contains the project information, the model, determinacy and stability, degrees of freedom, element matrices, fixed-end forces, the assembled equations, the displacements, reactions, member end forces, an equilibrium check, internal forces and deflections, diagrams and a hand check by statics.

The report view: a contents list on the left, the first page of the step-by-step report in the centre, and Print or Save as PDF, HTML, LaTeX and CSV export buttons at the top.
Report: choose the detail level, then print to PDF or download HTML, LaTeX or CSV.

Code export

The Code step turns the current model into a script you can read, run and change. The numbers in the script are the same as in the app.

  1. Press Code in the step bar and choose a tab: Python, MATLAB / Octave or JSON model.
  2. Include library puts the whole solver into the file so it runs on its own. Plots adds the diagrams.
  3. Run in browser runs the Python script on the page, with nothing to install, and shows its printed report and plots. The first run downloads the Python runtime (Pyodide) once from a public CDN, so it needs an internet connection.
  4. Copy or Download the file, then run it on your computer: pip install numpy matplotlib, then python the_file.py. The script prints the step-by-step report and writes CSV files and PNG plots next to it.
The code export view on the Python tab, with the Include library and Plots switches and the Run in browser, Copy and Download buttons above the script.
Code export: Python, MATLAB or Octave, and the model as JSON.

Free sign-up: why values need an account

Building a model and seeing the shape of the result is always free. A free account unlocks the numbers.

Results view while signed out: the moment diagram shape is drawn without numbers, the tables are locked, and a Sign in free card replaces the key results.
Signed out: the shape of the shear, moment and deflection diagrams, but no values.
The same results view after signing in: values on the diagram, key results, a reactions table and labelled charts.
Signed in: the same screen with every value.
  1. Before you sign in you can draw the structure, add loads and press Analyze. You see the shape of the shear force, bending moment and deflection diagrams.
  2. To see the values (reactions, extremes, tables, the step-by-step report and the code export), choose Sign in in the header or the card in the results panel, then Create free account.
  3. Sign up with an e-mail address and a password, or continue with Google. The account is free and needs no payment details; it shows the diagram shapes. To see the values (reactions, diagram values, tables), start the 3-day free trial of Student or Pro.
  4. After signing in, the screen updates at once. You stay signed in on this device until you choose Sign out from the account menu.
The worked examples are always open. The example pages show every value and the complete solution without an account.
Privacy. Your models are not uploaded; the analysis runs in your browser. The account is used only to sign you in. See the privacy policy.

Saving and sharing

Your work is kept on your device. The File menu in the header has everything you need to keep it or pass it on.

  • Autosave: the model is saved in this browser after every change (the status bar shows Saved). It is never uploaded. Clearing your browser data removes it.
  • Save JSON / Open JSON: download the model as a small file and open it later or on another computer. Ctrl+S saves.
  • Copy share link: the model travels inside the link, so anyone who opens it gets a copy. Nothing is stored on a server.
  • Project info: add a title, description, author and project number; they appear in the report.
  • Undo and redo: every edit can be undone with Ctrl+Z.
  • Settings: the gear icon sets the number of decimals, the theme (auto, light or dark) and the text contrast. The same choices apply on every page of this site.

Open a model from a link

These addresses start the calculator in a given state, which is handy for teaching and for bookmarks:

Ready to try it?

Open the calculator and have a beam analyzed in a couple of minutes, or read a worked example first.