top of page

Kinetic Generative Art Tutorial

  • Writer: Pierre Paslier
    Pierre Paslier
  • Jun 3, 2023
  • 2 min read

Tutorial Intro

Welcome to this tutorial where we're going to explore the mesmerizing world of generative art, inspired by the kinetic sculptures of artists like Reuben Margolin. We'll use p5.js, a powerful JavaScript library that makes coding visual and interactive elements on the web accessible to everyone.


Our goal is to create a digital artwork with a series of rotating pendulums, each varying in speed and size, to simulate the motion seen in kinetic sculptures. The final result is a beautiful, ever-changing pattern that reflects the dynamic essence of kinetic art.


This tutorial is beginner-friendly, so don't worry if you're new to p5.js or programming in general. We'll walk through each line of code step by step, explaining the concepts as we go along.


By the end of this tutorial, not only will you have created a piece of generative art, but you will also have gained a deeper understanding of loops, arrays, and object-oriented programming in p5.js. You'll be equipped with the knowledge to create your own unique generative artworks. So, let's dive in and start coding!




Generative Art Code

let pendulums = [];
let pendulumCount = 40;

function setup() {
  createCanvas(windowWidth, windowHeight);
  for(let i = 0; i < pendulumCount; i++){
    pendulums[i] = new Pendulum(i);
  }
}

function draw() {
	blendMode(NORMAL);
  background(255 );
  translate(width / 2, height / 2);
  for(let i = 0; i < pendulumCount; i++){
    pendulums[i].display();
    pendulums[i].update();
  }
}

class Pendulum {
  constructor(n){
    this.angle = 0;
    this.angleSpeed = 0.01 + n * 0.004; 
    this.radius = 30 + n * 6; 
  }
  
  update() {
    this.angle += this.angleSpeed;
  }
  
  display(){
    let x = this.radius * cos(this.angle);
    let y = this.radius * sin(this.angle);
    stroke(0,100);
    line(0, 0, x, y);
    fill(0);
    ellipse(x, y, 5, 5);
  }
}

That's it! Hope you've enjoyed learning about this particular piece and make sure to check out the other free tutorials on generativehut.com.


716 Comments


Naina Randhawa
Naina Randhawa
12 minutes ago

Thanks For Sharing

Like

larsmedicare
larsmedicare
a day ago

ewrewrewr

Like

Fleek IT Solutions
Fleek IT Solutions
5 days ago
Thanks for this awesome tutorial on kinetic generative art — the step-by-step breakdown and visual examples really make it accessible. Excited to try these techniques myself!

Like

Sam Wilson
Sam Wilson
Nov 07

The station’s environment is built to support travelers who value clarity and smooth transition. For instance, the signage is straightforward, simplifying the process of moving from ticketing areas to platforms or waiting areas. The interior avoids unnecessary distractions, emphasizing clear spaces and open pathways. This structure works well for commuters who are often in a hurry and want to avoid spending excessive time orienting themselves.

A Key Link Between Suburban and Urban Regions

One of the significant benefits of this station is its role in connecting suburban regions to major metropolitan centers. For many travelers, it becomes a convenient midpoint—close enough to home to avoid long local travel, yet perfectly positioned to access longer rail routes toward larger cities.

This…


Like

Akshita Jain
Akshita Jain
Nov 07

rrtewt

Like

©2023 by Generative Hut.

bottom of page