
On Generative Algorithms - siavosh
http://inconvergent.net/generative/
======
GuiA
Great resource.

If you're into it, make sure to check out the _" The Algorithmic Beauty
of..."_ series of books. There are three:

\- _The Algorithmic Beauty of Plants_ \- this is the original one. Fascinating
read - one of the authors creates a rule system (L-system, now fairly well
known in the procedural generation world) that allows for the generation of
plant like organisms. Other approaches are presented, the prose and
illustrations are wonderful. This one is a must have - a beautiful example of
what can be accomplished when mixing math, natural sciences, computation, art,
and design.

\- _The Algorithmic Beauty of Sea Shells_ \- this one is very good too. If
you've wondered how sea shells can have almost perfect checkerboard patterns
and so on, this is the book for you. Highly recommended.

\- _The Algorithmic Beauty of Seaweeds, Sponges, and Corals_. My least
favorite of the three - some of the content overlaps from _TABO Plants_ \- but
that's only because the other 2 are so good. If you have interest in the
matter, you probably want to read it as well.

~~~
detaro
The author has made the first book available online here:
[http://algorithmicbotany.org/papers/#abop](http://algorithmicbotany.org/papers/#abop)

(and tons of related papers)

------
kimburgess
Beautiful output and great, light summary of each process! I've been watching
the pieces Anders has been posting over the past few months and freaking love
his aesthetic.

There's been HN threads on it before, but just in case anyone hasn't seen it
and wants to dive down the rabbit hole that is biomimetic / natural systems
influenced generative work, check out Dan Shiffman's awesome
[http://natureofcode.com/](http://natureofcode.com/).

~~~
siavosh
Awesome thanks. Looking for more references if anyone has them. Also if
there's any work combining things like this with genetic algorithms?

~~~
eggy
Today, I like to use Extempore [1], a self-contained, physical computing
environment with a Scheme-like language and another that compiles to be as
fast as C based upon an LLVM backend. You can code audio and visuals all in
Lispy goodness within Emacs.

Processing is still cool, and there is a JavaScript version available and lots
of books and online examples. It really kicked it off for me [2].

The term 'Creative Coding' seems to be the one that is sticking and
encompassing the widely different approaches to creating art with code and
computers and other electronic interfaces and devices. Very exciting time for
this field right now. Livecoding is another term you'll hear for creating
mostly music live in code, with some still doing visuals [3]. Fluxus was a
favorite of mine [4].

openFrameworks, a C++ toolkit has a lot of libraries, including ML and AI
stuff, to try out a bunch of different things [5].

There are examples of people using GA (Genetic Algorithms), ANNs (Artificial
Neural Networks), GP (Genetic Programming), MCMC (Markov Chain Monte Carlo)
methods and more to create artworks, visual, audio or mixed.

The Nature of Code and some YouTube Videos for SuperCollider and other
creative coding software touch upon some of this, but you need to Google for
specific examples, since people are using them all over the place. My first
exposure was a Java Applet where people would look at a generated artwork and
hit +1, 0, -1, for like, neutral, dislike, and the applet purportedly used a
genetic algorithm to make a new piece. The piece would evolve with the user
being the fitness function by participating in judging the pieces.

I am playing with Darknet, a C-based CNN (Convolutional Neural Network) that
can utilize the GPU, and also work with OpenCV [6]. You can use it to generate
text based upon famous writer samples, or recognize objects in an image or
video.

[1] extempore.moso.com.au

[2] [https://processing.org/](https://processing.org/)

[3] toplap.org

[4] [http://www.pawfal.org/fluxus/](http://www.pawfal.org/fluxus/)

[5] [http://openframeworks.cc/](http://openframeworks.cc/)

[6] [http://pjreddie.com/darknet/](http://pjreddie.com/darknet/)

------
inconvergent
Glad to hear that you seem to enjoy the site!

Happy to try to answer questions if you have any.

~~~
boothead
Love this! Some of these algorithms are inherently recursive, have you
used/looked into a functional language to create them at all?

~~~
inconvergent
Thanks. No, I've been using python/cython because I know it well already. I've
considered learning a functional language though. So I'd be happy to get
suggestions. Eg. I would choose a language that has a decent community as well
as some good tools for drawing/pixel manipulation/3d modelling, depending on
what's available (honestly I haven't researched it at all yet).

~~~
boothead
There's the diagrams package in Haskell for vector drawing:

[http://projects.haskell.org/diagrams/gallery.html](http://projects.haskell.org/diagrams/gallery.html)

Juicy pixels for raster manipulation:

[https://github.com/Twinside/Juicy.Pixels](https://github.com/Twinside/Juicy.Pixels)

And gloss or haskell for mac as a processing kind of environment:

[http://gloss.ouroborus.net/](http://gloss.ouroborus.net/)

[http://haskellformac.com/](http://haskellformac.com/)
([http://learn.hfm.io/fractals.html](http://learn.hfm.io/fractals.html))

There's an old comment thread from a year ago here:

[https://www.reddit.com/r/haskell/comments/2naug0/haskell_as_...](https://www.reddit.com/r/haskell/comments/2naug0/haskell_as_a_hobby/)

I'd be interested to know what you think about the feasibility of using these
tools to produce the kind of things you make :-)

~~~
inconvergent
Thanks a lot. This looks interesting. I'll definitely look into it. I don't
think I'm qualified to say whether it is possible at this point, but my guess
is that it is very possible!

------
KleinBottler
Very nice descriptions, i really like the visual algorithmic "explanations".
If you are interested in algorithmic descriptions that express other domain
specific knowledge (e.g. architecture) check out
[http://www.mdpi.com/2072-4292/7/10/12763](http://www.mdpi.com/2072-4292/7/10/12763)

------
sushirain
Reminds me of Turing's morphogenesis. [https://www.wired.com/2011/02/turing-
patterns/](https://www.wired.com/2011/02/turing-patterns/)

------
tunnuz
This is beautiful :)

