A Next.js app that solves statically indeterminate
trusses, beams, and frames using the matrix displacement method.
- Project summary
- Project demo
- Features
- Quick start
- Problem solving
- Project code sumary
- Connect with me
- References and resources
- License
- Contributions and issues
The main goal of this project is to allow the user to understand the matrix displacement method by learning visually and interactively. The matrix displacement method, or the stiffness method, usually requires an understanding of statics and structural mechanics (analysis) - my goal is to make content that is approachable from any level of understanding of these topics.
I am referring to statics and structural analysis within the context of Civil Engineering, they are both courses required for ABET accredited Civil Engineering degrees. Regardless if you are a Civil Engineer (or studying to become one), they are interesting and intuitive subjects that are a direct implication of Newtonian Mechanics. Newton's first law states that an object at rest will stay at rest
implying that the sum of all forces on that object equal zero.
How does this apply to Civil Engineering? Well, when designing and modeling any structure, our end goal is for the structure to be rigid - Civil Engineers call this static equalibrium. This is pretty obvious, but this basic concept is the foundation for analysing any structural system.
This project contains three components or page directories (see src/pages/).
- 1. Solver (./src/pages/solver/)
- 2. Stiffness (./src/pages/stiffness/)
- 3. Bridge-Design (./src/pages/bridge-design/)
The solver (1.) is where users can go through an a multi-part form inputting all of the necessary information about either a Truss, Beam, or Frame system and a detailed solution will be output. The pages within the stiffness (2.) directory contain tutorials, walkthroughs, and examples which allow the user to better understand the matrix displacement method or build a solid foundation of the basics. The bridge-design (3.) directory will eventually contain similar tutorials as the stiffness (2.) directory, but as of 9/29/2021
I have mainly been building the features within solver (1.) and stiffness (2.).
Let me know if you have any questions and feel free to reach out to me through any of the provided contacts at the bottom of this readme. Have fun!
- 💻 The following Technologies are used
- 📝 Form handling simplified with
- 🎞️ Animations created with Framer-motion
- 📊 For charts and equations I used
- 🎨 Styled with
Ui-Kit
git clone https://github.com/Brlaney/mtrx.git
cd mtrx
# then for yarn users:
yarn install
# or npm users:
npm i
yarn dev
#or
npm run dev
Now navigate to http://localhost:3000/ and check it out.
In this section I will sumarize my problem solving process for any issues that arose while creating this project. Issues, bugs, errors, etc. yield critical points in any project were you are presented with the opportunity to evolve your web development skills - after all, Engineering at its core is problem solving.
Link to a short video I uploaded to youtube showing this issue and how it was debugged: Framer-motion bug fix
- Date updated:
09-29-2021
- First commit:
08-20-2021
- Directory:
\mtrx\src
- Totals:
203 files
21,747 lines of code
320 comments
962 blanks
- Sum total
23,029 lines
language | files | code | comment | blank | total |
---|---|---|---|---|---|
TypeScript React | 132 | 18,211 | 40 | 643 | 18,894 |
SCSS | 22 | 2,004 | 9 | 106 | 2,119 |
TypeScript | 49 | 1,532 | 271 | 213 | 2,016 |
path | files | code | comment | blank | total |
---|---|---|---|---|---|
src/ | 204 | 21,670 | 337 | 970 | 22,977 |
src/components | 101 | 16,286 | 40 | 421 | 16,747 |
src/lib | 42 | 1,474 | 274 | 196 | 1,944 |
src/pages | 39 | 1,891 | 14 | 246 | 2,151 |
src/scss | 22 | 2,019 | 9 | 107 | 2,135 |
- Email: brlaney@outlook.com
- Twitter: brendan_webdev
- Instagram: brlaney94
- Great introduction video by Dr. Structure
- Wikipedia:
- ABET
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files, to deal
in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Brendan Laney | Copyright (c) 2021
I would love your feedback on my project - please feel free to make a pull request or submit an issue if you find any. Thanks for checking out my project!