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.


789 Comments


laurasanms311989
a day ago

dh88.com mình ghé thử vì thấy bạn bè nhắc hoài, định coi giao diện có rối không thôi. Vào cái là thấy bố cục khá thoáng, chữ dễ đọc, mấy khối nội dung tách ra rõ nên lướt không bị “ngợp”. Mình để ý phần thể thao họ ghi kèo cập nhật theo thời gian thực, nhìn qua là hiểu kiểu đang bám sát diễn biến trận chứ không phải thông tin cũ. Trên điện thoại cuộn cũng mượt, tiêu đề phân cấp ổn nên tìm đoạn mình cần nhanh. Nói chung cảm giác họ sắp xếp nội dung gọn gàng, nhất là các mục được chia thành từng khối rõ ràng ngay trên trang chủ.

Like

Akash Sisgain
Akash Sisgain
3 days ago

Great explanation of agile workflows, especially real-time tracking. This is why choosing the right software development company UAE matters for long-term success.

Like

Shreya Barnwal
Shreya Barnwal
4 days ago

It is because of the cost of sustaining two native applications, which is really expensive, that companies are considering Hire Hybrid App Development Services. Having two apps, one built on iOS, and one built on Android, is an additional 35-40 percent of the cost of having one hybrid app.


Like

Tanu Sisgain
Tanu Sisgain
5 days ago

Helpful insights on getting blog comments approved faster—especially the section on writing relevant, value-driven responses. In healthcare application development services like SISGAIN, consistency and real engagement improve approval rates.

Like

uyenghomsoet.h.uy.e.n+abc123
5 days ago

https://98wincom.best/ mình ghé thử đúng kiểu tò mò thôi, thấy mấy đứa bạn nói nhiều quá nên bấm vào xem. Ấn tượng đầu là trang nhìn khá sạch sẽ, các phần được chia thành từng khối nên lướt xuống không bị loạn, mắt mình đỡ phải dò. Mình có để ý đoạn họ nhắc về tải app, viết ngắn gọn kiểu dùng app thì thao tác nhanh và ổn định hơn so với dùng trình duyệt, đọc cái là hiểu ngay chứ không vòng vo. Nói chung với người chỉ xem qua như mình thì vậy là ổn, không cần màu mè hay chữ nghĩa dài dòng. Mấy chỗ kiểu hỏi đáp/giải thích cũng đặt dễ thấy nên khỏi phải…

Like

©2023 by Generative Hut.

bottom of page