WHAT IS IT?
-----------
This project is an extension of a previous StarLogo project
called "Kaleidoscope".  The current version has added six
new shapes to the model.  The name of this model is called 
Geometron-Bottom-Up because it allows the user the ability to create 
his/her own pattern using the provided shape-functions.

HOW TO USE IT
-------------
Set NTURTLES to a desired value between 0 and 360 (default value is 6).  
NTURTLES determines how many initial turtles you want to start out with. 
These initial turtles will spawn other shape-making turtles.

When you have set NTURTLES, press the SETUP button to set up the model.

Now click on the GO button.  GO is a forever button that operates on 
NTURTLES in conjunction with the eight switches located to the right of 
the interface window. Each one of these switches corresponds to a 
shape-function and is initially set to 0 (or "off").  To activate a 
shape, turn any of the eight switches "on" to 1.  This has the effect of 
telling each of the NTURTLES to hatch a turtle that will draw the shape 
designated by the switch.  When switched "on": 
DRAW-TRIANGLE will draw a triangle in the right direciton,
DRAW-LEFT-SQUARE will draw a square in the left direction,
DRAW-PENTAGON will draw a pentagon in the right direction, 
DRAW-HEXAGON will draw a hexagon in the right direction.
DRAW-OCTAGON will draw an octagon in the right direction, 
DRAW-NINE-GON will draw a nonagon in the right direction, 
DRAW-RIGHT-CIRCLE will draw a circle in the right direction, 
DRAW-LEFT-CIRCLE will draw a circle in the left direction, 
More than one switch can be activated.  In fact, different combinations 
of activated switches are responsible for the creation of different 
geometrical patterns and kaleidoscopes.  Whenever you want to stop the 
entire pattern, turn off the GO.

Two sliders, called STEP and DEGREES, are designed to operate on the 
original NTURTLES.  STEP is numbered between 0 and 1 (default value is 0) 
and can be incremented by 0.1 (ie, one-tenth).  STEP has the effect of 
moving the original NTURTLES forward by the number indicated on the STEP 
slider.  DEGREES is also numbered between 0 and 1 (default value is 0) 
and can be incremented by 0.1 (ie, one-tenth). DEGREES has the effect of 
turning the original NTURTLES to the right by the number of degrees 
indicated on the DEGREES slider.

The slider EXPANDER is designed specifically for the LEFT-SQUARE and 
EQUI-TRIANGLE function.  EXPANDER determines how large each leg of the 
square and triangle will be (default value is 90).

Other added features of the model are the CLEAR-PATCHES-LIFT-PEN and 
RESTORE buttons.  CLEAR-PATCHES-LIFT-PEN does exactly what it says: it 
clears the screen of all patches, lifts the pen on all turtles and kills 
all turtles greater than NTURTLES.  RESTORE kills all turtles greater 
than NTURTLES and tells all turtles to put their pen down. Killing all 
turtles greater than NTURTLES restores the original number of turtles on 
the screen.
***To use these buttons effectively, you should first turn the GO button 
off and then press RESTORE or CLEAR-PATCHES-LIFT-PEN.***

A useful tool that can be used in conjunction with the 
CLEAR-PATCHES-LIFT-PEN and RESTORE buttons is a switch called 
FOLLOW-TURTLE (default value is "off" or 0). When you 
CLEAR-PATCHES-LIFT-PEN, you see the skeleton of the designed pattern 
since the turtles are moving without their pens down. But when the switch 
is turned on, one hatched turtle will put its pen down.  However, since 
turtles are constantly being born and dying it may take time for this 
particular turtle to appear.  
  
You also have one monitor called COUNT-TURTLES, in the middle of the 
Interface Window, which will display the current number of turtles.

THINGS TO NOTICE
----------------
An important thing to notice here is the number given in
COUNT-TURTLES. Right away, it becomes much larger than
20, but it quickly settles on some big number. Take
a look at the Procedures Window. Initially, upon setup,
there are 20 turtles. Once one of the pattern buttons is 
pressed, each of these turtles repeatedly
hatches a new turtle and turns by a specified degree. The
newly-hatched turtles begin to draw different patterns,
self-destructing upon completion. As the original turtles
execute their commands much quicker than the hatched
turtles, they produce many turtles during one loop of a
pattern; eventually, though, turtles start to die off. At
this point, the number of turtles who are born is roughly
equal to the number who die at any given step.

THINGS TO TRY
-------------
Try changing the code in the Procedures Window. Increase the
size of the shapes drawn by each of the turtles, or try
changing the size of the angle each of the turtles turns
through in the shape-functions.  What different shapes can you think of 
for the turtles to draw?  Try to predict what overall shape will emerge.

Try different numbers of turtles to help you understand the geometry of 
the model.

Try clicking on the CLEAR-PATCHES-LIFT-PEN and RESTORE buttons while GO 
is running.  

EXTENDING THE MODEL
-------------------
Find some way to introduce randomness into the model.  It could apply to 
the STEP and DEGREES sliders. 

Try drawing figures that are not closed polygons. 

STARLOGOT FEATURES
-----------------
Geometron-Bottom-Up makes nice use of the turtle primitive
'hatch'. Whenever a turtle is hatched, it executes the
command list that follows the 'hatch' command. Generally all
it does is change its color or alter some variable- there's
no reason it can't run some other, possibly lengthy,
procedure. (Which is exactly what happens here.)

NOTES ON THE SHAPES
---------------

The following is a list of all the basic shape functions that are used in 
this model to create the six patterns.  It is important to understand 
that the complexity of the patterns are actually nothing more than 
different combinations of these shape functions.  For example, pattern-1 
utilizes the rigth-shape and left-shape functions.  Both these functions 
simply draw circles.  However, by adding slight variations to what the 
turtle does and which ones do it, it is possible to create the pattern 
that is represented by pattern-1.  This, in fact, is the basic algorithm 
that the model uses in order to create all the patterns.  Take the basic 
shape functions, add slight variations to what the turtles do and choose 
which turtles do it.

RIGHT-CIRCLE
-----------
Performs the following procedure 180 times:
Move forward 1.5 steps and turn right by 2 degrees.
To see the shape that this function creates, try calling it in the 
command center with one turtle with the pen down.
A turtle will create a circle heading in the right direction.

LEFT-CIRCLE
-----------
Performs the following procedure 180 times:
Move forward 1.5 steps and turn left by 2 degrees.
To see the shape that this function creates, try calling it in the 
command center with one turtle with the pen down.
A turtle will create a circle heading in the left direction.

LEFT-SQUARE
-----------
Performs the following procedure 4 times:
Move forward EXPANDER steps and turn right by 90 degrees.
To see the shape that this function creates, try calling it in the 
command center with one turtle with the pen down.
A turtle will create a square heading in the left direction.

EQUI-TRIANGLE
--------------
Performs the following procedure 3 times:
Move forward 35 steps and turn right by 120 degrees.
To see the shape that this function creates, try calling it in the 
command center with one turtle with the pen down.
A turtle will create a triangle heading in the right
direction.

OCTAGON
--------
Performs the following procedure 8 times:
Move forward 30 steps and turn right by 45 degrees.
To see the shape that this function creates, try calling it in the 
command center with one turtle with the pen down.
A turtle will create an octagon heading in the right
direction.

PENTAGON
---------
Performs the following procedure 5 times:
Move forward 35 steps and turn right by 72 degrees.
To see the shape that this function creates, try calling it in the 
command center with one turtle with the pen down.
A turtle will create a pentagon heading in the right
direction.

HEXAGON
--------
Performs the following procedure 6 times:
Move forward 35 steps and turn right by 60 degrees.
To see the shape that this function creates, try calling it in the 
command center with one turtle with the pen down.
A turtle will create a hexagon heading in the right direction.

NINE-GON
---------
Performs the following procedure 9 times:
Move forward 35 steps and turn right by 40 degrees.
To see the shape that this function creates, try calling it in the 
command center with one turtle with the pen down.
A turtle will create a nine-gon heading in the right
direction.

SLIDER DESCRIPTIONS
-------------------

EXPANDER  
--------
Numbered from 0 to 90 and increments by 1.  Has the effect of increasing 
the size of the square drawn by DRAW-LEFT-SQUARE and the size of the 
triangle drawn by DRAW-TRIANGLE.

NTURTLES  
--------
Numbered from 1 to 360 and increments by 1.  This slider is used for 
creating the initial number of turtles.

STEP
----
Numbered from 0 to 1 and increments by .1 (ie, one-tenth).  After every 
iteration of GO, the original turtles created by NTURTLES will move 
forward by the number indicated by STEP.

DEGREES  
-------
Numbered from 0 to 1 and increments by .1 (ie, one-tenth).  After every 
iteration of GO, the orginal turtles created by NTURTLES will turn right 
by the number of degrees indicated by DEGREES.

IMPORTANT NOTES
************************************************************
	Notice that in each of these functions, the number of times the 
procedure is repeated multiplied by the number of degrees the turtle 
turns either to the right or to the left is equal to 360 degrees.  Which 
means that each of the turtles is creating a polygon.
************************************************************