Spiroplots: a New Discrete-time Dynamical System to Generate Curve Patterns
Year: 2020 Authors: Casper van Dommelen; Marc van Kreveld; Jérôme Urhausen
Core claim
A sequence of point-pair rotations can generate rich abstract patterns while preserving linear structure and revealing how input geometry controls cyclicity.
Topics
procedural dynamics, curve patterns, cyclicity, center of mass, generative art
Domains
discrete dynamical systems, geometry, topology, linear systems, generative art, pattern design, visualization
Methods
formal definition, recursive equations, theoretical analysis, computational app
Media
JavaScript app, point plots, rotated edge drawings
Paper text
The text below is the locally extracted OCR/Markdown version of the paper. Raw PDF files remain local and are not published here.
Bridges 2020 Conference Proceedings
Spiroplots: a New Discrete-time Dynamical System to Generate Curve Patterns
Casper van Dommelen Marc van Kreveld Jérôme Urhausen
Utrecht University, Utrecht, the Netherlands m.j.vankreveld@uu.nl, j.e.urhausen@uu.nl
Abstract
We introduce a new procedural dynamic system that can generate a variety of shapes that often appear as curves, but technically, the figures are plots of many points. We name them spiroplots and show how this new system relates to other procedures or processes that generate figures. Spiroplots are an extremely simple process but with a surprising visual variety. We prove some fundamental properties and analyze some instances to see how the geometry or topology of the input determines the generated figures. We show that some spiroplots have a finite cycle and return to the initial situation, whereas others will produce new points infinitely often. This paper is accompanied by a JavaScript app that allows anyone to generate spiroplots.
Introduction
Imagine a simple drawing of a very simple graph: the path with three vertices , and two edges and . The drawing is a standard drawing with straight edges. Now imagine that we rotate the first edge around its middle, counterclockwise, by 90 degrees, giving new locations for and . Obviously edge has changed location, but also the edge has changed due to the new position of . Next, imagine that we rotate edge in the same way, counterclockwise over 45 degrees around its middle (the current middle, not the middle of its start location). And now we repeat, rotating by 90 degrees, then by 45 degrees, then again, and so on. Finally, imagine that whenever a vertex lands somewhere, it plots a small point. We let each vertex plot its points in a different color.
Figure 1 illustrates the process for the first four rotations of the two edges from the starting locations . Figure 2 shows the result after 4,000 rotations and again after 15,000 rotations. With a slight abuse of terminology, we call both the system and the plot of vertex locations a spiroplot. Note that we started with three points, and rotated two pairs of points alternately around their center, so we do not need a graph to define the spiroplot. We need a sequence of point pairs, each with a rotation angle. In this paper we introduce this type of process and explore the patterns it can produce.
Figure 1: The first four rotations and plotted points of a simple spiroplot. On the left, the starting positions and the rotation of by 90 degrees are shown by two arrows. Then, the resulting situation, and the rotation of by 45 degrees are shown by two arrows. Right, the next two rotations.
van Dommelen, van Kreveld, and Urhausen
Figure 2: Spiroplot with three points and alternating edge rotations by 90 and 45 degrees, after 4,000 rotations and after 15,000 rotations.
Spiroplots are discrete-time, dynamic, linear systems that are not limited to a grid. A sample of four spiroplot patterns is shown in Figure 3.
Processes that lead to beautiful figures exist in various sorts. These may be parametrized curves or fractals [7], or based on chaos theory [9, 12], L-systems [6], or cellular automata [2, 4], to name a few. When such generative processes are used to make art, this is referred to as generative art [8]. We note that beautiful abstract figures can also be made by mechanical constructions like pendulums, harmonographs [14], and the drawing tool from the 1960s called Spirograph.
This paper is organized as follows. We first introduce spiroplots formally. Then we compare spiroplots with other procedural systems that generate abstract patterns. We continue with studying properties of spiroplots, including perservation of the center of mass and cyclicity (or non-cyclicity). Spiroplots have few input components; we observe how patterns can change when we change the input. We conclude with possible extensions and open problems.
With this paper we make an app available for generating spiroplots: https://spiroplot.sites.uu.nl
Figure 3: Spiroplots with different rotation pairs and rotation angles.
Spiroplots: a New Discrete-time Dynamical System to Generate Curve Patterns
Definition of Spiroplots and Comparison to other Systems
Any spiroplot (as a system) requires a finite set of points in the plane and a finite sequence of pairs of points, each with an associated angle. Point pairs may be repeated with the same or a different angle. In notation, a spiroplot is a triplet where is a set of points defining the initial positions, is a sequence of triplets consisting of two points from and an angle, and is an integer representing the number of rotations done. Triplets in are called rotation triplets, or r-triplets for short. It is important to note that is defined as a sequence and not a set, because different orders of r-triplets will give different plots. Inside an r-triplet, the order of the points does not matter: is the same r-triplet as for any two points and angle . Points of may occur in one or more r-triplets of . The spiroplot to the left in Figure 2 has , , and . We use to denote the cardinality of .
A spiroplot of (as a plot) is the finite sequence of points obtained from the initial set , and two more points for every rotation. The rotations follow the sequence and repeat it, until rotations in total have been done. The most interesting spiroplots seem to have 3–10 points in and 2–15 r-triplets in . It will be clear from the context whether a usage of the term spiroplot refers to the system or the resulting plot. We define the graph of a spiroplot to be the graph whose vertices are the points, and two points are connected if there is an r-triplet for that pair. The graph does not capture the order of r-triplets and angles, unless we annotate the edges.
In a spiroplot, the coordinates of the points are the changing quantities. We use the subscript to denote the coordinates after the -th rotation, so is the point that started as after rotations were done. We can define the new coordinates recursively. For example, if the -th rotation involves the two points and with a rotation, we have:
[ \left{\begin{array}[]{lll}a_{n+1}&=&(a_{n}-b_{n}+c_{n}+d_{n})/2\ b_{n+1}&=&(a_{n}+b_{n}-c_{n}+d_{n})/2\ c_{n+1}&=&(a_{n}+b_{n}+c_{n}-d_{n})/2\ d_{n+1}&=&(-a_{n}+b_{n}+c_{n}+d_{n})/2\end{array}\right. ] (1)
All other points in keep their coordinates, so for any such point , we have and . The points are called the active points after the -th rotation.
When the rotation angle is different from , we replace Equations (1) by different equations that use trigonometric functions of the angle. The system is still linear in the coordinates of the points. In fact, we can write down each rotation as a matrix where all but four rows and four columns are as in the identity matrix. These four rows and columns represent the - and -coordinates of the two rotating points.
We will overview some well known systems that can also be used to generate patterns. We do this to show in what sense these other systems are similar to spiroplots and in what sense they differ; see also Table 1. Our aim is not to give a complete overview of procedural pattern generation in this paper. It appears that spiroplots are different from existing systems in at least some fundamental ways.
Roughly speaking, one class of pattern generators yields parametrized curves. Examples of parametrized curves are Lissajous figures, pendulums, harmonographs [14], Spirographs, spirolaterals [4], Taitographs [13], and guilloché patterns [15]. Although the resulting figures produced by parametrized curves can look like spiroplots, the latter are technically just plots of points.
Another common way to create visual patterns is with grammars like L-systems [6, 10], shape grammars [11], and iterated function systems [1]. L-systems were introduced for modeling plants and trees, but their use has extended to many other natural or man-made structures. Interestingly, L-systems can also produce fractals [10]. L-systems are based on parallel replacement rules whose terminals include drawing
van Dommelen, van Kreveld, and Urhausen
Table 1: Different systems for figures with a simple procedural definition. The dimension refers to the typical dimension for the image.
| System | Example | Result | Dim. | Properties |
|---|---|---|---|---|
| Parametrized curve | Lissajoux | curve | 2 | continuous |
| Pendulum | curve | 2 | continuous | |
| Spirograph | curve | 2 | continuous | |
| Guilloché | curve | 2 | continuous | |
| Spirolateral | curve | 2 | continuous, piecewise-linear | |
| Cellular automata | Game of Life | grid | 2 | discrete-time |
| Sierpinski triangle | grid | 2 | 1D automaton with history | |
| Grammar-based | L-system | shape (object) | 2, 3 | parallel replacement |
| Shape grammar | shape (object) | 2, 3 | serial or parallel replacement | |
| Koch snowflake | shape | 2 | parallel replacement, fractal | |
| Coupled equation system | Hénon map | strange attractor | 2 | chaotic, discrete-time, quadratic |
| Lorenz system | strange attractor | 3 | chaotic, continuous, quadratic | |
| Mandelbrot, Julia set | colored plane | 2 | fractal, iterated function, complex plane | |
| Spiroplot | point plot, trace | 2 | discrete-time, linear, multi-point state |
instructions. While a next iteration in a grammar erases its (graphical) history, spiroplot patterns are the accumulation of the plotted points. Furthermore, spiroplots do not have parallel replacement.
Coupled equation systems are common in chaos theory [12]. A system is chaotic when small modifications to the input conditions may give dramatically different outcomes of a process. A Hénon map [5] is one such example; it is a discrete-time system based on rewriting the coordinates of a point in the plane using a particular quadratic equation in the previous coordinates. Iteration of this rewriting produces a trace of a point. Spiroplots are discrete-time systems based on rewriting coordinates (like Hénon maps), but in contrast, they are based on rewriting the coordinates of multiple points, and using linear equations. Spiroplots do not exhibit chaotic behavior in the input coordinates. However, we do observe singularities in the rotation angles.
Other patterns that may be generated are based on cellular automata [2], tilings (possibly in combination with grammars), or infinite compositions of analytic functions. Within the generative art community there are many more systems [3].
Summarizing, it appears that spiroplots are different from all other systems, as far as we know. Besides the strange attractors of Hénon maps, they are the only ones that plot the trace (history) of points, and they are the only coupled equation system that has linear equations and a multi-point state. Pattern-wise, some spiroplots look like guilloché or spirograph patterns, but spiroplots show a much larger variety.
Properties of Spiroplots
In this section we concentrate on statements about spiroplots that can be shown to be true. The next section focuses on observations that are not proven so they may not be universally true.
We first describe and prove a few basic invariants. They relate the coordinates of the active points before and after a rotation to the center of mass.
Lemma 1. A rotation in a spiroplot preserves the center of mass of the active points.
Proof. The center of mass of a set of points has coordinates that are the average -coordinate and the average -coordinate of the set. Any rotation of two points about their midpoint replaces two points by two other points that have the same midpoint, which is also the center of mass of the pair of points. As a consequence, the center of mass of all active points is invariant.
Spiroplots: a New Discrete-time Dynamical System to Generate Curve Patterns
Lemma 2. A rotation preserves the sum of squared distances to the center of mass of the active points.
Proof. For any point , in particular the center of mass, and any circle , two antipodal points on always have the same sum of squared distances to . Due to translation and rotation invariance of the statement, we can assume that is centered on and has radius , while the center of mass has coordinates .
Suppose two points rotate. Then take to be the circle that has these points antipodal; its center is the rotation center of the two points. Any rotation places the two points antipodal on again. Two antipodal points on are given by and . The sum of the squared distances of these two points to is , which is independent of .
Corollary 1. A rotation preserves the sum of squared distances between all pairs of active points.
Lemmas 1 and 2 imply that we can define—for any spiroplot instance—a bounded region in the plane inside which the plotted points will always remain. This region is a circle centered on the center of mass.
We will show that there are spiroplots where infinitely many positions are attained even with rotations by or only. To this end, we analyze a specific spiroplot instance , where and .
The six coordinates of the three active points can be written as a vector . In general we denote , , . From Equations (1) applied to and the corresponding equations for applied to , we obtain for even values of , so after every two rotations:
We study the parities in the vector , which follows the equations above but without dividing by 2. Initially, the parity vector of is . From the equations it can be seen that parities in are preserved:
By induction it follows that the parity remains . Given that the values in are odd integers in the first, second, third, and sixth entries, the actual values need an extra bit of precision for every two rotations.
Theorem 1. The number of bits required to represent the points of a spiroplot where -triplets use rotation angles of and only, grows linearly in the number of rotations in the worst case.
As a consequence, there are spiroplots that do not repeat a configuration (besides obvious examples such as a single r-triplet that rotates over degrees). If a configuration would ever be repeated, then that configuration would have looped and will therefore keep on cycling through the same loop sequence of configurations, because the dynamic system has no memory. So for the studied spiroplot, repeating a configuration would contradict the fact that the number of bits required to store the points grows linearly.
Correspondingly, we can show that certain spiroplots are cyclic. We identified, for example:
van Dommelen, van Kreveld, and Urhausen
- and ; cycle length 36;
- ; cycle length 16;
- ; cycle length 12;
- where ; cycles have lengths 18, 24, 36, 48, 72, respectively.
In these examples, the initial coordinates of the points are not relevant; the spiroplots are always cyclic. This can be shown by representing the rotations as matrices as explained before; all examples have four points so every r-triplet matrix is . Multiplying the matrices to represent sequences of rotations, we get the identity matrix after a fixed number, the reported cycle length, showing cyclicity regardless of the initial coordinates.
Observations on Spiroplots
In this section we examine what typically happens when we change parameters of the input of a spiroplot, like its initial coordinates, the initial angles, the order of r-triplets, the number of rotations , and the number of points and r-triplets.
If we change the coordinates of the initial points, we generally get patterns with a similar “character”. For example, for spiroplots with three points and two r-triplets, both using , we see plots whose points lie on ellipses. By observation, the number of ellipses is always eight and they are centered on the center of mass. The sizes and eccentricities of the ellipses change with initial coordinate changes (see Figure 4).
Figure 4: Two times five spiroplots that differ only in the angle . Top row: 0, 45, 90, 135, and 180 degrees and equal pair distances and at the start of the rotating pairs. Bottom row: same angles, but first pair starts with double the distance of . In all cases, is purple, is green, is orange.
If we change the angles in r-triplets, a lot may change. A cyclic spiroplot will no longer be cyclic and show a much more complex pattern. Even small changes have large effects. Also a change from degrees to degrees often has a clear effect. A spiroplot with three points and two rotations, of and degrees, always showed four ellipses instead of always eight.
If we change the order of the r-triplets, the pattern may change a lot as well. Again this can turn a cyclic spiroplot into an acyclic one.
If we increase the number of rotations, we clearly get a more dense pattern. For some spiroplots, the pattern appears complete after a few thousand rotations, whereas for others several millions are needed.
Spiroplots: a New Discrete-time Dynamical System to Generate Curve Patterns
Figure 5: Spiroplots whose graphs are cycles with 3, 4, and 5 points, and -triplets using 90 degrees. Plots of only one point are shown, together with the graphs of the spiroplots.
Incomplete patterns may be more aesthetic than complete ones.
If we increase the number of points (and r-triplets) in a spiroplot, its pattern generally gets more dense and less structured. We observed that all spiroplots with only three points produce samplings of ellipses. With many points and r-triplets, we often do not see any structure. See Figure 5 for spiroplots whose graphs are loops with 3, 4 and 5 points: the r-triplets are , , and .
Discussion and Conclusions
This paper introduces new discrete-time dynamic system that produces interesting patterns. The system is very simple, yet produces a wide range of patterns. These can be used as textures in fantasy worlds like games, they can be used as abstract decorative patterns, and we also found pseudo-random drawings of curves.
We summarize the main features:
- Spiroplots are a new type of system to generate patterns. They are different from other systems that produce patterns in some fundamental ways.
- Spiroplots have a very simple definition that can be easily understood.
- Spiroplots offer a wide range of patterns to be generated, both regular and seemingly irregular.
- Spiroplots give beautiful patterns. Often seeing the pattern emerge and grow is also nice.
- Spiroplots give rise to a number of interesting questions on the underlying systems and resulting patterns. For example: (i) Can (some) spiroplots be interpreted as projections of higher-dimensional curves? (ii) Spiroplots with 3 points only give ellipses, and these ellipses are centered on the center of mass. Can we prove this, or find a counterexample? (iii) How can we best define 3D spiroplots? Rotations of two points about their center are not unique; we need a rotation axis.
We hope that spiroplots can provide inspiration to children to become interested in mathematics, and believe that our app may help to accomplish this. The app has the option of choosing colors for the different points. One can start the system, and then the process will perform rotations and plot points until it is stopped. At that moment the colors of points may be changed, and the process can be continued again. Also, angles can be changed when the process is interrupted, essentially showing two different spiroplots. These options allow for a large variety of patterns. The URL is https://spiroplot.sites.uu.nl.
van Dommelen, van Kreveld, and Urhausen
The authors thank the anonymous reviewers for their extensive comments that helped to improve the clarity of this paper. This research was supported by the Netherlands Organisation for Scientific Research (NWO) under project no. 612.001.651.
References
- [1] M. F. Barnsley. Fractals Everywhere. Academic Press, 2014.
- [2] J. Conway. “The game of life.” Scientific American, vol. 223, no. 4, 1970, p. 4.
- [3] A. Dorin, J. McCabe, J. McCormack, G. Monro, and M. Whitelaw. “A framework for understanding generative art.” Digital Creativity, vol. 23, no. 3–4, 2012, pp. 239–259.
- [4] M. Gardner. “Mathematical games: fantastic patterns traced by programmed worms.” Scientific American, vol. 229, no. 5, 1973, pp. 116–123.
- [5] M. Hénon. “A two-dimensional mapping with a strange attractor.” Communications in Mathematical Physics, vol. 50, 1976, pp. 69–77.
- [6] A. Lindenmayer. “Developmental algorithms for multicellular organisms: a survey of L-systems.” Journal of Theoretical Biology, vol. 54, no. 1, 1975, pp. 3–22.
- [7] B. B. Mandelbrot. The Fractal Geometry of Nature, volume 173. WH Freeman, 1983.
- [8] M. Pearson. Generative Art. Manning Publications Co., 2011.
- [9] H.-O. Peitgen, H. Jürgens, and D. Saupe. Chaos and Fractals: New Frontiers of Science. Springer Science & Business Media, 2006.
- [10] P. Prusinkiewicz. “Graphical applications of L-systems.” In Proceedings of Graphics Interface, vol. 86, 1986, pages 247–253.
- [11] G. Stiny. “Introduction to shape and shape grammars.” Environment and Planning B: planning and design, vol. 7, no. 3, 1980, pp. 343–351.
- [12] S. H. Strogatz. Nonlinear Dynamics and Chaos: with applications to physics, biology, chemistry, and engineering. CRC Press, 2018.
- [13] J. Tait. “Taitographs: Drawings made by machines.” In Bridges Conference Proceedings, London, UK, 2006, pages 403–410.
- [14] H. I. Whitty. The Harmonograph. Jarrrold & Sons, Norwich, 1893.
- [15] WolframMathWorld. Guilloché patterns. Accessed January 16, 2020.