Simplicial Families of Drawings

Download the paper.

Imagine that you are creating a flyer and would like to add a flower to it, but you don't have the artistic talent to draw a good-looking flower by yourself. One possible solution is to look through a library of clip art until you come across something suitable. However, since libraries can only be so large, it is unlikely that you will be able to find exactly what you want. Rather, you will probably only manage to acquire a small number of drawings that are similar to what you want. Ideally you could modify one of these drawings to suit your needs, but maintaining the original quality can require substantial time and skill.

The fundamental problem here is that individual drawings are of only limited use. What you would like is not a flower or a small number of flowers, but a space of flowers that you could probe and manipulate. We have developed a technique for creating such a space, which we call a simplicial family. A simplicial family is a representation of the set of all legal interpolations of an initial set of example drawings. Our underlying data structure for a simplical family is a simplicial complex. Below is graphical representation of simplical families for three sample sets of drawings. Tetrahedra in the simplicial complices are blue, triangles are green, and line segments are red.


                      Simplicial families for three islands, four cartoon figures, and four flowers.

Once an artist has created a set of drawings, she can build a simplicial family by classifying as legal or illegal a series of new drawings presented by the computer. A user can then use the simplicial family for a variety of generative tasks, which are outlined below. Note that neither the user nor the artist ever encounter the underlying the structure of the simplicial family. Hence no special knowledge is needed to construct or use it.

  1. Sampling. Randomly generate new legal drawings. This is useful for crowd generation, e.g., filling a field with a large number of similar but distinct flowers.

  2. Samples drawn from the cartoon character simplicial family are on the right and samples drawn from the entire interpolation space are on the left. An unconstrained sampling can produce undesirable drawings, such as the one in the blue box (where the left shoulder intersects the head) and the red box (where the left arm is much thinner than the right).

  3. Morphing. Given two legal drawings, generate a sequence of drawings that smoothly transforms the first into the second such that every inbetween drawing is legal. This could be useful for simple animations.

  4. Example morphs. The top rows show direct linear interpolation and the bottom rows show the results of a morph constrained to lie within the simplicial family.

  5. Projection. Find the legal drawing closest to another drawing. For example, if one wanted a cartoon character in a particular pose, one could draw a stick figure in that pose and then project it into the space to obtain the character in that same pose.

  6. Projections of two sketched flowers into the simplicial family. Note that the projected flowers are distinct from the orginal examples (top row).

  7. Tugging. Allow the user to modify a drawing such that it is constrained to be legal. Say, for example, that one has a smiling human face and wants to make it frown. Using a conventional drawing program like Adobe Illustrator, one could painstakingly relocate individual control points. With a simplicial family, one could pull on a single point on the mouth and have the entire face update appropriately.


    Snapshots of a tugging operation. The corresponding point in the simplicial complex is shown at the upper left of each drawing.

    Tugging with a simplicial complex was first done by Ngo et al; you can find their paper here.