Projects
Each project lists what the problem was, what I did, and the tools I used. Most include the full slide deck I presented; the decks open in a new tab and use the arrow keys to move between slides.
Design and controls
Ball-on-Beam Closed-Loop Control
A servo tilts a beam so that a ball rolls to, and holds, a commanded position. The ball's position is read by a time-of-flight distance sensor and fed back to the controller.
- Derived the ball-on-beam plant dynamics and built the system model in Simulink for controller design.
- Team design. Mechanism: Hitec HS-5645MG servo driving the beam through a rod-end linkage at about 4:1, with a preload spring to take out backlash.
- Center pivot on an M5 shoulder bolt with two MR106ZZ bearings, set by a sleeve and shims and held with a nylon-lock nut.
- Beam: two 4 mm rails, 300 mm long and 16 mm apart, with end stops. Sensor: VL53L1X mounted so the ball never comes closer than its 40 mm minimum range.
- Controller runs on an Arduino.

Shaft and Drivetrain Design for a 40 HP Motor
Designing the shaft and drivetrain components driven by a 40 HP, 1750 RPM electric motor that lifts a load, sized for both static strength and fatigue.
- Free-body diagrams and symbolic equations for each component, valid for every design iteration.
- Static and fatigue safety factors following Shigley's method (endurance limit modifiers, stress concentrations, fatigue failure criteria).
- Design alternatives iterated in Excel, with final geometry modeled in CAD and documented in a design report.
Simulation and analysis

MSc Project: Reduced-Order Modeling of Turbulent Rotating Pipe Flow
When a pipe spins about its own axis, turbulence in the flow can be suppressed and the flow partly relaminarizes, which matters for rotating heat exchangers and turbomachinery. I used Proper Orthogonal Decomposition (POD) to find which flow structures carry the energy and how they change with rotation.
- Wrote an object-oriented MATLAB framework that reads the simulation output, applies FFTs in the periodic directions and computes both classic and snapshot POD.
- Analyzed high-fidelity Nek5000 DNS data at Re = 5,300 for swirl rates from 0 to 3, reducing about 5 TB of data to a small set of energy-ranked modes.
- Showed how large-scale motions near the wall weaken as rotation increases, linking the mode energy distribution to relaminarization.
- Collaborated with PhD researchers at the University of Maryland and the University of Oxford; attended the AIAA Aviation Forum (2022).

Multichamber Muffler Design
Design a muffler that gives the most insertion loss (noise reduction) across the frequency range, then compare the prediction with measurements from the built muffler.
- Designed the internals: multiple chambers, baffles, perforated tubes and a fiberglass absorber.
- Simulated transmission loss from 0 to 1000 Hz in ANSYS Workbench (Acoustics), modeling the air at 20 °C.
- Built an independent 1D transfer-matrix model in SIDLAB as a check on the 3D results.
- Compared simulated and measured insertion loss and published both model files so the results can be reproduced.

Viscoplastic Modeling of Solder Joints (Anand Model)
Solder joints in electronics packages creep and fail under thermal cycling. Anand's unified viscoplastic model captures how solder stress depends on strain rate and temperature, and it is built into ANSYS for modeling these alloys.
- Implemented the Anand flow rule and deformation-resistance evolution in Python with a forward Euler time integrator.
- Reproduced published test data for solder at strain rates of 10−2 and 10−4 s−1, then used the code to check the ANSYS nonlinear material model.
- Built an interactive Plotly figure for exploring stress–strain response across temperature.

FEA Design Optimization in ANSYS Workbench
- Compliant microgripper: parameterized the arm geometry and used ANSYS's adaptive single-objective optimizer to maximize the gripper's motion amplification while keeping stress at or below 15 MPa.
- Threaded joint: modeled a bolt and nut with frictional contact (μ = 0.2) using symmetry and a 2D model to cut solve time, and showed how load concentrates on the first few engaged threads.
Software and automation
Software tools
- Hospital wayfinding app: a web app (Flask, Python, SQL) that gives visitors directions through the medical center.
- Directory lookup tool: a desktop tool (AutoHotkey v2 with an HTML interface) that takes text copied from the electronic health record, fuzzy-matches it against the department phone directory and shows the closest matches, ranked, so calls get routed faster.
- Earlier work: a 3D finite-difference time-domain solver (Yee scheme) for tracking a particle in a magnetized fluid flow (2019).
