Kaleidoscope Symmetry, Explained

After reading this you will know exactly how one pointer stroke gets copied into an n-fold mandala, how to compute the rotated and mirrored positions by hand, and how the cyclic and dihedral groups decide what you see.

What the tool does and one example to fix ideas

You move the pointer once. The screen shows many strokes at once, arranged like the arms of a snowflake. That is the whole trick, and it comes from a single idea: take the point you are drawing and apply a fixed set of symmetry operations to it, then draw a copy at every result.

Take a concrete case. You put the pointer at a spot that sits 120 pixels to the right of the centre and 0 pixels up, so its angle from the centre is 0^\circ. Choose six-fold symmetry with the mirror on. The tool draws your point, then five more rotated copies at 60^\circ, 120^\circ, 180^\circ, 240^\circ and 300^\circ, and then a mirror image of each. One dot becomes twelve. Sweep the pointer along a short curve and twelve curves bloom together into a rosette.

The centre of the canvas is the fixed point of every operation. It never moves, which is why mandalas always have their busiest, most stable region in the middle.

When to reach for it, and when not

Use this tool to build intuition for the finite symmetry groups that classify flat rosettes: the cyclic groups C_n and the dihedral groups D_n. It is the fastest way to feel the difference between rotation alone and rotation plus reflection. It is also a drawing toy, and there is nothing wrong with using it that way.

Do not use it as a model of anything physical. A real snowflake grows by diffusion and freezing, not by copying a stroke, even though the finished crystal happens to carry six-fold symmetry. The tool reproduces the symmetry of such objects, not their formation. If you want a system where structure emerges from a local rule rather than being imposed by hand, look at Conway’s Game of Life instead.

The formula and why it works

Work in polar coordinates around the centre. A pointer position is a radius r and an angle \theta. For n-fold rotational symmetry the tool draws a copy of your point at every angle

\theta_k = \theta + k \cdot \frac{360^\circ}{n}, \quad k = 0, 1, \dots, n-1

Here n is the fold count you chose, k indexes the copies, and 360^\circ / n is the wedge angle. The radius r stays the same for every copy, because rotation does not change distance from the centre. That gives the cyclic group C_n: exactly n copies, arranged as a pinwheel with no mirror lines.

Turning the mirror on adds a reflection. Reflecting across the line at angle 0 sends angle \theta to -\theta. Combined with the rotations, this gives every element of the dihedral group D_n:

\theta_k = \pm\theta + k \cdot \frac{360^\circ}{n}, \quad k = 0, 1, \dots, n-1

The plus sign gives the n rotated copies; the minus sign gives their n mirror images. That is 2n copies in total, and the pattern now has n mirror lines running through the centre.

The two mirrors of a physical kaleidoscope stand at angle 360^\circ / (2n). Light bounces between them, and each bounce is a reflection. The set of all reflected images you see is exactly the dihedral group D_n, which is why a hinged pair of mirrors and this tool produce the same rosette.

Reproducing the demo, step by step

The demo button uses the defaults. Take six-fold symmetry with the mirror on, and follow a single pointer sample.

One dot into twelve

Suppose your pointer sits at radius r = 120 and angle \theta = 25^\circ from the centre. The wedge angle is 360^\circ / 6 = 60^\circ.

  1. The six rotated angles are 25 + 60k: that is 25, 85, 145, 205, 265, 325 degrees.
  2. Each keeps radius 120, so those are six dots on a circle of radius 120. That is the C_6 pinwheel.
  3. Now mirror: use angle -25^\circ, which is 335 degrees. The six mirrored angles are -25 + 60k: 335, 35, 95, 155, 215, 275 degrees.
  4. Twelve dots in all. Notice the pairs straddle the mirror lines. The rotated dot at 25 and the mirrored dot at 35 sit symmetrically about the mirror line at 30^\circ, which is the bisector of the first wedge.

To convert any of these back to screen coordinates, use x = r\cos\theta and y = r\sin\theta. For the first dot: x = 120\cos 25^\circ \approx 108.8 and y = 120\sin 25^\circ \approx 50.7, measured from the centre.

All twelve dots lie on a circle of radius 120. Six come from rotation, six from the mirror, and they pair up across the mirror lines.

How the copy count grows with n

The number of strokes on screen is set entirely by n and the mirror toggle. With the mirror off you get n copies; with it on you get 2n. The table shows the jump.

Copy count and wedge angle for common fold values
Fold nWedge angleCopies, mirror off (Cₙ)Copies, mirror on (Dₙ)Mirror lines
3120°363
490°484
660°6126
845°8168
1230°122412

Because the same stroke is drawn many times, the total ink laid down per gesture scales with the copy count. A twelve-fold pattern with the mirror on fills the canvas roughly 24 / 6 = 4 times faster than a six-fold pinwheel, so it saturates sooner and the slow fade matters more.

With three-fold symmetry a stroke is copied 3 times (mirror off) or 6 times (mirror on). With twelve-fold it becomes 12 or 24 copies spaced every 30 degrees. More folds means smaller wedges and a denser rosette.

Reading the colours and the fade

Strokes are coloured by the speed and direction of your pointer, and they fade over time. That means the picture encodes your gesture, not just a static shape. A fast flick paints one hue; a slow drag paints another. Because the fade is gradual, older strokes dim while new ones stay bright, so the mandala looks like it is breathing.

Read the pattern this way. The number of distinct arms tells you n. If arms come in mirror-image pairs, the mirror is on and you are looking at D_n; if each arm is a bare pinwheel blade with a handedness, the mirror is off and you are looking at C_n. A quick test: a C_n pattern looks different from its own reflection, while a D_n pattern looks identical to its reflection.

Common mistakes

Do not confuse n mirror lines with 2n copies. A six-fold dihedral rosette has 6 mirror lines but 12 strokes, because reflection pairs two strokes across each line. Counting the strokes and calling that the fold number is the usual error.

Two more traps. First, the centre is a fixed point, so a stroke that passes exactly through it collapses all copies onto the same path and the symmetry looks broken; keep some radius. Second, the mirror lines sit at the wedge bisectors, not at the wedge edges, so a stroke you place symmetrically about a wedge edge will not look symmetric under D_n. Aim for the bisector if you want a stroke that is its own mirror image.

Related tools

These share the geometry or the group theory. Spirograph traces the same rotational patterns from rolling gears rather than reflected strokes. Phyllotaxis builds rosettes from the golden angle instead of a fixed fold count. For symmetry pushed into the plane as repeating tilings, try Truchet tiles and Wave function collapse. If you want to watch rotation rebuild an arbitrary drawn shape, Fourier epicycles uses a chain of turning circles. And for the self-similar side of symmetry, Chaos game and the Mandelbrot explorer show structure that repeats at every scale.

Frequently asked questions

Why do snowflakes have six arms and not five?

Water molecules bond at angles that favour a hexagonal lattice, so the growing crystal carries six-fold symmetry. You can set this tool to n = 6 with the mirror on to imitate that look, but the tool imposes the symmetry rather than growing it, so it explains the shape and not the physics.

What is the difference between Cₙ and Dₙ in one sentence?

C_n has only rotations and gives n copies with no mirror symmetry; D_n adds reflections and gives 2n copies with n mirror lines.

Why does the middle of the pattern get so dense?

The centre is the fixed point of every symmetry operation, so all copies of a near-centre stroke land close together. Move outward and the copies fan apart, which is why detail spreads toward the rim.

Can I get five-fold symmetry?

Yes, set n = 5. Note that five-fold symmetry cannot tile the plane periodically, which is why you see it in flowers and starfish but not in ordinary wallpaper. It appears only in aperiodic tilings.

Does the fade change the symmetry?

No. Every copy fades on the same schedule, so at any instant all n or 2n copies of a given stroke have the same brightness. The symmetry is exact; the fade only sets how long the record of your gesture lasts.