Drawing, as a basic form of visual human expression, has been around for more than 30,000 years Drawing, Wikipedia. . Its evolution into writing, painting, and other forms of art has taken many centuries, but don’t worry – I won’t delve into a shallow discussion about that. I am mostly interested in the mastery of each of these forms of expression.

Mastery versus dabbling.

Take writing. The essence of writing tools has never changed. What was once a sharpened rock has been replaced by chalk, then by X, then by the fountain pen. The medium of writing, however, has continued to evolve immensely. The basic skill required to use a pen is learned by children over a course of a couple of years, whereas becoming a professional writer takes decades of dedicated learning and practice. Even then, there are very few masters compared to the total number of literate people, since the amount of work required paired with just the right blend of personal traits and circumstances is scarce.

The tools for writing, painting, sculpting, and all other forms of “classical art” haven’t evolved much breadth-wise, thus enabling the art to evolve depth-wise. We can view breadth as the number of radical variations of a tool. If we look at the classical tools – the paintbrush, the sculptor’s chisel, the piano, the violin – fundamentally not much has changed about them. It is my argument that this very fact is what has enabled the mastery to occur in these disciplines, given a long enough period.

Rock paintings from the Cave of Beasts, Wikipedia. (Photo credit: Clemens Schmillen) Rock paintings from the Cave of Beasts, Wikipedia. (Photo credit: Clemens Schmillen)

The fractality of algorithmic tools

Contrast those classical tools with the computer and with procedural art in particular. The number of tools is literally growing each day. You could argue that even though the individual tools are growing in number, the fundamental skills required to use them are on a higher plane of knowledge and are therefore tool-agnostic. So if we take computer programming in particular, one could argue that learning the fundamental principles of programming takes one above the “lower plane” of learning to program in a given language to a “higher plane” of understanding systems, their interaction, architecture, and so on.

But I think this is only partially the case. Yes, programming in many different areas, languages, paradigms, hardware setups, and so on, is definitely improving your cognition and wisdom, but at the end of the day, you’re still the one who has to sit down and write that code for triangulating a volumetric model. You already did this in language X? Sorry mate, language Y doesn’t have that library yet. You’re gonna have to write it yourself. Again.

Writing a library to achieve a narrow goal is supposedly helping the community at large, but what’s far less obvious is that it is in turn fractally increasing the surface area of knowledge required to become a master Fractal = infinitely recursive and self-similar. See Fractal on Wikipedia. . For every new language and/or platform, the same tools have to be written, again. This process sometimes even repeats itself within the given language community, whenever a “new” paradigm gains popularity and old tools are suddenly “outdated”. This is the essence of fractality – it infinitely repeats within itself. It is the equivalent of a painter having to remake her paintbrush whenever she decides to use a slightly different type of canvas. How will she ever be able to achieve mastery with this approach?

Now, what makes the situation troublesome for the “algorithmic visuals” crowd is the instant gratification caused by fractality and the inherent novelty that comes with it. With new tools come never-seen-before visuals, so it becomes very simple to produce visually pleasing results with a trivial amount of work.

Triggered. Triggered.

This is producing an effect opposite to mastery – a proliferation of “expert dabblers” who are exploiting the fractality of new tools to provide a steady stream of novelty. It’s a treadmill, and as software artists we need to get off of it willingly. Otherwise, who else will take a deep dive? Tool creators are preoccupied with the technicalities of actually building the tools, tech-savvy users are too focused on the intellectual aspects of their work For more on this topic, read Intellectualism Hurts Generative Art by Tyler Hobbs. , giving these dabblers free reign over the masses in need of art. And even though “the masses” sounds negative, the aforementioned have historically been very good at recognizing mastery, if it’s there.

Surface area

With the fractal increase in surface area of required knowledge and skill, what is one to do with their practice and art? Keeping up with fractality is obviously futile.

I can give no definitive answer, but I think increasing the surface area of your proverbial chisel is the way to go. Contrast this with writing yet another library which provides X in toolchain Y, fractally increasing the time required to achieve mastery. It is literally a step backward for everyone involved, because although seemingly contributing to the community at large, it is actually leading away from mastery (depth) and into fractality (width) Standards, XKCD. .

A good rule of thumb is to choose a tool with maximum cross-domain versatility. You want a tool which can fit 90% of your use cases, can be deployed onto anything from a toaster The finest Twitter account in the Universe. to a smartphone to a multi-GPU supercomputer. Avoid overly specific tools, languages offering little benefit except syntactic sugar, and at-hand Simple Made Easy, a talk by Rich Hickey, 2011. mechanisms offering reduced chisel surface area.

Finally, it comes down to people. Tools with millions of users are better than obscure ones, unless you’re in academia.


So where is mastery/depth in this modern “algo-visual” age? I’ve been trying to figure this out for quite some time. I’ve switched paintbrushes far too many times, and not a single one was ever entirely satisfactory.

Is this perhaps a good thing? Being both software craftsmen/women and artists, we are often reflexively scratching every itch and not settling for uncomfortable tools. I think accepting the discomfort is necessary. Michelangelo would never have become a grandmaster sculptor if he was constantly “iterating on his chisel”. Instead, he sat down and did the work. He went deep with what he had in his hand.

Of course, it’s easy to make the parallel but much harder to put it in practice. I am often envious of the sculptors, the painters, the writers, because of the immediacy of their tools. The many layers of abstraction we have to go through as algorithmic sculptors makes the creation of such a direct yet general tool virtually impossible.

Again, it’s tempting to pose this as a “higher plane” problem and posit that “your chisel is your mind” or some cheap BS like that. Truth is, I think our algorithmic chisel is somewhere midway between our mind and our concrete tool of choice, but the connection between the two is delicate, temporal, and highly individual. Mastery lies in finding it and then putting in the work, forever.