"On heuristics: A heuristic, or heuristic technique, is any approach to problem solving or self-discovery that employs a practical method that is not guaranteed to be optimal, perfect, or rational, but is nevertheless sufficient for reaching an immediate, short-term goal or approximation."
The process of writing code is mostly an exact science, where the end result is deterministic and based on achieving a certain result. Consider a simple example, say if we were to write a program to calculate the average of all the input values, or a program that classifies images using an ai model. These programs need to do their job correctly as they are functional elements serving a purpose.
In generative art also there routines that need to do their job correctly, for example rendering a video input onto the screen or reading the contents of a file to process some values etc. But beyond these functional pieces in the domain of artistic exploration, there is a wide playing field for exploring visual language, especially abstraction where the whole idea is to use the underlying functional mechanics of programming in a creative way to design expected/unexpected behaviour to be able to observe various aesthetics of image formation.
If we compare this process to painting for instance, we see a similar divergence of approaches, where by if we were making a portrait of a person, maybe it is desirable to have a clear resemblance of the model as opposed to when we are making an abstract painting, there is no clear objective goal, and the experimentation and chance is the process itself. Like in the image above where the intention was to generate a terrain like visual, where as in the image below the intention was to explore the aesthetics of random walks.
To understand how heuristics play a major role in art making, lets revist the example of portrait painting or the terrain generation example. A portrait can be painted in an infinite number of ways: in various styles, thick or thin lines, hyper-realistic or cartoon like, with a palette knife / brush / charcoal /spray can effects etc... and in each decision a striking aesthetic resemblence of the person can be established and a great portrait can be created. So even though we started with a clear goal of acheiving a resemblance of a person, there are literally many ways to do that. So how does one go about choosing the best way? Similarly in the terrain generation example, the terrain can be grassy, but there are numerous ways that effect can be programmed. Does one get trapped in these numerous choices, or just pick a best approach which seems suitable and doable and iterate from there.
The point is that instead of getting stuck in some complicated estimations and at some point abandoning the project, there are many heuristic approximations possible which will get you pretty close to the result. In some case the heuristic approaches might even out perform the complex models. If the goal is to use a complex model then it is fine, but if there is no such compulsion, then it might save one a lot of time, and save some hair pulling instances to probably get you close to the desired result by taking some smart heuristic decisions.
Many great works of art have come out of heuristic decision making process. Personally it has helped me to not get bogged down with complexity where it might be unnecessay to engage with, and iterate quickly and keep refining the work. The key decision to make is should one measure the speed of the wind precisely before kicking the ball towards the goal post, or will an approximation suffice. Might be a good thought to try both and decide when each approach make sense.