Risto A. Paju
algorithmic art



On technology
On style and subject
On political art
On giving credit
Free software
    Open source and Free software considerations
    Code reuse
    Personal art project
    Workshop code
Non-fungible tokens
Where's the Algoristo app?

On technology

In 2017, I was planning to submit a paper on my OpenGL methods for publication. One of the most memorable reviews I got said:

"Artists need not learn how to do GPU programming. Higher level languages and programming environments shield the artist from this tedious lower level."
Another reviewer also mentioned that tools like Processing may use OpenGL behind the scenes. Well, I did have a look at Processing when I was starting my live demos in 2016, and it could not do render-to-texture, i.e. no iterated GPU work.

In general, I absolutely believe that artists should make their own tools whenever feasible. Past masters were known to make their own dyes, for example. To me it is all about making your own thing, vs. turning the knobs on a system someone else designed.

Moreover, I want to understand what is going on in my work. I sometimes get interesting results from coding mistakes, and then I want to know what actually happened so I can make better use of that effect. This really is a more general open-source argument, especially pertinent to scientific code: can you explain how your algorithm works?

Another argument against ready-made software is that every tool implies some preferred ways of process and workflow. So you become accustomed to doing things in certain "professional" ways instead of thinking for yourself. It is much more interesting to build your own tools as you work; let the work shape the tools, not the other way. Your tools become part of your art, while there is this ongoing negotiation between the tech side and the art. You will probably get stuck in some of your own ways, but at least they will be something you came up with, instead of doing the same thing as all the other "professionals".

Something like Processing might give a good start for algorithmic art, but with such "user-friendly" systems there are always limitations that you'll run into sooner or later. My Python-gnuplot setup was easy enough for 12-16 year olds, and we went straight into real code and real commandline tools.

I don't think programming should be hard for its own sake. After all, I use Python for my demos, which I find much simpler and easier than the default Java used by Processing (though sensibly enough, it can also use Python).

On style and subject

I am interested in mathematics, and programming is my way of doing and understanding math. I try to find new ways of portraying "old" math, and keep the math simple enough to show through the art. While computers are all about computing, not all computer-generated art deserves to be called math art. There is math behind flashy, photorealistic effects, but one can choose to go math-first or flashy-first.

A key element in most math art is iteration: repeating a simple process over and over. The result will not be as simple, but it usually retains some innate harmony of the simple process. In music, harmony stems from simple ratios of frequencies; iterated function systems often exhibit the same ratios repeated on many levels, which I believe contributes to a sense of visual harmony. Conversely, flashy-first approaches often combine multiple different techniques, and the esthetics come more directly from the artist, rather than letting the math speak for itself.

My math-first philosophy is sometimes at crossroads with the desire to finish well-defined works of art. This is one reason why I prefer live visual demos, as they can be used together with music and other forms of performance for a more "artistic" whole, while staying unfinished themselves.

Running live programs also facilitates realtime control in response to other performers and audience reactions. But I also have more prosaic reasons to avoid fixed works. Fine detail and pointillist graininess is often ruined by video compression, so viewers get a second-rate version of what I've intended (this is especially bad with streaming video sites). Finally, there's good old-fashioned programming pride: I can do this in realtime, while limiting myself to last decade's GPU technology :-j

On political art

There is a lot I could say about political art in general, little of which would be endearing. But my math-art has a simple and somewhat unpolitical message: math is art, a creative human endeavour like nothing else.

More specifically, I am concerned about the divide between the two cultures, arts vs. sciences. It is hard to make informed decisions on your future when you are told to choose between the soft, cuddly, fuzzy and spiritual arts, or the soulless and tedious but lucrative world of math and science.

For schoolchildren and young students, image is everything. If you're a creative type and also good at math, it can be hard to choose a math-strong career when the everyone around you thinks math is just an endless drill with numbers after numbers. Of course, a lot of the "math" taught in schools is arithmetic number-crunching, so it's easy to get the wrong idea. But in order to do new math or science, one needs to combine a bit of that school-like rigour with a heap of creativity.

In fact, during my days as a math and science teacher, I was quite concerned about the image of scientific careers, and I aimed to keep things exciting. I tried to exemplify someone who can wear flashy clothes and have fun while being a real scientist. I was also wondering if I could focus on the flashy demonstrations and experiencements as a career, rather than spending my energy on all that basic teaching. In a sense, I'm now doing something like that with my math art.

[2020-09-22] For Finnish readers, I recommend this essay by Anna Tuori and Aleksis Salusjärvi on political art.

On giving credit

[2019-06-16] Algorithmic or mathematical art itself is thousands of years old. Arguably, some of the earliest of all artworks can be considered algorithmic, for instance Comb Ceramic pottery. So as I express my appreciation for pioneers such as these guys, I am referring to the modern, computerized wave. It is also where I find a lot of my pet peeves.

The computer-algorithmic pioneers had no ready-made software to begin with, and they were forced to code their own tools, should they want to produce any computer art at all. There is no question that their "art" also carried the meaning of "skill" in addition to "pretty pictures". They did all the work and they deserve all the respect they can get.

Today, it is getting harder to tell how much of the final work is due to the artists themselves, and how much is really done by an army of uncredited programmers behind the tech. Social media is full of people pushing buttons in ready-made apps and calling themselves artists. In an age of flashy superficies and sub-minute video clips, few people seem have the attention span to care any deeper, and I guess that's OK within the so-me bubble.

Unfortunately, professional artists are not immune either. I have seen prominent exhibitions with artists that took all the credit while admitting in passing that they hired some unnamed code monkeys to do all the work. Well, getting paid is better than nothing, but in my opinion, lack of credit is worse than working for free. The "artist" vs. "code monkey" discourse is not exactly helping bridge the aforementioned divide.

Of course, practically everyone uses some ready-made tools in some ways. There is a vast grey area between photo-fx apps and low-level programming. I am grateful for having Linux and other open-source tools in the foundations of my software stack, and I'm not interested in reinventing the wheel unless I'm doing an artwork about wheels. Along those lines, ask yourself

  1. Who/what makes the artistic decisions? You or the software you're using?
  2. Could you do you art without using some particular ready-made software?
The answers might help you tell whose art you are presenting as your own.

I guess one general problem comes from the clash of the two cultures. Academic credit is all about citing others and recognizing your place in the network of knowledge, while artistic pride is rooted in the idea of a lone genius. I believe both sides have something to learn from the other; the humble science-servant should fight for recognition in the face of comments such as "it's just math". (Corollary: if it's really "just math" then perhaps you don't need any of our code either.)

Also, the classic "it's not real art, you're just pushing buttons on a computer". Rather than dismissing the artistic value of the result, it is really about trivializing the art of computing; the result may or may not be art, but the button-pusher is hardly the one to take credit for all the work.

While the app disease is spreading, the real programming tools are also becoming more accessible all the time. I recommend learning Python, but any programming language is a good start.

Free software

[2021-06-26] People sometimes ask me for source code to my art, without any further justification. I find this really annoying due to a couple of reasons:

  1. The code represents years of unpaid study and work. Why should I give it away for free? Why does this person feel entitled to free access to the fruits of my labour?
  2. What are they going to do with it? Are they going to present my art as their own?

I am a teacher and a scientist, and I try to explain the math and technical parts of what I do. I am also an open source guy and I have released my own software since around the turn of the millennium, with the prominent examples on my Github account. So perhaps people assume that everything I write is up for grabs.

The code to my art certainly has a relation to Free software. For example, I followed a number of examples released under GPL3 to start my OpenGL framework. Still, it is a personal art project.

Open source and Free software considerations

There are also good technical and practical reasons to not release all of the software I write, even if there is nothing personal about it, and even if it could be useful to others.

Let's assume I just dump my code out there. In all likelihood, some people will start asking how to use it. Some will ask how it works internally, how they could improve it, and how they could combine it with other existing software. In other words, more unpaid work for me. Of course, a lot of that could be done by writing good documentation, but that also means unpaid work. More importantly, it means time away from my art and personal life. I did mention I am a teacher, and that also means getting paid to teach.

So, Free software / open source is not just a code dump. Also, the more generic and non-personal the project, the more it makes sense as an open source project; for a prime example, think of the Linux operating system. More potential users also means more contributors — Free software is all about the community. Clearly, personal art projects do not fit this bill. In fact, this topic comes up now and then in Free software circles, and it is generally agreed that open source licenses are fundamentally incompatible with art.

Note: for these purposes, the distinction between Open source and Free software does not matter much, so I am intentionally sloppy with them.

Code reuse

I mentioned that some people might want to integrate pieces of my code into other software projects, and this has indeed happened. Basically, they asked for the GPU part of the code, as if that were a well-defined monolith that can be plugged into anything. It is not. For example, my logic is often split between the CPU and the GPU in non-obvious and non-optimal ways, as I have built my framework over the years.

It is a rather general fact in software that one cannot just take a module from one program and expect it to work in another. In this case, the person at least knew the language I used, but still made a lot of wrong assumptions. Once again, I am not interested in doing free work to convert my code into a form that someone can take advantage of.

It is much better to document ideas on a more general level, and this is also what I have done over the years: tech notes, math notes and publications. The tech notes are largely about OpenGL, but otherwise I try to present my ideas independently of programming languages or frameworks.

I am guessing that a lot of people who ask me for code, would be quite happy with the information I have already put out there, but they have not done their homework. Naturally, this only adds to my annoyance.

Personal art project

[2023-11-21] Forget about software for a while, and imagine a "traditional" artist. If you like their work, do you show your appreciation by asking for a free copy of their skill set? Does your answer change if some newer technology is involved?

Art (especially solo art) is a matter of personal vision, a whole that cannot be served piecemeal. This also reflects the wetware side of the code reuse problem. It's not quite a "take it or leave it" thing; if you'd like to see my art develop in certain directions, I am generally open to suggestions and collaboration. But asking for free code is not a great way to start that conversation.

Workshop code

Finally, I do actually provide some Free (GPL3) software to get you started in your math art:

In 2017 I taught a workshop of fractal art at a local school, for 12-16 year olds. The course material contains simplified Python scripts for my pointillist method, along with the gnuplot files and some instruction to get you started. Please note the above support considerations — if this works for you, that's great, but don't expect free support.

Non-fungible tokens

[2021-03-23] The past few weeks have seen a craze of selling digital art as NFTs. I think John Cleese made a great statement about them with his Brooklyn Bridge drawing, referring to an old saying about selling bridges.

Digital art is inherently reproducible, and I am not going to fight that fact with artificial scarcity. The music and film industries already tried, and they lost. The whole reason digital electronics was developed was to enable lossless copying of data; if you do not want that, then perhaps digital is not your thing.

I have been involved with cryptocurrencies since 2010, and I do believe that NFTs (or whatever the blockchain tokens are called this week) can make sense for many things. For example shares in a company that represent real-world value (or at least real-world scarcity). Cryptocurrencies themselves are used to buy and sell products with actual scarcity.

Making money is not a reason for me to make art, so I get annoyed by people who assume it is. This is not to say I will never do any kind of commercial collaboration, but it has to be a bit more creative than "Hey, I want to sell your art and take a 50% cut for my services".

What I do want is to get my art out there for people to see. I even have prints on sale for those who prefer that format. I do not see that as a way to make a living, and in any case I want to spend my time doing art instead of business.

While a single NFT is unique (per a given blockchain!), it has nothing to do with the uniqueness of the artwork. One can sell identical copies with an NFT for each; as explained at Errata Security, an NFT is like a receipt, a proof of purchase. You can get a receipt for buying a carton of milk too. Of course, supporting an artist by paying for a product that is freely available has its own value, but it is not exactly new and does not depend on blockchains.

So the meaning of an NFT boils down to bragging rights: a proof of purchase whose ownership can be verified by anyone. It is the next step up from posting concert ticket photos on Instagram. Even if the artwork itself is mysteriously lost, you still have your receipt to boast about.

Where's the Algoristo app?

[2023-05-25] Another common suggestion, esp. related to my photo manipulation demos, is that I should make it into an app for everyone to use with their own photos. This is largely related to the Free software question above, and the same short answer applies: I simply don't find it interesting enough to be worth my time/effort.

In general, it's not a great argument to say "Why don't you do X? Everyone's doing X!". It even contains its own counterargument: "Why should I do X? There are already enough people doing it."

I find the "smart"phone app epidemic a particularly off-putting aspect of the current tech atmosphere, and I've already expressed some of my dislike above wrt technology and giving credit. I'm much more open to pouring my time/effort into open source software for real computers.

The app culture seems to be all about shiny throwaway toys. Sure, I could probably turn some of my photo raster demos into an app, and then people could make half-assed versions of my art. But guess what, I don't want anything about my art to be half-assed. I've spent years developing my own huge and complex art framework, and one does not simply turn all that complexity into an "user-friendly" app. If you want to make use of it, then perhaps you can ask for a commission or collaboration. If you want to make algorithmic art yourself, learn to code.

People want easy answers to hard questions. They want an attack helicopter that's as easy to ride as an elevator. There's a lot one can do to make nice user interfaces (this also takes time, is not free and often not interesting), but in the end you can't reduce all the control parameters and feedback required to operate a helicopter to pushing a couple of buttons.

back to main page