On Generative Algorithms
inconvergent.net
inconvergent.net
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.
(and tons of related papers)
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/.
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
[3] toplap.org
As well as using a pretty interesting fractal algorithm for the content it uses a genetic algorithm for filtering of results and progression. He posts everything to GitHub too if you're interested: https://github.com/scottdraves/electricsheep https://github.com/scottdraves/flam3
I would recommend 'Generative Design'. http://www.generative-gestaltung.de/ (There is an English edition)
A really beautifully designed book. Great to leaf through for inspiration, but also has decent example code for a variety of techniques.
Happy to try to answer questions if you have any.
The graphics library it uses is here: https://github.com/underscoreio/doodle
The source for Creative Scala is here: https://github.com/underscoreio/creative-scala
Would love to get your thoughts on this material.
http://projects.haskell.org/diagrams/gallery.html
Juicy pixels for raster manipulation:
https://github.com/Twinside/Juicy.Pixels
And gloss or haskell for mac as a processing kind of environment:
http://haskellformac.com/ (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_...
I'd be interested to know what you think about the feasibility of using these tools to produce the kind of things you make :-)
Karsten previously developed http://toxiclibs.org/ for Processing