I had played around a bit with springs, so I made a demo about it.
This demo was originally blue. I was thinking of bubbly water and things floating in there. The dark blob wasn't originally dark, but instead was actually textured.
The dark blob is a circle with springs attached from each vertex to another, and as a whole gravity pulls it down. The springs are loose enough that it doesn't quite manage to keep its shape. The blob itself gets rendered by using the GLU tesselator; however, because it totally messed up the texture, I ended up making the blob a single color.
The color scheme turned to red due to the music by Polyfonken - I remember having real difficulty finding anyone with time to make music for this year's demo, so I'm glad he had the time, even if the music wasn't exactly the happy joy joy kind of thing I had in mind. But change in color scheme changed the mood of the demo to fit the music.
The letters are rectangles with, again, springs connecting the four corners. These are a bit more rigid, though. Gravity pulls the lettes to the left.
The spheres are simply circles that float upwards and pulse in size through a sine curve. Whenever a vertex (either from a letter or from the blob) collides with a circle, it's pushed out to the edge of the circle; the springs do the rest.
I repeat: there's no rotation code whatsoever, all of the letter rotation is a side effect of using the springs.
As a final little tweak, I wrote hit detection code with the letter vertices to the blob. If a letter vertex hits the blob, its velocity is dampened.
The demo needed a lot of scroll text, so I figured a short story by Edgar Allan Poe would fit the theme well. And they're old enough to be in public domain by now. Thanks, Project Gutenberg!
Comments, questions, etc. appreciated.