Here you will find pictures, videos, and sounds from some of my technical work over the years. For each project, I have included a brief description and overview of the technical skills I used.

NASA Jet Propulsion Laboratory

Small Body Autonomy

Small bodies (e.g. comets and asteroids) are promising targets for the development of autonomous technologies in space. Most small-body missions have used some level of autonomy, but all operated within narrow windows and under several constraints, with extensive human-in-the-loop interaction, pre- and post-execution of autonomy segments. To increase the level of autonomy on these missions, work is underway on a multi-phase perception/estimation pipeline, with overlapping measurements and algorithms seeded by prior estimates, to characterize and autonomously reach a small body from thousands of kilometers down to the surface. The pipeline uses a set of state-of-the-practice algorithms to estimate the body period, pole orientation, shape, and orbit.

Lighting-Robust Pole Estimation

Developed and implemented a ray-casting method for estimating pole orientation of the body using only the observed silhouette. Performed sensitivity analysis, demonstrating pole estimation bias in trajectories with high sun phase angles. Developed and implemented a shadow-casting method to mitigate this bias.

Blind Demo

Ran pole and shape estimation as part of a blind experiment simulating approach of an unknown small body. Estimated pole to 5 degree accuracy.

Pole Disambiguation

Examined the effect of the Spinning Dancer illusion on pole estimation. Developed and performed tests to show how trajectories spanning a change in observing latitude can mitigate this effect and disambiguate between the true pole and the illusory pole.

Shape Analysis

Analyzed the performance of pole estimation for shapes with varying levels of symmetry, revealing multistable solutions.

USC Space Engineering Research Center


The Lunar Entry Approach Platform for Research On Ground (LEAPFROG) is a novel concept for low cost, high longevity autonomous operations on the moon. The system is designed to be versatile and efficient, with two complimentary thrust/control systems, as well as a reconfigurable robotic arm and interchangeable payload. The current generation also serves to provide a low-cost earth-based testbed for various flight technologies intended for operation on the Moon.


Pulse-Width Modulated Thrust

Implemented pulse-width modulation to achieve variable impulse with a cold gas reaction control system. Implemented proportional-derivative control of impulse level.

Thrust Characterization

Developed test setup and test procedure for characterizing thrust for various levels of pressurization.

Academic Projects


Final challenge for 6.141, Robotics: Science and Systems. Programmed a robot to escape an initially unknown labyrinth environment.

Python, ROS

ELDER Communication/Visualization

16.83 Space Systems Engineering: Developed 3D assets, video script, music, and voiceover for promotion of the ELDER mission concept (Enceladus Life Detection, Exploration, and Reconnaissance).

Blender, Unity, Ableton

Wings for RC plane

This RC plane was built for the annual Unified Flight Competition. I was responsible for the wings and my teammates were responsible for the fuselage and electronics. The plane's geometry was optimized for stability using a brute force algorithm.

Foam cutter, epoxy, Python


Programmed a robot to race autonomously around a GPS-denied tunnel loop with a length of ~150m. Succeeded with no collisions with a time of 37.7s.

Python, ROS

Public outreach for space exploration

Delivered a lecture and Q&A on space exploration at the International School of Sosua in the Dominican Republic, focusing on ocean worlds in our solar system, and the science/engineering required to carry out ocean world missions

Rotating scene mount for REIF-SAT

REIF-SAT is a concept for an earth-imaging telescope with a rectangular spinning mirror, as opposed to a circular stationary mirror. In order to simulate the rotation for testing, we used a rotating scene mount. I was fully responsible for the fabrication and testing of this component.

Arduino, MATLAB

Full optics testbed for REIF-SAT

The setup consists of the scene mount, a collimating telescope, a receiving telescope, and a camera. More details can be found in the design document.

MIT Aerospace Controls Lab


Mapping a simulated environment

This is a simulation of a small racecar in an environment which corresponds to part of MIT's network of underground tunnels. The racecar is equipped with a laser scanner. I transformed these laser scans according to odometry data and combined them into a composite map.

ROS, Gazebo, PCL, C++


Point cloud registration

These two point clouds of a stove are captured in a Gazebo environment by a simulated Kinect camera. I run them both through a pipeline which extracts SIFT keypoints and FPFH features to align them with each other.

PCL, C++


Small quad-copter

This was the first drone I built. The parts were mostly from a kit, and the construction was relatively simple.

Medium quad-copters

We needed drones which were large enough to support an onboard GPU, so I built a few of these. The construction was a little more complicated, with custom frames and a lot more soldering involved.

Opera of the Future


Audio-responsive visual accompaniment

This program takes audio input and creates visuals which respond to frequency and amplitude. This video was taken during a performance by Chilean pop-star Francisca Valenzuela.

Processing, Java

Randomized performance

This plugin takes MIDI input and randomly transposes it up or down within a set interval. The idea is to prevent the performer from thinking in terms of harmony, and rather focus more on contour and intensity.

MaxMSP, Ableton Live