Twang Cascades: The Movie (with Sound!)

27 Sep 2007; 11 Dec 2007

Based on the paper, Connecting Polygonizations via Stretchs and Twangs, available here.

Polygonization points selected uniformly w/in 1000x1000 square, undergoing 20 random stetches & subsequent cascades. Two examples are included below: the first for 25 points (at a slow rate), the second for 50 points (at a faster clip).

  1. 25 point example, 70 frames, 2 frames per second (slow)
  2. 50 point example, 66 frames, 4 frames per second (faster)
  3. Exponential Experiment, 26 point example (k=8,2k=256), 100 stretches⇒332 frames, 8 frames per second (fastest), duration=39 sec. [The sound track is slightly out of synchronization with the video track, which is evident especially at the end of the movie.]

Explanation. The red numbers in the figure above are polygon indices, which constantly change according to the polygonization permutation. The darker numbers are point indices, which are fixed throughout. A thick scarlet edge is the stretch edge, and the yellow (e,v) or green (v,v) segment the (thin) stretch triangle. The black vertex is the vertex stretched to. The red point is a pseudovertex within the stretch edge, which gets twanged immediately from both sides, potentially initiating an extended cascade, and thus ultimately disappears. Snapshots are taken of the stretch, after the twangs of the pseudovertices, and after each subsequent twang (which is why there are 70 frames for just 20 stretches).

The sounds are proportional to the perimeter of the polygon. The pitch rises with a stretch, falls with a twang. I used the MIDI instrument "PizzicatoStrings", i.e., plucked violin strings for the first two movies, and "Crystal" for the third movie.

The program chooses a random vertex v, and a random ray r from that vertex. If it hits some edge e, then we stretch(e,v). If not, we try again to find such a v, r, e. Alternatively, it tries to find two vertices that are visible to one another. (The current mix is: 75% probability of an (e,v) stretch, 25% probability of a (v,v) stretch. Set in HopCascade1[].) Once a a stretch is made, the polygonization is twanged to quiescence.


Joseph O'Rourke & {Mirela Damian, Robin Flatland, Suneeta Ramaswami}