The problem
A steel frame has more feasible designs than anyone can check by hand. Choose the sections and you have made hundreds of coupled decisions, each one redistributing forces through everything else — and somewhere in that space sits a much lighter frame that still passes every code check. Intuition and a few iterations will not find it. My structural MSc was about searching that space properly: let the structure itself, not a rule of thumb, decide which design wins.
What I built
Two pieces, both from scratch in MATLAB — no FE package, no optimisation toolbox:
- A finite-element solver. The engine that turns a candidate design into real behaviour — assembling stiffness, solving for displacements, recovering member forces and stresses. I validated it against Abaqus so the numbers could be trusted.
- A meta-heuristic optimiser. A nature-inspired search — Grey Wolf Optimisation — wrapped around the solver: propose a design, score it on weight subject to the checks, keep what survives, repeat across thousands of candidates. A published paper came out of tuning how it balances exploration against exploitation.
Together they are a loop: the optimiser explores, the solver judges, and the frame converges somewhere lighter than a human would have stopped.
Why it still matters
This is the oldest work on the site and, quietly, the seed of the newest. The shape of it — a search proposing designs, a trusted engine judging each one — is exactly the pattern I now build with agentic AI in place of a single hand-coded algorithm, pointed at embodied carbon instead of weight. There was no AI in 2019; I wrote every line of the loop myself. That is the point: knowing what is under the optimiser is the difference between driving the tool and trusting it on faith.
Tech
MATLAB — hand-written finite-element solver and meta-heuristic (Grey Wolf) optimiser, validated against Abaqus. Method published at the 8th National Conference on Earthquake & Structures.