Portfolio
All recent & past research, coursework, hobby projects, etc
Factrs
Factor graph optimization in Rust.
Cargo-cite
A cargo plugin to render bibtex citations for your documentation.
LDS Handbook Tracker
Change Tracker of the Church of Jesus Christ General Handbook.
Robust Offroad State Estimation
Preintegrated wheel odometry with online slip estimation for offroad autonomous ground vehicles.
jrl
Contributed in development of "Json Robot Log", which is a modern format for back-end SLAM datasets."
State Estimation & Control
Merging state estimation and control into a single nonlinear, constrained optimization problem.
pyscript
Contributed to pyscript, a python automation integration for Home Assistant.
Printed Practicals
I run Printed Practicals, a 3D printing business focusing on selling mounts for Google Home products. We have sold over a 2000 orders to all around the world.
Structure from Motion in Mojo
Structure from Motion implemented in the new programming language Mojo.
Visual Joint Odometry
Fuse visual and joint odometry for a robot arm using factor graphs.
NeRFish
A neural radiance field using fisheye cameras and online pose estimation.
Structure from Motion in Python
Structure from Motion implemented in python from scratch.
borg2mqtt
A simple python script to send borg backup status to an MQTT server for use in Home Assistant.
HoloOcean
HoloOcean is a high-fidelity underwater simulator forked from Holodeck and built on Unreal Engine.
AUVControl
Full robotics stack include estimation, planning, & control for an AUV in HoloOcean.
EezyBotArm ROS
Inverse Kinematics and Trajectory Generation for the EezyBotArm Mk2 built on ROS and a raspberry pi.
Vinyl Emulator
Using NFC tags & a Raspberry Pi, I implemented a diy Vinyl that plays spotify albums on google homes.
InEKF for Underwater Navigation
Derivation & Simulation Results of the InEKF for use with underwater sensors such as an IMU, DVL and pressure.
Visual Aruco SLAM
Simple implementation of iSAM using Aruco tags as markers and gtsam as the backend.
3D Ball Tracking
We use a Kalman Filter and calibrated stereo cameras to track a ball in 3D.
Visual Inspection
Using a Convolution Neural Network, sort oreos as good, bad or ugly
Augmented Reality
Using Aruco tags & OpenCV, implemented a simple Pokemon Augmented reality program.
Deep Filters
Improving the extended Kalman filter using deep learning.
PDF Github README
Use PDF writeups (often written in LaTeX) as Github READMEs using Github Actions.
Invariant Extended Kalman Filter
The InEKF is extension of the Kalman Filter built upon Lie Groups with guaranteed asymptotic stability. We implement a few examples.
SiPANN
I co-founded SiPANN (Silicon Photonic Artificial Neural Networks). It's a python package used to accelerate the design of silicon photonics.
Optimal Control
As an application of optimal control theory, I optimized a weighted combination of fuel and time to get a car from point A to B over an arbitrary surface.
Recipe Recommender
Using various machine learning techniques and a public recipe reviews dataset, recommend similar recipes to reviewers.
Sklearn in C++
To practice C++ coding paradigms, I implemented various portions of the popular python Sklearn package in C++.
NICU EEG Data
For a data analysis course, I cleaned and analyzed NICU EEG (brain scan) data for trends about how and when premature babies have seizures, and drew various conclusions.