Building a virtual steam engine is as difficult as building a real one. I used 3DS Max 4.2 to create the animation. I thought it would be a good way to learn and practice new animation techniques. Below are some details and pictures.
The animation is based on one keyframe. I give the crankshaft a quarter turn and everything moves forever. I originally used many keyframes on every moving piece until I worked out the details.
I used the "look at" constraint on the crankshaft bearings so they would keep the push and connecting rods in place. Nice!
I made steam using a particle emitter. I followed Max hints under the smoke tutorial, used "facing" on the particles and mapped on white/gray transparent material with radial gradient.
Click on the picture below to see a Flash animation, about 1MByte.
Here is a different view, about 450k, rendered by a program called Illustrate! This is a 3ds max plug-in and can be found at www.davidgould.com . It can make 3d images look like cartoons.