Griselda is a small Java application that generates procedural shapes using a 2D turtle. The turtle contructs a “skeleton” of straight line segments. A bezier curve is generated for each segment of the turtle path; the curve is then modified by various morph actions using sliders - one for control point angles, and another for control point lengths. This allows the creation of complex forms, and is useful in exploring 2D geometry and symmetry. A screenshot is worth a thousand words, so here is the Cycloid module...
Griselda was never intended as a fully fledged drawing program but as a utility for PostScript programs such as Adobe Illustrator where attributes for stoke, colour and fill are easily applied. An example is shown below.
Above: preliminary design for artwork “Cosmic Seed”. The Star module was used to create three suns; the number of points for each sun was set at 24, 48 and 96 respectively. The points were twisted using the morphers. Each sun was then imported into Adobe Illustrator and shaded.
Griselda can also be used to create spirals, shells, spirograph patterns (of the kind found on Bank Notes) and countless other shapes...
The Sprira Mirabilis (last image in the sequence above), shows the remarkable features of a sunflower floret; there are two sets of equiangular spirals: a clockwise set of 34 sprials and an anti-clockwise set of 21 spirals. These are Fibonnacci numbers, which, like the golden ratio, appear throughout nature. Fibonnacci spiral sets are also found in the pine cone (8 and 5); and the pineapple (13 and 8). You can create all of these using the EquiSpi module. Note that clockwise and anti-clockwise are measured moving from the center outwards.
The following diagram shows the method for control point construction in Griselda. The skeleton (red) is contructed by a 2D turtle. Angle delta is the exterior angle turned by the turtle at each vertex (anchor point). Co-ordinates for Bezier control points CP1 and CP2 are calculated as a fraction of delta.
To see how the morphers work, start with the PolyRoll tab. Set the vertices to 3 and the symmetry to 1. Move the control point slider, then change the morph action from the combo box. The “Swap 1-2” morpher is best investigated on the “PolySpi” and “Star” modules. When “Swap 1-2” is used on the “PolyRoll” module with a stellar polygon, vertices must be an even number to obtain a symmetrical shape. (“Swap 1-2” has a side effect when changing CP1 or CP2 lengths: the lengths are also swapped, thus affecting both control points at alternate vertices).
Control Point Angle Action: Mirror (positive)
Control Point Angle Action: Mirror (negative)
Control Point Angle Action: Twist
Control Point Angle Action: Mirror (Balanced)
NOTE: whilst Java2D provides attributes for stroke, colour and fill, these slow down the morph action for all but the simplest shapes.
Griselda began as a HyperCard stack (screenshot 1, screenshot 2); on an early Apple Macintosh in the mid 1990’s whilst reading the book “Turtle Geometry: The Computer as a Medium for Exploring Mathematics” by Harold Abelson and Andrea diSessa. (MIT Press 1981). This was long before filters like ‘Punk’, ‘Bloat’ and ‘Twist’ appeared in commercial drawing programs. I think the method used in Griselda is more sophisticated, and allows greater control of the bezier curve.
NOTE: the zip contains a jar file which might alert certain browsers with a security message such as: "This type of file is not commonly downloaded". If this is the case, the size of the downloaded file will be zero Bytes. Please check your Download Manager and confirm it is safe to use the file. After you do this, the file will appear in Windows Explorer with the correct file size and can be unzipped as normal.
Unzip the file to your chosen directory; open a shell in that directory and type:
java -jar ./Griselda.jar
Make sure the jar file is excutable. Be patient, it takes a while for the app to load. This release of Griselda was compiled with Java Version 8, Update 25 (build 1.8.0_25-b18). If the program fails to load, runs slowly or seems unresponsive, your java version might be incompatible with with the compiled classes. In this case you can recompile the sources which are available on the Sourceforge project page.
“Turtle Geometry: The Computer as a Medium for Exploring Mathematics” by Harold Abelson and Andrea diSessa. The MIT Press 1981.
“The Divine Proportion: A Study in Mathematical Beauty” by H.E. Huntley. Dover 1970.