Hacker News new | past | comments | ask | show | jobs | submit login
On Generative Algorithms (inconvergent.net)
259 points by siavosh on Sept 11, 2016 | hide | past | favorite | 19 comments



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.


The author has made the first book available online here: http://algorithmicbotany.org/papers/#abop

(and tons of related papers)


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/.


And what a fantastic rabbit hole.

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.


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


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/

[3] toplap.org

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

[5] http://openframeworks.cc/

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


Scott Draves has been running a distributed generative art project since last century (1999): http://electricsheep.org/ or https://en.wikipedia.org/wiki/Electric_Sheep for a quick summary.

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 was looking Dan's videos all day, nice closure for the day :)


Glad to hear that you seem to enjoy the site!

Happy to try to answer questions if you have any.


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


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).


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

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://gloss.ouroborus.net/

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 :-)


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!


I've been keeping an eye on http://thi.ng a toolset in Clojure /ClojureScript that Karsten Schmidt is developing

Karsten previously developed http://toxiclibs.org/ for Processing


You've probably seen my tweet already. The current draft of Creative Scala v2 can be found here: https://dl.dropboxusercontent.com/u/8669329/creative-scala.p...

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.


Hi. Unfortunately I can't dive into this right now. But I'm bookmarking it! Scala sounds interesting to me.


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


Reminds me of Turing's morphogenesis. https://www.wired.com/2011/02/turing-patterns/


This is beautiful :)




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: