Kinetic Generative Art Tutorial
- 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.



This is an insightful and well-structured post. The concepts are explained in a simple and clear manner, making it easy for readers to understand. For anyone aiming to build a career in Data Science, having a strong foundation is essential. An AWS Training in Chennai offers practical exposure and helps learners tackle real-world testing challenges. Thanks for sharing such valuable information—looking forward to more updates!
Maintaining balance in today’s busy lifestyle often starts with choosing practices that support both body and mind. Exploring wellness experiences and learning what works personally can make self-care feel more meaningful over time. In the same way, people who experience Thai Massage in Velachery often value its guided stretches and pressure-based techniques, which help create a more mindful and restorative wellness routine.
Desiring to pursue a career in networking, I looked out for courses which cater to both theory and practical knowledge. By enrolling in the CCNA Course in Delhi, I gained strong knowledge in routing, switching, IP addressing, network security, and troubleshooting through real-time practical lab exercises. I learned from an expert trainer at FITA Academy, and I became accustomed to certification as well as an entry-level position in networking.
Selenium is commonly discussed in the context of automated testing for web applications and browser-based systems. It focuses on running test scripts, validating functionality, and identifying issues during the software testing process. In general discussions, references like Selenium Training in Trichy often come up when people discuss how automation tools are used to support testing in modern software development environments.
Trump threatens 55 club download new tariffs on European allies over Greenland until deal reached, as thousands protest