Personal ProjectsPersonal Projects

Personal Projects

Mountain silhouette far
Mountain silhouette near

A collection of coding projects that I have worked on in my free time and during my studies at the University of Washington.

Annoying Goose Browser Extension

Annoying Goose Browser Extension

  • Developed a browser extension using JavaScript and the Chrome Extension API
  • Explored how subtle interactions can create memorable user experiences
  • Iteratively fixed bugs and added features to the extension based on user feedback
  • Achieved over 7,000 weekly active users
JavaScriptChrome Extension API
Bird Identifier App

Bird Identifier App

  • Developed a full-stack Android mobile app for bird identification using audio recognition, combining machine learning with a passion for ornithology
  • Engineered backend using Firebase, including real-time database and authentication systems
  • Transformed raw, unstructured bird audio into suitable data for training and deploying a TensorFlow CNN model
VueViteCapacitorJavaScriptNode.jsFirebaseHTMLCSSPythonTensorFlow
Dungeon Adventure Game

Dungeon Adventure Game

  • Led a team of two in iteratively developing a dungeon adventure game in an Agile manner with user stories
  • Utilized multiple design patterns such as MVC, Singleton, Memento, Builder, Factory, and Mock Object
  • Experienced the SDLC by writing an SRS document, designing UML diagrams, implementing the designs in sprints, and deploying the game as an installable application
JavaSQLJavaFX
Neural Network from Scratch

Neural Network from Scratch

  • Built neural network implementation from first principles in Python to gain deep understanding of ML fundamentals underlying modern frameworks like TensorFlow and PyTorch
  • Implemented forward propagation with configurable node architectures, weight matrices, and bias vectors for flexible network design
  • Developed backpropagation algorithm using multivariable calculus to compute gradient vectors, optimizing for efficient training convergence
PythonPandasNumpySciKitLearnMatPlotLib
Platformer Web Game

Platformer Web Game

  • Collaborated with a team of three to develop a 2D platformer game with action/adventure elements using vanilla JavaScript.
  • Implemented physics, advanced player movement, slingshot mechanics, collectable items, and particle effects.
  • Designed completely custom music and artwork with teammates.
HTMLCSSJavaScript
Discord Story Bot

Discord Story Bot

  • Developed a Discord bot that facilitates collaborative storytelling using Python and discord.py
  • Integrated Gemini API to generate AI-assisted plot twists and story summaries
  • Implemented cloud-based persistence with Firebase Firestore to maintain story continuity
  • Designed a system for story export and sharing via Google Docs API
PythonDiscord APIFirebaseGoogle Docs APIGemini API
Procedural Terrain Generation Tool

Procedural Terrain Generation Tool

  • Custom implemented the Wave Function Collapse Algorithm, which follows local constraints to collapse cells into tiles, borrowing concepts from Quantum Mechanics and Information Theory.
  • Designed a web interface to visualize the algorithm in action and generate custom images.
  • Conducted performance analysis on different implementations of the algorithm using Python, improving the efficiency and effectiveness of the terrain generation.
  • The professor who oversaw the project stated my new twists on the implementation were likely novel ideas for terrain generation.
JavaScriptHTMLCSSPythonMatplotlib

© Nathan Hinthorne

Contact:

EmailLinkedInGitHub