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.


911 Comments


John V. Brown
John V. Brown
12 hours ago

Excellent tutorial! I really liked how you broke down the process into simple, beginner-friendly steps while still creating an impressive kinetic art result. The explanations make it much easier to understand the creative side of coding and inspire readers to experiment with their own ideas. As someone who also creates content around topics like cafe racer jacket, I appreciate engaging, well-structured posts that teach and motivate at the same time. Thanks for sharing this valuable resource!

Like

Rose Kk
Rose Kk
13 hours ago

I am a Tally professional with a strong understanding of accounting principles and business management processes. After completing the Tally Course in Pondicherry , I gained practical experience in GST, payroll, inventory management, and financial reporting. I enjoy managing financial data efficiently and helping businesses make informed decisions.


Like

Anu priya
Anu priya
13 hours ago

Great article! The content provides a clear and informative explanation of the topic, making it easy for readers to understand the key concepts and practical applications. Those interested in developing relevant skills can also explore a Generative AI Course in Delhi to gain practical knowledge and improve their understanding of this growing technology.

Like

dhara234ni
13 hours ago

I am a passionate and enthusiastic aspiring AI professional currently enhancing my skills through an Artificial Intelligence Course in Chennai. I have a strong interest in machine learning, deep learning, natural language processing, and data-driven problem-solving. I enjoy working on real-world AI projects, exploring intelligent automation, and continuously learning emerging technologies. I am eager to begin my career in Artificial Intelligence, contribute to innovative solutions, and grow as part of a collaborative team where I can apply my technical knowledge while expanding my expertise. 


Like

Nirmala Devi
Nirmala Devi
13 hours ago

This is a well-written and informative post that clearly explains the importance of business school education in today's competitive world. The insights shared are both practical and easy to understand. For individuals planning to build strong leadership and management skills, studying at a B School in Chennai provides valuable exposure to modern business practices and real-world decision-making. Thanks for sharing such useful information looking forward to reading more insightful articles!

Like

©2023 by Generative Hut.

bottom of page