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.



Saw your Kinetic Generative Art Tutorial and it reminded me how creativity and code can merge into something unexpectedly expressive and deeply personal. As a PhD student, I often reflect on my journey, especially during my college days when I struggled academically and felt behind others. That experience inspired me to help others, including part-time work at Last-Minute Assignments, where I sometimes see requests for help with machine learning assignment UK. Kinetic art feels similar in its evolving patterns too.
Wow!! What a collection you have. It's surely recommendable. You also may know about the Royal Jordanian USA Office assists passengers traveling to and from the United States with a wide range of airline-related services. Whether you need help booking a flight, modifying an existing reservation, understanding baggage policies, or requesting special travel assistance, the USA office serves as a convenient point of contact for travelers.
장시간 앉아 있는 업무 환경으로 허리 부담이 컸는데 집중 케어가 큰 도움이 되었고 출장마사지 이용 후 통증이 줄어들어 업무 효율까지 올라가는 느낌이라 매우 유익한 서비스라고 생각합니다
gg88 mình cũng kiểu nghe nhắc nhiều quá nên bấm vào xem thử cho biết thôi, không có rảnh ngồi dò từng thứ. Vừa vào cái là thấy giao diện khá sáng sủa, khoảng trắng nhiều nên nhìn không bị ngộp. Mình thích nhất là menu đặt khá dễ thấy, bấm qua lại mấy mục không bị lạc hay phải tìm hoài. Nội dung trên trang họ chia thành từng khối rõ ràng, kiểu nhìn lướt là biết phần nào ra phần đó, không bị chữ dính vào nhau. Nói chung trải nghiệm ban đầu khá “êm”, mở ra là dùng được liền chứ không phải đoán nút ở đâu. Mấy khung thông tin xếp ngay hàng và tiêu đề…
https://llwin.co.com/ mình lướt thử vì thấy bạn bè nhắc, kiểu vào xem giao diện ra sao thôi. Ấn tượng đầu là trang nhìn khá thoáng, các khối nội dung tách ra rõ nên không bị “ngợp” như nhiều site khác. Mình hay bị lạc khi menu rối, mà ở đây thanh menu đặt dễ thấy, bấm qua lại vài mục vẫn giữ được mạch, không phải quay lại hoài. Cuộn xuống cũng không bị loạn mắt vì bố cục chia cột gọn gàng, tiêu đề với phần thông tin nhìn phát nhận ra ngay. Nói chung cảm giác dùng khá nhẹ nhàng, nhất là cách họ gom nội dung thành từng block và để menu nổi bật ngay từ đầu.