The What
Build a reliable orbit component for a multidisciplinary spacecraft model. The component must propagate position and velocity accurately before it can interact with other disciplines or support optimization.
I’m an Aerospace Engineering student at Georgia Tech. My work spans structural design, spacecraft modeling, propulsion research, and intelligent engineering systems.
I enjoy combining hands-on engineering with computational tools to solve complex problems and turn ideas into working systems.
Through Georgia Tech’s Structures and Multidisciplinary Design Optimization Group, I am using AMIGO, an engineering modeling and optimization framework, to reproduce and study disciplines from CADRE, an open-source multidisciplinary spacecraft design benchmark. After validating each physics-based component independently, I coupled the thermal, power, battery, attitude, reaction-wheel, and communication disciplines into a constrained spacecraft optimization.
Six-state spacecraft propagation, AMIGO implementation, and numerical validation against an independent RK4 reference.
Build a reliable orbit component for a multidisciplinary spacecraft model. The component must propagate position and velocity accurately before it can interact with other disciplines or support optimization.
I created an independent Python reference, translated the same physics into AMIGO, and compared the trajectories, state histories, equation outputs, and grid behavior.
The model completed a 94.6-minute orbit, matched the original state-derivative and RK4 equations to numerical precision, and showed decreasing AMIGO-to-reference error as the time grid was refined.







Orbit-coupled spacecraft orientation, angular motion, control torque, and body-frame velocity.
Determine how the spacecraft body is oriented throughout its orbit and calculate the angular rates, angular accelerations, required torque, and velocity components seen in the body frame.
I formed the orbit-relative and commanded-roll rotation matrices, differentiated the combined orientation with forward, central, and backward schemes, and connected the resulting attitude equations to the AMIGO orbit solution.
Using the same orbit, AMIGO reproduced the Python attitude model to numerical precision: the maximum orientation-matrix difference was 5.6 × 10−16 and the torque difference was 1.5 × 10−20 N·m.


Inertial and body-frame Sun vectors, spherical pointing angles, and continuous eclipse transitions.
Track the Sun relative to the spacecraft and determine whether each point in the orbit is illuminated, eclipsed by Earth, or passing through a transition region.
I translated the Sun position into the spacecraft body frame, converted it to azimuth and elevation, and implemented the line-of-sight equations as separate AMIGO components for visible, eclipsed, and transition nodes.
Across 569 nodes, the model identified 363 full-sunlight nodes, 145 full-eclipse nodes, and 61 transition nodes. Every AMIGO Sun output matched the independent reference exactly for the tested case.


Five-state thermal propagation driven by solar exposure, eclipse, radiation, and communication power.
Predict the temperatures of four panel groups and the spacecraft body as their heating conditions change through sunlight and eclipse.
I combined exposed solar-cell area, Sun line of sight, radiative cooling, material properties, and communication heating in a five-state model, then implemented its trapezoidal time integration in AMIGO.
AMIGO matched the independent trapezoidal solution exactly. Temperatures remained between 189.5 and 280.2 K, while the maximum difference from the separate RK4 reference was 0.30 K.

Solar-cell voltage interpolation, total generation, and spacecraft battery-power balance.
Calculate the electrical output of 12 solar panels and determine the remaining battery power after communication, reaction-wheel, and baseline spacecraft loads.
I rebuilt CADRE’s multidimensional voltage interpolation with a modern MBI implementation, evaluated each panel from temperature, exposed area, and current set point, and connected the solar and total-power equations in AMIGO.
AMIGO matched the Python power equations exactly and reproduced the original CADRE benchmark within 1.22 × 10−4 W for both solar and battery power.


Temperature-dependent voltage, current, and state-of-charge propagation across the 12-hour CADRE mission.
Propagate spacecraft battery state of charge from total battery power and body temperature while evaluating the corresponding temperature-dependent voltage and current.
I implemented CADRE’s nonlinear voltage, current, and state-rate equations in AMIGO, connected 1,500 battery nodes with trapezoidal integration, and enforced the initial state of charge from the benchmark dataset.
AMIGO matched the independent Python trapezoidal solution exactly to reported precision. The maximum dynamics residual was zero and the maximum trapezoidal transcription residual was 5.90 × 10−17.


Cubic B-spline parameterization of communication power, spacecraft roll, and 12 solar-panel current schedules.
Convert a compact set of mission-design control points into smooth time histories that can drive the spacecraft disciplines at every analysis node.
I implemented CADRE’s cubic B-spline parameterization in AMIGO. Each of the 1,500 mission nodes depends on four local basis functions drawn from 300 control points, producing communication power, roll angle, and 12 panel-current commands.
AMIGO matched the independent Python parameter model exactly. Maximum differences from the original CADRE histories were 1.87 × 10−13 W, 5.00 × 10−14 rad, and 1.63 × 10−14 A.


Three-axis wheel-speed propagation, attitude-torque coupling, and electrical-load prediction.
Determine the wheel torque required to maintain the commanded attitude, propagate the three reaction-wheel speeds, and calculate their electrical power demand over the mission.
I coupled the attitude torque and body angular velocity to the wheel dynamics, transcribed the three state equations with trapezoidal constraints across 1,500 nodes, and implemented CADRE’s motor-power relation in AMIGO.
AMIGO matched the independent Python trapezoidal model exactly for torque, wheel speed, wheel rate, and power. The maximum transcription residual was 4.20 × 10−16.


Ground-station geometry, antenna gain, link rate, and accumulated data transfer.
Predict when the spacecraft can communicate with its ground station, determine the available link rate, and integrate the data downloaded during each visibility window.
I transformed the ground-station vector through Earth, inertial, body, and antenna frames; evaluated line of sight and range; recreated the antenna-gain lookup with a two-dimensional MBI spline; and coupled the link budget to trapezoidal data propagation.
AMIGO matched the independent Python bitrate and data model exactly with a 4.28 × 10−13 transcription residual. It predicted 5,066.43 Gibyte downloaded over the 12-hour mission.


A coupled 12-hour spacecraft model that coordinates communication power, solar-current schedules, and battery state of charge under multidisciplinary constraints.
Connect the individually validated CADRE disciplines into one system-level model and improve downloaded data without violating battery-current, state-of-charge, voltage-table, or periodicity limits.
I assembled the thermal, reaction-wheel, solar-power, battery, communication, and restored roll-dependent physics in AMIGO, then optimized communication power, 12 solar-current profiles, and initial battery state of charge across 1,500 mission nodes.
The 3,901-variable problem converged in 58 iterations and improved downloaded data by 4.08% over a feasible repaired benchmark. Independent replay confirmed the solution with a KKT error of 1.00 × 10−9, no bound violations, and periodic state of charge.


For the Vespula rocket, the internal structure needed to withstand compressive loads without buckling while fitting a tightly constrained assembly. Working with other YJSP members, I helped redesign and model an aluminum stringer in SolidWorks, refining its geometry to use material more efficiently. The final design increased the allowable buckling load, reduced material waste, and was incorporated into the flight vehicle that reached a confirmed apogee of 56,590 feet.
As a structural engineer with the Yellow Jacket Space Program, I helped develop an aluminum stringer for the Vespula rocket. The component needed to resist buckling while meeting the vehicle’s geometric and integration constraints.
I modeled the initial concept in SolidWorks and worked with other YJSP members to refine its geometry. The final design used aluminum more efficiently and improved resistance to buckling.
The redesigned stringer increased the allowable buckling load while reducing material waste. The final design was incorporated into the Vespula rocket assembly.
For my ME 1670 final project, our team developed SnowBot, an autonomous tracked machine designed to clear snow and dispense salt without requiring a person to work in harsh or slippery conditions. As the team’s CAD Master, I helped lead the SolidWorks assembly strategy and designed the central-body subassembly that connects the snow-intake, storage, drive, and dispensing systems.
SnowBot was conceived as an autonomous platform for clearing snow and spreading salt in conditions where manual work can be difficult or unsafe. The concept combines a front auger, tracked mobility, snow-ejection chute, onboard salt storage, and a controlled dispensing system.
Working as CAD Master, I coordinated the assembly structure and modeled the central body in SolidWorks, including the rounded front face, access lid, hinge and pin interfaces, solar-panel mounting, and rear plate. The team then integrated the auger, conveyor, chute, cameras, scraper, and tread systems into one complete assembly.
The final deliverable was a complete digital product definition with a full assembly, detailed part drawings, bills of materials, exploded views, assembly instructions, and contextual renderings. The documentation shows how each subsystem fits into a manufacturable, serviceable machine.




I built a predictive-maintenance pipeline using NASA’s C-MAPSS FD001 sensor histories to estimate how many operating cycles remained before simulated turbofan failure. I compared four tree-based regressors, analyzed where their predictions broke down, and then expanded the workflow with time-dependent features, multiple RUL caps, a 30-cycle LSTM, and an ensemble model. The project connects machine-learning performance to an engineering decision: identifying which engines should receive maintenance attention first.
The goal was to predict Remaining Useful Life (RUL) from simulated turbofan engine sensor data. Rather than treating each engine cycle independently, I wanted the models to capture how sensor behavior changed as an engine moved closer to failure.
I built the full workflow in Python, from cleaning and preparing the FD001 dataset to feature engineering and model evaluation. I compared multiple regression models, tested different RUL caps, trained an LSTM on 30-cycle sensor sequences, and combined the strongest models in an ensemble.
The models were able to capture the overall degradation trend, with the best predictions occurring as engines approached failure. Comparing the models also showed that how the sensor history was represented mattered just as much as the choice of algorithm, which became the main focus for improving the model.



As an undergraduate researcher in Georgia Tech’s combustion laboratory, I simulated ammonia flame conditions in ANSYS Chemkin and processed the outputs in Excel and MATLAB. I compared temperature and species profiles across operating conditions to study flame behavior, emissions, and energy-efficiency trends. The work combined computational modeling with experimental analysis, and iterative improvements to the testing workflow increased experimental throughput by 10%.
The research examined how ammonia combustion behavior changed across operating conditions. The goal was to use simulation and experimental data to better understand flame structure, reactive species, emissions, and temperature trends.
I ran simulations in ANSYS Chemkin, extracted the outputs, and used MATLAB and Excel to process and visualize the data. I developed comparisons between corrected and uncorrected profiles for NO, NH, NH₂, temperature, and major species.
The final visualizations made changes in peak species concentration and flame behavior easier to compare across operating conditions. Iterative testing and data-driven workflow adjustments improved experimental throughput by 10%.




I’m currently pursuing a B.S. in Aerospace Engineering at Georgia Tech, and I enjoy working across both the physical and computational sides of engineering. My experience includes mechanical product design, structural design with the Yellow Jacket Space Program, spacecraft modeling through Georgia Tech’s Structures & MDO Group, controls and combustion research, and data-driven projects like predictive maintenance for jet engines. I enjoy projects where I can move between design, simulation, testing, and analysis, and I’m especially interested in aerospace systems, structures, numerical modeling, and multidisciplinary engineering.