Welcome to my personal website.
Terrible writer. Mediocre programmer. Alright engineer.
Stanford University, 2018-2020
Stanford University Graduate School of Business, 2020-2020
University of Ottawa, 2013-2017
Degenkolb Engineers. 2021 - present
Gregory P. Luth & Associates. 2020 - 2021
Stanford University, Department of Civil Engineering. 2020
Stanford University, Department of Civil Engineering 2019 - 2020
Various
fkit (fiber-kit) is a free-to-use, elegant, and simple section analysis program built in python. Perform moment-curvature and P+M interaction analysis with less than 5 lines of code. Fibers can be defined by the user with a plethora of material models (e.g. Hognestad, Manders, RambergOsgood, Menegotto-Pinto, ElasticPlastic, and more).
This was one of my best project yet. Intuitive object-oriented design and beautiful visualizations. Link to GitHub repo
fapp, pronounced "F - app", stands for Frame Analysis Program in Python. It is a lightweight and easy-to-use Python implementation of the Finite Element Method (FEM). Perform first-order elastic analyses of any 3-D frame structure and visualize results with a fully interactive web browser interface.
I've implemented the direct stiffness method several times throughout my education. First in Excel/VBA, then in MATLAB, and now in Python. I think I've really struck gold here. The entire source code is only around 500 lines if you don't count comments and the plotting functionalities. Link to GitHub repo
EZweld is a python program that performs stress calculations in weld groups subjected to in-plane and/or out-of-plane loading. It does so using the elastic method.
You can define weld groups of any shapes and sizes (lines, circle, rectangle) and quickly obtain their geometric properties (i.e. Ix, Iy, J, Sx, Sy, etc.)
as well as the resultant shear stress for all fibers within the weld group. Simple, clear, intuitive. I hope people will find this tool useful for their needs.
Both the theory and the implementation were quite simple. The main challenge was getting the plotly visualization to work right (cone charts!). I also dove into some very interesting
rabbit holes, some of which include stress transformations, Mohr's circle, Von-Mises yield criterion and other failure theories, change of basis, intrinsic vs. extrinsic rotations,
rotation matrices, etc. Cool project!
Read more here in the GitHub repo
EZbolt is a python program that calculates bolt forces in bolted connections subject to shear and in-plane torsion. It does so using both the Elastic Method and the Instant Center of Rotation (ICR) method as outlined in the AISC steel construction manual. The iterative algorithm to locate the ICR is based on this seminal paper by Donald Brandt: Rapid Determination of Ultimate Strength of Eccentrically Loaded Bolt Groups.
Read more here in the GitHub repo
EZAnchor is a python program that performs nonstructural component seismic force (Fp) calculations per ASCE 7-16 Chapter 13, it then applies Fp in all possible orientations (360 degrees) to determine the maximum shear and tension demand in the anchors holding an equipment down in place.
The impetus for this package came from a lengthy technical discussion at work. Although the math behind equipment anchorage is simple, there's is actually tons of nuance and this program is far from easy to implement. Read more here in the GitHub repo
Many structures have repeating elements that can be automatically generated based on a pre-defined set of rules. This is a Dynamo script that allows parametric generation of structural framing in Revit. Rather than creating a boring portal frame, I thought it’d be a lot more exciting to loop it around on itself and create a circular structure; similar to the Apple Headquarter building in Cupertino. You can parametrically change different aspects of the building (e.g. bay spacing, building diameter, roof slope, and much more)
Autodesks “Generative Design”, formerly known as Project Refinery, is an user-friendly optimization tool that uses genetic algorithms to quickly generate alternatives based on preset goals, constraints, and inputs to arrive at the best performing option.
I made a simple model here that explores the question: “Given a fixed boundary or building footprint, with the same loading condition. Is it better to have smaller members spaced closely together, or large sections spaced farther apart”. Other evaluation criteria include roof’s performance (measured by deflection), efficiency (measured by weight), and cost (measured by an assumed material and labor cost per beam).
This is more of an artistic endeavor than an engineering one. Above is a fully parametric bus shelter with its geometry mathematically defined and easily customizable. The final product is a gravity-defying structure with bold and elegant curves. The spiral column is defined by three circles of varying diameter and the roof is defined by a surface lofted onto three sinusoids.
I learned a bit of web development this past year and decided to build a portfolio website from scratch using vanilla HTML, CSS, JS; no reliance on services like Wordpress, Squarespace, or Wix. This website features a minimalist design and subtle yet noticeable animations. Although it was a lot more work (e.g. selecting fonts, color scheme, layouts, templates), I felt the end result was well worth it! This website is hosted on GitHub.
Above is a massive 8000+ sticks popsicle bridge shattering into pieces under 5500 lbs of concentrated force! That is not a typo. The bridge took about a month to make and is entirely made of popsicles and Elmer’s glue. The tied-arch configuration allows for an efficient load path to the supports, and the bottom chord resists the any outward thrust. This bridge won the Bronze medal at the National 2017 Troitsky Popsicle Bridge Building Contest in Canada.
Here is a massive gingerbread tower measuring over 3 ft tall! “181 Fremont with a Santa Hat”. Made from 3 bags of flour, 3 bags of confectioners sugar, 4 bottles of molasses, and 6 sticks of butter. A great way to spend Christmas under quarantine.