These are all the software projects I've done that were not a part of my engineering curriculum. Any software that is available for use or download is governed by my software terms of use.
Write Site
- Version: 1
- Programming: November 2006 - January 2007
- Release: January 2007
You can download this software and an example of how to use it.
Write Site was developed as I was redoing the technical backend for this site and simultaneously making several other websites for friends and family. I needed a quick way to generate static HTML, and I've always liked the organization of having different parts of a tempalte in different files, so this program does just that: takes content from files and compiles it into a website made up of many different static pages. It also provides some convenience functions (like automatic naming of pages and generation of navigation links) and allows for conditional, repetitive content. It requires Python 2.4 or greater to run.
Show Description

Stargate
- Version: 1
- Programming: March - May 2006
- Demo: May 2006
- Release: May 2006
You can view this program or download the JavaScript.
I had researched ZUIs and I wanted to build my own while learning some more about JavaScript (in anticipation of doing a lot of it over the summer) and SVG, so I wrote this program. One of the things I decided early on is that I would not use a library to help me. Although it would take longer, I wanted to understand everything that was going on under the hood. Because of this, the code is terribly ineffecient, runs slowly, and I could probably reduce the file size by half if I were to do it again with a library.
The program will let you zoom in and out of the planets in our solar system, and potentially any other solar systems. This could be the beginning of a huge project that used all the data we have for the whole galaxy, but I got it to a state of completion I was happy with and left it at that. If anyone else is interested in this project, I'd be happy to start working on it again.
Show Description

3D Graphics Engine GUI
- Version: 0
- Programming: July - October 2005
- Demo: December 2005
You can download the Windows binary.
I realized that in order to further my goal of making a video game, I had to better understand 3D graphics and how they got from a data structure to the screen and back. To that end I wrote my own 3D modeling program in C++. I interfaced directly with OpenGL for the graphics and used FLTK for making the GUI. I implemented making the primitives of a rectangular prism, a sphere, and a pyramid. I then made it possible to color, translate, scale, and rotate those primitives. However, after coding in the ability to save and load files, I stopped development. I had achieved my goal and knew that proceeding further, into making my own fully-featured 3D modeler, would take years, and there were already alternatives out there that had been in development by larger teams (I did this by myself) for much longer (and over one semester). Building my own did make me more confident with other modelers and engines though, as I had a better grasp on the terminology and technical background.
Show Description

Base Radix
- Version: 0
- Programming: January - May 2005
- Demo: May 2005
Base Radix was a group project that I did with 4 other friends at Olin. We made a sprite based game engine using Python and PyGame. We did some really neat things, including random map generation, photo rotoscoping (I was the actor we used), context-free grammar for NPC speech, and collision detection. I worked primarily on our doodad placement algorithm and NPC path finding. We never really got the game to a finished state, but I learned a lot about making 2D games and working on group software projects.
One of the friends I worked with also wrote about this project on his website. He was nice enough to host the code repository if you want to take a look at the source.
Show Description

Ram Disk File Mover
- Version: 1
- Programming: July 2004 - March 2005
- Demo: March 17, 2005
You can download the Windows binary package.
A friend of mine was crazy about SETI@home and getting high performance on it. He used a RAM disk to run SETI off of, but was tired of moving his files there and back from the hard drive every time the machine restarted. So, he asked me to write a program to do it.
Initially, I wrote the program in C++ and had it run as a Windows Service. This created two obvious problems though: it wasn't cross platform and the installation process was really hard for the end user, as I didn't have a program that would automatically wrap the program in an installer and didn't want to write it myself. In the end, about six months after that, I re-wrote the program using Python, and created a simpler (though still not great) install process.
Show Description

Bar Man
- Version: 0
- Programming: May - June 2003
Ever since I was young, I wanted to make video games. My friends and I determined that if we could get a guy walking around in a bar, that would be a sufficient beginning to do anything we wanted. On a whim, I bought one of those game programming starter kits and used a program called 3D Game Studio to create a bar where the player could move around.
It was fun and entertaining, as well as introducing me to 3D modeling, but having gone to a liberal arts high school, I knew nothing about programming - other than my web experience with JavaScript and ActionScript, which was not sufficient to carry over to C++. The project couldn't move forward because we were trapped by their engine. Nowadays, this engine is terribly outdated and not worth pursuing. As for making games in my spare time, in addition to knowing a lot more about programming now, including C++, I've moved on to using open source engines. Along with a small group of my friends, I'm perpetually working on something to this end.
Show Description
