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. ************************************************************