This is a list of some projects I've done. They are arranged from most recent to least recent.


Monte Carlo ray tracing

The continuation of the geometry library below. The code is a work in progress.

Geometry library for computer graphics

This is an ongoing personal project. It is intended as part of a framework for Monte Carlo ray tracing. Currently, it is written for easy testing, but the goal is to facilitate acceleration on superscalar processors, graphics accelerators, and other vector hardware.

Written in C++; ongoing project.
Size is about 4800 lines (as of September 5, 2002)


MUMS program

(code not available)

This was written for Charlie Plott, an economics professor at Caltech. (MUMS stands for "Multi-User, Multi-Stage" decision processes or games.) It is a general client-server program which specifies interactions between the clients by a specialized scripting language. It is intended for implementing economics experiments in a rapid-prototyping manner. The client's user interface is crude, and the language is inflexible, but it has been useful for many different kinds of economics experiments.

Hewlett-Packard supported this research; it appears to have a successor system of the same name.

Written in C++; last significant code modification September 1996.
Size is about 10000 lines of code, plus 1600 lines of documentary text files.


List class

This was written for a class project. The entire project was an ambitious multiserver game called GWG ("Geeks With Guns"). GWG was overambitious for a one-term project, and was never completed, but this list class was part of my contribution to it.

Please note that, at the time, the STL was not as mature (or as standard) as it is today. In particular, it was not stable on the then-current version of g++...

Written in C++; last modification was May 1996
Size is about 1000 lines in list.h and list.cc, plus 350 lines of test code


Mash

Mash is a compression program that uses a multi-order statistical model and arithmetic compression to achieve good compression. It is extremely slow, as it was written primarily as an exercise in clear programming, and secondarily for compression rather than speed.

Written in C; last modification was early 1993
Size is about 1700 lines of code, plus 500 lines of documentation