Open-Source Projects

Rocketship RRT

This is a Javascript implementation of a RRT, or a Rapidly-Exploring Random Tree. The rocket ship uses a search tree to decide how to move around in space and get as close as possible to the orbiting planet.

Challenges

Determining a simple and decent search methodology was tricky. I created a node queue to determine which nodes to expand, and prioritized them based on Euclidean distance to the planet. The Euclidean distance metric causes problems where the closest node can point away from the planet, and thus that path would require more effort to get to the planet than others.

What I Learned

I've never written code for a website, so this was a fun opportunity to write javascript and understand how it plugs into html and no-code sites like WebFlow.

Surnamerator

A last name generation powered by a SLM (small language model). The inspiration was from my adopted partner's desire for a different surname.

Challenges

As I was working on this project, my partner wanted more control over the types of names generated by requesting first and final characters. First characters are easy, because I could initialize the prompt with them. Final characters are harder.

I modified the dataset to give "hints" of what the final characters would before the regular model input. The input was always big enough that the transformer model would see the final character hint and the current word status. This worked remarkably well! The model started giving the correct final characters (most of the time).

What I Learned

I got my hands dirty coding a transformer from scratch, something I'd only used libraries for or read papers on before this point.

Resources

Special thanks to Andrej Karpathy for inspiring this project with his Zero-to-Hero series.

Azriel Dreambooth

I used the latest image generation technique, DreamBooth, to fine-tune a model of my cat and make TONS of awesome images.

Can you tell which is the real picture of my cat Azriel?

Challenges

Determining training hyper-parameters turned out to be a huge undertaking. I wrote a Medium article outlining some of the final configurations that really worked well!

What I Learned

Getting hands on experience with diffusion models was great! I got a reminder of the importance of experiment tracking. Some models were not tracked as well in terms of number of training images, number of training steps and learning rate. Notating how the model was trained helped me produce better versions with more consistency.

Resources

The HuggingFace diffusers class provided a great foundation of knowledge for this project. The model of my cat Azriel won 2nd place in their DreamBooth competition!

Scribe

Zoom in on productivity with automated meetings! For AssemblyAI's Winter Hackathon, I submitted Scribe. Scribe is an automated note-taking application that helps users focus on calls and enables them to quickly catch up on anything they may have missed.

Challenges

This project was a huge time crunch! The hackathon was only two days long and it took the entire time to go from idea to MVP. One of the core challenges was getting real-time data out of web conferencing software. Zoom, Meet, and others don't provide good APIs to access this data.

I ended up using a plug-in that essentially read the sub-titles off a Google Meet web page as the meeting occurred. Getting access to the raw audio would've provided a much better product.

What I Learned

The amusing part of this project was that all the AI-related parts felt trivial. The hardest aspects were creating a website and piping information around. Never underestimate boiler-plate code!




Contact Me