Research & Open-Source Builds.
Click on a Panel to See the Full Project Page.
Research Projects
Projects from my Ph.D. Research with Accompanying Code.
Research projects in safe autonomous control for unmanned aerial and ground vehicles.
01
RTD-RAX
Runtime-assurance trajectory planning for quadrotors, with online reachability verification and repair instead of overly conservative offline safety buffers.
Tap anywhere on this panel to open the project page.
RTD-RAX
Runtime-assurance trajectory planning for quadrotors, with online reachability verification and repair instead of overly conservative offline safety buffers.
Tap anywhere on this panel to open the project page.
RTD-RAX extends Reachability-based Trajectory Design by separating fast candidate generation from online safety certification. The planner stays agile, while a verifier certifies each trajectory under the actual measured conditions and repairs unsafe candidates before execution.
- Mixed-monotone reachability verification at runtime via
immrax. - Hybrid repair loop when a candidate cannot be certified safe.
- Three case studies with manuscript-ready figure generation and Dockerized reproducibility.
02
NMPC for Quadrotors
A clean NMPC baseline for quadrotor research built around Acados and QPOASES, with a full ROS 2 interface and real-time-ready generated code.
Tap anywhere on this panel to open the project page.
Custom NMPC Implementation
Fast Computation
Aggressive Trajectory Control
Smart, De-Coupled Yaw Tracking
Acados
QPOASES
ROS 2
NMPC for Quadrotors
A clean NMPC baseline for quadrotor research built around Acados and QPOASES, with a full ROS 2 interface and real-time-ready generated code.
Tap anywhere on this panel to open the project page.
Custom NMPC Implementation
This controller served as the main comparison baseline for the Newton-Raphson Flow work. It is a solid reference implementation if you want a rigorous NMPC starting point rather than a highly specialized demo.
- Jointly tracks position, velocity, and Euler angles.
- Handles wrapped yaw error correctly.
- Uses hard thrust and body-rate constraints with a clean command-line interface.
03
Interval STL Runtime Assurance
Safe control from signal temporal logic safety specifications for linear systems with bounded uncertainty, using interval STL and runtime assurance with real-time MILP-based correction.
Tap anywhere on this panel to open the project page.
NAHS 2025 submission
Linear systems with bounded uncertainty
Minimal runtime input correction
Miniature autonomous blimp demo
iSTL
MILP
NAHS
Interval STL Runtime Assurance
Safe control from signal temporal logic safety specifications for linear systems with bounded uncertainty, using interval STL and runtime assurance with real-time MILP-based correction.
Tap anywhere on this panel to open the project page.
NAHS 2025 submission
This project addresses safe control from signal temporal logic safety specifications for linear systems with bounded uncertainty in a static environment. A runtime-assurance layer evaluates the nominal controller's proposed input at each update step and minimally adjusts it whenever needed to maintain specification satisfaction under all realizations of the uncertainty.
- Leverages interval signal temporal logic so uncertainty can be handled directly with only a modest program-size increase.
- Solves a mixed-integer linear program at each controller update step and includes conditions that guarantee long-horizon feasibility.
- Ensures a safe backup input is always available if a computation deadline is ever missed, and demonstrates real-time tractability on a miniature autonomous blimp.
04
Newton-Raphson Flow Control: Fast, Efficient, & Modular Control Algorithm
A research-grade quadrotor controller that reframes tracking as a continuous-time Newton-Raphson problem and runs on real onboard hardware.
Tap anywhere on this panel to open the project page.
Fast, Efficient Control Algorithm
ACC 2024
TCST 2025
Onboard Quadrotor Deployment
JAX JIT
ROS 2
PX4
Newton-Raphson Flow Control: Fast, Efficient, & Modular Control Algorithm
A research-grade quadrotor controller that reframes tracking as a continuous-time Newton-Raphson problem and runs on real onboard hardware.
Tap anywhere on this panel to open the project page.
Fast, Efficient Control Algorithm
NR Flow uses a continuous-time version of the traditional Newton-Raphson algorithm and poses it as a tracking controller. It is fast, computationally lightweight, and easily deployable on different kinds of systems with very little tuning or overhead required. Most importantly, it provides accurate tracking control even in comparison to powerful controllers such as NMPC. We utilize integral control barrier functions (I-CBFs) to smoothly enforce actuator limits.
- Runs comfortably on a Raspberry Pi 4 onboard a quadrotor.
- Supports both simulation and hardware workflows.
- Backed by multiple peer-reviewed papers rather than a one-off demo implementation.
Independent Projects
Open-source tools and infrastructure.
Standalone codebases, utilities, and templates that grew out of day-to-day research needs.
01
MoCap4ROS2 Packages
My ROS 2 C++ packages that bridge Vicon and OptiTrack motion-capture systems to the PX4 autopilot EKF for indoor quadrotor flight experiments. They handle coordinate conversion, quaternion reordering, timestamping, and full-state relay out of the box.
Tap anywhere on this panel to open the project page.
Motion Capture → PX4 EKF Pipeline
ENU → NED frame conversion
External vision EKF fusion
Full-state relay for control & logging
Vicon
OptiTrack
ROS 2
PX4
MoCap4ROS2 Packages
My ROS 2 C++ packages that bridge Vicon and OptiTrack motion-capture systems to the PX4 autopilot EKF for indoor quadrotor flight experiments. They handle coordinate conversion, quaternion reordering, timestamping, and full-state relay out of the box.
Tap anywhere on this panel to open the project page.
Motion Capture → PX4 EKF Pipeline
Running indoor flight experiments means solving the same infrastructure problem every time: getting motion-capture position data into the drone's state estimator reliably. Vicon4PX4 and OptiTrack4PX4 handle the entire pipeline — coordinate frame conversion, quaternion reordering, PX4 timestamping, and optional full-state merging — so you can focus on your controller, not the plumbing.
- Vicon4PX4 connects via the DataStream SDK (vendored — no system install).
- OptiTrack4PX4 connects via NatNet (vendored — no system install).
- Both publish
VehicleOdometryon/fmu/in/vehicle_visual_odometryfor direct PX4 EKF external-vision fusion. - Adopted by Georgia Tech's Indoor Flight Lab as part of its official codebase.
02
CodeGraph Live
A fork of colbymchenry/codegraph that adds an always-on background daemon to keep a semantic code knowledge graph fresh across all your projects — even when Claude Code is closed. Claude queries it via MCP instead of reading files, saving tokens and giving it structural understanding of the codebase.
Tap anywhere on this panel to open the project page.
Always-on code intelligence for Claude
inotify daemon — syncs on every file save
systemd user service — starts at login
MCP tools — callers, callees, impact, explore
TypeScript
Node.js
SQLite
MCP
CodeGraph Live
A fork of colbymchenry/codegraph that adds an always-on background daemon to keep a semantic code knowledge graph fresh across all your projects — even when Claude Code is closed. Claude queries it via MCP instead of reading files, saving tokens and giving it structural understanding of the codebase.
Tap anywhere on this panel to open the project page.
Always-on code intelligence for Claude
CodeGraph Live solves the stale-graph problem in AI-assisted development: when you edit files outside Claude Code, the code graph falls behind, so Claude wastes tokens reading files it should already know. This fork adds a systemd user service that watches all your initialized projects simultaneously via Linux inotify — every save from any editor is detected and synced within one second.
- Background daemon discovers new projects automatically by scanning
$HOMEevery 30s. - Claude Code hooks (
PostToolUse→ mark-dirty,Stop→ sync) keep Claude's own edits in sync mid-session. - MCP server exposes graph query tools so Claude navigates call graphs and impact radii instead of grepping source files.
- Two-phase install:
codegraph-live installwrites global Claude Code config once;codegraph-live initper project.
03
QuartoCV
A Quarto-based joint CV-and-Resume build tool that updates shared sections once and propagates them across every output document automatically. Comes with docker/make infrastructure so you don't have to set anything up yourself or remember any commands. Just add new entries, update the content, and write 'make' on the command line and you're done!
Tap anywhere on this panel to open the project page.
Build once, reuse everywhere
Shared sections
Incremental PDF rebuilds
Academic + Industry Style Templates
Quarto
XeLaTeX
Make
QuartoCV
A Quarto-based joint CV-and-Resume build tool that updates shared sections once and propagates them across every output document automatically. Comes with docker/make infrastructure so you don't have to set anything up yourself or remember any commands. Just add new entries, update the content, and write 'make' on the command line and you're done!
Tap anywhere on this panel to open the project page.
Build once, reuse everywhere
I made QuartoCV for my recurring problem of having to shift everything around on my Canva CV when I had a new entry to add, and then having to repeat my efforts multiple times for the shorter Resume version, and add/delete personal details for the public versions of these documents vs the private versions I give to recruiters. In QuartoCV, shared section files feed multiple outputs in a modular fashion so you edit one common source of truth, and all documents that highlight the information will be automatically updated. Moreover, my docker/make infrastructure allows you to rebuild documents when changes are made with a simple 'make' command, and to never have to download and set up any dependencies yourself. Check it out!
- One source section can feed multiple document variants.
- Dependency-aware incremental builds keep edits fast.
- Layouts are designed for both compact academic and cleaner standard resume styles.
04
relay
A bash orchestration script that runs a four-step Plan → Code → Review → Cleanup loop over a dependency-ordered task list, dispatching each step to a fresh Claude or Codex subprocess so nothing leaks between tasks.
Tap anywhere on this panel to open the project page.
Multi-agent pipeline, no config required
Plan → Code → Review → Cleanup per task
Beads (bd) for dependency-ordered task tracking
Drop-in: copy pipeline.sh, run it
Bash
Claude Code
Codex
relay
A bash orchestration script that runs a four-step Plan → Code → Review → Cleanup loop over a dependency-ordered task list, dispatching each step to a fresh Claude or Codex subprocess so nothing leaks between tasks.
Tap anywhere on this panel to open the project page.
Multi-agent pipeline, no config required
bd) for dependency-ordered task tracking
relay is a zero-dependency bash script that automates the full agentic development loop. Each task from prd.json is handed to a fresh Claude subprocess to plan, a fresh Codex subprocess to implement, another to adversarially review the diff, and a final Claude pass to clean up — with no state leaking between steps.
- Uses Beads (
bd) to resolve task dependencies and claim tasks atomically before starting. - Automatic fallback to Claude when Codex is unavailable or out of tokens.
- Context-rot guard detects when a subprocess is going in circles and resets it.
- No daemon, no server, no install — just copy
pipeline.shinto your project's.claude/directory.
05
Quarto Georgia Tech Slides
A Georgia Tech-branded RevealJS presentation theme that installs into an existing Quarto project in one command. This is a fork of my labmate Brendan Gould's project with a whole set of custom features. Maybe one day we'll merge them :)
Tap anywhere on this panel to open the project page.
Quarto GT Theme for your presentation needs
Official GT palette
Title + section backgrounds
RevealJS fragments + callouts
Quarto
RevealJS
SCSS
Quarto Georgia Tech Slides
A Georgia Tech-branded RevealJS presentation theme that installs into an existing Quarto project in one command. This is a fork of my labmate Brendan Gould's project with a whole set of custom features. Maybe one day we'll merge them :)
Tap anywhere on this panel to open the project page.
Quarto GT Theme for your presentation needs
This extension packages Georgia Tech colors, backgrounds, typography, and presentation utilities so branded slides can be spun up quickly in a normal Quarto workflow.
- Built to be installed into an existing project with a single template command.
- Includes branded title and section slide treatments.
- Designed for presentations that still feel like Quarto, not a hard-coded slide deck.