Aerospace & Mechanical Engineering · UC Davis

Kai
Hori.

Building systems that operate where failure isn't an option — from spacecraft mission design and X-band link budgets to RF hardware, structural analysis, and numerical simulation.

13
Projects & Reports
03
Research Labs
02
B.S. Degrees
01

About

I'm Kai Hori, a dual-degree Aerospace and Mechanical Engineering student at UC Davis focused on spacecraft systems engineering, mission design, communications, and applied hardware development.

I work across the full arc of an engineering problem — from spacecraft link budgets, orbital mechanics, and C&DH architecture to RF hardware, structural and aeroelastic analysis, CFD, and GPU-based numerical simulation. Most recently I led the communications and C&DH subsystem for ODIN, a Solar Orbiter–inspired heliocentric inspection spacecraft.

I'm currently a researcher in the HRVIP Lab, contributing to the MOON ground-station concept through QFH antenna development, SDR satellite reception, and automated tracking and decoding. I'm seeking full-time opportunities in spacecraft systems, mission operations, RF/communications, and simulation after graduation in June 2026.

Institution University of California, Davis
Degrees B.S. Aerospace Science & Eng. + B.S. Mechanical Eng.
GPA / Graduation 3.61 / 4.0 · June 2026
Focus Areas Spacecraft Systems · Communications · Simulation
Languages Japanese (Fluent) · English (Fluent)
Location Davis, CA
02

Projects

Spacecraft Systems · Capstone · Slide Deck
ODIN — Spacecraft Inspection Mission

Senior capstone design of ODIN (Optical Detection & INspection), a heliocentric spacecraft that rendezvouses with and inspects ESA's Solar Orbiter to assess degradation for mission extension. I led the Communications & C&DH subsystem across requirements, CONOPS, architecture, link/data budgets, contact-window analysis, and the Critical Design Review.

Systems Eng. Mission Design CONOPS MATLAB FreeFlyer X-Band
ODIN Critical Design Review slide deck · embedded PDF preview
Mission Design · Showcase
ODIN Design Showcase Posters

Public-facing poster set for ODIN, summarizing the full spacecraft inspection mission across navigation and systems engineering; thermal, structures, and propulsion; and ADCS, payload, power, and communications. The posters were prepared for the UC Davis Engineering Design Showcase and present the spacecraft concept, CONOPS, subsystem architecture, and key mission design results.

Systems Engineering Mission Design CONOPS Subsystem Design OnShape
ODIN design showcase poster set · embedded PDF preview
Communications · C&DH · Technical Report
ODIN Communications & C&DH Subsystem

Detailed subsystem report for ODIN's X-band deep-space link. Covers redundant transponders, TWTA and HGA/LGA architecture, a link budget holding ≥6 dB margin from 0.7–2.0 AU, CCSDS framing, data-rate sizing, housekeeping budgets, ESTRACK/DSN compatibility, store-and-forward operations, and contact-window analysis.

Link Budget C&DH CCSDS ESTRACK / DSN MATLAB Excel LaTeX
ODIN Communications & C&DH subsystem report · embedded PDF preview
Communications · Mission-Level Verification
ODIN RF Link Analysis — FreeFlyer Verification

Independent, mission-level check of the MATLAB link budget: ODIN is numerically propagated for 1500 days in FreeFlyer (CDR Table 6.1 elements, ~20 km trailing co-orbit) while the tool computes range, free-space path loss, C/N, and link margin at every step against all three ESTRACK stations (Cebreros, Malargüe, New Norcia).

FreeFlyer Orbit Propagation RF Link Margin ESTRACK / DSN
1500-Day Multi-Mode Propagation

Downlink availability is geometry-driven — a station has to be visible past Earth-limb/Sun occultation and the computed link margin has to clear the 6 dB CDR floor (SSR-COMM-03) — so a contact is only scheduled on days the link would actually close, not just when a station is in view. The adaptive downlink data-rate logic holds that 6 dB floor and caps out at the HGA's 89 kbps design rate, matching the MATLAB result independently.

FreeFlyer ODIN RF Link Analysis workspace — MissionView orbit geometry alongside downlink data rate, RF link margin, HGA C/N, and received power plots
FreeFlyer Workspace 1 · full dashboard layout — MissionView orbit/ground-track view plus the four downlink telemetry plots · click to enlarge
FreeFlyer MissionView orbit geometry and ground-track (top) alongside adaptive downlink data rate, RF link margin, HGA carrier-to-noise, and received power over the 1500-day propagation

Requires FreeFlyer to open; references a stock antenna-pattern sample file included with the FreeFlyer install.

RF Hardware · Satellite Ground Station · Iterative Debugging
MOON Ground Station — Meteor LRPT Receiver & GEO Pathfinder

MOON is a student-built satellite ground-station effort in the HRVIP Lab. My work focused on turning low-energy 137 MHz Meteor-M2-3/M2-4 downlinks into usable imagery by building and debugging the full receive chain: antenna hardware, SDR configuration, gain staging, filtering, cable shielding, pass planning, demodulation, decoding, and image products. The project evolved from hand-tracked V-dipole tests to a custom QFH antenna, rooftop interference studies, NanoVNA validation, and a next-phase L-band parabolic dish for GEO weather imagery.

RTL-SDR V4 SatDump SDR# Meteor LRPT 137 MHz QFH Antenna Nooelec SAWbird NanoVNA QPSK Onshape RG6 Coax L-Band Dish 8-ft Mesh Dish GOES HRIT Himawari AHI
Engineering path: proof-of-signal → QFH build → field validation → rooftop debugging

The main lesson was that satellite reception is a complete system problem, not just an antenna problem. A pass could fail because of low elevation, hand-tracking error, ground-reflected multipath, over-amplified RF noise, cable shielding, filter behavior, or the local rooftop environment. Each test was used to isolate one variable and decide the next configuration.

Fabricating the QFH antenna in the lab
01 · Signal path validation

We first proved that Meteor data could be received at all.

The first experiments used a manually tracked V-dipole to receive Meteor-M2-3. A low elevation pass under 15° only produced a partial sync and a thin image sliver, but later higher-elevation passes produced full imagery with dropouts. These tests validated the SDR# recording and SatDump METEOR processing workflow before committing to custom hardware.

Takeaway: reception was possible, but manual tracking was fragile
Open field test run with the QFH antenna, laptop, and operator
02 · QFH fabrication

We moved from hand tracking to a passive 137 MHz QFH antenna.

After the V-dipole proved the pipeline, we built a quadrifilar helix antenna for passive Meteor LRPT reception. To preserve the QFH geometry, we designed an Onshape drilling template, placed eight copper-tube mounting holes at 90° intervals, soldered and sanded the joints to reduce impedance, and weatherproofed the assembly with silicone coating.

Build: custom omnidirectional antenna for hands-free passes
Nighttime Meteor pass with black signal-loss bands before the successful run
03 · Early QFH failures

Dropouts were not random; they pointed to environment and setup problems.

Early QFH tests in Sacramento, Russell parking structure, and Spafford Field showed that the antenna could receive passively, but black bands and grainy products persisted. The night pass taught us that useful Meteor imagery depends strongly on daytime lighting, while repeated dropouts suggested mechanical handling, feed-cable vibration, obstructions, and local RF conditions were still affecting the receive chain.

Lesson: image artifacts became diagnostics
Modified QFH test with the antenna raised about two feet higher
04 · Mounting height and multipath

Raising the antenna changed the RF behavior.

At Spafford Field, even with clear line-of-sight, we kept seeing signal dropouts. We hypothesized ground-reflected multipath: when the QFH sat too close to the ground, reflected waves could distort the antenna pattern and reduce link quality. Raising the mast and using a more stable 3D-printed tripod reduced handling motion and improved reception.

Fix: taller mast + stable tripod + cleaner field site
Live satellite decoding on a laptop during a successful field pass
05 · First clean pass

Nugget Fields produced the first continuous high-fidelity reception.

We moved to a more open field and nearly doubled the antenna mast height. That combination finally gave a continuous, high-SNR QPSK demodulation through the full pass and produced a full-resolution image of western North America. This confirmed that the QFH, SDR, LNA/filter chain, SatDump settings, and decode workflow could operate as a reliable system.

Breakthrough: complete Meteor image from a clean daytime pass
False-color full image capture from the successful Meteor pass
06 · Image product

The decoded data became a real Earth-observation product.

The corrected false-color output made the system-level success visible: clouds, coastline, land, and surface features were recovered from the pass. The final product was not just a nice picture; it verified that acquisition, demodulation, decoding, and image processing were all aligned well enough to produce usable satellite data.

Result: full-resolution Meteor image product
Rectified Meteor pass with coastlines from the successful QFH reception
07 · Map alignment

Georeferencing turned the image into a technical check.

After rectifying the pass and overlaying coastlines, we could verify more than visual quality. The map-aligned product checked that the timing, pass geometry, and processing chain were consistent with the actual satellite track.

Check: decoded swath aligned with geography
Global map showing the footprint of the successful Meteor pass
08 · Orbital context

The global projection connected the pass to the mission geometry.

Projecting the swath onto a world map showed where the received data came from in the larger orbital path. This made the project feel less like an isolated RF demo and more like a ground-station workflow capable of producing contextual Earth-observation data.

Context: one clean pass became a mapped observation
QFH antenna rooftop test near campus structures and possible RF interference sources
09 · Rooftop interference campaign

The permanent rooftop site introduced a different failure mode: 0 SNR.

After the field success, we tested the QFH at the planned rooftop location. The antenna was raised above roof walls and HVAC structures, but the spectrum was highly saturated and the pass could not sync. We investigated wind-load constraints for a permanent mount, possible metal reflections from HVAC equipment, nearby cell/powerline noise, and the risk of over-driving the Nooelec SAWbird NOAA because its amplifier-filter-amplifier layout can amplify broadband noise before filtering.

Problem isolated: the rooftop environment, not the basic antenna build
Decoded Meteor-M2 satellite image after a successful QFH pass
10 · Variable isolation and hardware validation

Field A/B tests proved the receiver chain was functional.

To separate rooftop interference from hardware failure, we returned to Nugget Fields and ran three configurations. SDR-only reception immediately synchronized at about 8 dB SNR; adding the LNA increased peak SNR to about 11 dB; and the full SDR + LNA + filter chain reached roughly 15-17 dB near zenith. We also switched from an SMA/RG6 mix to RG6-only cabling after discovering the SMA segment was effectively acting like an antenna and pulling unwanted signals into the chain.

Validation: antenna, LNA, filter, SDR, and RG6 chain worked in the field
Phase 2 · GEO Weather Imagery — Repurposed L-Band Dish

With the LEO receive chain validated, the next objective is full-disk Earth imagery from GEO weather satellites. Because GEO downlinks require much higher gain than the QFH can provide, we repurposed a DirecTV parabolic dish and fabricated a handmade cylindrical cantenna feed. A custom 3D-printed clamp supports the feed near the dish focal region while allowing its position and pointing to be adjusted during L-band reception tests.

Modified DirecTV satellite dish fitted with a handmade L-band cantenna feed
11 · GEO receive chain assembly

A repurposed DirecTV dish stepped in for the gain the QFH couldn't provide.

GEO downlinks need substantially more antenna gain than a passive QFH can deliver, so we adapted a discarded DirecTV parabolic dish as the front end for L-band reception, feeding the same SDR-based receive chain used for the LEO Meteor work.

Setup: repurposed dish + handmade L-band feed + SDR chain
Close-up of the handmade cantenna and custom 3D-printed mounting clamp
12 · Feed fabrication

A handmade cantenna feed replaced the dish's stock LNB.

The dish's original receiver was swapped for a fabricated cylindrical cantenna tuned for L-band. A custom 3D-printed clamp holds the feed near the dish's focal point while still letting its position and pointing be adjusted between test passes.

Build: adjustable 3D-printed feed mount + coaxial probe
GOES ABI false-color full-disk Earth image received through the L-band dish and cantenna feed
13 · First GEO capture

The chain returned a recognizable full-disk GOES image.

An early pass through the dish and cantenna feed produced a false-color ABI composite showing weather over the Pacific and the North American coastline. Visible horizontal banding points to sync or timing issues still being worked out in the L-band chain — the same kind of dropout-as-diagnostic approach used earlier in the QFH debugging.

Result: first full-disk GEO image, sync tuning still in progress
Holding the repurposed DirecTV dish as an early proof-of-concept check for catching the GOES signal
14 · Proof of concept

Before committing to the build, we checked whether the repurposed dish could even catch GOES.

With the cantenna feed in hand, we held the DirecTV dish up as a quick proof-of-concept test — confirming there was a realistic shot at catching the GOES downlink before investing further time refining the feed and mount.

Check: repurposed dish confirmed viable before further build-out
Phase 3 · An 8-ft Refurbished Dish — GOES HRIT & Himawari AHI

Rather than modify the Phase 2 dish, we picked up an 8-foot mesh parabolic reflector off Facebook Marketplace in Santa Clara, rebuilt it, and paired it with a new handmade cantenna feed as a second, independent L-band receive chain. The larger aperture opened up more of the GEO L-band spectrum — including the GOES HRIT downlink at 1694.1 MHz and, as a milestone, Japan's Himawari-9 AHI broadcast — while the original DirecTV/cantenna setup from Phase 2 kept running in parallel as its own receiver.

Disassembling the old antenna on the rooftop to clear the site for a permanent GOES dish installation
15 · Clearing the rooftop

We took down the old antenna to make room for a permanent GOES dish.

Before the 8-ft reflector could go up, the rooftop site had to be cleared. We disassembled the prior antenna hardware from the mast, marking this spot as the intended permanent home for the new GOES reception dish.

Prep: rooftop site cleared for the permanent installation
Rebuilt 8-foot mesh dish with a new cantenna feed, assembled as a second independent L-band receive chain
16 · Rebuild and refurbishment

The dish needed a full rebuild before it could go back on the air.

The reflector's mesh, ribs, and mount were cleaned up and refurbished, and we built a new cantenna feed for it from scratch rather than reusing the Phase 2 design — giving this dish its own independent receive chain.

Result: dish structure rebuilt and paired with a new cantenna feed
Adjusting and centering the new cantenna feed on the refurbished dish's focal point
17 · Feed integration and pointing

Centering the new feed on the focal point took hands-on iteration.

As with the cantenna on the DirecTV dish, feed position directly drove signal quality. We adjusted the new feed's standoff distance and centering on the refurbished reflector by eye and by watching live SNR in SatDump, tightening the mount once the response peaked.

Fit: new cantenna feed centered and locked at the focal point
Reviewing feed geometry and mount stability with a mentor before permanent installation
18 · Design review

A second pair of eyes helped catch geometry issues before the permanent mount.

Before committing to a rooftop install, we walked through the feed geometry and mount stability with a mentor familiar with parabolic reflector antennas — checking focal offset, mesh reflectivity at L-band, and wind-load concerns for the permanent mount.

Check: feed geometry and mount plan reviewed before installation
SatDump showing a synced GOES HRIT downlink at 1694.1 MHz with 13 dB SNR and decoder status
19 · First GOES HRIT sync

The rebuilt dish locked onto the GOES HRIT downlink at 1694.1 MHz — decisively.

SatDump showed a clean signal envelope in the FFT and waterfall, with the BPSK demodulator holding a steady 13 dB SNR and constant lock, versus roughly 2 dB SNR on the Phase 2 DirecTV dish. Both the CCSDS Viterbi and deframer reported SYNCED, confirming the bigger aperture and rebuilt feed closed the GOES HRIT link with real margin.

Result: 13 dB SNR and constant BPSK lock, vs ~2 dB on the DirecTV dish
Clean full-disk GOES ABI false-color composite with no banding
20 · Banding resolved

The horizontal banding from Phase 2's first GEO capture is gone.

Where the Phase 2 ABI composite showed visible sync-timing banding, this full-disk false-color capture came through clean — confirming the timing and sync issues flagged as an open diagnostic in Phase 2 have been resolved.

Fix: full-disk ABI composite reconstructed without banding artifacts
Full-disk longwave IR composite from Japan's Himawari-9 AHI, received on the second dish
21 · Himawari AHI milestone

The second dish also pulled in Japan's Himawari-9 AHI broadcast.

Beyond GOES, the larger aperture picked up the Advanced Himawari Imager downlink, producing a clean full-disk longwave-IR composite. A false-color AHI product is still being tuned and is a work in progress, but this milestone shows the receive chain isn't limited to a single satellite family.

Milestone: first cross-constellation GEO capture (GOES + Himawari)

Next up for this dish: a motorized az/el actuator to give the mount its own pointing authority, moving it from manual aiming toward a fully autonomous passive ground segment.

Personal Projects
Numerical Simulation · NeuralX
GPU SPH Fluid Simulation

Real-time weakly compressible Smoothed Particle Hydrodynamics simulation built during a research internship at NeuralX. Developed a Unity compute-shader pipeline for water-like particle motion, including density estimation, pressure solving, viscosity, boundary collision, XSPH smoothing, vorticity confinement, and surface-tension behavior.

Unity C# HLSL Compute Shaders WCSPH Tait EOS Spatial Hashing Raymarching
Solver pipeline

The strongest version of the simulation used a force-based WCSPH approach rather than the earlier relaxation-based experiments. Particles were organized with a GPU spatial grid using sorted cell keys, cell-start/cell-end buffers, and local neighbor lookup. Each frame computed density from nearby particles, evaluated pressure using a Tait equation of state, applied pressure and viscosity forces, then advanced particle positions through the compute-shader integration pipeline.

Stability and visual behavior

A major part of the work was debugging simulation stability: tuning smoothing radius, timestep size, pressure stiffness, damping, boundary response, and collision behavior until the fluid moved naturally without exploding numerically. XSPH velocity smoothing helped reduce particle noise, while vorticity confinement and surface-tension terms improved the water-like motion and surface cohesion.

Raymarched fluid surface · GPU particle simulation rendered as a continuous fluid volume
Particle-level collision test · debugging boundary response and particle stability
Code highlight · WCSPH solver structure

The implementation was organized as a GPU compute pipeline: particle positions were inserted into a spatial hash grid, sorted by cell, scanned into cell-start/cell-end ranges, then used for local neighbor lookup during density, pressure, viscosity, smoothing, and collision kernels.

Unity C# manager · high-level GPU solver dispatch order
// Simplified Unity C# solver loop
void FixedUpdate()
{
    // 1. Predict / clear buffers
    sphShader.SetFloat("_DeltaTime", Time.fixedDeltaTime);
    sphShader.SetInt("_ParticleCount", particleCount);

    // 2. Build spatial hash grid
    Dispatch("ComputeCellKeys");
    Dispatch("BitonicSort");
    Dispatch("FindCellRanges");

    // 3. SPH physics
    Dispatch("ComputeDensityPressure");
    Dispatch("ComputeForces");

    // 4. Stabilization and integration
    Dispatch("ApplyXSPH");
    Dispatch("IntegrateParticles");
    Dispatch("SolveBoundaryCollisions");

    // 5. Send particle data to renderer / raymarch pass
    renderMaterial.SetBuffer("_Particles", particleBuffer);
}
HLSL compute shader · density estimate + Tait EOS pressure
// Simplified HLSL density + pressure kernel
[numthreads(128, 1, 1)]
void ComputeDensityPressure(uint3 id : SV_DispatchThreadID)
{
    uint i = id.x;
    if (i >= _ParticleCount) return;

    float3 xi = _Particles[i].position;
    float density = 0.0;

    // Search neighboring grid cells only, not every particle
    int3 baseCell = WorldToCell(xi);

    for (int z = -1; z <= 1; z++)
    for (int y = -1; y <= 1; y++)
    for (int x = -1; x <= 1; x++)
    {
        int3 cell = baseCell + int3(x, y, z);
        uint start = _CellStarts[HashCell(cell)];
        uint end   = _CellEnds[HashCell(cell)];

        for (uint n = start; n < end; n++)
        {
            uint j = _SortedParticleIndices[n];
            float3 xj = _Particles[j].position;
            float r = length(xi - xj);

            if (r < _SmoothingRadius)
            {
                density += _ParticleMass * Poly6Kernel(r, _SmoothingRadius);
            }
        }
    }

    // Tait equation of state for weakly-compressible SPH
    float pressure = _PressureStiffness *
        (pow(density / _RestDensity, _TaitGamma) - 1.0);

    _Particles[i].density = max(density, _RestDensity);
    _Particles[i].pressure = pressure;
}
HLSL compute shader · pressure, viscosity, XSPH smoothing, and integration
// Simplified force kernel
[numthreads(128, 1, 1)]
void ComputeForces(uint3 id : SV_DispatchThreadID)
{
    uint i = id.x;
    if (i >= _ParticleCount) return;

    Particle pi = _Particles[i];

    float3 pressureForce = 0;
    float3 viscosityForce = 0;
    float3 xsphCorrection = 0;

    // Neighbor loop uses the same spatial grid lookup
    ForEachNeighbor(pi.position, _SmoothingRadius)
    {
        Particle pj = _Particles[j];
        float3 rij = pi.position - pj.position;
        float r = length(rij);

        if (r > 0.0 && r < _SmoothingRadius)
        {
            float3 gradW = SpikyGradient(rij, _SmoothingRadius);

            pressureForce += -_ParticleMass *
                (pi.pressure + pj.pressure) /
                (2.0 * pj.density) * gradW;

            viscosityForce += _Viscosity * _ParticleMass *
                (pj.velocity - pi.velocity) /
                pj.density * ViscosityLaplacian(r, _SmoothingRadius);

            xsphCorrection += _ParticleMass *
                (pj.velocity - pi.velocity) /
                pj.density * Poly6Kernel(r, _SmoothingRadius);
        }
    }

    float3 acceleration =
        (pressureForce + viscosityForce) / pi.density +
        _Gravity;

    pi.velocity += acceleration * _DeltaTime;
    pi.velocity += _XSPHStrength * xsphCorrection;
    pi.position += pi.velocity * _DeltaTime;

    _Particles[i] = pi;
}
Course Projects
Compressible Aerodynamics
Supersonic Wedge Shock-Wave Analysis

Study of oblique-shock formation over a 2-D wedge at Mach 2.0, 2.5, and 3.0 with 5°, 10°, and 15° half-angles. Compared shock angles from the θ–β–M relation, Schlieren imagery, and ANSYS Fluent Mach contours, with side-by-side figures and post-shock property tables.

ANSYS Fluent CFD θ–β–M
Shock-wave analysis report · embedded PDF preview
Aeroelasticity · EME 139
Truss-Braced Wing — Flutter & Divergence Prediction

Team term project modeling the dynamic and aeroelastic behavior of a truss-braced aircraft wing. Built a simplified 1D Euler-Bernoulli beam model alongside a higher-fidelity Patran/Nastran shell model of the airfoil, spar, ribs, skin, and struts, extracted the first 15 natural frequencies and mode shapes, then used a reduced-order pitch/heave flutter model to estimate flutter speed against a 250-knot operating envelope. Led the high-fidelity Patran model development — geometry, meshing, and troubleshooting of the wing, rib, and skin connectivity.

Patran/Nastran MATLAB Modal Analysis Flutter & Divergence
Truss-braced wing term paper · embedded PDF preview
Heat Transfer · EME 165
Post-Harvest Refrigeration — Transient Conduction of a Cantaloupe

Numerical conduction project modeling a cantaloupe as a three-layer sphere (seed cavity, mesocarp, rind) cooled by forced-air convection. Checked whether a lumped-capacitance approximation was valid, solved a 1-D analytical transient-conduction estimate using mass-weighted average properties, then built a finite-volume MATLAB solver over the full three-layer geometry to find the time and energy required to cool the fruit-seed-cavity interface to 5°C. A bonus study swept the convective coefficient from 50–180 W/m²-K to see how much forced-air intensity could shorten the cooling time.

MATLAB Transient Conduction Finite Volume Numerical Methods
EME 165 project statement · embedded PDF preview
03

Technical Reports & Coursework

EAE 129 · Stability & Control Simulation and Analysis of Aircraft Response Characteristics
PDF ↗
EAE 129 · Stability & Control Aggie UAV Wind-Tunnel Static Stability Study
PDF ↗
EAE 135 · Structures Aircraft Wing Structural Analysis — Axial Stress & Safety Factor (Project 2)
PDF ↗
EAE 135 · Structures Aircraft Wing Structural Analysis — Shear Flow & Torsion (Project 3)
PDF ↗
EME 150A · Machine Design Horizontal Pressure Vessel Design — ASME BPVC, OnShape + Fusion FEA
PDF ↗
EAE 127 · Applied Aerodynamics Boundary Layers & Flight Regimes — Reynolds Number Analysis
PDF ↗
EAE 127 · Applied Aerodynamics Airfoil Selection & Performance — Cruise Design Conditions
PDF ↗
04

Experience

Apr 2026 –
Present
Capstone
Communications & C&DH Lead
ODIN Spacecraft Inspection Mission · UC Davis
  • Lead the communications, C&DH, and ground-control design for a Solar Orbiter–inspired heliocentric inspection spacecraft.
  • Develop X-band link budgets, antenna trades, data and housekeeping budgets, mission-mode downlink timelines, and contact-window analyses.
  • Coordinate with power and payload teams and document the work through design reviews in MATLAB, FreeFlyer, Excel, and LaTeX.
Feb 2026 –
Present
Research
Undergraduate Researcher
HRVIP Lab · MOON Initiative · UC Davis
  • Develop ground-station capability for the Mission Operations & Observation Nexus (MOON) under Prof. Robinson.
  • Build QFH antenna hardware and autonomous satellite tracking, reception, and image-processing workflows for LEO and GEO satellites.
  • Support the design of a university mission-operations facility for real-time reception, decoding, and analysis.
Jan 2026 –
Mar 2026
Capstone
Payload Lead
Spacecraft Inspection Mission Redesign · UC Davis
  • Redesigned the NASA CPOD CubeSat proximity-operations mission into an autonomous, non-docking ISS inspection concept.
  • Evaluated LiDAR integration, sensor tradeoffs, and onboard-processing needs to improve RPO, inspection capability, and safety.
Jul 2025 –
Sep 2025
Internship
Research Intern
NeuralX
  • Designed Smoothed Particle Hydrodynamics simulations to model fluid and water-like behavior.
  • Optimized compute-shader performance in Unity and integrated numerical methods, documenting findings for ongoing physics-based modeling R&D.
Dec 2024 –
Apr 2025
Research
Research Assistant
Computational Flow Physics & Aeroacoustics Lab · UC Davis
  • Conducted a computational aeroacoustics research project in a team of two using NASA's ANOPP2.
  • Worked through the software's complex Fortran codebase in Visual Studio to set up and interpret cases.
Sep 2023 –
Sep 2024
Rocketry
Team Member
Aggie Propulsion & Rocketry Lab · UC Davis
  • Co-founded a new department focused on control systems for a liquid rocket system.
  • Researched system dynamics and dynamic control for a propulsive landing system.
05

Skills

Software & Simulation
MATLAB Simulink FreeFlyer Ansys Fluent XFoil OpenVSP Unity
CAD & FEA
SolidWorks OnShape Fusion 360 NASTRAN/PATRAN OpenSCAD 3D Printing
Programming
Python C# MATLAB HLSL Fortran
Engineering Analysis
Orbital Mechanics Link Budgets Aeroelasticity Stability & Control Structural Analysis CFD C&DH
Hardware & Lab
RTL-SDR QFH Antenna SatDump Milling / Lathing CNC Soldering
Tools & Docs
Git LaTeX Excel GitHub Pages SDR++
06

Contact

Looking for full-time opportunities in spacecraft systems, mission operations, RF/communications, simulation, and applied aerospace engineering. Feel free to reach out for collaborations, research discussions, or engineering opportunities.