Personal Website AI Assistant

Personal Website AI Assistant

Retrieval augmented generation (RAG) chatbots have risen as a useful tool to quickly retrieve information from a given set of documents using natural language. They’re quite effective at summarizing information while staying mostly factual. So, why not make my own RAG system to search my peer-reviewed publications, CV, and this website? If you want to learn more about me, come chat with my personal AI assistant! While you’re at it, you can see how I made this system.

Learn More

Guess the Grade

Guess the Grade

A common problem in rock climbing is determining the difficulty of a climb. This question is particularly relevant for climbs set on system boards, which are short training walls with a standardized set of hand/foot holds. Climbs on these boards are often set by members of the climbing community, who also (somewhat unreliably) determine the difficulty of the climb. That begs the question—can an AI be trained to estimate system board climb difficulty?

Learn More

Plan My Marathon

Plan My Marathon

Running a marathon requires a huge amount of training and dedication. Committing to a training plan can be difficult, especially when life’s other commitments get in the way. What should you do when you have to skip a scheduled run because of prior committments, or because the weather is awful? For the recreational runner without access to a coach, it’s hard to determine how to best adjust your training plan. So, let the Plan My Marathon AI do it for you!

Learn More

Visualizing the Seneca 7 Race Results

Visualizing the Seneca 7 Race Results

The Seneca 7 is a 7 person relay race around Seneca Lake covering a distance of (approximately) 77.7 miles. Each team member runs three legs throughout the day as the rest of the team leapfrogs their way up the course (hopefully ariving at the exchange point in time to switch runners). Using Tableau, I visualized the results of the past several years of this chaotic race.

See the Viz

The Wordle Bot

The Wordle Bot

Almost everyone has heard of Wordle—The New York Times’ daily word guessing game. This web app flips the game on its head. Instead of guessing the hidden word yourself, you get to determine the hidden word. Watch as The Wordle Bot finds your hidden word in six tries or less (or your money back) using an information theory-based algorithm! As a bonus, this algorithm can be used to determine some of the best (and worst) first word guesses.

Learn More

AABBCD Python Package

AABBCD Python Package

There are many occasions in science where you need to compute numerical integrals involving the product of two compact distributions (i.e. distributions that decay rapidly from their center). This compactness imposes a natural sparsity; distributions that are far from each other don’t interact, resulting in an integral that is effectively zero. This package (Axis-Aligned Bounding Boxes for Compact Distributions, AABBCD) provides utility functions for leveraging such sparsity for computational savings using algorithms I developed to compute the exact exchange interaction in large-scale systems.

Learn More