How to make generative art?

What do I want to make?

I don't want to make art with creative coding.
I want to make a code that generates an artistic thing.

And this is important, I don't know what the art is. So, I'm not an artist. I am an engineer, I think.


How to make generative art?

I don't know. I want to know that. But I just think...


Simpleness and complexity.

  • Simple and too straight = boring
  • Too complex or just a complicated one = there is no beauty
  • Regular form is beautiful. But if it was so simple, it is boring.
  • Randomness is not beautiful. But sometimes it is interesting.
  • I need to mix simpleness, complexity, regularity, and randomness.


  • Symmetry shape and different colors.
  • A regularity repeat of complex patterns.
  • Many shapes based on random numbers with a normal distribution.


The Accidental Programming Method.

I respectfully propose a new programming method about creative coding.
Accidental coding is the mother of creative coding.

  • If you complete some work. Change something thoughtlessly.
  • For example, use the extremely small or extremely big parameter value, change '+' to '*', add sin() in your formula, etc.
  • 'Thoughtlessly' is important.
  • Don't afraid errors, abnormal end, infinity loop, zero divides, disappointment after 5 hours rendering.


ex. The good manner on the Accidental Programming Method.

  • "I don't know how this code I wrote is working. But it works. If it worked, it is right!"
  • "I should waste my CPU time as I wish! That is the only thing as heaven allowed for me in this era!"

If you use 'Accidental Programming Method', you can create something even if...

  • You are not good at Math. (like me)
  • You have poor programming skills. (like me)
  • Drying of new ideas. (me often)


The bugs are alright.

Bugs are your friends in the Accidental Programming Method.

When I was trying to make some surfaces like this.

I used the Perlin noise to make surface wavy, and I just made this.

Oops! I failed!
I wrote a bug like this.

   z = noise(x, y) * 10.0;  // BUG : must be -> noise(nx, ny)
   nx += 0.005;
   ny += 0.005;

But this bug helped me to find the Perlin noise on Processing is +/- symmetry.

If I used the Perlin noise properly.

And I used the Perlin noise with buggy code.

I love the buggy one!
That is the power of the Accidental Programming Method!


Enjoy my creative coding examples.

You can see many creative coding examples made with my Accidental Programming Method on this blog.
Most of them are the Processing code examples and some of the p5.js examples.
These are result images and source codes. Enjoy!


Update 2017/Dec/24
Update 2018/Dec/14
Update 2019/Sep/04


  • Unknown
    Unknown Monday, November 22, 2021

    I just discovered your website. You have made my brain explode and my synapses reconnect in different ways. I think this is a good thing. Thank you!

  • deconbatch
    deconbatch Friday, December 10, 2021


  • Petri Keckman
    Petri Keckman Saturday, January 22, 2022

    You say you are not an artist, but I think you are and you are a truly good and productive artist! :) I'm even little jealous, because you better artist than me! I think. Why don't you wanna be an artist? No one knows what art is, it is not easy to define, but when I look your images and animations, I see beauty. You opposite than me: I am above all an artist (or WANNABE) and only a secondly coder.

Add Comment
comment url