My first time playing with GUI building was making a small "Lights" game in Java. While this game is really simple I am happy about how much work I put into this project perfecting it and keeping it bug free.
Light Button Game CodeThis is one of the first projects I where I really started enjoying computer science. I linked up card images with a image panel in java so that it would display a Blackjack game. I created the logic to match the regular black jack game and also implemented a betting system into the game.
Black Jack GameMy first huge project in Java was making a Image Processing GUI. We manipulated pixels and created our own filters. The GUI took an image and allowed the user to stack filters onto the image and save the file to a specified name. I have also created trimmer which used a basic algorithm of finding the lowest cost seam through and image and trimmed the image down by a set number of rows.
Image ProcessorSecond huge project in Java was using the OpenGL SDK and creating a 3D shooter game from it. The game was contained in a single 3D walled room. In the walled room spheres were bouncing around and the goal was to hit all the spheres. We made a simple collision algorithm to detect when a shot matched a target. A K-D Tree was also used to map out the spheres and keep track of coordinates of the spheres in the room.
3D Jogl Game and KD TreeA simple spreadsheet I wrote in C#. A dependency graph was made to keep track of the cells and their relations towards each other. The MVC model was used to organize the data and displaying the data.
C# SpreadsheetFor extra credit we were told to make up a practice midterm problem for translating native code into MIPS Assembly. Since I really enjoyed writing in MIPS I decided to make up a tough recursion problem. I was able to successfully write the problem in MIPS which ended up being a happy moment in my life.
MIPS Assembly ProblemI coded three different caches in C#. The caches that I simulated were Fully-Associative Cache, Direct Cache, and a Semi-Associative Cache.
My Cache SimulationsUsing the server client model my partner and I created a multiplayer Boggle Game. The server is capable of hosting multiple games while the clients can connect on to any computer running the server. The server also connects the a mySQL database and updates onto a web page the stats of a player. The protocol used was specified by an instructor.
C# SpreadsheetIn this project I manipulated and created by own compatible codec for the FFMPEG library. I then used the FFMPEG Library and wrote a program that took an image and drew a ball over 200 copies of the image. Then using a simple FFMPEG command in command-line I stitched together the images and made a fun little ball bouncing video. In this project I also worked with generating a simple sine wave in C++.
FFMPEG Sin Wave Ball BounceWorking with a team of 4 we designed our own protocol and created a spreadsheet C# client and C++ server that allowed multiple clients to connect onto it and work on the same spreadsheet. Spreadsheets were able to be named and saved onto the server for future use. Our server is multi threaded to allow multiple clients to work on spreadsheets without being locked. A login system is implemented for clients to access their specified spreadsheets.
Network Connected SpreadsheetUsing the OpenDOF SDK I have made servers that can expand the amount of nodes contained the in system. I also used the Netty SDK and created a TCP and UDP transport which is currently used in the SDK.
Using the SuperCollider Native language I have programmed a theremin patch, a physical model guitar, and natural sounding bird noises. I have experience with working with filtering synthesis, fm and am synthesis, and additive synthesis. I have also worked on projects that create atonal and tonal music from simple algorithms.
Audio Synthesis Projects