Personal Projects

Once Upon A ___

A game made for a week-long game development competition. All programming done by me, and all writing and player animations were done by my partner for the competition. Once Upon A ___ is a narrative-focused puzzle platformer where you rewrite the Prince's story as you play. Rearrange sentences as you play to solve puzzles and watch as the Prince's story unfolds before your eyes.

The title screen for Once Upon A ___
You can download the game from Github or Itch.io

Gartic Autodraw

A program that uses a greedy gradient-descent algorithm to draw ellipses, rectangles, and lines in the online Gartic Phone application to approximate an arbitrary target image.

Screenshot of Gartic Phone, with a drawing of Kirby in it
This is drawn by the program, drawn with a total of 750 different shapes

Get Canvas Assignments

Uses the public Canvas API to pull assignments into a checklist in a local Markdown file.

Screenshot of example output for the Canvas assignment project
This is an example output from the console, so you can see which assignments it's importing into the markdown file

Trim Video

Lightweight WPF application with an intuitive UI for quickly cutting video files to the desired length.

Screenshot of the trim video project
This is an example of the UI. The left window is the startup screen, the right window is the cutting UI

Convert Workday Class Schedule

Reads the data in an Excel file and creates an iCalendar file to easily import class schedules.

Screenshot of the Workday class coverter project
This is an example of the console output. The left window is the Excel spreadsheet, the right window is the console output, which reflects the contents of the generated iCalendar format

Parse Pearson Expressions

Uses context-free grammar structures to convert from a proprietary mathematical expression format to a more commonly used format.

Screenshot of the Workday class coverter project
This is an example of the console output. You can paste in the Pearson format, and it will output the general expression, as well as the calculated value