Wolfram Library Archive

Courseware Demos MathSource Technical Notes
All Collections Articles Books Conference Proceedings
Title Downloads

Polyhedron Evolver: Evolution of 3D Shapes with Evolvica

Christian J. Jacob
Organization: University of Calgary
Department: Computer Science
Aamer Nazir
Organization: University of Calgary
Department: Department of Computer Science

2002 World Multiconference on Systemics, Cybernetics, and Informatics (SCI 2002)
Conference location

Orlando, FL

Evolution in nature has been creating fascinating designs of its organisms since life first appeared on our planet about four billion years ago. Evolutionary algorithms have long been used for solving optimization problems including engineering designs. However, most of these problems have been considered only as parameter optimization tasks. Only now, evolutionary computation (EC) is moving into more sophisticated ways of specifying designs through "programs" in areas such as electronic circuit design, architectural layout, and furniture design.

Evolvica is a package that supports evolutionary computation in Mathematica. In particular, it contains implementations of evolution on symbolic expressions, an approach that is generally known as genetic programming. We have recently extended Evolvica by the Polyhedron Evolver application to design three-dimensional shapes using genetic programming techniques.

The general idea is to support designers, artists, and engineers in their efforts both to explore new design spaces and to optimize already accomplished designs. We demonstrate that genetic programming, through simple selection and mutation following Darwin's principles of natural evolution, can serve both of these purposes--providing a tool to enhance creativity and to implement fine-tuning within a set of predefined constraints.

Genetic L-system programming, which is implemented in the Evolvica framework, is a recent approach to using evolutionary techniques to breed growth programs for plant structures encoded by Lindenmayer systems. Mathematica provides an excellent programming environment for implementing all major classes of EC: genetic programming, genetic algorithms, evolution strategies, and evolutionary programming. As the last three of these EC classes are concerned mainly with parameter optimization, we focus on genetic programming for developing or "breeding" 3D shape programs encoded as symbolic expressions.

We have chosen to use 3D shape design and, in particular, the design of polyhedra as our example application. Polyhedra illustrate very well the potential of evolutionary design in combination with Mathematica's sophisticated library of graphics functions, which make it easy to generate a large variety of 3D forms.

*Applied Mathematics > Optimization
*Applied Mathematics > Visualization
*Arts and Humanities > Visual Art
*Mathematics > Geometry > Solid Geometry

jacob.pdf (3.5 MB) - PDF Document