Drawing Like A Machine

This is an ongoing research that explores the semiotics of coding languages through the medium of algorithmic drawing.

Drawing Like A Machine leverages the misappropriation of technology as a speculative method for artistic production and a reflection on agency in computational art. It explores the artistic and technological potential of algorithmic art by deciphering the semiotics of rule-based systems through the lens of pluralism. Rooted in artistic practice, this research celebrates ambiguity embedded within the language of algorithmic structures and their visual representations as a vehicle for creativity and relational agency. Examining the interplay between human subjectivity and machine precision by letting humans perform machine-like tasks critiques computational art’s deterministic tendencies and opens it up to alternative, more pluralist technocultural interpretations. 

This research is part of my PhD at Central Saint Martins.

ARTBOT explores human-made generative art by following pseudo-code, using algorithms that range from abstract to precise, emotional to rational, and chaotic to structured. By humanising coding languages, ARTBOT invites humans into the generating process, welcoming their biases, misinterpretations and misuses into predefined rule sets. The process reveals contrasts between human and machine interpretation, with “errors” shaping aesthetic outcomes. Ultimately, this project critiques the predictability of machine art and proposes a human-centric esolang to maximise creativity.

//MACHINE no. 017

skin;
blackWhiteMesh;
blackGradient;
redGradient;
blueGradient;

void setup() {
	size(1920, 1920);
	background(black);
}

void draw() {
	distort(blackWhiteMesh(random, random, black, white)) {
		if(blackWhiteMesh = liquid) {
			distort=0;
		}
	}
	distort(blackGradient(random, random, black, white)) {
		if(blackWhiteGradient = soft) {
			distort=0;
		}
	}
	distort(blueGradient(random, random, black, white)) {
		if(blueGradient = effervecent) {
			distort=0;
		}
	}
	distort(redGradient(random, random, red, white)) {
		if(redGradient = liquid) {
			distort=0;
		}
	}
	distort(blueGradient(random, random, blue, white)) {
		if(blueGradient = liquid) {
			distort=0;
		}
	}
	distort(skin(random, random, image(skin))) {
		if(skin = hard) {
			distort=0;
		}
	}
	distort(redGradient(random, random, red, white)) {
		if(redGradient = soft) {
			distort=0;
		}
	}
	distort(blackWhiteMesh(random, random, black, white)) {
		if(blackWhiteMesh = liquid) {
			distort=0;
		}
	}
	distort(blueGradient(random, random, black, white)) {
		if(blueGradient = effervecent) {
			distort=0;
		}
	}
	draw vortex () {
		If (glitch = true) {
			vortex = 0;
		}
	}
}

The layered brushstrokes on PAINTING no. 3 (acrylic on canvas, 89 x 116 cm) mimics computational iteration, each gesture contributing to an intricate network of mark-making. The result is a dynamic composition that invites contemplation on chaos and serendipity.

Use blank canvas.
Use colour paint.
    Paint shapes until objects.
Use pastel.
    Draw strokes until shapes are creatures.
Use black paint.
    Paint anti-shapes until new objects.
Use white paint.
    Paint text.
    Paint lines until creatures.
        When balance, stop.

Drawing Like A Machine identifies existing approaches to algorithmic art and their limitations to lay the groundwork for innovative and hybrid methodologies. Engaging with a programming language as a technological system and drawing as a form of visual research humanises machine logic while translating the rule sets into diagrammatic and visual output, opening up possibilities of conceptual metaphors, chance, and diverse cultural perspectives.

This research aims to answer the question:

  • How can the semiotics of algorithms reveal the artistic and technological potential of agency and diversity in computational art?

This research aims to contribute:

  • A novel perspective on human-machine collaboration in creative contexts.

  • Frameworks for incorporating subjectivity and diversity into computational design.

  • Insights into the interplay of form, language and critical technoculture, with applications in design education and cross-disciplinary professional environments.

  • A human-centric coding language (eso-lang) that fosters agency in algorithmic art.

Design Machines is a workshop I teach about the principles of design algorithms and creative coding. During the workshop, I ask participants to write simple design rules to create form-generating machines in order to cultivate generative design thinking.

Here are some examples of the Design Machines I created, each presented with its rule set and a sample of 5x5 outcomes. The algorithms are presented in pseudo-code on the top row with their outcomes placed underneath.

The algorithms used in the process are simple enough to be accessible to humans, yet vary across loose to precise parameters, small to large rule sets, emotional to rational languages, amongst other variables. 

These outputs, therefore, are presented next to their algorithms to reveal the contrast between their authors’ (mis)interpretation of the rule-sets. This research also opens up the possibility of a participatory practice, where humanmachines perform the same algorithms differently, inviting pluralism against computational determinism.

Through rigidity or absentmindedness, as well as pure misinterpretations, the hunmanmachines produce accurate outcomes mixed with errors in a culture of freedom, a sense of humour, a peek into the subconscious and the process as performance into generative art. The generation of the algorithms becomes a performance and is a part of the outcome.