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.


744 Comments


askforairlines1
askforairlines1
2 days ago

We have seen people jumping in and out of regular cabins to premium suites without thinking or out of benefits of loyalty. One of the travelers had to use reward points and money to reserve a balcony on the day they sailed. You can upgrade or not depending on the number of vacancies, the magnitude of increase in price, and your status as a loyalist. How much the upgrade would cost can be obtained by calling the Azamara Cruise Lines Customer Support Phone Number at San Juan port where they have updated pricing and qualification info.


Like

Shreya Barnwal
Shreya Barnwal
3 days ago

Norse Atlantic Airways provides an opportunity for budget conscious travellers to have a chance to cross the Atlantic in comfort.When the flash sale happens, the rates go down to the levels that appear to be hardly possible on such a long trip. Nonetheless, there are highly strict rules that accompany these deals. Norse Atlantic Airways Customer Support Phone Number San Francisco can answer those questions.

Like

Maanvender
3 days ago

The Swiss rep office in New York is equipped with an educational play alcove that has puzzles and multilingual picture books. Flight workers might provide child-sized headphones and in-flight activity kits on demand. It has a quiet nursing corner and intelligent lockers of toys, which is strangely pleasing. The swiss international airlines new york office contact number is in the information board, and the friendly personalities will help explain the availability of child-bassinet and the customization of kid meals based on long-haul flights. It’s safe and welcoming.


Edited
Like

Vccddvb
Vccddvb
4 days ago

The Minneapolis–Saint Paul International Airport Customer Support Phone Number helps you manage last minute schedule changes for a smoother holiday trip.

Like

Mehnaz Mano
Mehnaz Mano
6 days ago

Parents across the USA want Quran learning that is organized and easy for children to follow. These programs are designed to match different learning levels. Teachers use child-friendly teaching methods. Lessons are engaging without being overwhelming. With online quran classes for kids, children benefit from personal guidance. Parents can track progress without difficulty. Scheduling fits school and family time. The online setup is safe and secure. Quran learning continues without interruptions.

Like

©2023 by Generative Hut.

bottom of page