Welcome to my personal website.
fkit (fiber-kit) is a powerful and easy-to-use 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. The object-oriented design was so intuitive that - with some careful planning - everything sort of fell into place. I learned a lot about material
constitutive models, concrete strain compatibility analysis, root-finding algorithms, object-oriented programming concepts like inheritance, and too many things to list about concrete design.
I put a lot of effort and love into this project, and I hope others will like it too. Check it out on GitHub.
wthisj - what the heck is j? - is a python program that performs punching shear calculations for design of concrete slabs. It does so using the elastic method as well as various concepts described
in ACI 318 and ACI 421.1R.
This was a fun project where I explored the origin of the "J" parameter, and the various nuances and idiosyncrasies with punching shear - arguably the most important
limit state in concrete slab design. I'm also quite happy with the plotly interactive visualization. Check it out here on GitHub
fapp - Frame Analysis Program in Python - 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). Check it out here on GitHub
EZbolt is a python program that calculates 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.
I spent almost a year on this project, getting stuck at various points. The engineering part was quite easy. I am not doing anything new here. The hard part was the visualizations and getting
the sign right - especially since I allow all possible input of (P, Mx, My) both positive and negative. After the tool was completed, I used it to generate and tabulate "C" coefficient of over
90,000 common bolt configurations. I was very proud when all my coefficients matched those provided in the AISC steel manual. I am fairly confident this is first
comprehensive tabulation of C coefficients on the internet! Check it out on
GitHub
EZweld is a python program that performs stress calculations for weld groups using the elastic method. This is a very practical and easy-to-use tool.
Define weld groups of any configuration, then calculate its geometric properties and the resultant stresses.
Both the theory and the implementation were quite simple. The main challenge was getting the plotly visualization right. I also got myself into some very interesting
rabbit holes such as stress transformations, Von-Mises yield criterion, change of basis, intrinsic vs. extrinsic rotations, transformation matrices, etc.
Read more here on GitHub
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. Although the math behind equipment anchorage is simple, there's is actually tons of nuance and this
program is far from easy to implement.
I used this program to generate the results for my first ever conference paper, which I presented at the 2024 SEAOC Convention in Portland.
The paper is titled: "Critical Orientation of Seismic Force for Floor-Mounted Nonstructural Component Anchorage" (Wang et al, 2024). Read more on GitHub
Many structures have repeating elements that can be parametrically generated based on a pre-defined set of rules. I created this Dynamo script for rapid parametric generation of structural framing in Revit. Rather than creating a boring portal frame, I thought it would 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 change different parameter of the building (e.g. bay spacing, building diameter, roof slope, and etc.) in real time and watch it auto-generate.
Autodesks "Generative Design", formerly known as Project Refinery, is an optimization tool that uses genetic algorithms to quickly generate alternatives based on preset goals, constraints, and inputs. 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 performance (measured by deflection), efficiency (measured by weight), and cost (measured by an assumed material and labor cost per beam).
This was more of an artistic project than an engineering one. Above is a fully parametric bus shelter with its geometry mathematically defined and highly customization. The final product is a gravity-defying structure with bold and elegant curves. The spiral column was defined by three circles of varying diameter and the roof was 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 of work (e.g. selecting fonts, color scheme, layouts, templates), I felt the end result was well worth it! This website is powered by Jekyll templating engine and GitHub Pages
Above is a massive 8000+ sticks popsicle bridge shattering into pieces under 5500 lbs of force! That's not a typo. The bridge took about a month to make and is entirely made of popsicles and Elmers 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 2017 National 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.