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.
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.
Focus AreasSpacecraft Systems · Communications · Simulation
LanguagesJapanese (Fluent) · English (Fluent)
LocationDavis, 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 DesignCONOPSMATLABFreeFlyerX-Band
ODIN Critical Design Review slide deck · embedded PDF preview
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 EngineeringMission DesignCONOPSSubsystem DesignOnShape
ODIN design showcase poster set · embedded PDF preview
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).
FreeFlyerOrbit PropagationRF Link MarginESTRACK / 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 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.
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.
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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.
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
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
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
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
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
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
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.
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
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.
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.
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.
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.