Seventy-Five Ways to Draw a Circle

All Processing code for this article, along with images, can be found on Github

I recently challenged myself to come up with twenty five designs using only Perlin flow fields. This article is the next part of this series of explorations where I set myself up with another simple challenge: come up with a seventy-five different ways to draw a circle.

The Constraints

I set three constraints for this challenge. First, I decided to forego the use of color as I wanted to focus on variety in forms instead. I also find that using color variations to get out of a rut makes me feel like I’m cheating.

Second, every version should be implemented as an independent, re-usable function conforming to the following declaration:

void circle(float x, float y, float r) {
  /* Draw a circle with center at (x, y) and radius r */
}

This way, I can easily reuse them later for other works.

As the third and final constraint, each version had to have some generative/procedural component to it. That is, each time the function is called, a new variant should be generated.

Enough talking. Here are the results! Enjoy!

Seventy-Five Circles

#1

#2

#3

#4

#5

#6

#7

#8

#9

#10

#11

#12

#13

#14

#15

#16

#17

#18

#19

#20

#21

#22

#23

#24

#25

#26

#27

#28

#29

#30

#31

#32

#33

#34

#35

#36

#37

#38

#39

#40

#41

#42

#43

#44

#45

#46

#47

#48

#49

#50

#51

#52

#53

#54

#55

#56

#57

#58

#59

#60

#61

#62

#63

#64

#65

#66

#67

#68

#69

#70

#71

#72

#73

#74

#75