GraphGrow ========= An interactive designer for graph-directed fractal generation. What it is ---------- A graph is a set of nodes and links between them. In GraphGrow the term is overloaded: there are visible graphs of nodes and links in the designer panes, and a second implicit graph with links between the rules (this graph can be viewed on the right hand side of the Info pane). The visible graphs give the name of GraphGrow - a fractal is grown from a seed graph by replacing each visible link with its corresponding rule graph, recursively. The implicit graph between rules thus "directs" the expansion. The implict graph is also a "directed graph", even more terminological overloading. The seed pane is a free graph, but to be useful it must have at least one link. The rule graphs are constrained, with two fixed nodes at left and right. When "growing" a graph, each link is replaced with the corresponding (ie, the one with the same colour) rule graph with the left-hand fixed node of the rule mapped to the start point of the link and the right-hand fixed node of the rule mapped to the end point of the link. Current versions of GraphGrow have this mapping restricted to uniform scaling, rotation and translation, though it should be possible to extend the approach to more complex transformations. How to use it ------------- interactively manipulating nodes in a designer pane: * left-click in empty area to create a new node * left-click drag in node center to move a node * shift-left-click in node center to delete a node interactively manipulating links in a designer pane: * left-click drag from node ring to another node ring to create a link * left-click in link center to change link colour * shift-left-click in link center to delete a link quick start guide: * create a couple of nodes and a link in the Seed pane * add a couple of extra nodes and a few links in the Rule A pane (red) * visit the Grow pane * move around the nodes in the Rule A pane * visit the Grow pane * visit the Info pane to see some information * in the Rule A pane, click on a link to change it to Rule B (yellow) * in the Rule B pane, add a node and a couple of links, make them yellow * visit the Grow pane * play around * when you have something you're happy with, take a few screenshots (there is no save/load functionality yet...) Glossary -------- * "pane" is a view / tab selectable on the left hand side * "node" is a circle that can be an endpoint of a link * "link" is a coloured line between two nodes * "rule" is a set of links and nodes, with two nodes fixed in place * "seed" is a set of links and nodes, with at least one link * "center of a node" is the smaller circle in the visible representation * "ring of a node" is the outer circle (excluding the inner circle) * "center of a link" is the circle in the middle of the representation * "designer pane" is one of the panes other than "Grow" or "Info". References ---------- Hausdorff Dimension in Graph Directed Constructions R Daniel Mauldin, S C Williams Transactions of AMS, vol309 no2, October 1988, 811-829 http://cas.unt.edu/~mauldin/papers/no67.pdf