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.


844 Comments


Servotech Inc
Servotech Inc
5 hours ago

HIL Software enables real-time simulation and validation of embedded control systems by replicating hardware behavior in virtual environments. It accelerates testing, identifies software issues early, improves system reliability, reduces development costs, and ensures safe, efficient product deployment across industrial and automotive applications.

Like

Irha Ahmed
Irha Ahmed
a day ago

Interesting overview of web app development services. Building audience engagement, improving brand visibility, and using data-driven strategies can help businesses strengthen their online presence and support long-term growth.

Like

nataliewood2127
a day ago

What causes Internet connection problems in QB Payments?

Internet connection problems in QB Payments can occur due to various reasons, including:

·       QB Payments requires a stable and consistent internet connection to process payments. If the network connectivity is weak or interrupted, it can cause internet connection problems in QB Payments.

·       The firewall or security settings of your computer or network may be blocking QB Payments from accessing the internet.

·       If QB is not updated to the latest version.

·       Incorrect settings within QB or your computer's network settings can cause internet connection errors.

Like

John Wick
John Wick
a day ago

Great insights on digital property solutions. The article clearly highlights how Property Management App Development Dubai is transforming real estate operations.

Like

Love Marie Yu
Love Marie Yu
a day ago

HND business and finance can help learners understand how financial information is used in business planning. Managers often rely on budgets, forecasts, financial statements, and performance indicators to guide decisions. A course can explain how these tools support operational choices and long-term strategy. This is important because financial awareness can reduce poor planning and improve business control. It can also help learners communicate more effectively with finance teams and decision-makers.

Like

©2023 by Generative Hut.

bottom of page