List of some of the projects I have worked on or work on currently.
- Ninja Tag -
A mini-game that I wrote back in college. [User's Guide and Screenshots]
- 3D Scanner Robot -
Built 3D Scanner Robot and wrote software that moves the robot around an object and then builds a 3D mesh of the object.
The Robot has a rotating base, 3 other joints, and an infared distance-measuring sensor.
In the screenshots below, the green lines represent the current pose of the robot, and the red line connected to it represents the current distance reading of the infared beam.
The red dots are the measured points on the object being scanned.
The red dots are then connected together in a mesh (the red lines) to show the shape of the object being scanned.
The program allows for the 3D mesh to be exported to a file, which can then imported into a 3D modeling program like Blender.
- DataSocket - Library for sending arbitrary Python objects over TCP sockets.
- 2D Game Engine - Video game engine.
- 3D Game Engine - Video game engine.
- TechnoPlant - Music composition and sound rendering software.
- TimePilot - Software for tracking hours employees work and generating invoices based on it.
- TreeHouse - Content management system that versions arbitrary data, which can be updated and synced over a network.
- attack - System that provides a structured way to manage code for software by establishing relationships between pieces of code.
- boxes_and_folders - Tool for managing which (physical) file folders are in which boxes.
- compiler-compiler-compiler - Attempt at abstracting the compiler-compiler.
- compiler_dot_py - Library written in Python for writing compliers.
- conversation - Model basic human/computer conversations. (Useful for RPG-style video games)
- cruncher - Framework for splitting up large computing tasks into smaller pieces, sending them out over the network, and reassembling the results in a central location.
- csvdb - Tools for working with CSV files.
- flash_card_maker - Tool for making flashcards.
- input_recorder - Tool that records keyboard and mouse input and sends it out over a network.
- MCD - "Mode-Count-Data". A code generator that reads in a small file format specification and generates the C code to read and write the file format specified.
- polyglot - Markup system that reads code written in multiple languages and splits out into pieces that other parts of a compilation process can handle.
- render3d -
Reads in input for a scene in 3D and output the 2D rendering of it.
I wrote this program mostly from scratch, just using the SDL libray, and implemting all of the 3D math myself. Here are a few screenshots demonstrating its capabilities:
- z1 - Set of simple tools that I find convenient for working, such as a program launcher.
- FSM - Language for specifying finite state machines.
- Sij - Language for specifying simple configuration information.
- NORL - Nested Object Representation Language. Simple language for specifying nested data structures made of string and numerical data.
- build_monkey / bundle - Tools for deploying builds of a piece of software as gzipped tarballs.
- generate_class - Tool for generating C++ skeleton code.
- generate_linked_list - Tool for generating C++ code that implements a linked list with certain parameters.
- linecount - Tool that counts the number of lines of code of various programming languages.
- mkfile - Simple tool that creates files and fills them in with skeleton information.
- remember - Library for remembering the answers to questions that a user types for a specified context.
- strip_cvs - Deletes the “CVS” directories from a specified tree in a file system
- todo_list - Scans source code and generates a to-do list in HTML.
- version_increment - Command line tool for managing version numbers for software applications. This tool can help ease or automate one of the steps in the softare release process.
- Hatchet - A programming language good for writing programs. It also has music-related functionality.
- awebshell library - a library for quickly accessing web pages with short command line interface-style commands. Here is a link to top-level project in case the link breaks.
- osgSDL MSVS Examples - Contributed (working) MS Visual Studio examples to be included in osgSDL library (http://osgsdl.sourceforge.net/), a library that allows Open Scene Graph applications to be driven by SDL timing and events. I found this library useful in developing 3D games, but I am not sure it is as useful as it once was because the Open Scene Graph input API appears to have improved since the last time I used it.
- fred -
A sort of interactive AI agent & command shell & natural language processor & natural-langage-and-programming-language thingy that I have been working on from time to time.
I am not really sure what it is. I will let you know when I find out.
- Soundtrack for "Poles" - Wrote soundtrack and produced foley art (sound effects) for "Poles" animation short.
"Poles" is a 3D animated cartoon about a day in the life of three telephone poles.
Their day is disrupted when a bird bothers one of the telephone poles.