Computational Art: Lectures - Symmetry Groups
http://ai.vancouver.wsu.edu/~nwdcsd/wiki
 

Home
Contacts
Lectures
Artists
Design Elements &
    Principles
Resources

 

[Overview] [Dependence] [Design Issues] [Programming] [Math] [Exercises] [Examples]


Overview

This lecture uses Processing transformations to explore visual symmetries.

We examine the types of symmetries that result from mirroring (reflection), rotation, translation, and glides (reflection plus translation). The symmetries can be classified as those that suround a point (Point Groups or Kaleidoscope patterns), fill an infinite line (Line or Frieze Groups), or those that fill an infinite plane (Plane or Wallpaper Groups). Interestingly enough, the are only 7 unique types of line groups, 17 unique types of wallpaper patterns

Scientists and Mathematicians have develop several different competing notations for describing symmetry groups. The two most common are

For a comparison of the above, see Wallpaper Groups

One can explore the symmetry groups using the following interactive demos:


Dependence


Design Issues: Examples of Symmetries

Symmetry refers to the ways in which a pattern or image repeats itself. Symmetries are all around us in nature, art, architecture, and even in day-to-day objects that we purchase in a store. Symmetric objects have an esthetic appeal; they are attractive and pleasing to the eye.


Frieze Patterns

Molecular structure of porphyrazin

Dome of the Rock

a wallpaper pattern

Below is an incomplete sampling of websites that explain and give examples of symmetries:


Programming

 

int w = 15
int h = 10;
rect(0,10,w,h);
rect(20,10,w,h);
rect(40,10,w,h);
rect(60,10,w,h);
rect(80,10,w,h);  

One way to repeat rectangle shapes is to simply repeat the code.

However, this could get very cumbersome if we wanted a lot of rectangles!


size(100,100);
int w = 10;
int h = 50;

for (int i=0; i < 6; i++) {  
   rect(15*i,0, w, h); 
}

Instead, we use a structure called a loop. One type of loop is called a for-loop. An example is shown here on the left.

The body of the for-loop is repeated 6 times with the "loop-variable" i changing from 0 to 5. Recall that the syntax for a rectangle is rect(x,y,w,h) where x is the x-coordinate of the upper left corner. In this loop the x-coordinate changes from 0*15, 1*15,... 5*15 resulting in a row of rectangles.

The variable i can be used to change any other characteristic you want. See below for more examples.


noFill();
for (int i=0; i < 10; i++) {
   rect(0,0, i*10, i*10); 
}
for (int i=10; i >= 0; i--) {
   fill(i*25,0,255);
   rect(0,0, i*10, i*10); 
}
background(0,0,0);
for (int i=10; i >= 0; i--) {
   stroke(i*25,255,0);
   line(0,0, 100-i*10, i*10); 
   ellipse(100-i*10, i*10,10,10); 
}



Math



Exercises



Other Examples

 

 

 

 

Maintained by Jenny Orr