PictureBlocks is a blocks-based version of Henderson's picture language that makes it easy to create tangible artifacts with a laser cutter or vinyl cutter. Using PictureBlocks, people without any previous programming or design experience can quickly make personally satisfying physical artifacts. In a seminal 1982 paper, Peter Henderson presented a language of picture combinators powerful enough to describe complex pictures like Escher's Square Limit woodcut. ![]() Henderson analyzed the picture to determine a "primitive" fish picture (a) that could be rotated, flipped, and otherwise transformed (b,c) in ways to create a picture like the original (d).
Henderson developed a set of picture combinators --- operators for combining pictures --- like those shown below for rotating and flipping a "blue wedge" picture bw and combining it with a "red kite" picture rk. These combinator examples are taken from Wellesley's CS111 Introduction to Programming and Problem Solving course, in which we use a Java-based implementation of Henderson's picture language to illustrate how primitives and a few powerful means of combination can lead to complex artifacts. We were inspired not only by Henderson, but by Abelson & Sussman, who popularized Henderson's ideas in their Structure and Interpretation of Computer Programs (SICP).
PictureBlocks is a blocks-based language for combining primitive pictures like the ones used above. For example, here is a simple PictureBlocks program that combines three simple shapes: The resulting picture is shown in (a), its boundary is shown in (b), and a wooden artifact created from the boundary by a laser cutter is shown in (c).
Of course, more complicated pictures are possible. Using a sketching feature of PictureBlocks, users can draw their own primitives, such as this one: This can be used to make a picture (a) that is engraved into wood to form a woodcut (b), and the woodcut can be used to make a print (c).
Cutting and engraving can be combined. An good example of this begins with two sketches of primitives that Escher designed for knitting patterns:
When recolored, rotated, flipped, and combined in various ways, these two patterns can yield a dizzying number of knitting patterns (see Doris Schattschneider's M. C. Escher: Visions of Symmetry or our Wellesley CS111 assignment on Escher knitting patterns). One such pattern is shown in (a). It can be turned into a line drawing (b) in which red lines are cut lines and black lines are engraving lines. The result of cutting/engraving this pattern on a laser cutter is shown in (c).
|