Curves (2015)

neural network generative art javascript demo.

higher resolution w/ png export demo here (slower).

Recently, google’s work on generating art from convolutional neural networks has drawn a lot of attention.  It’s amazing to be able to dig deep into what a deep convolutional network is actually seeing, and contrast that to human perception.  That got me thinking about the flexibility and generativeness of deep neural networks.  In the spirit of generative neural network art, I hacked together a quick and dirty script that attempts to generate random art pieces by randomly assigning weights to a not-so-shallow neural network using p5.js and recurrent.js libraries, just to see what can get drawn randomly without any training of the network.

You can try to run the code in your browser here to generate a random image.

If you like this style of generated art, here is a higher resolution demo that exports the image to a png after it displays.  It will take around 30 seconds to generate on a macbook air for the higher resolution version.

The cool thing is that while I am generating 320×320 images, I can use the same neural network to generate much larger images that are more refined but loo the same, or much smaller images.  In that sense it is sort of like generating fractals, and as the image information is stored in the weights that can generate the same image of infinite dimension.

The next step can be to try to use indirect encodings to populate the weight space to see if we can get more interesting patterns.  Going to use this as base for more advanced generative works.

Below are some more images generated from the code.

Other pieces from playing around with number of levels and neurons.

### Citation

If you find this work useful, please cite it as:

 @article{ha2015art,   title   = "Neural Network Generative Art in Javascript",   author  = "Ha, David",   journal = "blog.otoro.net",   year    = "2015",   url     = "http://blog.otoro.net/2015/06/19/neural-network-generative-art/" }