Work / Case Studies

Real projects, real stories.

The what, the why, and the how behind each build. Process notes, technical decisions, and what I'd do differently next time.

Project highlights

Lead projectAegis
EvaluationCapture F1
EvidenceRGB / IR / Video
Next moduleAcoustic
Multi-sensor mission intelligence

Aegis Mission Intelligence

Aegis is my most recent AI/autonomy project: a simulation-first mission intelligence layer that turns sensor evidence into prioritized findings, analyst review workflows, mission memory, and structured mission reports.

What it does

Aegis takes a high-level mission request and moves it through mission planning, sensor evidence processing, proposal detection, semantic scoring, candidate ranking, analyst review, mission memory, and reporting. The goal is not just object detection. It is helping an operator decide which observations deserve attention while preserving uncertain evidence.

Why I built this

The project began as a drone-based search and perception system, then evolved into a broader mission intelligence platform that can support RGB imagery, infrared imagery, video, and future acoustic or sonar inputs.

Creative process

I designed Aegis around analyst burden rather than model spectacle. Each stage asks whether it helps preserve relevant evidence, reduce noisy review queues, or produce a clearer mission record.

Technical decisions

The system is benchmark-driven and simulation-first. I use Python evaluation pipelines, labeled datasets, capture precision, capture recall, and capture F1 to compare local triage strategies against semantic review strategies.

AI integration

AI is used as part of a review and ranking layer, not as a black box. Local proposal systems preserve candidates, semantic scoring helps clean noisy queues, and mission memory keeps uncertainty available for human review.

Benchmark-driven evaluation

ModalityStrategyImagesPrecisionRecallF1
RGBLocal vehicle proposals50050.0%100.0%66.7%
RGBAPI semantic review10073.2%95.3%82.8%
InfraredLocal hot-blob triage50089.4%100.0%94.4%
InfraredAPI semantic review10061.1%100.0%75.9%

Current direction

Aegis Vision Intelligence for RGB imagery
Aegis Infrared Intelligence for thermal imagery
Aegis Acoustic Intelligence for future sonar, hydrophone, and signal-based sensing

How it works

Mission Request -> Mission Planning -> Sensor Evidence -> Proposal Detection -> Semantic Scoring -> Candidate Ranking -> Analyst Review -> Mission Memory -> Mission Report.

What I learned

Review strategy should depend on sensor modality. RGB vehicle evidence benefited from semantic cleanup, while infrared evidence performed better with fast local hot-blob triage when the signal was already strong.

Built with

PythonComputer VisionEvaluation PipelinesRGB/IR WorkflowsHuman-in-the-loop AI
AI Gym Bro
Your AI Fitness Companion

AI Gym Bro

Case / 002

AI Gym Bro represents the kind of work I love: blending AI, UX, personality, and mobile development to create experiences that feel human and useful. It's a coach who knows your abilities, a cheerleader who has your back, a personal trainer who reminds you that it's leg day no matter how much you want to skip.

What it does

A conversational AI fitness tracker where users log workouts by chatting with an enthusiastic "gym bro" personality. It uses GPT-4o-mini to parse natural language into structured workout data, track personal records, and provide motivational feedback.

Why I built this

Every fitness app I tried felt like a spreadsheet. I wanted something that felt like texting a friend who happens to be really into lifting. Something that would remember my PRs, call me out when I skip legs, and actually make logging a workout feel fun.

Creative process

I started by thinking about the voice. Before writing any code, I wrote sample conversations. what would this AI say when you hit a new PR? What about when you log a half-hearted workout? The personality came first, the architecture followed.

Technical decisions

Flutter for cross-platform mobile, Python Flask for the backend API, PostgreSQL for structured workout data, and OpenAI's API for the conversational layer. Flask for its simplicity. this app needed to be fast to iterate on, not over-engineered.

AI integration

The AI layer does more than chat. It parses messy natural language ("did 3 sets of bench, 185 for 8 reps, then dropped to 135") into structured data, detects personal records automatically, and adapts its motivational tone based on workout patterns.

How it works

Users type workouts in natural language. The AI parses input, extracts exercises/sets/reps/weight, stores it in PostgreSQL, checks for PRs, and responds with personality.

What I learned

Personality is a feature, not a gimmick. Users kept coming back not because tracking was better than competitors, but because the experience was more enjoyable. Prompt engineering: getting an AI to be consistently encouraging without being annoying is harder than it sounds.

Built with

FlutterPython FlaskPostgreSQLOpenAI APIRender
DietPalAI
Smart Nutrition Tracking

DietPalAI

Case / 003

DietPalAI is what happens when you ask "what if a nutrition tracker actually understood how people talk about food?" Instead of searching databases for exact ingredients, you just describe what you ate. however chaotically. and the AI figures it out.

What it does

A nutrition tracking app that uses AI to parse natural language meal descriptions and automatically calculate calories and macros.

Why I built this

Logging food is tedious. Most nutrition apps make you search through databases, weigh portions, and manually enter every ingredient. I wanted to just type "had a big bowl of pasta with chicken and some bread" and have it figure out the rest.

Creative process

I focused on reducing friction to zero. The entire UX is built around one input: tell me what you ate. No dropdowns, no searches, no portion size selectors. The AI handles the ambiguity, and the interface stays clean.

Technical decisions

React for the web, Flutter for mobile, serverless functions to keep costs low, OpenAI for parsing. Deployed on Netlify for instant scaling.

AI integration

The AI parses freeform meal descriptions into structured nutritional data. It handles vague quantities, combined meals, and corrects common food description quirks.

How it works

Type what you ate in plain English. The AI breaks it into components, estimates portions, calculates macros, logs it. Daily dashboard with trends over time.

What I learned

Reducing friction is everything. The difference between "log your food in 5 taps" and "log your food in 1 sentence" is the difference between an app people use and one people abandon.

Built with

ReactFlutterServerless FunctionsOpenAI APINetlify
Snowball Runner
Endless Downhill Mayhem

Snowball Runner

Case / 004

What it does

An addictive endless runner where players guide a snowball down a procedurally generated mountain slope. The snowball dynamically grows with speed and shrinks on collision.

Why I built this

I wanted to explore procedural generation and dynamic physics in Unity. The concept was simple enough to scope tightly but had enough depth to experiment with.

How it works

The mountain terrain generates procedurally as you descend. Obstacles spawn with increasing density. The snowball's size is tied to velocity. Score scales with distance and speed.

What I learned

Game feel is everything. Tiny tweaks to the physics made the difference between "meh" and "one more run." Also got comfortable with Unity's physics system and procedural content generation.

Built with

UnityC#Unity Physics
Detect AI-Generated Content

AI Image Detector

What it does

A machine learning application that analyzes and identifies AI-generated images with high accuracy.

Why I built this

With AI-generated images becoming indistinguishable from real photos, I wanted to explore the other side of the equation. can AI detect its own creations? A chance to dig into computer vision.

How it works

Upload an image and the model analyzes it using a trained TensorFlow classifier. Looks for patterns common in AI-generated images. subtle artifacts, frequency domain anomalies, and texture inconsistencies.

What I learned

Working with image classification deepened my understanding of neural networks and data preprocessing. The biggest challenge: building a balanced training dataset.

Built with

PythonTensorFlowOpenCVFlaskReact

More on GitHub.

Side projects, experiments, and half-finished ideas live there too.

Visit GitHub