My kaleidoscope images were created in Mathematica.
This is how it is done:
A parent triangle is chosen at random from the lower half of the first quadrant . It is filled with a color that is linked to the three x-coordinates of the vertices (that is , the RGB values are set equal to the x-coordinates). By interchanging coordinates of each point, the parent triangle is reflected across the line y = x . Each of these triangles is then reflected across the y-axis, through the origin, and across the x-axis producing seven offspring triangles. These reflections are defined as follows:

For a point (x, y) in the triangle,
(x, y) -> (y, x) is a reflection across the line y=x
(x, y) -> (-x, y) is a reflection across the y-axis
(x, y) -> (-x, -y) is a reflection through the origin
(x, y) -> (x, -y) is a reflection across the x-axis;
See an example of a parent and its seven offspring.

The process is repeated N times. Each time, a new parent triangle is chosen at random with a new color and its seven offspring are created. By increasing the value of N the design changes. See Image 2

I adjusted the procedure so that the parent triangle was a right triangle. See Image3

I got tired of triangles and used circles to create the next group of images. A parent circle is chosen with a fixed radius and random center. The seven offspring are created with the same reflections as above. See an example of a kaleidoscope image with circles. Finally I let the radius vary along with the center. Here's an example.

I ran the program again using line segments. Image 8 shows the result.