Cover photo

a fantasy p5.js gen art curriculum for beginners

Computer art can be a solitary, obsessive, headphones-on practice, but portals appear when you make it social. A year ago I had a very lucky learning experience which has given me a lot of purpose and joy, and was thinking recently about how beginners learn alone. Based on personal experience, below is an outline for a fantasy 7-week curriculum for teaching p5.js basics, contextualised within contemporary generative art concepts. Designed to run more or less alongside Daniel Shiffman’s youtube tutorial sequencing, but themed in a way that illuminates the qualities that make gen art distinct.

Thinking about learning

At the intersection of art and education teachers resist telling students how to think and interpret, instead asking questions and building techniques for exploring those questions. The teacher is not the expert but can help guide students to find their next step, and herself learn from the dialogue. The curriculum doesn’t pretend to be comprehensive, piquing personal interest in an array of new directions, new questions.

But if question-posing is the way to teach generative art, what is it asking?

Does generative art have anything to say? Three thoughts:

1) Decorative art, challenging no one: Most generative art being published today is pretty and/or clever. Making a beautiful algorithm and printing the patterned outputs is the ‘perfect’ piece of art, without any rough edges, challenging no one. Responding safely and chastely to the human yearning for a tool with no blood on it.

2) Exposing systems, making the immaterial material: Gen art surfaces the truths and weirdness of the technological systems that create it. A generative algorithm is a container of rules, a language of instruction, a machine. While the most affecting paintings and sculptures make the material immaterial, transcend their medium, gen art materialises and gestures intentionally to the math that made it.

3) Rich fruits of a technical craft: Generative art is a craft; the practice of making things with material and technique, and connecting to the way people use things / why things matter to people. In doing so, stretching the space for art to grow in. Not the human yearning for a tool with no blood on it, but the dissembling and rebuilding of the tool to sharpen its edges, or modify the social scope of its bloody potentials.

Here, a fantasy curriculum conceived for true beginners with no code or art background:

Week 1: Making things quickly Begin with a fun playground. Jump into an already-functioning sketch (e.g. unexpected lines drawn with shapes and noise) and change its variables. Experiment with generating many diverse outputs. Install artTab on browser.

Week 2: Language and library Understand the basic set-up, interface, syntax and command structure. Sketch with a library of shapes positioned on coordinates within a canvas. Coding Train 1.1-1.6. Contextualise with examples of programming art and generative art that explore relationality and randomness: Conway’s Game of LifeEvery Icon by John F Simon Jr, Ringers by Dmitri Cherniak, Web by Jan Robert Leegte.

Week 3: Defining digital-native Interactivity, responsiveness and digital native art, beyond a fixed-size canvas. Mouse controls. Using map(). Coding Train 2.1-2.5. Contextualise with examples of code responsive to window size: Window by Jan Robert Leegte, and Unicurse by me.

Week 4: Dynamic movement Frame counts and animation. Make the circle bounce in the canvas. First use of conditional statements. If, then, else. Coding Train 3.1-3.4. Contextualise with animated examples from ArtBlocks (e.g. Vortex by Jen Stark, Cargo by Kim Asendorf, Pre-Process by Casey Reas but there are many), Towers by Andreas Gysin, the work of Leander Herzog, and Passage by Jason Rohrer.

Week 5: Multiples and infinites Using the for-loop. Coding Train 4.1-4.2. Contextualise with Himinn by Sarah Ridgely, Tych by rudxane, Patched Paradise by Anna Lucia, Impressions of Order by nbswwit, Very Large Array by Leander Herzog.

Week 6: Using functions - the machines within the machine. Coding Train 5.1-5.3. Starting to organise the structure of a sketch.

Week 7: Color Making color palettes, and the first application of arrays. Coding Train 7.1. and a color palette set up. Contextualise with JPEG by Jan Robert Leegte, Generations by Anna Lucia, the palettes of Terraforms by Mathcastles.

Online tools and resources offer a huge range of learning avenues. This list sets primary concepts that drive creative coding (language, library, interaction, animation, multiplication, conditional logic, loops, stored information) and that underpin the magnificent question it asks: What is the value of being able to manifest two or two thousand things and make them respond in random and relational ways?

Loading...
highlight
Collect this post to permanently own it.
sten logo
Subscribe to sten and never miss a post.
  • Loading comments...