Corpus

A lot of people who are interested in procgen get intimidated by the vocabulary that gets thrown around. I think that’s a pity, particularly since some of the concepts are pretty simple once you get past the initial difficulty.

One term that gets thrown around a lot is “corpus”. In procgen, this just means “a collection of stuff that we use as data for the generator”. Most often, this is used in the context of text: a corpus of words for a Tracery grammar, or a training corpus for a chatbot.

A corpus is useful for more than just text: a building generator might have a corpus of 3d models of architectural elements, a music generator might have a corpus of motifs.

Corpora show up in a lot of places. The Corpora project is a repository of a number of small corpora of texts: colors, books, rivers, etc. Last year at Roguelike Celebration, everest pipkin gave a talk about curating your own personal corpora of text.




Lenia: Continuous Cellular Automata

Bert Chan has been working on continuous cellular automata for a while. Unlike the more familiar grad-based artificial life (represented most famously by Conway’s Life) its interactions take place in a continuous space. The latest research generalizes it into “higher dimensions, multiple kernels, and multiple channels”.

One interesting thing here from a procgen perspective is the use of tools to search the algorithmic space for interesting new patterns. Searching the generative space is a tricky problem. Chan wanted to explore both the genotypes (the set of rules) and the phenotypes (the configurations of the worlds, e.g. Game of Life’s 2d grid). The approach incorporates both human-in-the-loop filtering and search algorithms. The search algorithms run the gamut from straightforward depth first random searches to genetic algorithms.

Using these tools, Chan found all kinds of phenomena: from expected things like locomotion to hoped-for things like self-replication to even more interesting emergent behavior like division of labor and emergent differentiation.

If you’d like to look at it yourself, the software is now open-source: https://github.com/Chakazul/Lenia

(via hardmaru)




Perchance

I think this is neat–a language for creating text generators, and a site that hosts them.

It has different affordances than Tracery: it cares a bit more about text and lists, has built-in notation for adjusting weighting, a little more state to remember generated things, and has first-class support for pulling in content from other generators. Having more domain-specific languages for generating things helps give us insights into what the space of possible generators looks like and can help suggest new places to look.

https://perchance.org/welcome




Alien Powers

Generativity always requires the ceding of control in order to receive, in exchange, the powers of an alien (or algorithmic) logic.

–Kate Compton, Causal Creators

One thing I’ve been putting a lot of thought into lately is why we use procedural generation for anything. I (obviously) think that it’s a good thing that we do, but I want to figure out the motivations for why that is.

It’s certainly not to save money or time, given that I’ve never seen evidence that it does much of either. One thing that it does do is enable us to do things that would be impossible without generativity. Elite generates galaxies because that’s the only way to do it at that vast, inhuman scale–we can quibble that not shipping the game on a million floppy disks saved the developers money, I suppose, but the real point is that it enabled them to touch the sublime of infinity.

Generativity, according to Kate Compton, is a tradeoff between absolute control and “the powers of an alien logic”. This is, I think, one reason why it has remained an enduring part of games in particular: being able to tap into this alien-ness as a creative partner means that we can make things that are impossible for humans to create otherwise.

They might be impossible because making something that large or complex is beyond practical human consideration, or because the machine’s alien perception can show us things that we would have been cognitively blind to. It’s precisely because the generator follows alien logic (even when carefully constructed by human logic) that it can create things that we humans would be unable to.

So one reason why we use generativity is precisely because it lets us harness this alien power.

One theme of my current research is to figure out better ways to communicate with the alien in the machine. It’s a bit like Arrival, only with more generative frogs.




Generative Placeholders

One constant issue in design is how to represent a half-finished design. It has to be representative enough to get the idea across, but if it looks too polished or finished people will mistake it for the final design and have expectations that the mockup can’t live up to. The best case scenario for temporary placeholders is the way Kubrick’s classical music temp track for 2001: A Space Odyssey ended up being the final soundtrack, but more frequently you just end up with people complaining that the buttons on the JPEG of your mockup look real but don’t work when you click on them.

Enter Generative Placeholders. Instead of using a temp image, you can just link to the generative-placeholders service and get a procedurally-generated temp image. It looks good (making your designs look good) but also looks generated (making people less likely to mistake it for the finished product). It’s like lorem ipsum for images.

It’s a good demonstration of Emily Short’s discussion of the use of obviously generated artifacts. While a lot of virtual ink has been spilled talking about how to generate artifacts that are indistinguishable from what a human would create, there are also uses for artifacts that were obviously machine-made.

Here, the obvious machine nature of the artifacts, with content divorced from the page that embeds the generated image, makes the generated a subordinate element that fades into the background. In a videogame, having a lot of obviously generated things helps add greebly detail to the world without distracting the player from the parts they can actually interact with. It’s similar to how games can use repetition to have an abstract bit of gameplay represent an ongoing process. Or, for a specific example, how doors at the edges of the map in Thief: the Dark Project that aren’t intended for the player to open don’t have doorknobs. We can have the world detail (a symbolic door) without worrying about handling the weird affordances of things that are just supposed to be a painted theatrical backdrop anyway.

https://generative-placeholders.glitch.me/






Lenna’s Inception

After a long development cycle, Lenna’s Inception has finally been released!

One of my earliest posts on this blog was about an early, in-development version of the game, so I’ve had my eye on it for a while.

The basic concept is that it’s a Legend of Zelda style exploration game, but the entire progression is procedurally generated. You won’t know what the map looks like, what the dungeons are, or even where the nearby shop is until you explore the map yourself.

There’s a toggle in the options menu that lets you watch the generator at work, which of course is one of my favorite features.

There’s an obvious comparison with speedrunning randomizers, but with a game that was built from the ground up to be generative. Which means that it can do a bunch of tricks that require full control over the game design, like the rather elaborate map generation that carefully gates your access based on what items you have acquired. It’s not chaotically random, either: the second half of the map is gated by one of your quests, so even though the map is different every playthrough, there’s a logical structure behind the generation.

https://lennasinception.com/




Strangethink

Strangethink, one of my favorite artists working with generative things, has announced that they will be removing their existing projects, so you’ll no longer be able to download them. This partially because new remakes of the projects are in the works (and the source for past projects has been lost) but it’s still quite a loss–I think that you should go and grab the pay-what-you-want downloads while they’re still up: https://strangethink.itch.io/

Strangethink’s CGA aesthetic and beautifully wild embrace of the possibilities of embracing the result of the form instead of behind restrained by its nominal label has made their work stand out. Outliers are, in this case, a very good thing.

I’ve written about Strangethink’s projects quite frequently, if you want to dive deeper into what they’re all about:

Still available (for now):
Secret Habitat
Mystery Tapes
Joy Exhibition
These Monsters

Previously removed:
Abstract Ritual
Perfect Glowing Bodies




Neural Synesthesia

This experiment by Xander Steenbrugge is the kind of thing I expect to see more of as we get deeper into the neural art age. There a motivation behind the exploration of the latest space, in this case translating audio into visuals.

(Note that there are some annoying bright flashes when the high-pitched drums get going.)

As Xander explains it, the way this works is that he picked a bunch of points in latent space and put them in an order that had something of a narrative arc to it, and then ran a custom-written Python program to interpolate between them and do beat modulation.

I’d be interested if someone can invent a way to find a narrative arc programmatically, or maybe combine it with things like Spleeter for more informed audio processing. 

https://youtu.be/85l961MmY8Y

Xander also has a Vimeo channel, with less compressed video: https://vimeo.com/neuralsynesthesia






Most Popular Twitter Bots

I got sent a link (by @botwikidotorg) to this post, and I thought it was interesting enough to share.

There’s a lot of fun bots on twitter, some of which I’ve talked about here. But I didn’t have a good sense of what the upper limit was for a bot’s follower count. (Turns out it can be 1.5 million people, though most are under 400,000. Still more popular than me.) Most reach for least posts goes to @year_progress, which informs me that the year is at ▓▓▓▓▓▓▓▓▓▓▓▓▓░░ 84%.

For my current students, note that the blogpost is using Glitch to generate the interactive charts that are embedded in the post.

https://botwiki.org/blog/most-popular-twitter-bots-most-followers/








NodeVember

The other, other procedural generation thing going on this November is #nodevember, a node-based procedural challenge for technical artists. Using only basic primitives and procedural generation, they try to make something that matches the theme of the day.

Most of the people participating are using procedural shaders but that’s not a strict requirement. Just making a procedural something and tagging your post about it with #nodevember.

https://twitter.com/hashtag/nodevember
https://nodevember.io/