In our design, we chose to explore colors and shapes, using a series of algorithms that accept a single value as a parameter and produce a potential 1000 distinct images from that value. Our design features a spirograph in which the “stamp” feature is determined by passing a value through a predicate that chooses between four shapes: a circle, a filled circle (disc), a square and a filled square (box). The color gradually changes around the circle, approaching white with every step. No matter what the original color is, there is always enough of a color change over the range of the spirograph to make it stand out from the neutral gray background. ***Note*** While the background is created by using a procedure that doesn't follow your parameter guidelines, we thought it would be a nice touch anyway. We did try to make fractal-rectangle accept image, val, width and height as parameters, but after a number of attempts and confused TAs we decided to just keep the procedure in its initial iteration. Our code relies on two previously made procedures, the roll! procedure, and the fractal-rectangle! procedure. The roll! procedure was taken from our homework on spirographs, and has been modified to include a color shift, as well as derive all its parameters from val, a single value. To implement the latter change, we used a “let” function to define the variables that the roll! procedure traditionally accepts in terms of val. Since val could range up to 1000, an extraordinarily large value for some of our functions, we used modulo to restrict the possible inputs. We used the fractal-rectangle! procedure, taken from homework 16, to create a nice background that would complement our spirographs.