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.

ex.

  • 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!


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

No comments :

Post a Comment