- Short report
- Open Access
Generative art for all
© The Author(s). 2017
- Received: 10 September 2016
- Accepted: 14 April 2017
- Published: 13 June 2017
Generative art is created by a system that operates autonomously, or semi-autonomously, rather than directly by the artist. The artist creates the system and establishes parameters that affect the outcome, but the outcome itself emerges from the system rather than from the artist. Generative art systems are frequently computer programs, although biological, social, or other systems may also be used as well.
Computer programming environments are often technically demanding, but there are also those that are more accessible and offer novices ways to engage with concepts and practices of generative art. We report on our experience with two such environments, TurtleArt and Scratch, that we have used in workshops with preservice and in-service teachers over the past several years.
TurtleArt and Scratch are two programming environments that are accessible to novices and provide a way to explore and create works of generative art.
- Generative art
- Algorithmic art
- Computer programming
Generative art refers to art that is created by a system that operates autonomously (Galanter 2003; McCormack et al. 2014). The artist may create the system, and/or set some parameters that affect the outcome, but the result is created, at least in part, by the system rather than directly by the artist. Generative art systems are frequently computer programs, although biological, social, or other systems may also be used to generate art.
Art that is created by using a computer is not necessarily generative. If one is using a paint or drawing application to create an image, the computer is a tool—much like a pencil or paint brush—that is controlled directly by the artist. The application is not acting autonomously.
Place a black tile in the middle of the floor.
Surround the black tile with white tiles.
Surround the white tiles with brown tiles.
In practice, you probably would not think the steps through explicitly, but would simply look at a picture of the desired result and proceed to lay out the tiles to duplicate the picture. You would implicitly be following an algorithm, either the one above or any one of a number of other possible algorithms that would generate the same pattern.
In reality, such a floor is generally not assembled out of individual tiles. Instead, the tiles come in sheets that are about one foot square. The tiles, with the pattern in place, are attached to a flexible mesh. These sheets are then put together to form the floor. The sheets are manufactured by a machine that is programmed to produce the pattern. In this case, the algorithm must be made explicit so as to be able to instruct the machine.
Even in algorithmic art, there is room for uncertainty and surprises. A musical score is an algorithm that specifies how a piece should be played. Yet different performances of the same piece vary in ways that are noticeable to listeners. This is in part due to performers not following the score exactly, but there are also aspects of performance that are not captured in the written score and come from the artist.
Generative art often has an element of uncertainty. This may be due to the inclusion of randomness in the algorithm used to produce the result, but can also be the result of the unpredictable nature of some parameter such as the number of people viewing the artwork, or the price of crude oil. Generative art systems may be very complex. For example, Electric Sheep (http://www.electricsheep.org/) is running on thousands of computers generating animations, or “sheep,” that morph and reproduce based on algorithms, but also affected by the popularity of individual sheep among members the worldwide community of users.
A challenge for educators is to make a generative art experience available to young students and to people with limited technical expertise. Can we construct accessible creative environments that bring the learner/artist in touch with the concepts around generative art? Such an introduction should lay the groundwork for people to move to mainstream systems more comfortably if they choose to do so. We will look at two such environments, TurtleArt2 and Scratch3, that we have used in workshops over the past several years.4
TurtleArt is a contemporary version of the Logo programming language with a Logo-speaking Turtle as its starring character. Logo development began a half century ago, and there have been more than 300 versions implemented to date (What is Logo? 2014; Boytchev 2016). Most of these include Turtle Geometry, which was conceived of as a form of geometry that was more accessible to young learners than the traditional school geometries of Euclid and Descartes (Papert, Seymour 1981).
The goal for most Logo users has been to learn programming and mathematics, usually with visual results. But there has also been a long tradition of Logo programming where creating a visual effect is the goal and programming is the means.
With TurtleArt, the aim is to create visual art, specifically drawings that may be viewed on the computer screen or printed, framed, and hung on the wall. Programming and Turtle Geometry are the means by which those drawing are created.
TurtleArt is entirely algorithmic. The only way to generate an image on the screen is by writing and executing a program. This is in contrast to paint and draw applications in which images are created and manipulated directly using a mouse or touchpad. There are also environments, Scratch (https://scratch.mit.edu/) and MicroWorlds (www.microworlds.com), for example, which incorporate both approaches.
TurtleArt uses Blocks Programming (Tempel 2013) in which programs are created by snapping together graphical pieces on the screen, like putting together a jigsaw puzzle. The function of each block and the overall structure of the program are expressed by the shapes and colors of the blocks, and how they fit together. These visual clues help make a program more understandable.
Another advantage of this style of programming, which is especially important for beginners, is that in contrast to conventional text-based languages, it is impossible to make syntax errors. Over the past few years, Blocks Programming has become widely used, driven largely by the popularity of Scratch.
One can also set the pen’s color, with 0 being red, 90 purple, and the rest of the rainbow in between. Shade may be set as well, with a number ranging from 0 to 100. Lower numbers are very dark, and higher numbers are pastel shades. The default value is 50.
The pen size is set to 70, which is fairly wide. The shade is set to 30, which is a bit on the dark side. Then, the turtle takes 70 steps forward. With each step, the pen size is narrowed by one pixel and the shade is lightened. The result is that the droplet starts out fat and dark, but lightens and tapers to a point as the turtle move up the canvass.
First, the screen is filled with black. Then, 60 droplets are drawn. The color of each is set randomly in a range of blue through purple to red. The position of each droplet is set to a random XY coordinate.6 Running the program multiple times will produce similar, but different images. There will be variation in the placement of the droplets, and some results will tend more to the red, while others further toward blue or purple.
There is no randomness in this arrangement on the XY grid. There is some randomness in the elements, with slight variations in color and shade. And some squares are lined up with the edges of the canvass, but most are rotated a bit clockwise or counterclockwise.
These examples bring us back to the earlier discussion about different styles of geometry. The turtle is egocentric. It moves and turns relative to where it is and which way it is pointing. It does not know or care about the larger context. The floor turtle can be put in rooms of different sizes. It would not know where the walls are unless it bumps into one. But when the turtle lives on a computer screen, we can specify a position using X and Y coordinates. TurtleArt includes Cartesian Geometry as well as Turtle geometry.
In both Titanic Rain and Patio, the elements of the composition—droplets or squares—are created using Turtle geometry. This allows the element to be drawn at different locations using the same code. The placement of the elements on the canvas is done using Cartesian Geometry.
Scratch is a programming environment and online community that is geared to young people ages nine to 15. It grows out of the same Logo tradition as TurtleArt and includes a similar drawing capability. But it is well suited to and more frequently used for creating animated stories, games, and multimedia productions. Scratch uses a blocks programming grammar that is similar to TurtleArt.
Instead of the single turtle in TurtleArt, Scratch has many “sprites”—objects that can assume a variety of shapes, known as “costumes,” and move around the stage. Sprites can also draw, just like the TurtleArt turtle.
In addition to creating uncertainty through randomness, Scratch programs may be altered by inputs from the outside world via the keyboard, mouse or touchpad, the computer’s microphone, or video camera.
Motion Sensitive Squares9 is a remix of the Squares project described above. What the video camera sees is displayed as a layer behind the array of sprites. When a sprite detects motion in the video image, it points in the direction of that motion.
The four rectangles are still when there is no motion in front of the camera, but each one is set in motion for a while when it detects a movement at its position. In this project, the video layer is set to a transparency of 100%, meaning that it is not visible, but motion is detected nonetheless. For a viewer, it is not immediately clear what is causing the rectangles to move.
With the use of additional hardware and using modified versions of Scratch one is not limited to works of art that are displayed on the computer screen. One may build structures and control them with Scratch programs. A full discussion of these possibilities is beyond the scope of this article, but we will mention one example. LightPlay (https://tinkering.exploratorium.edu/light-play) is an environment for exploring light, shadow, and motion. Scratch programs control light intensity and color while motors rotate objects to create moving patterns of light and shadow.
We have seen how both TurtleArt and Scratch can be used to explore generative art. In both environments the artist builds a system—a computer program—that generates the work of art. How are these two environments different?
TurtleArt is narrowly focused on creating drawings—two-dimensional static images that may be viewed on the screen or printed. The domain for Scratch is much broader, including animated displays.
TurtleArt is purely algorithmic. Everything that appears on the screen is generated by code. Scratch includes both algorithmic and non-algorithmic components. Graphic elements may be drawn using the built-in paint editor, or imported.
Scratch is a more complex environment than TurtleArt; so many more kinds of projects are possible.
Both TurtleArt and Scratch are inspired by, or descended from the decade-long development of the Logo programming language. We have seen how TurtleArt is a programming environment designed for artistic expression, specifically to create drawings, and for exploring generative art. It is also a vehicle for exploring and learning mathematics and programming. A guiding principle in Logo development has been to create programming environments that have a “low threshold and high ceiling.” A beginner should be able to enter easily without obstacles or a big step up. But the language should also allow for sophisticated programming.
With the development of Scratch beginning in the mid-2000s, an additional design criterion was emphasized, that of “wide walls.” People with differing interests should all be able to express themselves by creating projects in various domains—art, music, mathematics, science, storytelling, games, and animations (Resnick and Silverman 2005).
How does TurtleArt fit into this framework? It has a very low threshold, arguably lower than that of Scratch because of its simplicity. But as a programming language it is limited, so the ceiling is also low. And the walls are extremely narrow, focusing on a specific area of artistic expression. Brian Silverman, one of the developers of TurtleArt argues that this narrowness encourages “going deep” into the domain of algorithmic drawing. In part this is a result of the highly focused environment and lack of distractions.11 But there are also details in the design of TurtleArt that make it especially well suited to the domain.12
We can also compare TurtleArt to the many versions of Logo that have been created over the past 50 years, most of which include turtle geometry and can be used in ways similar to TurtleArt. But most of these applications are more complex than TurtleArt, offering a greater range of possibilities for projects and explorations, but with a concurrent lack of focus.
One can look at the low threshold and high ceiling goal in different ways. An environment can be designed to be broadly inclusive, like Scratch. But one can also imagine a family of programming languages, with different dialects and vocabularies, but enough similarity between them so as to make it easy for people to move from one to the other.
One would choose an appropriate environment for the exploration or project at hand. For TurtleArt, that domain is generative art, specifically drawing, at the intersection of art, mathematics, and computing.
For Scratch, the domain is much broader encompassing many areas with an emphasis on animated stories, games, music, and multimedia projects. Within this range of possibilities, generative art explorations and projects involving mathematics and computing are possible. Since both TurtleArt and Scratch are members of the same broader family of computer programming environments, users may move comfortably between the two.
Art that includes mathematical specification may or may not be algorithmic. For example, in classical Greek architecture, the proportions of the components of columns are precisely spelled out for each order, but this does not provide a step by step procedure for building the column. Weaving is an example of algorithmic art that has existed for thousands of years and has been automated for more than two centuries, initially with the Jacquard loom and its predecessors.
TurtleArt is a product of the Playful Invention Company. The software, galleries of images, and tutorials are available from www.turtleart.org.
These workshops include TurtleArt: the art of programming, the programming of art (www.logofoundation.org/turtleart) and Generating Surprise with Scratch and Turtle Art! (www.logofoundation.org/genart). TurtleArt and Scratch are also used extensively in the Logo Summer Institutes, www.logofoundation.org/summer. Scratch projects from one of these workshops are in the Scratch Studio https://scratch.mit.edu/studios/2941611/.
This example and the subsequent one, Patio, were created by Brian Silverman. These drawings and many more may be found in the galleries on the TurtleArt website—www.turtleart.org.
The XY coordinates [0 0] are at the center of the canvas. X values are in the range of −350 to 350. Y values range from −260 to 260.
The complete code for Patio may be seen at https://turtleart.org/programming/book1/imagepage.html?13. Click the yellow block icon at the right below the image. Squares may be seen on the Scratch website at https://scratch.mit.edu/projects/116485918/. Click “see inside” to view the code.
Conversations with the author during October 2016.
For example, the floor tile pattern that appears earlier in this article can be drawn with TurtleArt as a pattern of repeated hexagons. As with any infinite tile pattern, when a border is placed around a portion of the design, some of the elements may appear only partially. TurtleArt allows one to draw a hexagon near the edge of the canvass with the turtle leaving the screen and returning as if the non-visible part of the shape is drawn beyond the border. The hexagon pattern could also be drawn in Scratch, but the turtle cannot leave the stage, so the tile pattern is disturbed at the edges. This is not a defect in Scratch, but rather a reflection of design criteria that are better suited to animation and game projects.
Does not apply
Availability of data and materials
Does not apply
Michael Tempel is the sole author and is responsible for the 100% of the content.
Michael Tempel is the president of the Logo Foundation, a nonprofit educational organization devoted to supporting educators, parents, and students in their engagement with creative computing.
The author declares that there are no competing interests.
Consent for publication
Does not apply
Ethics approval and consent to participate
Does not apply
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
- Boytchev, Pavel, Logo Tree Project (2016), http://www.elica.net/download/papers/LogoTreeProject.pdf. Accesses 23 Mar 2017.
- Galanter, P. (2003). What is generative art? http://www.philipgalanter.com/downloads/ga2003_paper.pdf. Accessed 23 Mar 2017.Google Scholar
- What is Logo? (2014). http://el.media.mit.edu/logo-foundation/what_is_logo/index.html. Accesses 23 Mar 2017.
- McCormack, J., Bown, O., Dorin, A., McCabe, J., Monro, G., & Whitelaw, M. (2014). Ten questions concerning generative computer art. Leonardo, 47(2), 135–141.View ArticleGoogle Scholar
- Papert, Seymour. Mindstorms (1981). New York, NY: Basic Books, Chapter 3.Google Scholar
- Resnick, M., & Silverman, B. (2005). Some reflections on designing construction kits for kids. http://web.media.mit.edu/~mres/papers/IDC-2005.pdf. Accessed 23 Mar 2017.View ArticleGoogle Scholar
- Tempel, M. (2013). Blocks programming. CSTA Voice, 9(1), 3–4.Google Scholar