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.


986 Comments


Berrys Spa and Salon
Berrys Spa and Salon
10 hours ago

I’ve been checking out different options for a Unisex salon in Mumbai, and Berry's Spa and Salon looks like a good one. I like that it caters to both men and women and offers regular salon services. The place seems comfortable and easy to visit. Definitely keeping it in mind for my next haircut or grooming session.


Like

John Charles
a day ago

I enjoyed learning about Greenman Juice Bar & Bistro and its focus on fresh, locally sourced ingredients. The story shows how a community-focused business can grow while maintaining its original vision. It also reminded me how an IP address like 192.168.1.7 connects everyday technology with modern businesses.

Like

sunny sharma
sunny sharma
a day ago

Learning the Basics of Futures and Options trading can make market concepts easier to understand and apply. It’s helpful to focus on contract fundamentals, risk management, pricing, and practical examples rather than relying only on theoretical knowledge.

Like

Next Gen Scholars
a day ago

I was looking for IGCSE Coaching in Andheri West and came across Next Gen Scholars. Their focus on clear concepts, personal attention, and regular practice seems quite useful for IGCSE students. I like that the approach is not just about completing the syllabus but also helping students understand topics properly and feel more confident with their studies.


Like

Reddy Anna
Reddy Anna
2 days ago

Reddy Anna Thanks for sharing such an informative post. Your writing style makes complex topics easy to understand and remember.

Like

©2023 by Generative Hut.

bottom of page