We’ve seen these artists before: Christoph Bader & Dominik Kolb have “generative methods” as their motto, so it probably isn’t too surprising that I find their work more than a little relevant. I’m especially impressed by how their generator is able to output clean meshes via parametric modeling.

They had a gallery show last spring where they showed off 3D-printed sculptures created via their generative methods. They’ve also got some sculptures available on Shapeways.






Infini-Quest

Made for ProcJam 2014 by Second Dimension Games, Infini-Quest is a procedurally generated text adventure. Clean lost chests! Explain violins to boulders! Applaud the dress sense of a friendly cat! There’s a lot to do on your quest, and some of it is even helpful.

While the game doesn’t always make a lot of sense, it embraces the absurdity inherent in the randomness and uses it to fuel its humor. Second Dimension is currently working on making a new version with more structure this time.

http://seconddimension.itch.io/infini-quest






Generated Detective

When is a picture worth a thousand words? When it’s part of a procedurally generated graphic novel!

Assembled from Project Gutenberg texts, Creative Commons photos, and the mystical alchemy of Greg Borenstein, Generated Detective pushes at the boundaries of NaNoGenMo.

It also inspired a great discussion about computational creativity, algorithmic art, and aesthetics.

http://gregborenstein.com/comics/generated_detective/1/






Entmoot of T.A. 3019

Ents only say something if it is worth saying at length. Will Fitzgerald used this as the guiding principle for writing a generator for Entmoot of T.A. 3019.

As I’ve said before, one of the things that I find personally attractive in the NaNoGenMo projects is when the structure of the generator comes together with the content of the generated text. Like in this example, where both the big picture and the little details reinforce each other in a continual poetic dance.

The big picture is the translation conceit and the inspiration of translating from the Entish as a diegetic explanation of the foibles of the generator. The little details are in the attention to the specifics of the generated conlang of the Ents.

https://github.com/willf/NaNoGenMo-2014




Speaking of using unusual inputs, the Living Venue Audio Project is using a building to procedurally generate music. Sensors installed in the building translate the metrics of the space (sounds, light, motion, the street outside) into music. The result is streamed live. They plan to be the first music venue to put out its own record.

http://www.saturnbirmingham.com/livingvenueproject




letsgetprocessing:

Tileable 2D noise

    In my last post I wrote how to make a loop from Perlin noise with the help of one extra dimension. The purpose of this note is to explain how to use tilable 2D noise for making perfect loops.

    Tileable image is an image that can be placed side-by-side with itself without creating a noticeable boundary between two copies of the image. This technique can be a visual representation of a loop without surprising jumps.

    Making a 2D noise tileable isn’t an easy task. Fortunately, for our purpose, it is sufficient to make noise tileable only for left and right sides. In order to do this, we can use a 3D cylinder inside a noise field like we used 2D circle for generating a periodic 1D noise in my last post.

    Tileable 2D noise can be done with following code:

float noise_scale = 0.05;
float angle = TWO_PI * x / w;
float a = w / TWO_PI * sin(angle);
float b = w / TWO_PI * cos(angle);
float c = y;
float noize_v = noise(a * noise_scale, b * noise_scale, c * noise_scale);

// x, y - coordinates of a pixel in tilable noise image, w - width of the image

    Image above as well as my early Red Sun GIF were generated using this technique.

If you’re using Perlin noise in your generator and you need it to loop and be tileable, this technique is critically important.

There are also some other techniques if you need a different kind of looping or tiling, following the same principle of operating in a higher dimensional space and transforming along an unexpected axis.




I don’t want to clutter the blog with deepdream images, so I’m not going to post the experiments I’ve been doing here. Instead, I made a post on my main site about it. I’m metaposting about it here mostly because I think the problems and thoughts I was working through are relevant to procedural generation.

How many generators are there that theoretically can produce infinite output but in practice end up just making levels that feel like each other, or pictures that you get bored with? What is the secret behind those procedural generation projects that keep feeling fresh the hundredth time you see them? Hopefully, my suggestions will help explain part of that.

And no melting dogs. I’ve already seen enough melting dogs to last the rest of my life, thanks.




Procedural generation doesn’t have to stop once the player starts playing the game. In fact, it might be better if it keeps going: interactive procedural generation can set up a feedback loop with the player, enhancing both the player’s experience and the quality of the procedural generation itself.

Here’s a talk from ProcJam 2014 by Darren Grey that covers that and a whole lot more.










Calx.uk

David Wilson is an artist who has worked quite a bit with generative designs. The project that first caught my eye was a system that procedurally generated targeting reticules. He has also done a number of other procedural projects in Unity, Processing, and other software.

http://www.calx.uk/






I Waded In Clear Water

Speaking of using unusual data sources, here’s a procedurally generated novel based on the interpretation of dreams. Allison Parrish took a 1901 dream dictionary and used sentiment analysis to order them from worst to best, resulting in a gradual journey from a nightmare to a beneficent vision.

I particularly like that the structure of the novel works on both a conceptual level–there’s a strong theme that unifies the work–and as a resulting output. The result, like that of many generators from NaNoGenMo, is more poetic than prosaic, which I think is to its credit. Computers don’t need to be limited to dry utilitarian results.

https://github.com/aparrish/nanogenmo2014