A page dedicated to going into a bit more depth on some of the coding projects I have worked on, from various points throughout my life. I have been programming for quite some time, and have maintained a GitHub account since June 2015, so some of the projects vary in quality. This list is incomplete, and I will update it as I have time. They are sorted from most to least recent by start date.
Please also see my Languages page, where I chronicle all the programming languages (esoteric and not) that I have designed and implemented.
For hackathon Cypher VIII, I created this browser-based Rhythm game from scratch. While the game is in continuing development, the logic began with extensive functionality, including event-based beatmaps, dynamic graphs with automatic inbetweening, all featured in the linked demonstration video.
A collaborative effort I led as part of a William & Mary Game Design class, with William Cross, William Kyle, and Raymond Wang. Infinite Automata is a roguelike bullethell in the vein of games like Enter the Gungeon and Realm of the Mad God. This is the sum result of only four months of effort, and consists entirely of original visual assets. Built in C++ using the libraries SDL2, tinyxml2, and Box2D.
In addition to leading the team, I contributed primarily to the wave control logic, some XML file parsing, and the GUI design.
For hackathon Cypher VII, I collaborated with Jonathan Ruxton to create a visual application using Java's swing components to simulate Conway's Game of Life, but where the borders between cells can break down as a result of extended activity. The application also features an implementation of Sandpiles.
I primarily worked on the display aspects of the application, while my partner worked on the logic of generations. We also had invaluable assistance from Tetra, who helped us generate and solidify the idea during the Hackathon.
Quartic is a programming language with assembly syntax that compiles to the esoteric language 4. The most interesting challenge in 4, and by extension, Quartic, is that there is a finite memory of 100 cells, each containing an arbitrarily large integer. I designed Quartic because I wanted to prove 4 to be Turing Complete by proof of emulation, utilizing bigintegers as arbitrarily large data structures. To this end, I needed a simpler, more controlled way to organize my efforts. This file (snippet pictured above left) is an interpreter for the Turing Complete Boolfuck language, storing the data tape as a very large integer. The corresponding compiled 4 program is pictured above right.
I wrote the Quartic compiler in Ruby, and it is able to compile to 4 and to D, and, by extension, to an executable file. The same compiler framework is also used to generate a "prettified" version of 4, and can help unobfuscate existing 4 source code files into (more) readable, commented code. The esolang page linked above features Quartic's specification, including basic arithmetic commands, loops, branching, and preprocessing instructions.
Made to address a lack of animals in AnimalsAPI, this API features requests for randomized images of a variety of animals.
A custom card editor commissioned by the owner of YGOPRO The Dawn of a New Era, developed using Neo New Card maker as a base. Built with React, the editor works in your browser and offers the most customization, accuracy, and accessibility of any Yu-Gi-Oh! card editor publicly available.
A stack-based programming language written in JavaScript. Written with keeping both readability and concision in mind. A simple passion project started in December 2016, the language has grown to include quite a lot of functions. If you are interested in learning the syntax of the language, I would recommend reading the wiki and maybe perusing the standard library, as I the current language command documentation is sparse at best.