A List of Some of My Projects
Hello! This is a list of some of my programming projects in roughly chronological order. This includes software, plugins, webpages, microcontroller projects, et cetera. Let me know if you have questions about anything and hope you enjoy!
26 July - 16 August 2021
When I first started using MAGIX VEGAS Pro 18, I found it generally very advanced and feature rich, but at the same time lacking in certain effects that are standard in most editing software I've used. When I found out how easy it was to make plugins for VEGAS, I kind of got a little obsessed and made a whole bunch of 'em! This actually was my first time ever making plugins and while there is hardly any information or tutorials online on how to make VEGAS plugins, I must say the API and docs- er... doc is quite good. Mostly.
This was also my first time working with C# outside of Unity and I quite like it. It also helps that it was really easy to pick up since its syntax is exceptionally similar to Java except for the Capitalization Of Everything. Working with Windows Forms was also very fun. There's something I can't really explain about the look of those default Windows dialog boxes that's somewhat nostalgic and just generally cool to work with; I get that same feeling with Java's Swing using the default look-and-feel. I don't know what it is. Maybe I'm just weird like that. I definitely envision myself using C# for something else in the future.
I guess I should talk about the actual plugins, huh? Well there are a couple of really simple ones like one that selects everything after the playhead and one that adds a VEGAS Picture In Picture effect to everything (because yes, I wanted a script for that). The big and complex ones include a "screen shake" effect, a super janky "chromatic aberration" effect, and a plugin that can animate any parameter of a video effect based on an oscillator, random number generator, or noise.
11 December 2016 - Ongoing
Hey, it's the website you're on right now! The way this site was created is actually pretty complicated and made for a good story, so I wrote a whole other article about it. Check it out!
24 June - 3 July 2021
Just like my website, this is another project I'm suuuuuper proud of. I've never come close to doing a project involving networking at this scale or even at all. It took me an unprecedented amount of time and effort to complete it and I really am very happy with the final product... if it weren't for the ping.
*sigh* yeah... in practice this game is rather unplayable over the internet because the ping gives the host a massive advantage. Actually, this game runs quite well if played over LAN, but if you're able to play this over LAN, THEN WHY NOT JUST PLAY THE ACTUAL CARD GAME AHAHHAHAHAH.
Despite all that, I'm really happy I was able to finish this project. At the very least, it reassured me that game development is not the career path for me :P
28 June - 29 June 2021
ColorSplitter takes an input folder of images and isolates certain colors from that image (generating "whitemasks") and outputs them into a folder. I originally made it in Processing but then I realized I only used like 2 things from Processing so I remade it in pure Java. I'm not entirely sure what the applications for this are lol. I actually made this upon request from one of my friends. He needed a program that generated whitemasks for his game sprites or something so that program I did make.
2 June - 4 June 2021
DocLCD is a "word processor" of sorts for 20x4 character LCDs with I2C drivers. It's controlled by a Python program running on a Raspberry Pi which talks via serial to an Arduino program. The Arduino program then controls the character LCD through the LCD's I2C driver. The Python program accepts keyboard input and allows you type characters and traverse around the LCD screen.
2 June 2021
I needed TimeRefresher for one very specific thing. "Press F5 at a certain time". Yep, that's it. I love just making programs to solve these tiny little inconveniences. Knowing how to code really is like having superpowers.
7 May - 23 May 2021
RoundUp is a single Python script that copies all files from a directory tree into a single folder. The README does a better job of explaining this so check it out if you're interested. Just like with TimeRefresher, I created this to automate a process I often have had to do manually. Specifically, to deal with photos that were automatically organized into folders by programs against my will.
21 March - 9 April 2021
tuscon (yes, you read that right, that really is the name) is a super-simple web-templating library. All it is is HTML files with parameters, if statements, and for loops. I talk about my (unfortunate) reason for creating tuscon in that article about my website.
ca. 2016 - 22 December 2019
Pi555 was my first Computer Engineering, microcontroller-type project thing and boy oh boy did I bite off more than I could chew with this one. Though intimidating, I was able to finish this project and I might consider it my magnum opus. It is VERY cool, trust me.
...okay so I can't exactly show it to you but I guess I can describe what it is. So, a 555 timer is a chip that can be used to generate a square wave at a given frequency. With the right configuration, you can get it to play a tone on a speaker. My goal for this project was to play music using the tone generated by the 555 timer. The way you'd change the pitch of the tone is by changing the resistance between two of the chip's pins and I used a digital potentiometer for this.
As if I hadn't already had my work cut out for me, knowing hardly anything about Computer Engineering stuff, I wanted to be able to use MIDI files as the source for the music. What all of this ultimately resulted in was a Java program (probably should've used Python though) that read through a MIDI file and translated it into something that the "music player" Java program could use. This "music player" program (which ran on a Raspberry PI) played the correct notes at the correct times on the 555 timer by sending bytes to the digital potentiometer through its GPIO pins.
And... yeah. It worked. And it was awesome. I really wish I had something else to show you here. Sorry!
6 May - 8 May 2019
Let's go straight from awesome and complex back to simple and ridiculous. Ever wanted to hear an annoying click sound every time you press a key? No? Too bad; ClickType. Now you can experience the cacophony of blue mechanical keyboard switches at no cost to you!
5 August 2018
Tired of memorizing vulgar acronyms to help you read the resistance values of resistors from the colored stripes? Or maybe you're just too lazy to learn them at all? Just input the colors into this tool and be enlightened.
ca. January 2018
That time I trained a character-based recurrent neural network on Plato's works.
Featuring such great wisdom as: "See none also those things of this class of great antiquity does not charm from the eye of our manner in which young or motion is illusion to balanced; whereas all this to equals in a long sufficient indissolution of their rules and proportions"
17 Aug 2017 - 4 December 2018
Memories, memories. Jumpy is a game I "made" by half following a tutorial and half doing my own thing. I was a rather unexperienced but quickly-learning programmer at the time and I remember being so happy when I made a nested for-loop that read through the 2D arrays that stored the levels. I showed this game to a bunch of people at school and it was so awesome to see them all play it and subsequently rage at how hard it was. To this day I still have the list on my phone that contains the names of the people I knew who beat Jumpy. All 12 of them.
The game itself is a pretty basic HTML5 canvas web game. It's a typical 2D platformer with positively asinine level design. The difficulty curve is outta wack. What's funny is that whenever I found a bug with the physics, instead of fixing it, I designed levels that used that bug. The epitome of "it's not a bug, it's a feature". There's also a level creator, which is pretty awesome.
Oh, and a word of warning: This game runs faster than normal on high refresh rate monitors. It's meant to run at 60fps. I'll try to fix this whenever I get a chance.
P.S. If you're one of my friends from school and you came to my website just to look for Jumpy, you found it! Congrats and welcome home! :)
18 March - 15 June 2017
And by the way, can we talk about what a horrible name "Dodge3" is? It sounds like it's the third entry in the "Dodge" series but nope. It's called that because there are 3 positions you can move to. How fun.
5 January - 11 July 2017
TI-Basic programming is a confusing mess that I absolutely love. There's a huge active community dedicated to programming for TI-84 calculators, and I decided to take part by making some of my own games. If you too want to waste your time programming for these calculators, it's super fun and I highly recommend learning if you're interested. Here's an awesome wiki with tons of good information.