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.


790 Comments


James
James
15 hours ago

Great insights on lead nurturing, especially the section on automation workflows. SISGAIN Real Estate applies similar strategies through custom real estate crm software development to streamline follow-ups, improve agent productivity, and manage property leads efficiently.


Like

laurasanms311989
4 days 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
6 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
Apr 21

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
Apr 20

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

©2023 by Generative Hut.

bottom of page