Computational Engineering
Interactive tools
Every interactive in the course, in one place. Each one exists to teach a specific principle, which is stated beside it — none of them is decoration.
The course defines 53 interactives, and all 53 are built and usable now. Each card below says which module it belongs to and which principle it exists to teach.
Every built tool is driven by the same tested library that produces the numbers in the lessons, so a value read off a tool and a value quoted in a worked example come from the same place.
Every tool can be operated from the keyboard, every slider has a paired number field, nothing depends on dragging, and no meaning is carried by colour alone.
Stage A — Engineer and computer
Computational method selector
Module 01The cheapest route that answers the question is the right route.
In context, in Module 1 →Built and usable now.
Design-process workspace
Module 02Requirements, constraints and options are different things, and a score is not a decision.
In context, in Module 2 →Built and usable now.
Parametric frame builder
Module 03Rules generate coordinates; coordinates do not generate rules.
In context, in Module 3 →Built and usable now.
Parametric tower builder
Module 03Every geometric parameter has a structural consequence, and both belong on the screen.
In context, in Module 3 →Built and usable now.
Script sequence explorer
Module 04Sequence, condition and loop — and the plausible wrong answer a broken condition returns.
In context, in Module 4 →Built and usable now.
Automation value calculator
Module 04Count development, verification and maintenance — then ask whether the process is right.
In context, in Module 4 →Built and usable now.
Spreadsheet audit
Module 04A spreadsheet shows numbers and hides logic.
In context, in Module 4 →Built and usable now.
Stage B — Data, models and workflows
Digital workflow builder
Module 05Every handover adds information, loses information, and belongs to somebody.
In context, in Module 5 →Built and usable now.
Model transfer exercises
Module 05Geometry survives an exchange; behaviour does not.
In context, in Module 5 →Built and usable now.
Model abstraction explorer
Module 06Each level of abstraction retains some behaviours and discards others, permanently.
In context, in Module 6 →Built and usable now.
Model purpose statement
Module 06A model without a stated question will be asked the wrong one.
In context, in Module 6 →Built and usable now.
Element selector
Module 07Element choice and model dimension are one decision, not two.
In context, in Module 7 →Built and usable now.
Degrees-of-freedom explorer
Module 07A model fails in directions the structure has no load in.
In context, in Module 7 →Built and usable now.
Support and release laboratory
Module 07Fixing both ends divides the deflection by exactly five, and three of four support mistakes solve cleanly.
In context, in Module 7 →Built and usable now.
Offset and eccentricity explorer
Module 07A rigid arm carries the end shear across the eccentricity: exactly V·e.
In context, in Module 7 →Built and usable now.
System validation workshop
Module 08One hand check per system — the only kind that actually gets done.
In context, in Module 8 →Built and usable now.
Truss modelling workshop
Module 08Bars, beams, releases and offsets change the answer and the risk.
In context, in Module 8 →Built and usable now.
Frame connection explorer
Module 08Rigid, pinned and semi-continuous are three different structures.
In context, in Module 8 →Built and usable now.
Slab model comparison
Module 08Six ways to model a concrete floor, and what each one is for.
In context, in Module 8 →Built and usable now.
Core model comparison
Module 08A stick, several coupled sticks and a shell mesh answer different questions.
In context, in Module 8 →Built and usable now.
Stage C — Analysis methods and model reliability
Stiffness matrix assembler
Module 09Assembly is addition, and every entry has a physical meaning.
In context, in Module 9 →Built and usable now.
Boundary condition explorer
Module 09Striking out a row is how 'it is held here' becomes arithmetic.
In context, in Module 9 →Built and usable now.
P-delta explorer
Module 10Compression softens, tension stiffens, and the amplifier is α/(α−1).
In context, in Module 10 →Built and usable now.
Geometric stiffness explorer
Module 10Kg depends on the load, which is why P-delta results cannot be superposed.
In context, in Module 10 →Built and usable now.
Buckling mode explorer
Module 10One element reports 12EI/L²; the mode matters as much as the factor.
In context, in Module 10 →Built and usable now.
Modal mass explorer
Module 10Participating mass is the first number a modal result should be judged on.
In context, in Module 10 →Built and usable now.
Newton–Raphson explorer
Module 11The residual is the load the structure is not yet carrying.
In context, in Module 11 →Built and usable now.
Equilibrium path explorer
Module 11Load control cannot pass a limit point; displacement control can.
In context, in Module 11 →Built and usable now.
Dynamic relaxation explorer
Module 11The path to equilibrium is fictitious; only the destination is real.
In context, in Module 11 →Built and usable now.
Explicit time-step explorer
Module 11One small element sets the step, and therefore the cost, for the whole model.
In context, in Module 11 →Built and usable now.
Unit error laboratory
Module 12A mass error leaves every static result untouched — which is why it survives.
In context, in Module 12 →Built and usable now.
Restraint and release laboratory
Module 12Restraints join the model to the world; releases describe what happens inside it.
In context, in Module 12 →Built and usable now.
Mesh quality explorer
Module 12Aspect ratio, skew and a negative Jacobian are three different defects.
In context, in Module 12 →Built and usable now.
Mesh convergence tool
Module 12A converging sequence settles; a singular one grows at a constant ratio.
In context, in Module 12 →Built and usable now.
Model Doctor
Module 12Name the discriminating check before naming the diagnosis.
In context, in Module 12 →Built and usable now.
Model assurance workspace
Module 13An assumption not written down cannot be reviewed.
In context, in Module 13 →Built and usable now.
Three-stage model check
Module 13Look and think, check another way, check independently — in that order.
In context, in Module 13 →Built and usable now.
Stage D — Computational design exploration
Sensitivity explorer
Module 14A wide plausible range beats a large exponent.
In context, in Module 14 →Built and usable now.
Design space explorer
Module 14Five parameters at eight values is 32,768 runs.
In context, in Module 14 →Built and usable now.
Ground structure explorer
Module 15Layout optimisation is a search, and the answer depends on where you started.
In context, in Module 15 →Built and usable now.
Truss shape optimiser
Module 15There is a best depth, and it is an interior minimum.
In context, in Module 15 →Built and usable now.
Size optimiser
Module 15Sizing changes the forces, so one pass is never the answer.
In context, in Module 15 →Built and usable now.
Form-finding explorer
Module 15The shape is an output, not something you drew.
In context, in Module 15 →Built and usable now.
Search algorithm comparison
Module 16No method wins both landscapes, and the evaluation count is the price.
In context, in Module 16 →Built and usable now.
Pareto explorer
Module 17A weighted sum cannot reach a design in a concave dip.
In context, in Module 17 →Built and usable now.
Stage E — Intelligent and future computation
Engineering classifier
Module 18Confidence is not evidence, and a confident misclassification looks identical.
In context, in Module 18 →Built and usable now.
Training data bias explorer
Module 18Starve a class and accuracy stays respectable while recall collapses.
In context, in Module 18 →Built and usable now.
Surrogate model explorer
Module 18Nothing in the output says whether it is extrapolating.
In context, in Module 18 →Built and usable now.
Overfitting explorer
Module 18Training error falls forever; test error turns round.
In context, in Module 18 →Built and usable now.
Human approval workflow
Module 18Where a deterministic check exists, it must have been run.
In context, in Module 18 →Built and usable now.
Workflow risk exercise
Module 19Security, confidentiality, versioning and loss of access are engineering risks.
In context, in Module 19 →Built and usable now.
Computational carbon explorer
Module 20Span moves carbon more than scheme choice does.
In context, in Module 20 →Built and usable now.
Integrated project workspace
Module 21Sixteen steps from a brief to a recommendation, with a review record at the end.
In context, in Module 21 →Built and usable now.
The tools
The 53 built tools, in syllabus order. These are the same components the lessons embed — not simplified versions of them.
Module 01 · Computational method selector
Try it
Which method answers this question?
Twelve engineering questions. Choose a route, then read what that route would and would not tell you.
Move through the twelve questions.
Your route
Choose the cheapest route you believe genuinely answers it.
Question 1. Is a 457 UB adequate for deflection on a 7.2 m simply supported span under 24 kN/m?
Choose a route to see what it would tell you. Nothing is revealed until you commit to an answer — deciding first is the skill being practised.
What this shows: The cheapest route that genuinely answers the question is the right route — and more than one answer is often defensible.
Module 02 · Design-process workspace
Try it
Design-process workspace
Separate requirements from constraints, keep or reject options, and record why. The workspace will not rank the options for you.
Is it a requirement or a constraint?
Requirement: something the design must achieve. Constraint: something it may not do.
Requirements — what the design must achieve (2)
- Provide a 30 m column-free span over the hall
- Support a 4 kN/m² imposed load
Constraints — what it may not do (2)
- Structural zone no deeper than 1.4 m— who owns this?
- No permanent works outside the site boundary— who owns this?
Options
- Options still live
- 3
- Rejections with no reason recorded
- 0
What this workspace deliberately will not do
- It will not score the options. A weighted score hides the decision inside the weights, and the weights were chosen by whoever typed them.
- It will not tell you which constraints are real. Ask who owns each one; the ones that belong to nobody can usually be discarded.
- It will not tell you when to stop diverging. Convergent thinking that starts too early kills the option that would have won.
What this shows: A requirement is what the design must achieve; a constraint is what it may not do — and a rejection without a reason is a decision nobody can review.
Module 03 · Parametric frame builder
Try it
Portal frame generator
Three independent parameters generate the whole frame. Everything else on the readout is computed.
Set to zero for a flat roof and watch the ridge height collapse onto the eaves.
- Span (set)
- 24.00 m
- Eaves height (set)
- 7.00 m
- Pitch (set)
- 6.0°
- Rise (computed)
- 1.261 m
- Ridge height (computed)
- 8.261 m
- Rafter length (computed)
- 12.066 m
- Frame member length
- 38.13 m
half-span × tan(pitch)
eaves + rise
two columns plus two rafters — a first proxy for material
What to notice
- Three numbers are set and four are computed. The computed ones cannot be edited, because editing them would let you express a frame that does not exist.
- Set the pitch to zero and the ridge collapses onto the eaves. The rule still holds; the geometry has simply become a flat portal.
- The member length is not a design quantity. It is a comparison quantity, and its whole value is that it updates the instant a parameter moves.
What this shows: Rules generate coordinates; coordinates do not generate rules — and only two of a related triple may be set independently.
Module 03 · Parametric tower builder
Try it
Parametric tower builder
Every change reports member lengths, repetition, a lateral stiffness proxy and what would be difficult to build.
Straight members on a twisted ring generate a doubly-curved surface.
- Storey height
- 4.00 m
- Total column length
- 1442 m
- Total bracing length
- 848 m
- Total member length
- 2290 m
- Distinct member lengths
- 11
- Shortest / longest member
- 4.00 / 8.23 m
- Lateral stiffness proxy, base
- 1176 m²·(unit area)
- Lateral stiffness proxy, top
- 384 m²·(unit area)
- Top / base stiffness ratio
- 0.327
a material proxy before sections are chosen
the repetition measure — often what decides cost
goes with the square of the radius ratio
No constructability flags at this combination. That is not the same as buildable — it means nothing on the short list of automatic checks has fired.
What the proxy is and is not
- The lateral stiffness proxy is ½·n·r² for a uniform ring: the second moment of area of the perimeter about the plan centroid, per unit column area. It is a comparison number, not a stiffness.
- It says nothing about the bracing, which is what actually carries the shear. Two towers with the same proxy and different bracing behave very differently.
- Halving the top radius quarters the proxy. That is why a sharp taper is a structural decision as well as an aesthetic one.
What this shows: A generator that returns geometry alone is half a tool; the half that matters returns the quantities a decision is made on.
Module 04 · Script sequence explorer
Try it
Sequence, condition, loop
A member-sizing routine, assembled from its steps. Reorder it or break a condition, and read what the routine would then return.
Break a condition
Each of these is a one-character change in real code.
Use the up and down buttons beside each step to reorder the routine. Everything here works from the keyboard; nothing requires dragging.
- 1Read the inputsSpan, load, deflection limit, catalogue.
- 2Compute the design momentM = wL²/8 for this case.
- 3Sort the catalogue by massLightest first, so the first pass is the lightest that works.
- 4Loop through the catalogueOne section at a time.
- 5Check strengthIs the moment resistance at least the design moment?
- 6Check deflectionIs the deflection under the limit?
- 7Return the first section that passes bothAnd stop.
- 8If none passes, say soDo not return the last one tried.
The routine is in a working order with sound conditions. It returns the lightest section that satisfies both checks, and says so when none does.
What this shows: A broken routine does not usually crash. It returns a plausible number, which is why a test with a known answer is the only real check.
Module 04 · Automation value calculator
Try it
Should this be automated?
Enter the real numbers, including the ones people leave out. The verdict is withheld until the risk question is answered.
Catalogues change, formats change, people leave. Zero is rarely honest.
Include the checking that no longer has to happen by hand.
If it is wrong and nobody notices, what happens?
- Build cost
- 53 h
- Maintenance
- 15 h/year
- Gross benefit
- 40 h/year
- Net benefit
- 25 h/year
- Payback
- 2.1 years
- Break-even runs per year
- 13.5
development plus verification
gross benefit less maintenance
runs needed in year one to cover build plus maintenance
No verdict yet. The arithmetic above is only half the decision — answer the risk question, because it sets how much verification is proportionate, and verification is a cost you have already entered.
The question this calculator cannot answer
- Is the process you are about to automate correct? Automating a check that omits a load case gives you a fast, consistent, thoroughly documented omission — applied to every project, with the authority of having come from a tool.
- Who will own it when its author leaves? An unowned tool becomes an unmaintained tool, and an unmaintained tool becomes a liability the year after it was written.
What this shows: Automation pays back development, verification AND maintenance — and the arithmetic is the second question, not the first.
Module 04 · Spreadsheet audit
Try it
Spreadsheet audit
A fictional structural workbook containing every fault on the list. Flag the ones you think are wrong, then open a cell to see what it really contains. Nothing here comes from any real workbook.
Select a cell to inspect it. Flag the ones you believe are faulty. The workbook contains 8 faults among 10 cells.
| Cell | Displays | Inspect | Flag |
|---|---|---|---|
| B4 | 576 | ||
| B7 | 9.5 | ||
| B9 | 1.35 | ||
| D12 | #REF! | ||
| E15 | 48200 | ||
| F20 | 0 | ||
| C31 | 142.6 | ||
| H3 | 7.2 | ||
| Module1 | Sub Recalculate() | ||
| B22 | 5472 |
- Faults found
- 0 of 8
- Correct cells flagged
- 0
- Answer-changing faults still missed
- 6
The distinction that matters
- Some faults change the answer now. Others — a hard-coded span, an unexplained constant — do not yet, and are waiting for the day somebody changes an input.
- A workbook can be entirely correct today and structurally unsafe as a document. Both classes have to be fixed, and only the first announces itself.
- A check row — a total computed a second way that must agree — would have caught three of these the moment they happened.
What this shows: A spreadsheet shows numbers and hides logic — and the commonest serious fault, a formula overwritten with a value, leaves no visual trace at all.
Module 05 · Digital workflow builder
Try it
Digital workflow builder
One handover at a time. What arrives, what does not, and who owns the gap.
1 of 5
Before revealing, decide for yourself which of the twelve attributes this route carries.
Architectural model → Parametric model
- Exchange route
- Geometry interchange (lines and points)
- Owned by
- Structural lead
- Adds
- Grid, levels, and the decision about what is structure.
Twelve attributes go into this handover. Decide which arrive before revealing.
Across the whole chain
- Attributes surviving no handover
- 5
These are re-created by a person every time
- Supports and restraints
- End releases
- Load cases
- Load combinations
- Analysis results
What this shows: Every handover adds engineering judgement, loses information, and belongs to somebody — and five attributes survive none of them.
Module 05 · Model transfer exercises
Try it
Model transfer exercises
One truss, damaged one attribute at a time, re-solved each time. The verdict is computed from what the model does.
What was lost in transfer
Both supports hold vertically; nothing holds the truss horizontally.
- Does the received model solve?
- no
- Warnings raised by the model itself
- 1
- Largest displacement, against the sent model
- —
- Largest member force
- —
- Verdict
- loud
The receiving model will not solve. Nobody can act on a wrong number, because there is no number.
What the receiving model says on its own
- error: Nothing holds the model horizontally. It does not matter that there is no horizontal load: the matrix has zero stiffness in that direction and the solve divides by zero.
- Losses that stop the model
- 2
- Losses that solve and are wrong
- 3
- Losses that change no number
- 1
What this shows: A loss that stops the model is the safe one. Three of these six leave it solving and wrong.
Module 06 · Model abstraction explorer
Try it
Model abstraction explorer
A line model has no shear deformation. Move the member from stocky to slender and watch how much is missing.
A 300 mm wide concrete member, 100 kN at the tip.
- Bending deflection
- 2.844 mm
- Shear deflection
- 0.128 mm
- True total
- 2.972 mm
- What a line model reports
- 2.844 mm
- Omitted by the line model
- 4.3 %
- Shear passes 10 % below
- L/d = 2.55
At this slenderness the omitted shear term is small enough to record as an exclusion and move on. It is still an exclusion rather than an absence.
What this shows: Shear deflection does not become small — bending becomes large. The crossover is a computable span/depth ratio.
Module 06 · Model purpose statement
Try it
Model purpose statement
Five fields. Fill them in and see what a reviewer could and could not do with what you have written.
One sentence. Without it the model has no subject.
The assumption that, if it turned out otherwise, would overturn the result.
Named before the result exists, so it is not chosen to agree.
Comma-separated. Writing an omission down converts it into a decision.
Keeps the model proportionate to the consequence.
- Fields present
- 0 of 5
- Reviewable?
- no
- Next gap to close
- question
Not reviewable, and not yet a model of anything: no question has been stated, so any result it produces answers something nobody wrote down.
Still missing, in the order they matter
- The question this model exists to answer
- What would make this model wrong
- How the result will be checked
- What is deliberately excluded
- What it will be used to decide
What this shows: The gaps are reported in the order they matter: without a question there is no subject, and without an invalidation clause there is nothing to review.
Module 07 · Element selector
Try it
Element and level selector
Choose a question. See which levels answer it honestly, what each discards, and what each would cost to build.
The question the model must answer
Cheapest level that answers this honestly: Hand calculation
| Level | Answers it? | Freedoms |
|---|---|---|
| Hand calculation | yes | 0 |
| Two-dimensional line model | yes | 105 |
| Three-dimensional line model | yes | 840 |
| Shell model | no — it would still return a number | 111,432 |
| Solid model | no — it would still return a number | 110,592 |
What hand calculation discards, permanently
- Continuity
- Load sharing
- Everything three-dimensional
How the freedom counts are arrived at
- No model. One span, one formula.
- One frame taken out of the building: 5 columns × 7 levels, three freedoms each.
- Every column line at every level: 5 × 4 × 7 nodes, six freedoms each.
- The frame plus a 0.5 m mesh over 6 floors of 768 m²: 3072 nodes per floor.
- The same mesh carried through 0.25 m of thickness in 2 layers, floors only.
What this shows: A model outside its range returns a number rather than a refusal — so the check has to happen before the question is asked.
Module 07 · Degrees-of-freedom explorer
Try it
Degrees-of-freedom explorer
Join two element families and see what the joint transfers. The verdict is arithmetic on the freedoms each side has.
One side of the joint
The other side
- Beam (frame) freedoms per node
- 6
- Solid freedoms per node
- 3
- Shared at the joint
- 3
- Transfers moment?
- no
- Model size if all beam (frame)
- 840 freedoms
A beam (frame) meeting a solid at one node shares 3 freedoms and transfers no moment. If the real joint is continuous, the model is wrong and it will not say so.
Beam (frame) carries
- Axial
- Bending about both axes
- Shear
- Torsion
Beam (frame) ignores
- Stress distribution within the section
- Local behaviour at holes, copes and connections
- Warping, unless the formulation includes it
It reports a member force, not a stress. Asking it about a detail returns a number that describes the whole section.
What this shows: A joint transfers only what both sides have a freedom for — which is the whole of the beam-into-solid problem.
Module 07 · Support and release laboratory
Try it
Support and release laboratory
Three sets of end conditions, and four ways to get the supports wrong. Only one of the four refuses to run.
EI = 21 000 kN·m² throughout.
| Ends | Support M | Midspan M | Deflection |
|---|---|---|---|
| simple | 0.00 | 96.00 | 30.48 mm |
| propped | 96.00 | 48.00 | 12.19 mm |
| fixed | 64.00 | 32.00 | 6.10 mm |
Moments in kN·m. Fixing both ends divides the deflection by exactly five.
| Model | Deflection | vs correct | Solves? |
|---|---|---|---|
| Pin and roller | 30.48 mm | × 1.000 | yes |
| Pinned at both ends | 30.48 mm | × 1.000 | yes |
| Rotation held at both ends | 6.10 mm | × 0.200 | yes |
| Vertical only at both ends | — | — | no — mechanism |
Three of the four solve. The one that reports a fifth of the true deflection raises nothing at all, and ‘fully restrained’ means one thing to a designer and another to a dialogue box.
Freedoms the model gave no stiffness
- simple: L rz, R rz
- propped: R rz
- fixed: none
What this shows: Fixing both ends divides the deflection by exactly five, and three of the four common restraint mistakes solve cleanly.
Module 07 · Offset and eccentricity explorer
Try it
Offset and eccentricity explorer
A beam framing into a column face rather than its centreline. Watch the clear span, the two moments, and what the rigid arm carries.
- Clear span
- 5.750 m
- Beam end moment
- 47.39 kN·m
- Column top moment
- 63.83 kN·m
- Beam end shear
- 65.74 kN
- Carried by the rigid arm
- 16.44 kN·m
- Centreline model reports, for both
- 59.68 kN·m
- Column under-predicted by
- 7.0 %
grid span 6 m
V × e = 65.74 × 0.250
The beam's end moment falls and the column's rises. The difference between them is exactly the end shear times the eccentricity, and the centreline model has no mechanism by which it could show it.
What this shows: The arm carries the end shear across the eccentricity: exactly V·e, and a centreline model contains none of it.
Module 08 · System validation workshop
Try it
System validation workshop
Pick a system. Decide what its usual model gets wrong before revealing it, then read the hand check that would catch it.
System
For the frequency check in the last row of the guide.
- Usual model
- Pin-jointed bar model.
What does this model get wrong often enough to check every time?
The frequency check, live
- Static deflection
- 10 mm
- Estimated f₁ = 18/√δ
- 5.69 Hz
Above the range where walking excitation is worst, so a dynamic model is a choice rather than a default. That judgement took seconds.
What this shows: A check that takes half a day does not get done. Every one of these takes minutes.
Module 08 · Truss modelling workshop
Try it
Truss modelling workshop
A 24 m Warren truss as pin-jointed bars, and again as a frame with continuous chords.
Bending follows stiffness — try increasing it.
- Chord force, pin-jointed
- 340.0 kN
- Chord force, continuous chords
- 339.1 kN
- Secondary bending in that chord
- 1.41 kN·m
- Bending as a share of peak stress
- 7.7 %
- Midspan deflection, pin-jointed
- 20.30 mm
- Midspan deflection, continuous
- 20.25 mm
not present in the pin-jointed model at all
And the beam analogy, for the same truss
- Midspan moment, actual point loads
- 1080 kN·m
- Midspan moment, loads smeared to a UDL
- 900 kN·m
- Error from smearing
- 16.7 %
- Chord force ≈ M/d
- 360 kN
What this shows: The idealisation gets the axial force right and omits the bending entirely — and a stiffer chord attracts more of it, not less.
Module 08 · Frame connection explorer
Try it
Frame connection explorer
Sweep the beam-to-column connection from a pin to full rigidity. Their sum is the free bending moment at every point.
The beam's own EI/L is 1750 kN·m/rad — this is 1.71 × that.
- Eaves moment
- 75.78 kN·m
- Midspan moment
- 194.22 kN·m
- Sum
- 270.00 kN·m
- Share of the rigid eaves moment
- 50.9 %
- Sway at eaves
- 0.023 mm
- Rigid connection would give
- 148.93 kN·m
- Pinned connection would give
- 270.00 kN·m at midspan
wL²/8 = 270.00 — equal at every stiffness
The two moments always sum to the free bending moment. That identity is the fastest check available on any portal result — if a model’s moments do not add to wL²/8, the problem is the model rather than the connection assumption.
What this shows: Rigid and pinned are the ends of one parameter, and the curve is steep exactly where real connections are.
Module 08 · Slab model comparison
Try it
Slab model comparison
One panel, four models, compared against the exact series solution of the plate equation.
The short span is fixed at 5 m.
| Model | Moment | Error | Deflection |
|---|---|---|---|
| One-way strip | 31.25 | +182.8 % | 2.00 mm |
| Orthogonal grillage | 15.63 | +41.4 % | 1.00 mm |
| Plate theory (exact) | 11.05 | — | 0.62 mm |
| Shell finite elements | 11.05 | — | 0.62 mm |
At 1.00:1 the panel spans substantially both ways, and a one-way model over-predicts the moment by 183 %. Conservative, and expensive on every panel of the floor.
What each model is blind to
- One-way strip: Two-way action, corner torsion, and the reaction that actually goes onto the long-side supports.
- Orthogonal grillage: Twisting moment, which is why it over-predicts the span moments.
- Plate theory (exact): Cracking, reinforcement, creep, and the supports actually being beams that deflect.
- Shell finite elements: Nothing plate theory does not — but it will happily report a peak moment at a point support that is a singularity, not a result.
What this shows: The one-way moment never changes — what changes is the truth it is compared with.
Module 08 · Core model comparison
Try it
Core model comparison
A stick, a stick with shear deformation, and coupled walls — the same core, three models.
1 is fully continuous walls; 0 is two independent walls.
| Model | Deflection | vs bending only |
|---|---|---|
| Stick model, bending only | 1.071 mm | × 1.000 |
| Stick model, with shear deformation | 1.311 mm | × 1.224 |
| Coupled walls | 2.383 mm | × 2.224 |
- Height / width
- 5.00
- Shear passes a fifth of the movement below
- H/D = 4.73
- Base moment
- 5400 kN·m
identical in all three — statics does not care how it is modelled
At this slenderness bending dominates and the stick model is a reasonable first estimate. The openings are still not in it.
What each model is
- Stick model, bending only: One vertical line element with the core's gross second moment of area. The cheapest possible model of a core.
- Stick model, with shear deformation: The same element, with the shear area included. For a squat core this is not a refinement.
- Coupled walls: The openings are admitted: the walls act together only as far as the coupling beams make them.
What this shows: Shear deformation is not a refinement for a squat core, and openings more than double the movement.
Module 09 · Stiffness matrix assembler
Try it
Stiffness matrix assembler
Step through the solve. Every intermediate is a real table, in kN/m, divided by 1000 to keep it readable.
Structure
Element stiffnesses
Step 1 of 5 — Element stiffnesses
| Element | L (m) | cos θ | sin θ | k (kN/m) |
|---|---|---|---|---|
| e1 | 3.000 | 1.000 | 0.000 | 66667 |
| e2 | 4.000 | 1.000 | 0.000 | 50000 |
What each step is doing
- Steps 1–2: no physics is added by the transformation. The global matrix is the axial matrix seen from a rotated viewpoint.
- Step 3: assembly is addition, and nothing else. A node connected to nothing would leave a zero row here.
- Step 4: a restraint deletes a row and a column, because that displacement was already known.
- Step 5: displacements first, then everything else. The residual is the check that decides whether any of it is usable.
What this shows: Assembly is addition, and a restraint is a struck-out row — the two facts that make every connectivity and support fault in Module 12 obvious.
Module 09 · Boundary condition explorer
Try it
Boundary condition explorer
A three-bar triangle with a vertical load at the apex. Hold and release each support direction and watch what the factorisation does.
Node A restraints
Node B restraints
A plane structure needs at least three independent restraints. Fewer and the reduced matrix is still singular; more and the structure becomes externally indeterminate.
- Restrained directions
- 3
- Equations to solve
- 3
- Factorisation
- succeeded
- Failed at
- —
- Condition number
- 6.7
15.2 of 16 digits survive
Exactly three restraints: statically determinate externally. The reactions follow from statics alone and do not depend on any member stiffness.
- Force in AC
- -100.0 kN
- Force in BC
- -100.0 kN
- Force in AB
- 80.0 kN
compression
compression
tension
Try these
- Release every restraint. The model is free to translate and rotate, and the factorisation fails on the first free degree of freedom.
- Hold only Ax and Ay. Two restraints prevent translation and not rotation about A — the structure spins.
- Hold Ax, Ay and By. Three restraints, determinate, and the member forces are what statics gives.
- Add Bx as well. It still solves, the member forces change, and the change came from a restraint the real structure may not have.
What this shows: A mechanism is a failed factorisation with a name attached — the solver can tell you which direction has no stiffness, and that is more useful than adding restraint until it runs.
Module 10 · P-delta explorer
Try it
P-delta explorer
A lateral load, an axial load and an initial out-of-straightness. The two amplifiers are different numbers and are reported separately.
The input nobody measures, and the one that grows fastest as α falls.
- αcr
- 5.00
- First-order deflection F/k
- 100.0 mm
- Amplified deflection
- 125.0 mm
- From the imperfection
- 5.0 mm
- Total second-order
- 130.0 mm
- Under-report if ignored
- 30.0 %
× 1.250
20 mm × 0.250
At αcr = 5.00 the error from ignoring second-order effects is 25.0 %. It must be in the design.
The point of separating the two amplifiers
- Set the imperfection to zero and the total is just the amplified lateral deflection. Most engineers stop there.
- Put the imperfection back and watch its contribution grow much faster than the lateral one as α falls. At α = 4 the load amplifier is a modest 1.33 and the imperfection is growing by a third of itself.
- Set F to zero and the structure still deflects — the imperfection alone is amplified. A perfectly-loaded imperfect column deflects; a perfectly-straight loaded one does not.
What this shows: A buckling load factor is an amplifier, not a margin — and the imperfection amplifier is the one that runs away.
Module 10 · Geometric stiffness explorer
Try it
Geometric stiffness explorer
Two rigid bars, a lateral spring at mid-height and an axial load. Positive P is compression; drag it negative for tension.
Positive is compression. Negative is tension, and it stiffens.
- Elastic stiffness k
- 250 kN/m
- Geometric contribution −2P/L
- -40.0 kN/m
- Effective stiffness
- 210.0 kN/m
- Critical load Pcrit = kL/2
- 625 kN
- Load factor αcr
- 6.25
- Deflection amplifier α/(α−1)
- 1.190
- Imperfection amplifier 1/(α−1)
- 0.190
compression softens
Ignoring second-order effects here costs 19.0 %, which is above the 10 % line. Second-order analysis is required, not optional.
What to notice
- Change k and Pcrit moves with it. Change L and Pcrit moves with it. Change nothing else and the material never enters.
- The geometric contribution is proportional to P/L. Doubling the section area would double k and leave it untouched.
- αcr = 11 is where ignoring second-order effects costs exactly 10 %. The convention quoted in practice is 10, where the cost is 11.1 %.
What this shows: Load changes stiffness. Tension adds 2P/L, compression takes it away, and no material property appears anywhere in it.
Module 10 · Buckling mode explorer
Try it
Buckling mode explorer
A pin-ended strut with EI = 21 000 kN·m². Change how many elements model it and watch the reported buckling load.
- Euler load π²EI/L²
- 8290 kN
- Model reports
- 10080 kN
- Ratio to Euler
- 1.2159
- Free degrees of freedom
- 2
unsafe — the model is stiffer than the strut
| Elements | P_cr (kN) | Ratio | Error |
|---|---|---|---|
| 1 | 10080 | 1.2159 | 21.59 % |
| 2 | 8353 | 1.0075 | 0.75 % |
| 3 | 8304 | 1.0016 | 0.16 % |
| 4 | 8295 | 1.0005 | 0.05 % |
| 6 | 8291 | 1.0001 | 0.01 % |
| 8 | 8291 | 1.0000 | 0.00 % |
A single element gives exactly 12EI/L². That is 21.6 % above Euler, in the unsafe direction, from a model that would give the exact answer for a static analysis.
Why it converges from above
- A finite element model of a continuum is a CONSTRAINED version of it: the displacement field can only take the shapes the elements allow.
- A constrained structure is stiffer, so the computed buckling load is always too high — and always in the unsafe direction.
- The same is not true of a static analysis with cubic elements, which is exact for a prismatic member under end loads. Same model, different question, different adequacy.
What this shows: One element per member is exact for statics and about 22 % unsafe for buckling — because a single element has no node at mid-height to displace.
Module 10 · Modal mass explorer
Try it
Modal mass explorer
A floor whose frequency follows the mass present. Move the imposed load and watch the response — it does not move monotonically.
What is actually on the floor when it vibrates — not the ultimate design value.
1.0 is the base design.
- Mass present
- 5.70 kN/m²
- Deflection under it
- 9.12 mm
- Frequency f ≈ 18/√δ
- 5.96 Hz
- In the plausible band?
- yes, 4–10 Hz
- Nearest walking harmonic
- 5.4 Hz
- Detuning from it
- 10.4 %
- Response factor
- 10.3
The floor is within 10 % of the 5.4 Hz harmonic and the response is elevated. Move the imposed load either way and it falls — which means neither end of the range is the worst case.
Why this breaks bracketing
- Sweep the imposed load from one end of its range to the other and the response rises, peaks, and falls again. It is not monotonic.
- So the three-run bracket of Module 14 — worst case at a corner — does not apply. Two runs at the ends would report a comfortable answer and miss the peak entirely.
- The worst case for a vibration problem is often the LIGHTEST one, because there is least mass to resist the excitation. That is the opposite of every static intuition.
What this shows: In a vibration model, mass is a load-case decision, and the worst case is often not at either end of its range.
Module 11 · Newton–Raphson explorer
Try it
Newton–Raphson explorer
Three nonlinear springs. Watch the residual, the tangent and the correction at every iteration.
System
Method
Modified holds the first tangent throughout: more iterations, each much cheaper.
Tension stiffening. The tangent only ever increases, so Newton–Raphson converges from any starting point and load control never fails.
| # | u (m) | R (kN) | k_T (kN/m) | Δu (m) |
|---|---|---|---|---|
| 1 | 0.0000 | 500.00 | 100.0 | 5.0000 |
| 2 | 5.0000 | -5000.00 | 3100.0 | -1.6129 |
| 3 | 3.3871 | -1393.04 | 1476.7 | -0.9434 |
| 4 | 2.4437 | -328.13 | 816.6 | -0.4018 |
| 5 | 2.0419 | -44.75 | 600.3 | -0.0745 |
| 6 | 1.9674 | -1.34 | 564.5 | -0.0024 |
| 7 | 1.9650 | -0.00 | 563.4 | -0.0000 |
- Result
- converged
- Iterations
- 7
- Displacement
- 1.9650 m
- Check: internal force
- 500.00 kN
must equal the applied load
Things worth trying
- Hardening at 500 kN: the first correction is the LINEAR answer, and it overshoots by nearly three times. That is what nonlinearity means in practice.
- Switch to modified Newton and every row shows the same tangent. It takes many more iterations and each is far cheaper.
- Yielding at 200 kN: above the plateau of 150 kN there is no displacement that balances the load, and no number of iterations finds one.
- Snap-through at 25 kN: above the limit point of 24.1 kN, load control either fails or lands on the far branch — a completely different state of the structure.
What this shows: The residual is a force in kilonewtons — the load the structure is not yet carrying — and convergence is a tolerance you chose.
Module 11 · Equilibrium path explorer
Try it
Equilibrium path explorer
The full path, traced by displacement control. Then try to reach a load under load control and see where it stops.
System
- Limit points
- 2
- Highest load on the rising branch
- 24.12 kN
- Snap-through?
- yes
- Load control at this load
- converged at u = 0.506 m
load control cannot pass this
Reading the plot
- Red dots mark the negative-tangent branch: real equilibrium states that load control cannot sit on.
- Orange markers are limit points, where the tangent is horizontal and the structure carries the most it can in that configuration.
- Move the attempted load above the first limit point and watch what load control does. Then note that displacement control traced the whole curve without difficulty.
What this shows: A limit point is a property of the structure. Load control cannot follow a descending branch; displacement control can.
Module 11 · Dynamic relaxation explorer
Try it
Dynamic relaxation explorer
Solve a static problem by pretending it is dynamic, then damping the motion until it stops.
Above the stability limit it diverges rather than converging.
- Stable?
- yes
- Converged?
- yes
- Steps taken
- 640
- Settled at
- 1.7725 m
- Newton–Raphson gives
- 1.7725 m
- Peak overshoot
- 1.9620 m
the same static problem, solved a completely different way
an intermediate state, and physically meaningless
Settled on the same answer as Newton–Raphson, without ever assembling or factorising a stiffness matrix — which is why the method is used for very large problems and for form-finding.
What the picture is not
- The mass is fictitious. It is chosen for convergence speed, not from the structure, so nothing about the transient is physical.
- Reduce the damping and the path oscillates for far longer before settling — on exactly the same answer.
- The peak overshoot is larger than the final displacement. Reading a value off an intermediate step would be reading a number the method invented.
What this shows: The mass and damping are fictitious and the intermediate states mean nothing. Only where it settles is real.
Module 11 · Explicit time-step explorer
Try it
Explicit time-step explorer
The stable step is the time a stress wave takes to cross the smallest element. Everything else follows from it.
Material
The SMALLEST, not the average. That is the whole point.
- Wave speed √(E/ρ)
- 5172 m/s
- Critical step h/c
- 7.734 μs
- Used step (90 %)
- 6.960 μs
- Steps required
- 8,621
- Element updates
- 1.72e+9
- If the smallest were 30 mm
- 11,494 steps
steps × elements — the real cost driver
0.8× the current run
The wave speed is a property of the material alone: 5172 m/s. Steel is a little over 5 km/s, concrete about 3.5, timber about 4.7 along the grain — worth knowing as a sanity check on any reported step.
The three things this controls
- The step is set by the smallest element in the model, not the average. Four sliver elements out of a million set it for all of them.
- A softer material has a slower wave and therefore a longer step. Timber tolerates a coarser time discretisation than steel at the same element size.
- Halving the element size doubles the step count AND doubles the element count, so the cost grows faster than element count alone would suggest.
What this shows: One small element sets the step for the entire model, and therefore the run time — which is why explicit analysis rewards mesh discipline more than any other.
Module 12 · Unit error laboratory
Try it
Unit error laboratory
A consistent steel cantilever, then one named unit slip applied to it. Read what every output does.
Slip
A length typed in millimetres into a field expecting metres is a thousand times too big.
- Quantity affected
- length
- Factor applied
- 1000.0000
| Output | Correct | With the slip | Ratio |
|---|---|---|---|
| Flexural rigidity EI | 94500.0000 | 94500.0000 | unchanged |
| Tip deflectionloudest | 0.0190 | 1.90e+7 | × 1.00e+9 |
| Root moment | 150.0000 | 150000.0000 | × 1000.0000 |
| Self-weight per metre | 0.8779 | 0.8779 | unchanged |
| Base reaction | 30.2674 | 5292.3814 | × 174.8543 |
| Tip stiffness | 1312.5000 | 1.31e-6 | × 1.00e-9 |
| Modal mass | 0.1266 | 126.5644 | × 1000.0000 |
| First frequency | 16.2074 | 1.62e-5 | × 1.00e-6 |
The moment has moved, which means the error is in the geometry or the load rather than in the stiffness. In a determinate structure the moment comes from equilibrium alone.
The technique
- Compare a quantity that depends on stiffness with one that does not. In a determinate structure the moment does not.
- Moment right, deflection wrong: stiffness. Both wrong: geometry or load. Both right, frequency wrong: mass.
- The powers of length are what set the factors — 10³ for a dimension, 10⁶ for an area, 10¹² for a second moment of area.
What this shows: A slip is detectable if you look at the right number and invisible if you look at the wrong one — and a mass error is invisible to every static check there is.
Module 12 · Restraint and release laboratory
Try it
Restraint and release laboratory
A shallow truss supported at bottom-chord level. Change how it is held and watch the load path change with it.
Supports
Deeper means the supports sit further from the neutral axis, so the arching effect grows.
Coincident node at B1
Two nodes at the same coordinate that were never merged.
- Solves?
- yes
- Equilibrium residual
- 4.71e-13 kN
- Total horizontal reaction
- 2.27e-13 kN
- Bottom chord at midspan
- 114.1 kN
as expected under vertical load
tension, as a beam
Pin and roller: statically determinate, no horizontal reaction under vertical load, and the bottom chord is in tension as a beam analogy predicts.
Try this in order
- Start with pin and roller and note the bottom chord tension. That is the force the member has to be designed for.
- Switch to pinned both ends. A horizontal reaction appears from nowhere and the bottom chord tension collapses. Nothing warns you.
- Increase the depth and watch the effect grow — the further the support sits from the neutral axis, the stronger the arching.
- Turn on the coincident node with the supports back to pin and roller, and watch the residual stop balancing.
What this shows: Over-restraint runs cleanly and changes the structure. A truss pinned at both ends below its neutral axis works as an arch, and its bottom chord loses its tension.
Module 12 · Mesh quality explorer
Try it
Mesh quality explorer
Distort a quadrilateral and watch three independent metrics move. Then size a mesh by the two rules.
Slide the top edge sideways to introduce pure skew.
Mesh sizing
- Aspect ratio
- 1.00
- Worst corner off square
- 0.0°
- Smallest internal angle
- 90.0°
- Minimum Jacobian
- 0.2500
- Verdict
- good
Sizing the mesh
- Twice the thickness
- 0.60 m
- Span over ten
- 0.72 m
- Span-to-depth ratio
- 24.0
- Recommended
- 0.60 m
At a span/depth of 24 the two rules give nearly the same size, which is why either is a reasonable start.
What this shows: Aspect ratio, skew and a negative Jacobian are three different defects with three different consequences — and a folded element is not an element at all.
Module 12 · Mesh convergence tool
Try it
Mesh convergence tool
Two refinement sequences. One settles; one grows at a constant ratio and never will.
Quantity
The series settles. Halving the element size stops changing the answer, and that is what 'the mesh is fine enough' means — not that the mesh looks nice.
| Elements | Value | Change | Ratio to previous |
|---|---|---|---|
| 1 | 0.0307 | — | — |
| 2 | 0.0308 | 0.14 % | 1.0014 |
| 4 | 0.0308 | 0.04 % | 1.0004 |
| 8 | 0.0308 | 0.01 % | 1.0001 |
| 16 | 0.0308 | 0.00 % | 1.0000 |
| 32 | 0.0308 | 0.00 % | 1.0000 |
- Converges?
- yes
- Limit
- 0.0308
- Adequate at
- 2 elements
change below 2 %
The increments shrink. That is convergence, and the last value is usable.
The discriminator
- Look at the RATIO column, not the value column. A converging sequence has ratios tending to 1; a singular one has a constant ratio above 1.
- One extra refinement settles which you are looking at, and it is the cheapest question you can ask of a mesh.
- For the singular case the honest fix is not a finer mesh. It is a different quantity: the punching shear at a flat-slab column is the difference in column axial force above and below, which has no mesh in it at all.
What this shows: 'The answer changed when I refined it' tells you the previous mesh was inadequate. Whether the new one is adequate depends on how the increments behave, not on the values.
Module 12 · Model Doctor
Try it
Model Doctor
80 original, fictional cases across 12 fault categories. Read the symptoms, commit to a diagnosis, then open the method.
Restraints and supports
6 in this category
- Difficulty
- foundation
- Cases written
- 80 of a target 80
The frame that will not solve
A single-bay, single-storey portal frame modelled with beam elements. Both column bases are given vertical restraint only. Gravity load is applied to the rafter.
Symptoms
- The solver stops with a message about a singular matrix or a zero pivot
- No results are produced at all
- Adding more load makes no difference to the message
What is your diagnosis?
Nothing is revealed until you commit. That is the discipline the module teaches: an engineer who reads the answer first will find evidence for it in any model.
About these cases
- Every case is invented. None is a retelling of a real project, and none is taken from any source.
- Where a real failure is relevant it is named once, in Module 13, with a pointer to the published investigation — not reconstructed.
- 80 cases are written against a target of 80. The categories still short are listed in the coverage matrix.
What this shows: Name the discriminating check before you name the cause — an engineer who reaches for the diagnosis first will find evidence for it.
Module 13 · Model assurance workspace
Try it
Model assurance workspace
Build a model record. The workspace names what is missing rather than reporting a completeness score, because the fields are not equally load-bearing.
- Fields completed
- 0 of 14
- Load-bearing fields missing
- 6
- Record status
- incomplete
Missing, and why each matters
- Engineering question: What this model exists to answer, in one sentence.
- Analysis type, and why: The 'why' is a validation statement.
- Supports and releases: 'Bases pinned' needs a reason.
- Verification carried out: What check, against what, with what result.
- Deliberate exclusions: What was considered and left out, and why. A reviewer needs this to disagree.
- Limitations: What this model must NOT be used for. Write it for someone reading it out of context.
This produces a Queensferry model review record. It is a teaching artefact and a reasonable structure for organising the information. It is not a category 2 or category 3 checking form and makes no claim to satisfy any external requirement.
What this model exists to answer, in one sentence.
Name and date.
Name and date.
Results change between versions.
The 'why' is a validation statement.
Stated once, explicitly.
With the reasoning for anything not obvious.
'Bases pinned' needs a reason.
Including which were NOT run, and why.
What was reported and what was decided about each.
What check, against what, with what result.
Which variables, what range, what the answer did.
What was considered and left out, and why. A reviewer needs this to disagree.
What this model must NOT be used for. Write it for someone reading it out of context.
6 load-bearing fields still empty. A completeness percentage would be misleading here — these are the ones a reviewer needs most.
What this shows: An assumption not written down cannot be reviewed — and the exclusions matter as much as the inclusions, because they are what a reviewer can disagree with.
Module 13 · Three-stage model check
Try it
Three-stage model check
Record what each check actually was. The workspace will not accept a stage marked done with no method recorded.
- Stages recorded
- 0 of 3
- Recorded without a method
- 0
Checking effort should be proportionate. A scheme-stage sizing needs Stage 1 and a quick Stage 2. A transfer structure carrying six storeys needs all three — and deciding which is itself part of the assurance.
Stage 1 — look and think
Minutes. Finds most faults.What did you look at? Displaced shape, moment distribution, discontinuities, symmetry, equilibrium.
Stage 2 — check it another way
An hour or two.What different route did you use? A hand calculation, a cruder model, a limiting case, an energy check.
Stage 3 — check independently
Days. Reserve it for what warrants it.Who or what was independent? A different person, a different model built from the brief, a different tool.
What makes each stage count
- Stage 1 must be predicted first. Looking at the result and then judging it is rationalisation, not checking.
- Stage 2 must be a DIFFERENT route. A finite element model checked by another finite element model from the same assumptions has been checked against nothing.
- Stage 3's independence is mostly about the person. A second engineer building from the brief makes different assumptions, and the disagreements are the assumptions nobody had made explicit.
What this shows: 'Checked' is not a record of anything. A check that cannot be named cannot be reviewed, and a reviewer cannot disagree with it.
Module 14 · Sensitivity explorer
Try it
Sensitivity explorer
A floor beam with five inputs, each with a range justified from the project rather than assumed. Read the elasticities against the exponents you already know.
Output
- Low bound
- 0.00055
- Base case
- 0.00182
- High bound
- 0.00490
- Spread high/low
- 8.97
- Bracket valid?
- yes
| Variable | Elasticity | Range | Swing | Monotonic? |
|---|---|---|---|---|
| Imposed load present in service | 0.51 | 0.40–2.50 kN/m² | 88.7 % | yes |
| Section depth | -2.87 | 400.00–533.00 mm | -78.7 % | yes |
| Span | 3.96 | 8.70–9.30 m | 26.4 % | yes |
| End restraint stiffness | -0.04 | 0.00–60000.00 kN·m/rad | -24.9 % | yes |
| Young's modulus | -0.96 | 205.00–215.00 GPa | -4.6 % | yes |
Every variable moved the output the same way across its whole range, so pushing them all to their worst ends really does bracket the answer.
Where each range comes from
- Span: Grid set by the architect; construction tolerance and a possible late grid shift of one column line.
- Section depth: The serial sizes available within the agreed floor zone.
- Young's modulus: Structural steel. One of the few genuinely tight inputs, and its narrow range is the point.
- Imposed load present in service: What is actually on the floor when it vibrates, not the ultimate design value. The widest range here, and usually the one that decides the answer.
- End restraint stiffness: A nominally pinned connection behaves as continuous at vibration strains and as a pin at ultimate. The range spans both.
Two things this study is doing at once
- Verifying: for deflection the elasticities must be +4 for span, −3 for depth and −1 for modulus, because those are the exponents in the formula. Anything else means the model is not doing what beam theory says.
- Exploring: the tornado ordering directs effort at the inputs with the largest swing, which are not the ones with the largest elasticity. Young's modulus has an elasticity of −1 and almost no swing, because it is known to ±2 %.
- And it cannot find interactions. Varying one input while holding the others at base values is silent about combinations, and no amount of finer sampling fixes that.
What this shows: Swing = elasticity × range, and the ranking follows swing — so a tight input with a big exponent can matter less than a loose one with a small exponent.
Module 14 · Design space explorer
Try it
Design space explorer
Sweep two variables together and see the surface. Then compare the cost of doing that for all five.
Horizontal axis
Vertical axis
Darker blue is the smallest deflection (0.97 mm); orange is the largest (2.90 mm). The shading is a secondary cue — the range is stated in the label so it does not depend on colour.
- Cells sampled
- 81
- Smallest deflection
- 0.974 mm
- Largest deflection
- 2.898 mm
- Ratio across the space
- 2.98
- One-at-a-time runs, all 5 variables
- 45
- Full factorial, all 5 variables
- 59,049
1312× the cost, and it is what finds interactions
What the surface shows that two sweeps cannot
- If the contours were straight parallel bands, the two variables would act independently and two separate sweeps would tell you everything.
- Where the contours curve or fan out, the effect of one variable depends on the value of the other — an interaction, and one-at-a-time sampling is blind to it.
- Five variables at nine values each is 59 049 runs for a full factorial against 45 for one-at-a-time. That gap is why Module 16 exists.
What this shows: A two-variable sweep shows the interaction that two one-variable sweeps cannot — and a full factorial over five variables is unaffordable.
Module 15 · Ground structure explorer
Try it
Ground structure explorer
Start with every member and remove the ones carrying least. The tool backs off when a removal would create a mechanism.
Remove members carrying less than this fraction of the largest force.
- Members at the start
- 23
- Members kept
- 23
- Members removed
- 0
- Structural volume at the start
- 10587 kN·m
- Structural volume now
- 10587 kN·m
- Still standing?
- yes
- Iterations
- 1
Nothing was removed at this threshold: every member is carrying more than the cut-off. Raise it and watch the lightly-loaded members go.
The same idea, applied to four bracing layouts
| Layout | Volume (kN·m) | Topology constant |
|---|---|---|
| K-bracing | 1433 | 0.000 |
| Knee brace (asymmetric) | 1600 | 0.000 |
| Single diagonal | 1733 | 0.000 |
| X-bracing | 1733 | 0.000 |
The topology constant is identical for all four — zero, here, because every external force has zero work on its own position. That is the check that the comparison is fair. If it drifted, something about the loads or the supports would have changed and the volumes would not be comparable.
What the load path does not include
- A compression member also has to be stable, so its real volume is larger than the load path suggests. Compare like with like, or design the members.
- Connections are not in this number. Where connections drive member size — timber especially — the ranking can reverse.
- It assumes member area is proportional to force, which is true for ties and only approximately true for struts.
- The lightest structure is not automatically the cheapest, the lowest-carbon, the simplest or the most robust.
What this shows: Layout optimisation is a search, not a formula — the answer depends on where you started and on the removal rule you chose.
Module 15 · Truss shape optimiser
Try it
Truss shape optimiser
Sweep the depth. Both material and stiffness have interior optima — at different depths.
2 m
- Least-material depth
- 5 m
- Volume there
- 13024 kN·m
- Inspecting depth
- 2 m
- Volume there
- 19120 kN·m
- Deflection there
- 38.90 mm
47 % above the minimum
least at about 8 m, deeper than the volume optimum
The volume curve has an interior minimum: shallow costs chord force, deep costs diagonal length. So does the deflection curve, at a different depth: at constant member area a very deep truss softens again, because its diagonals have become long. Two objectives, two different depths, from the same structure.
Reading it
- Chord force is moment over depth, so the shallow end is dominated by chord material.
- Diagonals lengthen in proportion to depth, so the deep end is dominated by web material — and by web flexibility, which is why the deflection turns round too.
- An interior optimum means a genuine trade-off, and a design pushed to either extreme is worse than one in the middle.
- If the truss is deflection-controlled, the material optimum is not the answer — and no single-objective optimiser will mention that. 'Deeper is always stiffer' is only true if you re-size the members as you go.
What this shows: Two objectives give two different answers from the same sweep — and which one governs depends on whether the design is strength-controlled or deflection-controlled.
Module 15 · Size optimiser
Try it
Size optimiser
A fully-stressed design, iterated. Add a deflection limit or a discrete catalogue and watch what each costs.
Structure
The indeterminate one has a duplicated diagonal and both supports held horizontally.
Sections available
Zero means no deflection constraint — stress alone governs.
- Converged?
- yes
- Iterations
- 2
- Governing constraint
- stress
- Total volume
- 8200 cm³
- Mass
- 0.064 t
- Mean utilisation
- 1.000
- Deflection
- —
exactly critical everywhere — no reserve anywhere
| Member | Area (cm²) | Utilisation |
|---|---|---|
| AC | 5.00 | 1.000 |
| BC | 5.00 | 1.000 |
| AB | 4.00 | 1.000 |
Every member is at 100 % utilisation. The optimiser did exactly what it was told — and the result has no reserve anywhere, so a single member failing has nothing to redistribute into. Robustness is not an emergent property of minimising weight; if it matters it has to be a constraint.
Try this
- Determinate, stress only: converges in one or two passes with every member fully stressed. The forces do not depend on the sizes.
- Switch to indeterminate: sizing changes the forces, so the loop has to run several times. That is the snowball.
- Add a deflection limit: the governing constraint changes and the volume rises. Stress-only optimisation can violate serviceability without saying so.
- Switch to the catalogue: utilisations scatter, volume rises, and fabrication gets simpler.
What this shows: Sizing changes the forces, so one pass is never the answer in an indeterminate structure — and a fully-stressed design is exactly critical everywhere, which is not the same as robust.
Module 15 · Form-finding explorer
Try it
Form-finding explorer
Set a force density for each cable and the equilibrium shape falls out of a linear solve. The shape is an output.
Fixing this ratio is what turns a nonlinear problem into a linear one.
Raise the force density on the left half only and watch the shape warp.
- Solved?
- yes
- Maximum sag
- 2.2500 m
- Sag / span
- 0.2250
- Symmetric?
- yes
Uniform force densities and uniform loads give a symmetric hanging shape. Double q and the sag halves exactly — the relationship is linear, which is the whole trick.
Why the shape is not an aesthetic choice
- Fixing q = F/L for every cable makes the equilibrium equations linear in the coordinates, so the shape comes from a single linear solve.
- The result is funicular: it carries its load in pure axial tension, with no bending anywhere.
- Invert it and you have the funicular arch for that loading — which is why hanging models were used to design masonry vaults long before anyone could solve the equations.
- Set the load to zero and the cable becomes straight: with no transverse load there is nothing for it to hang under.
What this shows: In modelling you draw a shape and ask what it does. In form-finding you state what you want it to do and it tells you the shape.
Module 16 · Search algorithm comparison
Try it
Search algorithm comparison
Six methods on the same landscape, with the evaluation count for each. Everything is seeded, so the numbers here are the numbers the lesson quotes.
Landscape
One basin. Any downhill method reaches the bottom, and the only question is how many evaluations it spends.
Show the path of
Dark blue is the lowest objective value (1.015); orange the highest (14.348). The shading is a secondary cue — every value is in the table below.
| Method | Best found | Gap | Evaluations | Trapped? |
|---|---|---|---|---|
| Grid search | 1.0150 | 0.0150 | 441 | no |
| Gradient descent | 1.0000 | 0.0000 | 79 | no |
| Random search | 1.0432 | 0.0432 | 441 | no |
| Simulated annealing | 1.0019 | 0.0019 | 441 | no |
| Genetic algorithm | 1.0000 | 0.0000 | 401 | no |
| Particle swarm | 1.0001 | 0.0001 | 441 | no |
Gradient descent reached within 0.0000 of the global optimum in 79 evaluations.
What this method is doing
- Follows the slope downhill from where it started. It cannot leave the basin it began in, and it does not know there is anything outside it.
Things worth trying
- On the smooth landscape, compare gradient descent's evaluation count with everything else. It wins outright — right answer, a fifth of the budget.
- Switch to the rugged landscape without changing anything. The same method is now trapped.
- Move the start to (6, 3) on the rugged landscape and gradient descent finds the global optimum. Nothing about the method changed.
- Grid search always evaluates 441 times regardless. In five variables at the same resolution it would be 4 084 101.
What this shows: No method wins on every landscape — and on a rugged one the answer a downhill method gives is decided by where it started.
Module 17 · Pareto explorer
Try it
Pareto explorer
Four scheme options for the same building, on any two objectives. The tool builds the front, marks what is dominated, and refuses to name a winner.
Option set
The second is three designs contrived so one sits in a dip.
Horizontal axis
Vertical axis
| Option | Embodied carbon | Structural depth | Status | Crowding |
|---|---|---|---|---|
| CLT and glulam hybrid | 447 | 465 | on the front | ∞ |
| Concrete band beam and slab | 666 | 374 | on the front | 2.00 |
| Composite steel frame | 782 | 480 | dominated (rank 1) | — |
| Reinforced concrete flat slab | 866 | 318 | on the front | ∞ |
- On the front
- 3 of 4
- Dominated
- 1
- Infeasible
- 0
- Reachable by a weighted sum
- 3 of 3
- Unreachable at any weighting
- none
Every front member is reachable by some weighting here, because this front happens to be convex. Switch to the concave demonstration and one design becomes unreachable at every weighting.
Knee: Concrete band beam and slab
- The knee is where the trade-off curve bends most sharply. It is a good place to start a conversation and a bad place to end one: it depends on the axes you chose and their scaling, and it knows nothing about who is paying or what they value.
Your decision
The tool will not choose. Pick an option and say why — a rejection or a selection with no reason cannot be reviewed and cannot be revisited.
Still missing: chosen, reason, decidedBy. Six months from now the choice will be a fact and the reason will be gone unless it is written down.
Try this
- On the four real schemes, plot carbon against depth: three are on the front and the composite steel frame is dominated by the concrete band beam on both axes.
- Now switch the vertical axis to mass. The front collapses to a single design — the CLT hybrid dominates everything. Nothing about the schemes changed; the question did.
- Switch to the concave demonstration. All three designs are non-dominated, and the balanced middle one wins at none of the 41 weightings.
What this shows: Everything on the front is a legitimate answer — and a weighted sum cannot reach a design that sits in a concave dip.
Module 18 · Engineering classifier
Try it
Engineering classifier
Two abstract symptom scores, four fictional warning categories. Move the point and see which class it is assigned to — and which training examples decided it.
The features are deliberately unnamed. The point is about the data, and naming them would invite you to reason about the symptom instead of the distribution.
- Classified as
- Missing or excessive restraint
- Confidence
- 100 %
- Neighbours consulted
- 3
3 of 3 neighbours agreed
The neighbours agree — which tells you the point is well inside a cluster of training examples, and nothing more than that.
What confidence is and is not
- It is the proportion of the k nearest training examples that voted for the winning class. Nothing more.
- It is NOT a probability that the answer is right. Move the point far outside every cluster and the confidence can still be 100 %, because the nearest neighbours still agree with each other.
- That is the same failure as the surrogate's: a fitted method is defined everywhere, and has no representation of 'outside my experience'.
- k-nearest-neighbour is used here because every prediction is traceable to specific examples — the circled points are the ones that decided it.
What this shows: Confidence is the proportion of neighbours that agreed. It is not a probability that the answer is right.
Module 18 · Training data bias explorer
Try it
Training data bias explorer
Starve one class in the training set, then test on a balanced set. Watch what happens to accuracy, and to that class's recall.
Connectivity faults are rare in an archive — that is why this happens.
| Class | Trained on | Recall | Precision |
|---|---|---|---|
| Missing or excessive restraint | 80 | 96.7 % | 56.9 % |
| Unit or scale error | 80 | 85.0 % | 87.9 % |
| Mesh density or quality | 80 | 91.7 % | 85.9 % |
| Disconnected or duplicated geometry | 3 | 26.7 % | 100.0 % |
- Overall accuracy
- 75.0 %
- Balanced training would give
- 90.4 %
- Worst class recall
- 26.7 %
- Accuracy cost of the imbalance
- 15.4 points
- Recall cost on the starved class
- 68.3 points
the headline figure
connectivity
Overall accuracy is 75.0 % — respectable enough to be accepted in a report. Recall on connectivity is 26.7 %, so the model misses most of the class it was probably built to catch.
Why this is the normal case, not the pathological one
- The rarest class in an archive is usually the one worth detecting — anomalies, defects and unusual failures are rare by definition.
- So the class most likely to be starved in training is the class the model exists to find.
- And overall accuracy is least sensitive to exactly that class, because it is the smallest share of the test set.
- With more classes it gets worse: a class collapsing costs 16 accuracy points out of four classes and 3 points out of twenty.
What this shows: Accuracy summarises how common the common classes are. Only per-class recall shows what happened to the one you built the model for.
Module 18 · Surrogate model explorer
Try it
Surrogate model explorer
Fit a fast approximation to a slow function over one range, then query it outside. The error rises by orders of magnitude and nothing about the output changes.
Underlying function
- Query at
- 13.00
- Inside the trained range?
- no — trained only to 6
- Surrogate says
- 101.1853
- True value
- 26.2105
- Error at this query
- 74.9747
- Interpolation error (RMS)
- 0.0660
- Extrapolation error (RMS)
- 45.85
- Extrapolation penalty
- × 695
The surrogate returned 101.185 in the same format, at the same speed, with no warning. It has no representation of where its data was — it is a function, defined everywhere.
What the engineer has to do
- Record the range of every input in the training set. That is bookkeeping, not cleverness, and it is the only defence.
- Check every query against it, and refuse or flag anything outside.
- Confirm the promising candidates with the deterministic analysis. The surrogate searches; the analysis answers.
- Try the cubic function: when the truth is in the surrogate's own family, extrapolation is nearly free. That is a fact about that function, not a general licence.
What this shows: Nothing in a surrogate's output distinguishes an interpolation from an extrapolation — the boundary has to be enforced by the engineer.
Module 18 · Overfitting explorer
Try it
Overfitting explorer
Fit a polynomial of increasing degree to noisy data drawn from a straight line. Two error curves, and only one of them turns round.
More data moves the best degree back towards the true relationship.
- Degree selected
- 3
- Training error
- 0.6990
- Test error
- 1.4310
- Test / training ratio
- 2.0
- Best degree by test error
- 3
- Points needed to fit exactly
- 12
4 parameters
a healthy model is near 1.5; nineteen is overfitting
degree 11 has one parameter per point
This is the best degree by test error. Note that the data came from a STRAIGHT LINE — the best model on a finite noisy sample is not necessarily the true one.
What to try
- Push the degree to 10 and watch the training error collapse while the test error rises. A model chosen on training error alone would pick this.
- Set the noise to zero. The two curves converge, because there is no noise for the extra parameters to learn.
- Increase the training points. The best degree moves back towards 1 — more data shifts the balance towards the true relationship.
- The polynomial fit itself is a least-squares solve, and at high degree the normal-equations matrix becomes ill-conditioned — the same arithmetic problem as Module 12's stiffness range.
What this shows: Training error falls with every added parameter; test error turns round — and nothing in the training data reveals the gap.
Module 18 · Human approval workflow
Try it
Human approval workflow
A recommendation with evidence, uncertainty and a deterministic check. Try to get it approved with the check unrun.
Evidence recorded
Deterministic check
Human review
Recommendation
Increase the transfer beam from a 762 UB to an 838 UB
- Confidence
- 94 % — which describes how well the model fits its training data, and is not a probability that this is right.
- Evidence
- Comparable spans in the training set used a deeper section; Deflection is the governing check in 8 of 10 similar cases
- What would make it wrong
- The floor zone cannot accommodate the extra 76 mm of depth
- Deterministic check
- Available and not run.
- May this be acted on?
- no
- Blockers
- 2
Why not
- A deterministic check exists for this and has not been run. Confidence is not evidence where a calculation is available.
- No human review recorded.
Try this
- Set the confidence to 100 % with the check unrun. It still cannot be acted on — confidence is not a substitute for a calculation that could have been done.
- Set the check to 'none exists'. Now confidence and evidence and a review are what you have, which is the situation where a recommendation genuinely helps.
- Remove the evidence. Without it there is nothing for a reviewer to examine, so the review would be a formality.
- Reject at review. A recorded rejection is as useful as an acceptance — it says the question was considered.
What this shows: Where a deterministic check exists it must have been run — confidence is a property of the model's fit, not evidence about the structure.
Module 19 · Workflow risk exercise
Try it
Workflow risk exercise
One link in a connected workflow at a time. Identify the risks that apply, then see which they are and who owns them.
Architectural geometry → parametric model
Grid, levels and envelope imported to drive the structural generator.
Architectural geometry → parametric model
Grid, levels and envelope imported to drive the structural generator.
Which risks apply here?
Select the risks you think apply, then check. There is usually more than one, and the owner is rarely the person who set the link up.
This course’s currency register
16 time-sensitive claims are tracked. 8 are stable principles that do not date. 7 require verification against a current authoritative source, and are marked as such wherever they appear. 1 is reported as a 2022 position rather than as current practice.
- Stable principle
- 8
- Verified
- 0
- Requires verification
- 7
- As at 2022 — not checked since
- 1
- Superseded
- 0
Areas tracked
- Analysis methods: 1 claim
- Second-order effects: 1 claim
- Meshing: 1 claim
- AI and machine learning: 4 claims
- Cloud and connected working: 2 claims
- Quantum computing: 1 claim
- BIM and interoperability: 1 claim
- Design standards: 1 claim
- Embodied carbon: 2 claims
- Security and data protection: 1 claim
- Digital fabrication: 1 claim
What this shows: Moving computation elsewhere relocates the questions of location, access and liability — it does not remove them, and the analysis liability does not move at all.
Module 20 · Computational carbon explorer
Try it
Computational carbon explorer
Four schemes across any grid and building size. Every figure carries its provenance, because the factors are illustrative teaching values.
Each factor is moved up and down by this, one at a time, and the ranking re-run.
| Scheme | Carbon (t) | kg/m² | Mass (t) | Depth (mm) |
|---|---|---|---|---|
| CLT and glulam hybrid | 447 | 55.9 | 1754 | 465 |
| Concrete band beam and slab | 666 | 83.2 | 3798 | 374 |
| Composite steel frame | 782 | 97.8 | 2864 | 480 |
| Reinforced concrete flat slab | 866 | 108.2 | 4963 | 318 |
- Lowest carbon
- CLT and glulam hybrid
- Lightest by mass
- CLT and glulam hybrid
- Worst over best
- × 1.94
- Spread from scheme choice
- × 1.93
- Spread from span (6 to 12 m)
- × 2.09
- Which decision moves it more
- the grid
- Ranking survives ±30 %?
- yes
The ranking survives a ±30% change to any single factor, so the comparison is worth acting on even though the factors are not verified.
Note the mass ranking
- At most spans the lightest scheme by mass is not the lowest-carbon one. Change the span and watch the two rankings separate — carbon is quantity times factor, and the factor varies by more than an order of magnitude between materials.
Provenance
Illustrative teaching values, not verified against a current published dataset. Replace with dated factors from a current source before quoting any figure outside this course. As at 2026-07-26. Status: requires-verification.
What is not in these figures
- Foundations and substructure — which would widen the lightest scheme's advantage.
- Cladding, which follows from the structural depth and is often more carbon-intensive per square metre than the frame.
- Cost, programme and buildability, none of which correlates reliably with carbon.
- Sequestration in the timber options, which is excluded — the conservative choice, and it is stated rather than assumed.
What this shows: Span moves carbon as much as scheme choice does — and a ranking is worth acting on only if it survives the uncertainty in its own factors.
Module 21 · Integrated project workspace
Try it
Integrated project workspace
Choose a brief and work the sixteen steps. The prediction cannot be entered once the analysis has run, because a prediction made afterwards is not one.
Project brief
- Steps completed
- 0 of 16
- Before any model (1–8)
- 0 of 8
- Prediction recorded
- no
- Verification plan recorded
- no
Once this is pressed, step 8 locks. That is the whole mechanism: a prediction written after seeing the result is a search for reasons the number might be right.
Six-storey office, 12 m grid proposed
8 000 m² over six storeys. The architect proposes a 12 m column-free grid for letting flexibility. The client has committed publicly to an embodied-carbon target. Floor zone agreed at 1 100 mm including services.
The engineering question, in one sentence.
Several genuinely different forms, not variations of one.
What you will vary, and what you are fixing.
Where geometry comes from, where results go, what is lost.
Whole or component, 1D/2D/3D — and what it will NOT answer.
From the required outputs.
List the nonlinear features first.
Estimate the answer NOW, before the model exists.
With the diagnostics run as you go.
Written before results arrive. What check, against what.
Which inputs it depends on, with ranges that have a basis.
Where the question is 'which of these'.
Same method for every option; test the ranking.
Any legitimate role? Does a deterministic method exist?
Purpose, assumptions, exclusions, limitations, sign-off.
What you advise, on what evidence, what would change it.
8 of the first eight steps are still empty. Those cost about a morning between them and decide almost everything; steps 9 onwards cost weeks and can only implement what they decided.
What none of these steps supplies
- An expectation of what the structure does. Every check depends on having one, and it comes from Structural Behaviour rather than from any procedure.
- The judgement that the brief has already given away the answer — which is what the module's worked project turned on.
- How much checking is enough. Module 13 said it should follow the consequence; judging the consequence is not on any list.
What this shows: Ten of the sixteen steps come before the first result is read — and the two that cost nothing, prediction and the verification plan, are the two most often skipped.