Turning Algorithms into ART works

Debabrata Panigrahi (~Debanitrkl)


Description:

Wouldn't it be great if you could combine the strength of today's machine learning and artificial intelligence tools with the interactivity and fast feedback loops of modern software development paradigms and pipe it straight into your plotter to create art?

What is generative art?

Generative art is the output of a system that makes its own decisions about the piece, rather than a human. The system could be as simple as a single Python program, as long as it has rules and some aspect of randomness.

Where should you start?

Getting started with generative art is the same process as any project, the most crucial step is to come up with an idea or find one to build upon. Once you have a goal in mind, then you can start working on the technology required to achieve it. Most of my generative art projects have been accomplished in Python. It’s a fairly easy language to get used to and it has some incredible packages available to help with image manipulation, such as Pillow. Luckily for you, there’s no need to search very far for a starting point, because I’ve provided some code down below for you to play with.

Introduction

Today we're going to run through how to make plotter art in Python. The nice part is once we know how to do the basics in Python, we get the rest of the Python ecosystem for free (web frameworks, most modern-day data-science tools, AI+ML+CV tools, etc) and now suddenly the sky is the limit for making complex designs and interactive art.

The tools and libraries I'm going to cover in this python plotter workshop are:

  • Numpy + Scipy + Matplotlib to create our core design
  • Jupyter Lab Notebooks for easy iterative development
  • Ipythonwidgets for interactive designs
  • Vpype for SVG post-processing

And the links you are going to need are:

The Github repo with all the code

(Optional) The Axidraw Python Client installation guide

For this workshop, I'm assuming some basic software development skills - the ability to get Python libraries installed on your own, simple terminal usage, and copying and pasting from Github.

The Basics - Installation and Notebooks

Let's get this show on the road!

The Readme has all of the steps you need to get everything installed (except the Axidraw Client, but more on that later), and getting your Jupyter set up and running. The requirement.txt will have all the libraries we need and should be pip installable.

We're going to use Jupyter notebooks because they are awesome. Effectively notebooks are a cross between a text file and a RELP. How they work is that you can write code in blocks, and then execute the blocks in any order, change them, and execute them again. This lets you easily try something, see what happens, and quickly change it without having to rerun your whole program.

Prerequisites:

For this workshop, I'm assuming some basic software development skills - the ability to get Python libraries installed on your own, simple terminal usage, and copying and pasting from Github.

Speaker Info:

I'm Debabrata Panigrahi, a junior undergraduate in the department of biotechnology and medical engineering at National Institute of Technology Rourkela. I'm an opensource enthusiast presently interning with cloud native computing foundation under the Linux foundation mentorship program. I have been a hobbyist generative artist since last 3 years, inspired by the tutorials in the YouTube channel of the coding train. Since those days I have been doing generative art in p5.js processing.js and python. Since I was well versed with python libraries like nump, pandas, sklearn, pytorch and used it for my course related project works, I started playing with it and making out generative art. Even the times when I used to practise various algorithms and complex data structures to realise it's implementation and make the learning process mor fun I used them to create many art works.

Speaker Links:

https://openprocessing.org/user/232548?view=sketches

https://www.youtube.com/watch?v=8gTQEDza4dg

https://openprocessing.org/user/193570

Section: Culture and society
Type: Workshop
Target Audience: Intermediate
Last Updated: