Flexible Polyhedra
Below is an example of a flexible polyhedron. After the applet loads and displays the model, you can click and drag the mouse over it to spin it around. Read below for more information.
It is flexible in two senses. First, you can click and
drag any of the vertices to change its shape. The model will stretch to
follow the moving vertex and it will attempt to snap back to all its original
edge lengths when you let go. Initially all edges are drawn black which
signifies that all edges are exactly the length they are supposed to be.
Once you stretch the model, edges which are not their proper length are
drawn red. When individual edges are their proper length they will draw
green. Finaly, when all edges are happy, the whole model will draw black
again. That may take some time even though it doesn't seem to change shape
after a while. That's because its still trying to get into exactly the
right shape even when movements are smaller than a single pixel.
Almost all polyhedra will snap back into their original
shapes if you don't stretch them so much as to change the way they fold.
This model however is different and that is the second way in which it
is flexible. It can be smoothly moved into infinitely different positions
with all edge lengths still satisfied. The easiest way to see that is to
move the bottom vertex a bit to the right or left and eventually the model
will relax into its correct edge lengths but with that vertex still to
the left or right.
Feel free to view the Java source code.