An autonomous evaluative entity. It is deployed into a design and its evaluation of the design based on its editable criteria are accumulated with the opinions of other agents into the fitness measure of the design.


Bounding Box

A three-dimensional region outside of which a design is penalized for extending.



A unit of our language. The commands are Opening, Translation, Scale, and Rotation.


Command List

Every shape in every design maintains an evolvable list of commands in our language which constitute part of its genotype. When the genotype is translated into the phenotype for evaluation by agents, the command list is run on the starting Maya curve, and the result is extruded into space.



Analogous to biological genetic crossover: the replacement of a randomly selected segement of a shape's command list with a randomly selected segment of a command list from another shape.



A design is the same as an individual. It is a member of a population, and consists of a genotype, a set of starting Maya curves, and a phenotype of shapes interpreted from the two.



Elites are individuals of the highest fitness that are transported directly into the new population without mutation.



Fitness is the measure of quality that agents collectively give a design. Higher fitness means greater liklihood of having more offspring. So traits that the agents favor are selected for.



A generation is a name for a specific population of individuals. Generations are numbered sequentially.


Genetic Algorithms [GA]

The precursor to genetic programming, Genetic Algorithms use fixed-length, encoded genotypes, where Genetic Programming uses variable-size genotypes representing operations in an interpreted language.


Genetic Programming [GP]

A software methodology that seeks to evolve solutions to problems by generating populations of programs and then selectively breeding them.



In the case of AgencyGP, a genotype consists of a set of Maya curves, a fixed-length list of parameters, and a variable-length list of commands.



See design.


Interruption, Intervention, and Resumption

The ability to stop and manually redirect the evolutionary process by manipulating the genotypes of individuals. AgencyGP allows this through the Modify Individual dialog.



A layer in a Maya scene is a method of grouping and showing or hiding objects. AgencyGP creates new layers to save intermediate results when requested.



The random changing of a genotype in moving from one generation to the next. Mutation takes many forms in AgencyGP. They are all examined in the Genetic Engine dialog documentation.


NURBS curve

Non-uniform ration b-spline curve. This is the kind of geometry Maya creates that AgencyGP is capable of working with.



The physical expression of an individual's genotype. In the case of AgencyGP, the phenotype consists of one or many extruded shapes in a Maya scene.



A piece of software written in C++ that makes use of Maya's programming interface. It is a separate file that Maya loads and executes upon command.



A population is a group of individuals ranked by fitness.



Pressure is what good agents apply to the evolutionary process. Agent do not control what future generations will look like directly. Rather through selective pressure, they choose their favorite designs to reproduce. If a set of agents is too permissive, they will not be applying sufficient pressure to the system.



A shader is a Maya object that stores settings for rendering color, texture, and opacity of a surface.



A shape in an individual is one extruded element. Individuals may consist of many shapes. There may be more or fewer shapes in an interpreted phenotype than there were initial curves selected because of the variable effects of intersecting shapes.


Shape Mode

Shape mode determines how a shape behaves when it intersects with others. It may carve out of the other shape; it may be carved into itself; it may union with the other shape; they may intersect. There are 45 options, really three consecutive groups of 15.


Tournament Selection
  Tournament size affects the way individuals are selected for breeding the new population. When creating a new population, the process is as follows: 1. Select [Tournament Size] individuals from the old population. 2. Take the fittest of these and make a copy of it. 3. Mutate the copy, cross its genes with another individual's or leave it be. 4. Place this copy into the new population. 5. Repeat 1-4 until the new population is filled.

AgencyGP ranks designs by unfitness. Therefore a low unfitness is better than a high one.



A measure of the amount of variation there is in a population. AgencyGP uses variance in fitness to estimate the genetic variance in a population, but that is a rather crude estimate. If agents are overly permissive, radically different individuals may be given the same low unfitness. It is, however, a convenient measure, and we use it.



The weight of a value is the emphasis a value is given when combining it with others. It only has meaning relative to the weights of the other values. 100 is neither a high nor a low weight. In the list 1, 1, 100 it is high. In the list 1000, 1000, 100, it is low.



This is a parameter of a shape which determines how tall its extrusion is. Remember that this may not represent the final height of the shape because all of the commands in the command list are executed on each shape before it is extruded. It may therefore be scaled up or down multiple times.



Before you use AgencyGP fully you must determine the parameters of your investigation. AgencyGP is best at dealing with problems in which desires of different types of spatial regions can be brought to apply pressure to one another.


  This is a parameter of a shape which determines the amount that a shape flares outward when extruded. A value higher than 1 flares outward, a value less than 1 contracts inward, and a value of 1 extrudes straight up.