Kelsey Kurzeja

B.S. Computer Science
Media / Modeling and Simulation

Triangle Mesh Ribbon Weaving


The corners of each triangle in a triangle mesh can be treated as nodes in a graph. We can then define operations for moving to a corner in a neighboring triangle and then connect the nodes in our graph when their corresponding corners are accesible from each other via our operations. Some operations are guaranteed to give a one-to-one mapping between corners, so if we define two of these operations to give different results when applied to the same corner, we will have exactly two edges connected to each node in our graph. This means that we can always form a set of loops that use each corner in a watertight mesh because each node has two edges, and any node that is not part of a loop must either end (have one edge) or branch (have more than two edges).

The operations I use to walk around the mesh are defined as a pair of simpler operations. One of these simpler operations is "swing" which means moving to the next corner in the clockwise direction around a vertex. The other simpler operation is "next" which means moving to the next corner in the clockwise direction in a triangle. The actual operations for the walking are defined as "swing then next" and "next then swing." These give a one-to-one map as required because swinging from one corner will always give the same corner, and next from a corner will also always give the same corner.

The ribbons are formed by tracing out the loops formed using the above method.

Back to projects