COSC 4F90 Projects

Moosehead by Adam Hewgill. Procedural texture evolved with genetic programming.

JNetic: Evolving Stylized Images with Genetic Algorithms
Steven Bergen

April 2009

Genetic algorithms are used to generate vector-graphics images. Images are composed of geometric primitives, such as circles, lines, and rectangles. The genetic algorithm evaluates candidate images by measuring the colour similarity between the pixels of the candidates and a supplied target image. Evolution searches for a close match between the vectorized and target images. By restricting the numbers of primitives and colour schemes used, stylized and abstract forms of images are produced. The implementation features both automatic evolution and user-guided interactive evolution, user editing of image chromosomes, and a variety of user controls over the evolutionary process. An important feature is the ability to paint a mask over important areas of the source image (for example, faces), which the genetic algorithm will use to devote additional effort in creating precision renderings. The system has proven successful as a creative tool for evolving images of varying levels of abstraction and realism.

User Evolution of Granular Delay Effects
Corrado Coia

September 2008

This VST plugin produces granular delay synthesis effects. Inspired by the granular delay of Ableton Live, this plugin includes the ability to synchronize parameter changes with the tempo, which enables many different musical effects to be produced. The interface features an interactive genetic algorithm, permitting the user to explore the space of granular synthesis parameters. The interface is designed to allow the fast and effective auditioning and rating of the population of parameter sets.

3D Granular Synthesis Modeler
Steven Biederman

December 2005

This project introduces a 3D graphical interface for granular synthesis modeling and generation. Much of the potential for practical granular synthesis software applications has yet to be explored. The use of graphical interfaces is a key factor in the success of such applications. More specifically, attaching the fundamental parameters of a granular synthesizer to graphical control objects which are located within the user interface would increase the usability of such an application. This project sets out to create a user friendly 3D graphical interface which still allows the full flexibility and power of a true granular synthesis application.

Download system here:

Audio examples...

Sample Stutterer
Joel Glanfield

October 2005

The Stutterer is a VST instrument (a plugin for Steinberg Cubase and other VST-compatible systems). It performs chops, repeats, gaps, reverses, and pitch changes to a source wave sample, with minimal user direction. It's a great way to apply unique special effects to sampled sounds.

Go to the Stutter web site for more information.

Download plugin: and User guide. Audio examples...

The Evolution of Artistic Filters
Craig Neufeld

May 2005

Artistic image filters are evolved using genetic programming. The system uses automatic image analysis during fitness evaluation, unlike the more common human-supervised evaluation used in most evolutionary art systems. Multi-objective optimisation is also used, which permits multiple feature tests to be applied independently. One unique fitness test is Ralph's model of aesthetics. We found that this test is very useful for automatically evolving filters that tend to produce images with painterly, balanced and harmonious characteristics. The genetic programming language uses a variety of image processing functions of varying complexity, including a higher-level paint stroke primitive. The filter language as a whole is designed so that components can be combined together in complex and unexpected ways. Experiments resulted in a surprising variety of interesting "artistic filters", which tend to function more like higher-level artistic processes than low-level image filters. Furthermore, a correlation was found between an image having a good aesthetic score, and its application of the paint primitive.

3D Gentropy: Evolutionary 3D Texture Generator
Adam Hewgill

May 2003

This project investigates the automatic generation of 3D procedural textures using genetic programming. A procedural texture is a function which when given a set of inputs produces a color. Simple 3D procedural textures map position in 3D space to a color in RGB space. This is enough to give any model a complex and pleasing coloring. However, the complexity of the mathematics involved in such a texture grows exponentially as the intricacies of the desired coloring increase. It is necessary to introduce more inputs so that describing 3D color spaces uses mathematics of greater than three dimensions. It is a well know principle in theoretical physics that describing a space using higher dimensions simplifies the mathematics involved. For a human it would be very difficult to create the necessary texture function by hand. So this system utilizes the power of evolution to automatically generate these texture functions. The textures are created using genetic programming and a set of training points for each 3D model used. The evolution fits the texture space to the training points using a color distance approach to evaluation.

Room Maker: A Reverberation Plugin for Cubase VST 5.0
Craig Bannister

December 2001

This project involves the design and implementation of a real-time reverberation unit. The interface gives complete user control of a number of reverberation effect parameters, all within a real-time environment. The software is implemented as a VST plugin to the Steinberg Cubase VST 5.0 music software system.

Gentropy: Evolutionary 2D Texture Generation
Andrea Wiens

April 2000

Gentropy is a genetic programming system that evolves 2D textures. It creates textures by combining common mathematical and image manipulation functions into formulas, which are normally impossible for a person to devise on his/her own. An entire texture spans two-dimensional space and is represented by a relatively small formula. Most evolutionary art programs require the user to repeatedly choose the best images from a displayed generation. Gentropy uses an unsupervised approach, where a target image represents the user's desired features, such as colour, shape and smoothness (contrast). Then, Gentropy evolves textures independent of any further user involvement. As this is an art application, an exact match to the target is not desirable. A set of feature tests may be combined and given different priorities in the fitness function. It is possible to use several target images, each with its own fitness function, set of desirable features. Moreover, subpopulations may have unique fitness functions. A multiple subpopulation approach is used where several divisions of the population exchange textures.

Publication: Andrea Wiens and Brian J Ross. "Gentropy: Evolutionary 2D Texture Generation", Computers and Graphics Journal, v.26, n.1, pp. 75-88, February 2002. (PDF). GECCO 2000 Late Breaking Papers Presentation overheads.

The Genetic Evolution of Floor Plans
Tony Debat

August 1997

This project entails designing and developing an interactive system that automatically generates floor plans for a house. Using a system similar to commercial products that mutate bitmap textures under user control (eg. Kai's Power Tools), a number of floor plans for a house are generated. The user has full control over main features of the floor plan, for example, the shape of the floor, and the types, number, and sizes of the furniture. In addition, the user can control the rates of different mutation characteristics. The user can generate a VRML file of the desired floorplan.

Using Particle Systems to Model Flocking Objects
Brian Drennan

August 1997

To many, a flock of birds is one of nature's beautiful sites. The patterns of the motion seem choreographed and complex. However, it is believed that the flock's movement is not guided by a single ``leader bird.'' Rather, it is the combination of each bird's relatively simple instincts which create the aggregate motion. The potential of this decentralized ideology is becoming evermore apparent for Computer Science applications.

It is the aim of this project to create flock animations by simulating the behaviours of the individual birds (actors). This model is an elaboration of a ``particle system''-- each actor has its own properties, such as position and velocity, and reacts independently according to its local perceptions of the universe. Furthermore, this project is implemented as a ``plug­in'' custom effect for the popular Softimage|3D animation system. It is hoped that, with the combination of a behavioural simulation of the flock and a powerful modeling/rendering system, convincing animations of flock motion can be generated.

Flocking coins:


Many Cubes:

Documentation (Postscript).

Animation and Synchronization of 3-dimensional Graphical Objects to Music in a Production Environment
Robert E. Pringle

April 1995

The use of music as a means to automate the sculpting and movement of graphical objects is investigated. An interactive environment for producing musically-controlled computer animations is presented. The graphical objects studied are based on Todd's and Latham's work in evolutionary art. The environment permits the creation of kernel objects using an interactive toolset. In addition to a basic set of morphological definitions, each object incorporates a script, which is an instance of programming language code and data definitions. Scripts permit the run-time computation of object characteristics, and when done in a temporal setting, allow complex animation control. The script language has a number of functions that can access MIDI information, as read into the system via a MIDI file. The practical consequence of this is that animations are controllable with music data, in which music determines the movement and morphology of animated objects.

Publication: "A Symbiosis of Animation and Music" by Robert Pringle and Brian J Ross, Proceedings 1996 International Computer Music Conference, Hong Kong, Aug 1996, pp. 316-319. Also as Brock COSC TR CS-95-04.

Back to Brian Ross's web site.