— Portfolio —

a brief showcase of my projects ranked by significance and relevance, ties broken by date. i've yet to write in depth about most of these and will never about some.

note: you can click the preview images to view them in full size



Wordhunter

May, 2024

A web-based solver for iMessage/GamePigeon Word Hunt. It uses OpenCV to identify the grid and letters and traverses a trie’d English dictionary to find all possible words, as well as summary stats like total available points and word count (finding these was the original motivation for this project). The app is completely client-based; all CV and solving logic happens in the browser through vanilla JS.

(I don’t even have an iPhone—I had to test with screenshots I found on Google.)


Car Sign

January, 2022

A prototype of an LED marquee sign to be mounted to the back of your car to communicate with drivers behind you. I built and designed the housing and sign itself and wrote an app to control it hands-free with Google voice—e.g., “hey Google, tell the guy behind me to stop tailgating me” or “oh my god I am so sorry”. The sign is controlled by a Raspberry Pi Zero running a Python program that communicates with the phone over Bluetooth. It also contains some additional components and wiring for power delivery.


GPT Assistant V2

April, 2023

A self-improving, voice-enabled, GPT-4-based assistant with multiple interfaces, written in Python. The design is very loosely inspired by the human brain, and with decent success—the latency is not great, but the bot makes fine conversation, follows instructions, and, upon my request, gave itself the ability to search Google, scrape my screen with OCR, and control my Spotify, among other things.


contrapunct.io

October, 2021

A website that uses the rules of species counterpoint to compose countermelodies to user-provided melodies. Built on a RESTful API written in Python with Flask and a simple vanilla JS/HTML/CSS web frontend. The site features a demo if you don’t happen to have a suitable cantus firmus MIDI file on hand.


MelodyFarm

May, 2021

A web app that uses an evolutionary algorithm to generate music, with humans in the loop as a fitness test via a voting bracket. The actual algorithm for generating and combining songs is pretty naive, however, and I’ve not observed convergence on a pleasant melody in my use. I’d like to revisit this idea but try something like interpolating between songs in a latent space, which should give better results.


Starmapper

November, 2020

A tool that generates distance-optimized (as opposed to just flattened) 2D projections of the stars. Written in Python and based on the principles of self-organizing maps. Includes error indicators at both the star and map level. Generalized to I/O of any dimension, but with few use cases for anything above 3D. This is the first project I did a write-up on.


Psonic

May, 2020

A password manager app I made with a friend that won first place at our high school hackathon. The app is built with Electron. It generates mnemonics that are always valid English sentences (or multiple sentences) and accounts for case, numbers, and special characters. E.g.,

u0mPhP.arLE&S! ---> "unbearable zero-mouthed Patricks hate Pontiacs. armies repair Lithuanian Esthers and Saturns!"

I designed and implemented the mnemonic algorithm and wrote most of the logic for the app. (My partner did the UI and password storage.)


GPT Assistant V1

December, 2022

The first iteration of my custom LLM assistant. Built with Python/Flask and a Discord bot interface. This was in the early days of ChatGPT, and the goal was getting it to correctly solve problems with multiple steps and/or specific, objectively right answers. This really boiled down to using Google and being able to solve basic-ish math word problems. I had moderate success—it could accurately answer questions about things like celebrity ages, caloric content, and movie showtimes, and could correctly answer questions like “how long could I survive on 100 cans of black beans?” about 30% of the time. This was near-instantly obsoleted by the release of gpt-3.5-turbo and ChatGPT plugins.


Weight Set Map

May, 2021

A tool that generates KML maps of sporting goods stores across the U.S., color-coded by weight set availability. Implemented with a single Python script that calls an unrestricted inventory endpoint on a certain store’s website. I used and updated these maps daily to make over $60/hr flipping weight sets in a post-quarantine secondhand home-gym market yet to adjust to recovering inventory. I experimented with a Shopify site and Google search ads, but stuck with craigslist because it had better margins. Unfortunately, the market adjusted before I was able to tour the US in a U-Haul full of weight sets.


it's friday somewhere

June, 2021

This one isn’t actually C.S. related, but I wrote, produced, and released a lofi (beats to study to) EP a while back, so stream me on Spotify I guess? The album art was made with neural style transfer, so it is tangentially relevant.


fin.