Plumbin' with a faucet connected to a spout.
Plumbin' is a self contained Smalltalk application written to be used in the hands-on lab section of an advanced Smalltalk class. Students were asked to read the program and then extend it. Plumbin' is designed to be small enough to read in one sitting while still offering interesting capability.
Plumbin' has a direct manipulation interface. One arranges assorted tiles by dragging them with the mouse. When dropped, the tile aligns itself precisely with the rest of the mosaic. A shift-drag pulls off a copy of a tile. This makes for an endless supply of material.
Plumbin' is a game of sorts. The goal is to connect a faucet to a spout. The images on each tile can change. A drop appeared at a spout the moment the path is complete.
Plumbin' is also a simulator. Each tile models a device capable of propagating both pressure and flow. A right-click on the faucet gets a menu for changing the pressure. We offered a pressure tank as an add-on. It relates pressure to flow and vice-versa. The level of the tank (state held within the tile) is animated as the simulation progressed.
See Plumbin' on c2.com.