Artificial life models constitute a rich compendium of tools for the generative arts; complex, self-organizing, emergent behaviors have great interactive and generative potential. But how can we go beyond simply visualizing scientific simulations and manipulate these models for use in design and creative art contexts? You Pretty Little Flocker is a proof-of-concept study in expanding and exploring the aesthetic state space of a model for generative design. A modified version of Reynolds' flocking algorithm (1987) is described in which the space of possible images is extended and navigable in a way that at once provides user control and maintains generative autonomy.
In the last decade, new creative coding frameworks—for example, Processing (processing.org), openFrameworks (www.openframeworks.cc), and Cinder (libcinder.org)—have made code a more accessible medium for design and artistic expression than ever before. A new generation of generative artists is emerging, but established practitioners have suggested that this increase in activity does not seem to be stimulating the expected maturation of the field. Identifying a lack of critical depth in the adoption of scientific models, several generative arts practitioners have recently reiterated Terry Fenton's 1969 caution that art should not become “the handmaiden of science”: “Generative art must do more than simply implement formal systems imported from the sciences” [1, p. 18]. A few years previously, Philip Galanter expressed a related concern, suggesting that evolutionary art may be suffering a methodological malaise: “After a great deal of initial promise and enthusiasm, evolutionary art seems to have hit a premature and disappointing plateau” [4, p. 216].
These concerns refer in part to the proliferation of ready-made systems in contemporary generative art (cellular automata, particle systems and physics simulations, etc.), such algorithms being commonly distributed in example folders of creating coding frameworks. Compared to constructing a physical system, or coding an algorithm from scratch, the implication is that in working with existing code, artist-programmers do not need to get to grips with the inner workings of a system, so limiting the sophistication of their work and the progression of the community as a whole. The advantage of this culture of sharing, however, is that code can be repurposed and developed very rapidly in new directions: In open source communities, example projects may run out of the box, but we can quickly open the box, alter the contents, and create something new with it. You Pretty Little Flocker is presented here as an experiment in hacking existing algorithms to explore issues pertinent to generative design.
This study was part of a series investigating ways in which ecosystemic processes could be adapted conceptually and technically for generative art and design . The effects of environmental heterogeneity on the emergence of generalism and specialism , resource recycling , and niche construction  have been explored as creative ecosystems . One of the themes that arose was how to enable a user to influence the visual outcome, while preserving the generative autonomy of a system. The autonomy of ALife models is central to the aesthetic appeal of ALife models and raises issues of control (see ). At an artistic level, emergent behavior invites attributions of intentionality, and has been exploited to examine the aesthetics of man-machine interaction: Casey Reas, for example, uses swarm models in his Process series  to allow users to “lead” the system around an exhibition space, using attractants to coax the flocks along particular paths. Rather than audience engagement, I was interested in how the space of aesthetic possibilities of an off-the-shelf procedural model could be expanded and explored interactively.
2 You Pretty Little Flocker
Taking Reynolds' classic Boids algorithm  as a starting point, You Pretty Little Flocker is a study in expanding and exploring a generative design space. The classic algorithm demonstrates how complex, coherent group dynamics can arise out of the interaction of many individuals, without top-down control. Three simple update rules are applied by each agent to determine their velocity and heading according to those of their near neighbors: Separation adjusts steering to avoid crowding; alignment steers toward the average heading of local agents; and cohesion steers toward the average position of local agents. The resultant dynamics are strongly reminiscent of the emergent behavior of groups of insects, birds, or fish that swarm, flock, or school.
2.1 Expanding and Exploring Aesthetic State Space
The flocking behavior of Reynolds' Boids algorithm  is robust, but constrained. The first aim was to adapt the algorithm in order to expand the space of emergent behaviors such that it was navigable, but retained generative autonomy.
2.2 The Effect of Alternative Representations
As a complement to algorithmic modification, alternative representational approaches and environmental constraints were also considered. ALife arts have traditionally been heavily influenced by ALife science, where the task of visualizations is to faithfully render an otherwise abstract formal system. In generative design, however, visualization schemes should sensibly reveal system dynamics, but need not be so literal. The second aim was to explore the effect of different rendering methods on the aesthetic appeal of emergent dynamics.
2.3 Algorithmic Modifications
The illustration presented here is very simple. The basic flocking algorithm is modified to include size variation and preference. In the original model, each agent updates its travel vector according to those of its near neighbors. Here, agents are of varied size and have a variable size preference, SP. SP can be varied continuously so that agents update their travel vector differentially according to the relative size of their near neighbors. When SP = 0.0, agents' cohesion update rule is affected only by those of an identical size. As SP varies from 0.0 to 1.0, each agent will be affected by others of increasingly disparate size, until at SP = 1.0 the whole flock moves together. The alignment update rule is also modified to take on negative values, such that agents match their angle of heading to those that lie within the limit of their size preference and steer away from those outside this range. The separation component was left unchanged. The visual effects of these behaviors are shown in Figure 1 and described in Section 2.5.
2.4 Visualization Scheme
Introduction of size variation draws focus to the relationships between the agents. Rather than visualizing the agents as individuals in a swarm, interactions between them are rendered. Each time two agents touch, a line is drawn between their centers. The line's hue is determined by the agents' direction of travel, its opacity by their size, and its saturation and brightness by the distance between them. In addition, the center of each agent is marked with a pixel to preserve a representation of the whole population. The screen is not refreshed, meaning the history of agent activity is represented.
As shown in Figure 1, three distinct flocks were placed on the canvas, each constrained within a fixed circular arena, creating environmental constraints. Space is non-toroidal, and each time an individual leaves the screen, it is repositioned at its starting point. You Pretty Little Flocker was implemented in Processing, using a modification of Daniel Shiffman's flocking example .
Figure 1 illustrates the effect of varying SP. In Figure 1a, SP = 1.0; all agents are influenced by each other, irrespective of size, as in the standard model. The three populations on the page each consist of a single, coherent flock moving in the same direction. Figure 1b illustrates the effect of setting SP to 0: Agents align and cohere only with those of identical size to create multiple subflocks of different-size agents; each subflock steers away from others with a force of repulsion proportional to the size difference between them. This causes the subflocks to fan out evenly around the full circle, creating patterns of floral-like botanical growth. In Figure 1c, SP = 0.5, the populations are split in half, larger agents streaming up to the top right of the image and smaller agents in the opposite direction, creating forms reminiscent of bunches of seed heads or fruiting bodies. Large agents create solid, bright colors; small agent groups create trails of muted detail.
You Pretty Little Flocker illustrates how simple tinkering can expand the aesthetic state space of a procedural model. Adaptations were made to Reynolds' flocking algorithm itself, to the simulation environment, and to the visualization method. Introducing boid size variation and preference into the simulation augments the range of flocking behaviors and provides a handle for steering the system through them. The effects of alternative rendering methods on the aesthetic appeal were also examined, and interactions between the agents were visualized: The basic biological essence is retained, but the images are reminiscent of plantlike growth or floral structures rather than swarming patterns. Visualizing the simulation in this way also reveals the effects of simulation parameters: Population size affects the density of the images and nature of the lines: A high maximum velocity creates straight lines, whereas low values produce meandering paths as nearby forces exert greater effects on slower agents.
You Pretty Little Flocker illustrates how an off-the-shelf algorithm can be rapidly expanded to provide a tool for generative design, allowing a user to interactively steer the system through distinct families of forms. This is not presented as a radical new direction in generative art, but rather as an illustration of how ready-made systems can be hacked and adapted to explore issues central to generative design: control, manipulation, and representation.
This research was supported by Australian Research Council Discovery Project grant DP0772667. Thanks to all at CEMA, Monash University, Melbourne for their input into the Flockers' early life.
Department of Informatics and Engineering, University of Sussex, Falmer, Sussex, UK, BN1 9QJ. E-mail: email@example.com