Carl Banks' Software

This page is a summary of some of the programs I've written since my teenage years. I wrote the programs on this page in Python, Java, Lisp, C, and C++. A few of my earlier programs run only on DOS, but most others run on a variety of platforms.

The software on this page is free software. Although I've copyrighted most of them, you are free to use, modify, and distribute them as long as the copyright notice remains.


IOCCC Flight Simulator

  • Language: C
  • Platform: X Windows
  • Licence: Public Domain

The IOCCC Flight Simulator was the winning entry in the 1998 International Obfuscated C Code Contest. It is a flight simulator in under 2 kilobytes of code, complete with relatively accurate 6-degree-of-freedom dynamics, loadable wireframe scenery, and a small instrument panel.

HTML Redemption Language

  • Language: Python
  • Licence: BSD Style

HTML Redemption Language, or HRL for short, is an HTML-preprocessor. It's basically a macro package, with built-in Python scripting. It redeems HTML by adding useful tags such as <include>, <macro>, <if>, and <python>. The last tag allows the web site designer to embed Python "scriptlets" in the HRL source to perform complex preprocessing tasks.

HRL is a preprocessor, designed to be invoked manually by the user to generate the web site. It is not fast enough to generate web pages on the fly. A comparable package is hsc.

Needless to say (I hope), HRL generated very these web pages.

Dice3DS

  • Language: Python 2.4
  • Platform: Arbitrary
  • Licence: BSD Style

I have written a package to read, write, and manipulate 3D Studio files in Python. A good Python library for 3DS files did not exist, but the 3DS format was rather simple, so I wrote this package. Also included are utilities to turn 3DS files into real OpenGL display lists, and handle textures.

Requires Numpy. Python Imaging Library and PyOpenGL are recommended.


Besides these packages, which I actively work on and maintain, I have some other minor packages, some packages I've discontinued, and a couple games.