welcome to the home page of John Henckel.

Why are you here? Are you interested in knowing more about me, or
stuff I am interested in, or are you wandering aimlessly around the web?

more about me

biographical

I was born in 1964 in Kalamazoo. I have a
brother and two sisters. In 74, we moved to the Dominican Republic and my father worked at a school for delinquent teens. In 82, I went to school at Ann Arbor Michigan. After I got married in 88, I worked at IBM in Rochester for 10 years. Then, for a change I held a series of short jobs. In 99 I worked at Inwit and developed a very nice physics simulator, parts of which may have gotten into the new book by Chris Watkins. Next I wrote a chat bot for a crazy dot-com (which went bust). Then I took a job at MathEngine in Oxford which went bust and were bought by Criterion, so I moved to Woking and continued working on Renderware Physics.

Here is my résumé.


stuff that interests me

logic

I like to collect old text books, especially those about symbolic logic. For my BS project I wrote a resolution theorem proving program in Lisp on a Dandelion workstation. I must be a slow learner, because for my
MS project I again wrote an RTP program, only this time it was written in Turbo C on DOS and used the connection graph proof procedure and a new linear unification algorithm. Maybe it attracts me because I have never seen a program so complex that does so little. All the source code is available here.

math

As for mathematics, I am a romantic (or platonic?). I believe that numbers are not just man-made symbols, but they really exist as physical properties of the universe (or maybe they transcend it!) That's why I like to make simulations. To me they aren't just simulations of reality, they are manifestations of reality. Although the material world is much smoother and crisper than my PC, both of them are exhibitions of the same deeper reality.

physics simulation

My first physics simulation program was written in 86 in Turbo Pascal on an XT. In 93 I started working on vr5 in Turbo C which could handle polygon collisions. Eventually this evolved into DOS Impact 2.1.

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.

flash animation

I really like flash animations. My first attempt at animation is cute but not very interactive. Then I tried to make a soccer game that has pseudo 3D effects. I think it turned out ok, but its still pretty boring.

java

I already mentioned about the Java Impact program I wrote, so I won't mention it again. I think Java is the language of choice for writing web software, like servlets, applets, and bots. Wrapping each protocol with an object is just really convenient. For example, here is a useful class I wrote to fetch pages, and it can handle cookies, redirects, and https.

ecology simulation

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).

algebra editor

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.

virtual reality modeling language

Once upon a time I was hot on learning VRML2. I made very simple scene, a three-body gravity demo, an inner planets simulation, and a quaternion rotation demo.

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

physics

I like to read pop science books like Physics for the Rest of Us by Roger S. Jones. I understand basic spacetime dilatation, and the E=mc2 part doesn't seem to hard. But I really get lost in the general relativity part of it, Riemannian tensors and so on. I hope I can figure it out pretty soon, because I'd like to incorporate the general formulas into a simulator. Do you know if anyone has done this already?

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.

aperiodic tiles

I am fascinated by aperiodic tiles like Penrose and Ammann. In 86, I tried to write a general purpose tile-placing program, but it fizzled. Then I got a good idea to write a tile program in Java. Alas, however, someone else already did, and not only that someone also wrote one in cgi, for you non-Java users. When I am too old to do anything but sit in a rest home eating apple sauce, I will spend my days looking for a new aperiodic tile set.

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.

other stuff

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

Over served since Aug 18, 1997.


aimless wanderings

Warning, these links are really really old.

services

  • Web crawler
  • Hotbot search
  • Altavista search
  • USA Phonebooks
  • Shareware searcher
  • Weather
  • pictures

  • Ian
  • Ilana, more
  • Quinn
  • Trampoline
  • new baby
  • shoot!
  • Christmas 98
  • Christmas 97
  • Christmas 94
  • good reading

  • Bible Search Engine
  • Heisenberg Uncertainty Principle
  • Quantum consciousness
  • HTML reference
  • Javascript
  • games

  • Java chess server
  • US Chess Federation
  • Free Chess Programs
  • Chess Club
  • Go
  • friends

  • Jim Ludwig
  • Don Cross
  • Chris Watkins
  • Nate Davis
  • Vertical
  • other

  • PGP encryption
  • home school guide
  • Math puzzles
  • My new and contunually updated
    list of cool stuff.
    This page hosted by Get your own Free Home Page