stuff I am interested in, or are you wandering aimlessly around the web?

Here is my résumé.

In 96 I was learning Java so I ported parts of the Pascal and C simulators to produce Java Impact 2.3 which was selected by Gamelan "Best of Java" CD-ROM. It is by far my most popular freeware, because I think the Java GUI makes it so easy to play with it.

After that I was determined to write a 3D collision physics sim, and I started writing one in C++. It fell by the way, though, when I got a job (three actually) developing 3D physics simulations for rigid bodies, jointed bodies, and cloth.

When I was in college, Alex Mitchell and I wrote several ecology simulations. The ECO3 program, for example, simulates carnivores and herbivores in the CGA text screen.

On a similar theme, I wrote a text mode version of Conway's LIFE game, but with a twist: my life allows two species of cells, black and white, and you can modify rules for each species. A rule is (type,#enemy,#friend) for instance, (0,0,1) means if an empty cell has one black neighbor then it becomes black (reproduction). Conway's life is simply (0,0,3) (1,0,2) (1,0,3) I think. Two people can play my game against each other and see who can think up the best rules. The only problem is that I lost the source code, so I only have the program (inside the zip).

The hardest part in implementing Impact (and rightly so)
was deriving the formulas for general 2D collisions. I got the
six equations with six unknowns from *Dynamics* (Pestel
and Thomson, 1968).
Actually solving them only took about 20 minutes, but it took me
over 6 hours to get the same answer twice in a row and verify it
(by substitution in the original).
Doing that gave me another idea for a program. I wanted to make
a math program that can format complicated formulas nicely, and
that understands basic algebraic manipulations so that you can
say "subtract this part from both sides" and it will do it
and show you the result. If possible it'd be nice to have some
of the advanced operations, too, like "find rational roots", etc.
Best of all, it would be
cheaper than Mathematica.
So in 94 I started working on Algebra Editor.
The first version of alged had no graphics and only supported
postfix notation for input (yuck), but I got lots of great
feedback from users. The
latest
version of alged supports
SVGA 3D graphics and
many other nice features.

I used Alged to work out formulas for 3D impact.

Nowadays VRML is virtually dead. Fortunately it is being replaced with another open standard 3D web protocol called X3D. Watch this space.

One time, I took a class, Introduction to Quantum Mechanics, at the U of M. Sometimes it seemed like I was learning about quantum mechanics, but mostly it seemed like I was learning advanced differencial equations and other forms of indiscreet mathematics.

Like tiles, Peano curves are recursively defined drawings. I wrote a little DOS program to draw Peano curves. The input is a file with the coordinates of the curve and max recursion. I entered data for several of the curves in Mandelbrot's book. Later I discovered the L-system in fractint. L-system produces similar output, but the input is rules, instead of geometry.

One day I was staring at the Windows starfield screen saver and it annoyed me that the stars seem to pop into existence instead of slowly coming into view, and also no matter how directly they are coming at you, they never get very big. It must have annoyed me a lot, because I wrote a Java starfield simulator. If you have a Java browser try it and tell me if it isn't better that Windows'.

Some other stuff I wrote

- a proposal for smart pointer templates,
- an algorithm to extract rules from backpropagation neural networks,
- a C source code analyzer to generate who-calls-who graphs,

Over served since Aug 18, 1997.