Projects

A browser-based physics game where you stack Tetris-shaped blocks on a rocking platform. Stack as high as you can without tipping it over. The platform tilts under the weight so balance your placements carefully, or the whole tower comes down.
TypeScript · Three.js · cannon-es · Vite · Upstash Redis

An AI-powered practice worksheet generator that creates tailored questions from textbook PDFs. Features automatic subject and chapter detection, AI-generated questions with adjustable difficulty levels via Google Gemini, individual question regeneration, LaTeX math rendering with KaTeX, and PDF export via LaTeX compilation. Supports PDF upload with text extraction, readability checks, and rate limit handling with automatic retry.
Python · FastAPI · SQLAlchemy · Jinja2 · Tailwind CSS · Gemini API · Docker

An interactive web app for visualizing algorithms, data structures, and programming concepts with real-time audio feedback. Features 44 sorting algorithms, 7 search algorithms, 7 pathfinding algorithms on interactive grids, 9 data structure visualizers (linked lists, trees, heaps, queues), 8 C++ essentials modules (I/O, memory, pointers, Big-O), and 6 Bash & Unix modules. Includes step-by-step pseudocode with line highlighting, Web Audio API frequency-mapped tones, and adjustable size, speed, and algorithm parameters.
JavaScript · HTML · CSS · Algorithms · Data Structures · Web Audio API

An AI MIDI composition tool that generates unique melodies, harmonies, and beats via natural language prompts. Features structured prompts to output melodic JSON data for a 32-step sequencer with drum pattern classification and controls for tempo, playback, note editing, and import/export.
HTML · JavaScript · Gemini API · MIDI

A browser tool for chopping multiple long recordings such as full gigs, rehearsals, or DJ sets into individual tracks. Drag across the waveform to mark each section, name it, and export every section from every file as one zip. Entirely client-side. The browser decodes to raw PCM, so a cut is just a slice of the sample array. Exports lossless WAV or 192kbps MP3.
React · JavaScript · Vite · Web Audio API · Canvas · lamejs · JSZip

A full-stack web app helping UW students find ideal study spots via a personalized recommendation engine. Features an interactive campus map with RESTful endpoints to query study spots and handle user reviews. Developed in a 5-person team following Agile/Scrum methodology with 20+ catalogued study spots.
React · Javascript · Flask · Python · MySQL · Mapbox API · Axios

A 24-level shooter game using inheritance and polymorphism for modular enemies and difficulty scaling. Features collision detection, scoring, timing, and SFX to deliver a polished gaming experience and boost player engagement.
Java · Swing · AWT · Logic Pro

(The hello world of ML.) A PyTorch-based neural network for recognizing handwritten digits with an interactive drawing interface. Features a 4-layer fully connected network trained on the MNIST dataset with high classification accuracy. Includes an interactive Pygame interface for drawing and testing predictions in real time, with automatic model saving and loading.
Python · PyTorch · Pygame · NumPy · OpenCV

A customization tool for editing Marmoset code editor themes with built-in presets and live preview. Features a main screen that displays public and release tests alongside the collapsible theme editor.
JavaScript

Managing and updating a professional fine artist's website to improve accessibility, performance, and user experience through consistent updates, content, and digital media.
HTML · CSS · Wix

Developed technical expertise with audio editing software and digital tools to produce and remix 100+ tracks to build an audience of 1,000+ subscribers. Edited VST plugins and synthesizers in C++ to create custom sounds.
Logic Pro · Audacity · MidiTrail · VGM Trans · Audio Interfaces · MIDI Controllers · VST Programming

Programmed VSTs and digital synths in C++ to create custom sounds and modular frameworks for new instruments.
C++ · Audio Programming · Sound Design














Wobble
A browser-based physics game where you stack Tetris-shaped blocks on a rocking platform. Stack as high as you can without tipping it over. The platform tilts under the weight so balance your placements carefully, or the whole tower comes down.
TypeScript · Three.js · cannon-es · Vite · Upstash Redis