Case study · Music research
Melody Search Index (Live site) (Backend on GitHub)
Full-stack melody-similarity search, with OCR and RAG, over 10k+ records for music researchers worldwide.
Read the case studyWork
Client and research work first, then the apps, tools, and games I’ve made along the way.
Paid work and research collaborations.
Case study · Music research
Full-stack melody-similarity search, with OCR and RAG, over 10k+ records for music researchers worldwide.
Read the case studySearch · Live
Search over 4,033 documents of 19th-century French music press, by keywords or by semantic meaning, running entirely on local GPUs.
Read the case studyLLM evaluation · Talk, Dec 2026
An LLM pipeline that codes newspaper coverage the way trained research assistants do, and measures how closely it matches them.
Read the case studyMobile · In progress
An offline Android field guide, built from a 40-page microbiology guidebook, that tells you what's alive in the water you're standing over.
Read the case studyCropped 7k+ images automatically: 25× faster, with 96% less manual editing for a team of five.
EEG and heart-rate features, built with FFT and statistical modeling, that separate state anxiety from trait anxiety.
Models, embeddings, data, and signals, for research and for my own use and curiosity.
Vector embeddings and RAG
Vector embeddings, hybrid search, reranking, and RAG over research collections, from the FMC Research Assistant to my Venice talk, “A Cohesive Look at RAG for Research.”
Local transcription
Private audio and video transcription with faster-whisper on two local GPUs, with no cloud and no uploads.
AI text extractor
A command-line tool for extracting text with AI.
Episodic storytelling analyses
The rules of storytelling in shows like Avatar, Buffy, Death Note, and Rick and Morty.
Holiday party planner
Ask it for a party and AI plans one around an obscure holiday or anniversary. It draws on 19 holiday scrapers, with an email digest and a phone app for plans and invites.
Apps for the web and for Android.
Apartment and rent portal
A web portal for apartments and rent.
Tweeter (GitHub)
A Twitter clone in TypeScript.
Assassin
An Android game with a Java server and an automated test rig.
Bank scorekeeper
An Android scorekeeper for the dice game Bank, plus a Python simulator that pits banking strategies against each other.
Hack Tank
An app for focus and routines, with work cycles, check-ins, and a searchable library of 423 tips distilled from neuroscience research.
Family Map
An Android app that maps family-history events, with its own server.
GeoQuiz
An Android quiz app.
Animal game
A mobile game with a Kotlin backend.
Command-line tools, solvers, games, and mods.
Toki pona parser
A grammar and syntax tree for a minimalist language.
Roommate assigner
Integer linear programming that matches roommates from survey answers.
Campfire
A storytelling horror game in Godot.
West Marches Discord bot
A Discord bot for a 100-player D&D campaign. A query language I wrote (tokenizer, parser, AST) searches the world's notes, first through the Notion API, now through Obsidian, with role-gated edits and a weather simulator.
Wii Tanks editor
A decompiler, graphical editor, and recompiler for Wii Play's Tanks. Edit enemy values, hero tank values, level tank configuration, and level block placements.
Ultimate tic-tac-toe
A modular, well-tested Python implementation of ultimate tic-tac-toe.
Real-time chess
Multiplayer chess, played in real time from the command line.
MUD
A text-based multiplayer world for the terminal.
Personal Anki
Spaced-repetition flashcards for the terminal.