Release of Color Machine 0.9, 14 years after the initial released version. Color Machine has been ported from SDL 1.2 to SDL 2, has improved modules, palettes, and effects. Greatly improved command line options allow customizing the experience much more than previously possible.
The PyODE Ragdoll Tutorial has received a fix to a bug that previously prevented collisions from being detected when run on some versions of Python.
A research paper I originally wrote 7 years ago entitled Nearest-Neighbor Approximation Trees for Fast Surface Registration has been posted. This paper has been sitting on my hard drive following a dead end in my early graduate work. Possibly interesting to anyone who develops software to combine separate digital scans of 3D objects into a single pointcloud and surface mesh.
DupeFinder 1.1.0 is available. This version removes the need for an external md5sum command line utility. This improves performance calculating MD5 digests for small files and eliminates a cumbersome dependency for Windows users.
Initial release of Color Machine 0.8. Color Machine is a palette shifting screensaver. At least, it's almost a screensaver, it can't actually start automatically. It's still nice to look at though. Why version 0.8 for an initial release? I actually started working on this in high school, and ported it from DOS partially to OpenGL, and finally to SDL. Though a bit incomplete, this project is fairly mature.
PyODE Ragdoll Tutorial posted. I created this tutorial after needing to make my own ragdoll simulation using ODE and not finding any good tutorials on the web. This tutorial is meant to provide a useful and practical codebase in addition to being informative, and hopefully it will help you game programmers out there add a touch of realistic physics to your own projects. Source code directly available here.
SnapMatcher 0.4 now available. This version adds the ability to quickly identify matches between an existing image database and a small set of external images. It also corrects the flawed bugfix in version 0.3 for allowing image databases to be created on Windows.
SnapMatcher 0.3 now available. This version adds features allowing efficient updates and match identifications to existing image databases, as well as a bugfix to allow image databases to be correctly generated on Windows.
SnapMatcher 0.2 now available. Improvements in this version primarily concern performance: 30%-40% faster image database creation, and smaller file sizes for both the database and match results. Also includes minor command line interface changes and a large number of basic code improvements and cleanup.
Initial release of SnapMatcher 0.1. SnapMatcher identifies matching and nearly matching images in large collections. Matches can be found even between images that have been modified using techniques such as rescaling; brightness, contrast, and color balance adjustment; the addition of text and borders; and even minor cropping.


An application designed to identify identical and nearly identical images across a wide variety of file formats. Written in Python.
A simple GUI application designed to identify duplicate files in a set of directories, allowing for easy deletion, renaming and reporting. Written in Python with an interface created using PyQt, the Python bindings for the Qt Toolkit.
PyODE Ragdoll Physics Tutorial
A tutorial for creating a ragdoll physics simulation using Python and PyODE, the Python bindings for ODE (Open Dynamics Engine).
Color Machine
A color palette shifting (almost) screensaver. Developed using SDL and featuring over 20 visual modules.


Nearest-Neighbor Approximation Trees for Fast Surface Registration
A research paper originally written in 2003. It describes using a special form of octree to increase the speed of intentifying the closest points between partially overlapping surfaces, used in reconstruction of 3D models from separate, partial surfaces.

Python, an interpreted, interactive, object-oriented programming language. Open Source, easy to learn, quick to code, and extraordinarily clear to read.
Creators of Qt, the excellent cross-platform application toolkit.
The Python bindings to the Qt toolkit.
ODE (Open Dynamics Engine)
A physics simulation library.
The Python bindings for ODE.
The cross-platform Simple Directmedia Layer.

Last Updated 2011.03.19