Project 06 / 10Structural analysis · Optimization
Truss Design: Buckle Up
EK 301, Boston University · Fall 2025
A planar acrylic truss optimized in MATLAB to carry the highest load before buckling.
- Completed
- Simulation
- Mechanical

Key result
46.59 oz
Predicted maximum load
PredictedFinal design, ±1.58 oz, from the MATLAB buckling model. The preliminary design was predicted at 44.93 oz (about 3.7% lower). These are predictions, not measured loads.
Technical highlights
- An 11-member, 7-joint acrylic truss, solved in MATLAB to find the first compression member to buckle.
- Predicted to carry 46.59 ±1.58 oz, up from 44.93 oz for the preliminary design (about 3.7% higher).
- Predicted load-to-cost ratio of 0.2478 oz/$ at a cost of $188, with a factor of safety of 2.0 applied to the computer result.
- My contribution
- Truss design and the MATLAB analysis, in a team of two (three in the preliminary phase)
- Checked the MATLAB code against a hand-solved practice truss
- Tools
- MATLABOnshapeOnline truss solver
Overview
For EK 301 at Boston University, my team designed an 11-member acrylic truss and wrote MATLAB code to predict how it fails. The final design is predicted to carry 46.59 ±1.58 oz at a cost of $188.
Engineering challenge
The goal was to support the highest possible load before buckling, under strict rules: a 32 in span between a pin and a roller support, the load applied 2 in above the pin, every member between 8.5 and 14 in long, no more than 120 in of total member length, and a simple truss made only of triangles (11 members, 7 joints). Designs were also scored on load-to-cost ratio and safety factor.
Acrylic members fail by buckling in compression, and the buckling load depends strongly on member length, so long compression members were the main risk.
Design process
A buckling lab measured how strip length affects buckling load across five nominal lengths from 9 to 14 in, and confirmed that longer strips buckle at lower loads. The class buckling curve, a power law F = C·L^-α with C = 1909.7 oz, α = 1.74 and ±1.58 oz of uncertainty, gives each compression member its buckling strength.
Our MATLAB code builds the joint-and-member connection matrix, writes the equilibrium equations at every joint and solves for all member forces and support reactions. Solving once with a 1 oz test load gives each member's force ratio, so the failure load is set by the first compression member to reach its buckling strength. We checked the code against a hand-solved practice truss, and the two solutions agreed.
We tested many candidate geometries in an online truss solver, then ran each through the MATLAB code. Shortening long compression members and spacing the joints more evenly raised the predicted load. In the final design we flattened the top chord into a trapezoid by raising Joint 5 to the height of Joint 6, and moved where the load is applied.
Testing & results
First design, final design

44.93 ozPredicted

46.59 ozPredicted
Both loads are predicted by the MATLAB model, not measured. The final design flattened the top chord into a trapezoid by raising Joint 5 to the height of Joint 6 and moved where the load is applied, and the critical member moved from member 4 to member 5. Compression is red and tension is blue.
The final design is predicted to fail at 46.59 ±1.58 oz, up from 44.93 oz for the preliminary design (about 3.7% higher), and the critical member moved from member 4 to member 5. The truss costs $188, for a predicted load-to-cost ratio of 0.2478 oz/$.
After discussing the Hartford Civic Center roof collapse and NSPE Canon No. 1, we treated the computer result as an ideal upper bound rather than a guarantee, and set a factor of safety of 2.0.
Gallery


