Ahmad Basyouni, Verrazzano Class of 2026, completed a major in Engineering Science
My capstone is called ReZon, a personal AI assistant that
runs as a small see-through window on top of everything else on your screen.
The idea is pretty simple. Instead of leaving your work, opening a chat tab,
copy-pasting your code or your chart, and asking a question somewhere else, the
assistant comes to you. You press one hotkey and it can see what's on your
screen, figure out what app you're in, and either give you a quick answer or do
something for you.
The whole thing runs on my laptop. The language model (Qwen
2.5 7B) is loaded locally through Ollama, so nothing I'm reading, writing, or
trading ever leaves my computer. The system boots up with one command in about
11 seconds, and I check it before every demo with a script that runs 33 tests
against all three modes.
My main conclusion was that the AI part was almost never
what made things hard. Once the model was warmed up, it gave me good answers in
under two seconds. What actually broke the system was the surrounding plumbing.
A hardcoded calendar name that didn't exist on my Mac. A screenshot that
accidentally captured the assistant's own UI. A retry loop that gave up too
early after 61 tries. None of those bugs were about intelligence. They were
about details. For an assistant that lives on your screen, the smart part is
necessary, but the small interface decisions are what make it feel reliable.
I picked this research area because I was annoyed at myself.
I'd be paper trading on TradingView and catch myself about to click Buy on
something I already told myself I wouldn't trade, just because the button was
sitting right there. And while coding I'd tab over to ChatGPT, paste a
function, ask a question, then come back and lose my place. Both problems are
the same problem. My apps don't know about my plan, so they let me forget about
it. I wanted to build the thing I wished existed for me.
I expected the project to mostly be about AI. Picking the
right model, prompting it cleverly. It really wasn't. The hard parts were tiny
details. Getting an Electron window to actually float above Fullscreen Chrome
on Mac took way more research than I expected. Making sure the screenshot
didn't capture my own overlay took an entire afternoon of debugging.
AppleScript for Calendar and iMessage was simple to write, but macOS
permissions fight you the first few times you run it.
What was easier than I expected was the language model
itself. Qwen 2.5 7B running locally was fast enough and accurate enough that I
never felt limited by it. What surprised me most was how much one tiny fix
mattered. I added a hardcoded fast path that fires a guaranteed sub-second
toast on every ticker change, totally separate from the slower AI path. That
one design choice is probably what kept my live demo from breaking on stage.
If I keep going on this, the next step is Windows support,
because every friend I showed it to asked for it. After that I want to add
long-term memory using a vector database, so the assistant remembers
preferences across months instead of just sessions.
The biggest thing I'm taking away is that building something
for yourself first is a really good way to stay motivated for a whole semester.
I learned more from debugging this one project than I did in most of my
classes.