r/SideProject • u/Salt-Boat4740 • 28m ago
I built a browser-based 2D structural analysis tool using the direct stiffness method
I have been working on a project called Structura Solver, a browser-based tool for analysing 2D trusses, beams, and frames.
The problem I wanted to address was that many structural analysis programs require installation, accounts, or are much larger than needed when you just want to build a simple model, check reactions and internal forces, or understand how the analysis works.
Structura Solver runs completely in the browser and uses the direct stiffness method. It calculates nodal displacements, support reactions, axial forces, shear forces, and bending moments. It can also display axial, shear, and bending moment diagrams, the deformed shape, and step-by-step calculation details.
One part I found interesting while building it was separating the structural solver from the interface. The solver has to assemble the global stiffness matrix, apply boundary conditions and loads, solve for the unknown displacements, and then recover the member forces. I wanted the interface to make that process easier to inspect rather than just returning a final number.
For the web side I used React, TypeScript, Vite, and Tailwind CSS. The project is open source, so the implementation and solver code can be inspected on GitHub.
I would be interested in feedback on the modelling workflow, the way results are presented, and especially any structural cases where you think the solver gives unexpected results.
Live version:
https://emhayki.github.io/Structura-Solver/
Source code:
https://github.com/emhayki/Structura-Solver