home  /   who am i  /   my work  /   soap box


Much of my free time is spent developing software to solve problems I'm interested in. I've decided to share some of those solutions here.

c container library

/ Root Download Manual

The C container library, also known as 'libcontainer', implements generic containers in proper C style. Operations on containers have no unnecessary overhead and provide extensive flexibility in regards to memory allocation, container-specific data locality, and multithreaded locking placement.

real-time physics simulations

/ Root Download Media Manual

This project researched and documented a method, named the 'quanta-bond method', for simulating both soft and rigid bodies in real-time. The quanta-bond method simulates both realistic motion and deformation of objects constructed using various materials. The algorithm described is very parallelizable, allowing for more accurate simulations on modern processors. Accuracy of the simulation is scalable depending on the amount of memory and processing resources allotted to the algorithm.

robovero sensors

/ Root Download Media Manual

The Robovero produced by Gumstix is a wonderful piece of hardware that provides easy control over a wide range of devices useful in robotics, such as servos and motors. Controlling the robovero can be done by issuing commands over a standard serial interface. Unfortunately, configuring and reading the sensors provided by the Robovero is cumbersome and slow. This project introduces new interfaces to the Robovero firmware which allows for easy configuration and reading from the accelerometer, magnometer, and gyrocope.

secure rsync

/ Root Download Media Manual

For those in the Unix world, Duplicity allows users to encrypt and incrementally backup data using rsync. Unfortunately, the Windows world lacks such a tool. Secure Rsync allows a user to backup data securely by locally encrypting the data to a repository, then, synchronizing the repository using rsync. The process happens incrementally by comparing file timestamps, and only updating new data.

trigger script

/ Root Download Media Manual

There are many fields in which algorithms are largely event driven. Trigger Script (TS) is a language that allows novice programmers to easily build event driven algorithms. At the same time, TS can interface with code written in other languages such as C or C#, allowing experienced engineers to develop more complex functionality.

Executing a TS program can be done either through the command line tool, or through the IDE. Both the IDE and command line provide a debugger to step through TS code and examine variable values. Additionally, the APIs to compile and execute TS programs are designed to be invoked from within existing programs.


/ Root Download Manual

Weld is an implementation of a non-recursive build system on top of GNU Make. By avoiding recursion, Weld is able to define an easy to use, fast, and scalable build system. Buildable components are defined by writing an easy to read component definition file. Components are automatically discovered and their dependencies automatically determined. This perfect dependency discovery results in precise incremental builds and optimal parallelization among build tasks. Weld supports Windows, Linux, and FreeBSD.