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. Griselda generates precise geometry, and allows far greater control over the bezier curves than found in conventional drawing programs. Griselda is modular, each module being assigned its own tab. Here is the PolyRoll module...


Griselda can create complex forms, and is useful for exploring 2D geometry and symmetry:

gif aninmation

The Cycloid module lets you create two cycloids, although the second needn’t be drawn. Each cycloid wheel (blue) rolls around its “pitch” wheel (green), scribing a line as it does so. The line is drawn by the cycloid’s “stylus” which can be moved in or out of the cycloid wheel. Epicycloids roll around the outside of the pitch wheel, whilst hypocycloids roll around the inside. When the pitch wheel circumference is an exact multiple of the cycloid wheel circumference, the shape will close. For example, a pitch wheel with a circumference of 576 and a cycloid wheel with circumference of 48 gives 12 points (576/48 = 120). You can also use sliders to interactively specify radii and circumfernce values.


The Roll angle specifies the curve resolution, which in turn specifies the number of anchor points on the bezier curve. The roll angle should be a divisor of 360 (2, 4, 6, 8, 10, 15, 18, 20, 24, etc). The larger the angle, the more segmented the skeleton becomes; however, it is still possible to use large roll angles and obtain perfect bezier curves that match those of higher resolutions. To do this, both the Angle & Length actions must be set to “Default”. Below, the outer cycloid has a large roll angle of 45°, whereas the inner cycloid has a rool angle of 12°


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 star was set at 24, 48 and 96 respectively. The inner radius of the second star was set to the outer radius of the first star; whilst the the inner radius of the third star was set to the outer radius of the second star. A “TWIST” morph action was applied the bezier curves. Each star 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...

png png png png png png png png png png

Sprira Mirabilis

The Sprira Mirabilis (last image), 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)

mirror 1

Control Point Angle Action: Mirror (negative)

mirror 2

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.

Checksum information
 144475 bytes

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. To run the program on MS-Windows with Java Version 8 runtime already installed, simply double-click the Griselda icon. For other systems, open a shell in the chosen 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.