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.


1,043 Comments


Stig Tom
Stig Tom
3 days ago

This is a really solid intro to p5.js — the way the tutorial builds kinetic motion from simple loops and noise makes creative coding feel approachable instead of intimidating. I've been experimenting with particle systems myself, but I need breaks between long coding sessions. When my brain needs a reset, I switch to something spooky, and lately I've been playing FNAF online free right in the browser. No downloads, quick sessions, and honestly the dark atmosphere inspires some moodier generative palettes. Thanks for the clear walkthrough!

Like

Stig Tom
Stig Tom
3 days ago

I love how this p5.js tutorial makes kinetic generative art feel approachable—especially the step-by-step way it turns simple loops, noise, and transforms into motion. For anyone who enjoys adding randomness to sketches, it’s also worth exploring how specific seeds and numbers get scored. I often pair my experiments with RNGdle badges to check an exact RNGdle number, seeing its EP, earned badges, rarity tier, and percentile from the official badge table. It adds a fun layer of curiosity to creative coding.

Like

Stig Tom
Stig Tom
3 days ago

Really solid beginner-friendly p5.js walkthrough. I like how it connects simple loops and transforms to the feel of kinetic sculptures without overwhelming you with math. The step-by-step structure makes generative art feel approachable, and the emphasis on motion and color is inspiring. I’m already thinking about remixing the sketch with mouse-based interaction. For anyone who enjoys branching narratives as much as generative systems, I also found a complete Coffin of Andy and Leyley endings guide see here. Great tutorial overall.

Like

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

KQBD dạo này mình thấy bạn bè nhắc hoài nên cũng bấm thử xem sao. Mình không có đọc hết nội dung đâu, chủ yếu lướt giao diện xem có dễ theo dõi tỷ số không. Cảm giác đầu tiên là họ ưu tiên phần kết quả lên trước, nhìn cái là thấy ngay tỷ số và mấy thông tin chính sau trận, không phải mò nhiều. Lướt trên điện thoại cũng ổn, kiểu chia khối rõ ràng nên không bị rối mắt. Mình có bấm qua mục Ngoại hạng Anh thử, thấy cập nhật khá nhanh sau khi trận kết thúc, kèm mấy chỉ số cơ bản nhìn gọn gàng. Nói chung hợp kiểu người chỉ muốn check nhanh…

Like

linkedin
Oct 12

I wonder how the composition would shift if you tweaked the pendulum count or speed range, perhaps toward more chaotic patterns, and whether LevelSolve puzzle solutions would benefit from similar visual explanations.

Like

©2023 by Generative Hut.

bottom of page