What is Generative Art?

Generative art is the art of the algorithm. A artist uses a computer or other device to render art that was designed by the artist. Unlike AI art or generative AI art, the artist controls the process and the device simply renders according to the artist's direction.

An algorithm is a step by step process for accomplishing a sepcific task. Artists are not used to describing how they make an artwork, but musicians those in the theatre are. Think of the play Hamlet. The words in each speech are written down, and we could perform it tha same was every time if we wanted to. We do not want to. Each performance of Hamlet is different from the others. Hamlet is an algorithm, and each performance is an instance of that algorithm, each rendered by performers and directors.

Think of Mozart's Piano Concerto in C major, K. 467. The score is a written description, in detail, of this piece of music. Yet individual performances are different from each other, and we have perhaps hundreds of recording of this concerto. Again, the score is the algorithm and the performances are instances, rendered by musicians and conductors.

Visual artists don't work this way.

An artist will conceive or their artwork in their mind, and will then execute it on canvas, or paper, marble. Except in specific modes like photography and printmaking, each work is a one of, and even in those instances the multiple copies of the work are intended to be duplicates, not new works or even variations.

Here's an example. This is an abstract using a curvilinear mode. Ths colors and shape change from instance to instance, under the control of the artist and their program.


In this case the artist wrote the computer program that drew the shape, each having a specified random variation, and defined the colors of the background and the curve to vary appropriately in each case. Every time this program executes it creates a new visual that differes from the previous ones in shape and color. An artist could specify the algorithm in English (or any language) and then give this to a programmer to create a program, and the work would still be that of the original artist. On the other hand, this process is inadequate for a number of reasons: human languages are imprecise, the programmer and artist might not communicate well, artists specify color and shape differently from programmers, and so on.

Not all artists wish to become programmers, and some feel that they cannot understand the technical details involved. While I feel this to be unlikely, it's a fair belief on their part. Can these artists work in the generative domain? Sure. They can hire the programming done, or they can use a special tool for implementing their algorithm that does not involve actual programming. That's where Gadget comes in.

What is Gadget?

Gadget is a family of tools that allow an artist to express an algorithm to a computer without using a traditional programming language. Statements in a programming language like Java have a very specific syntax, and express an algorithm in a somewhat unnatural way. Here is a small program and an example of what it creates:

To write that program requires that the artist know the syntax of the language and, more importantly, how to translate their vision of the work into the rather limited set of operations that the language supports. The latter is more complex than the former.

There are three variations of Gadget in the works. The first allows the artist to type a set of commands from a menu of about 70 items. This is somehwat like programming but has a very limited syntax and a good set of operations an artist can use.

The second variation is a node-based system that, again, offers the artist a menu or graphical operations that are implemented as nodes, or small boxes drawn on the screen. The artist can connect these boxes, which allows parts of the artwork to be used as input to other parts, and will ultimately result in a final visual work. This requires no programming, and is an interactive process using the mouse rather than typing commans or statements from the keyboard.

The third version combines the two previous ones, having a visual menu of drawing operations that the user can select using the mouse. After the operations are selected they are processed in the order given by the artist, producing a final work.

Gadget 2023

This version is the original, and uses a text interface. It was designed for a class in generative art at the University of Calgary, and was used s=uccessfully for the past few years. When the program is started, it needs to be given a text file containing the commands needed to draw the artwork. It then opens a window that displays the prgram and allows its execution:

Details of this program and how to download it and use it are provided on the Gadget 0.1 download page.

Gadget 2025

This version was proposed to and funded by the Canada Council for the Arts, and was implemented in the period from February 2024 to August 2025. Details of this program and how to download it and use it are provided on the Gadget 2025 download page.

Gadget 2026

Details of this program and how to download it and use it are provided on the Gadget 2025 download page.

Turtle Gadget (Gadget 0)

A turtle graphics system implemented in the basic Gadget interpreter. Turtle Gadget page.