Taking a while?

Projects

Projects

I'm in this field because I genuinely love coming up with solutions to problems by utilizing software and hardware.

Winner — Best First-Time Hacker, KnightHacks 9
The KnightHacks 9 demo, at original speed.

Winner · Best First-Time Hacker

OmniBelt

KnightHacks 9 · Oct 2026 · 36 hours · team of four

An AI navigation belt that uses computer vision to steer its wearer around obstacles, builds a spatial memory to find lost items later, and guides the hand to items with a haptic ring.

  • Led the 4-person team that built it in 36 hours, and gave the final pitch to the judges.
  • Designed and wired the hardware: an NVIDIA Jetson Orin Nano runs the AI vision models and signals an ESP32 that drives 7 belt vibration motors and a haptic ring that guides the hand to items.
  • Cut the computer-vision depth model's latency 3.3× (110 ms → 33 ms) by profiling it to find a library default that silently upscaled every frame, and fixed memory crashes so 3 AI models share one 8 GB GPU.
  • Computer Vision
  • NVIDIA Jetson Orin Nano
  • ESP32
  • C++
  • Python
  • FastAPI
  • Embedded Systems
  • 3D Printing
  • AI assisted

At KnightHacks 9

Hugh in the center holding the Best First-Time Hacker trophy, standing with KnightHacks officers in purple event shirts under a floral arch.
Winner, Best First-Time Hacker

Photo: KnightHacks.

The ShellHacks 2026 demo.

Camvas

ShellHacks 2026 · 36-hour hackathon · team of four

A web app that plans drone camera flights through 3D scene scans (Gaussian splats).

  • Co-developed drone camera path planning over Gaussian splat captures with no underlying mesh. It auto-generates collision geometry from sampled splat data and AI-tagged landmarks, so flight paths stay 0.25 m clear of obstacles and frame key subjects.
  • Built an in-browser rendering and export pipeline (WebCodecs + Web Audio) that exports 1080p films at up to 60 fps with motion blur and no render server.
  • Built with Amy Hakim, Eric George and Wei-Lin Chou.
  • Next.js
  • TypeScript
  • Three.js
  • PlayCanvas
  • WebCodecs
  • WebGL
  • AI assisted

Made in Camvas

Short film: Last LightMade start to finish in the Camvas studio.
Product ad reelAn Air Jordan 1 spec ad from the product studio. Not filmed.
Drone trajectory
The Camvas asset picker, searching 3D models to add to a scene.
Asset picker

The product ad is an unofficial spec piece, not affiliated with or endorsed by Nike or Jordan Brand. The short film's car is an original model built from Renderbricks' LEGO® 10252 Volkswagen Beetle scan; no LEGO or Volkswagen endorsement is implied.

Professor Lockin

Full-Stack Gamified SaaS Study Platform · professorlockin.com

Shipped a live study platform that isolates every user's data in the database using 84 PostgreSQL row-level security policies, with GitHub Actions CI testing every push.

  • Built a real-time multiplayer engine over WebSockets for 9 party games, capping each 20-player match at under 300 messages so the platform stays on a free hosting tier.
  • Integrated 4 Stripe payment surfaces, including Connect marketplace payouts, fulfilled only through signature-verified webhooks.
  • Next.js
  • Supabase
  • RLS
  • Stripe
  • WebSockets
  • AI assisted

On professorlockin.com

The campus: a character with cosmetic outfits, the nine-rank ladder, and a weekly Gold league leaderboard.
After dark, the campus keeps score.
Six of the party games: Asteroids Battle Royale, Impostor, Liar's Bluff, Confidence Auction, Vault Heist and Territory Conquest.
Bring the whole class.Live multiplayer party games for up to 20 players.
The six study modes: Course reader, Flashcards, Learn, Match, Asteroids and Practice tests.
Six ways to make it stick.

GNOR Autonomous Submarine

UCF Great Naval Orange Race · ESP32 · C++

I was in charge of 3D printing an improved propeller, as well as programming the ESP32 to not only drive autonomously via readjustments but also connect via Bluetooth to my laptop to allow for remote speed and angle modifications.

  • Programmed ESP32 firmware in C++ for real-time propulsion control and Bluetooth command handling.
  • CAD-modeled and 3D-printed a custom propeller blade deployed in UCF's competitive submarine race.
  • ESP32
  • C++
  • Bluetooth
  • CAD
  • 3D printing

Caught in my own work

I always look for my own failures before someone else can find them.

84Row-Level Security policiespatched before my site went live

Caught in my own code

Row-level security gap in Professor Lockin

Professor Lockin · before launch

I caught a row-level security threat in my 55-table schema while self auditing and patched the gap before my site went live.

  • PostgreSQL
  • RLS
  • Self-audit
void saveSettings() {  prefs.begin("gnor", false);  prefs.putInt("servo", servoAngle);  prefs.putInt("speed", motorSpeedPct);  prefs.putInt("time",  runTimeSec);  prefs.end();}
From the firmware: the settings are saved to memory, so they survive between sessions.

Caught in my own code

Bluetooth settings lost between sessions

GNOR submarine · before testing

I found numerous errors prior to testing that I fixed such as a Bluetooth error that would reset the updated values between sessions instead of just saving it to memory.

  • I took it upon myself to check for any errors that my code could've produced to ensure that nothing could go wrong.
  • ESP32
  • NVS
  • Bluetooth