In all the excitement around Large Language Models and other trendy aspects of Artificial Intelligence, I think that we’ve forgotten an under-appreciated group of computer programs: relatively small snippets of computer code that can generate complex and delightful virtual worlds. This category actually involves a number of types of programs and styles that are often examined separately—or, at best, are only considered together in a somewhat loose way—but I think that they are fundamentally related. And they’re related because no matter their origin, these computer programs are capable of unspooling entire emergent computational cosmos. In other words, they are emergent microcosms.
Emergent microcosm is a fuzzy category, but it roughly spans biology and artificial life, complexity science, simulation, and creative coding. Ultimately, I would love it if some sort of Periodic Table or Standard Model for emergent microcosms were developed: an articulation of the different elementary particles and rulesets that can allow these microcosms to arise and how they can be productively recombined. But in the meantime, here’s my small attempt at a rundown of the kinds of systems that allow for the creation of different emergent microcosms (note: this is based on a Twitter thread about emergent microcosms I wrote recently).
In brief, what are the components of emergent microcosms? The major model categories are cellular automata, falling-sanding games, and physics-based simulations (such as rigid body and particle simulators). And the computational frameworks behind these digital universes involve shaders, agent-based models, evolutionary computation, and even L-systems. But let’s dive into this emergent microcosm taxonomy in some more detail.
Cellular Automata
A cellular automaton, or CA, consists of—very roughly and somewhat imprecisely—a grid, where each square of the grid has a specific state, and each square’s state changes over time depending on a specific set of rules.
The granddaddy of these kinds of programs is John Horton Conway’s Game of Life, a class of CA with specific rules for how squares change from either alive or dead from one timestep to the next. And it has an enormous amount of emergent complexity, with everything from patterns that move across the grid, to the ability to build an entire computer within the Game of Life.
But there has been a lot of innovation in the CA world at the intersection of Artificial Life since the Game of Life decades ago, and most wonderfully with Lenia by Bert Chan. As per its website, Lenia is “a system of continuous cellular automata, a form of artificial life. It was derived from Conway's Game of Life by making everything smooth, continuous and generalized.”
And Lenia even has an entire bestiary of “creatures”—patterns that move about and appear kind of like organisms—discovered within its virtual world, from orbium to Quadridae gyrans.
There is also some amazing work being done by Slackermanz that focuses on using “Multiple Neighborhood Cellular Automata.” Basically, it turns out that when you allow for more complex “neighborhoods” (the squares in the grid that affect a cell’s future state), a variety of fascinating and complex patterns can arise.
And of course, since CA are basically just a set of rules, there have even been open-ended CA implementations developed, where you can specify the rules yourself by writing your own code.
Falling-Sand Games
Falling-sand games are close cousins of CA, but allow the user to paint and play with different types of particles. For example, “sand” is generated by each sand particle obeying specific “sand” rules (they move based on specific conditions related to their surroundings). And the same thing is true for “water,” as well as many other particle types.
This sounds vague and difficult to understand, so really just go play: Sandspiel is a great implementation of a falling-sand game. There’s even a programmable version, called Sandspiel Studio, which allows the user to easily code bespoke emergent microcosms (there’s also Sandpond, which is another example of falling-sand games, but in three dimensions).
Physics Simulations and Agent-Based Models
Physics simulations, including particle systems and rigid body simulations, can also be used to develop emergent microcosms, where the components of a physics system interact in a complex way that allows for sophisticated behaviors to arise.
An early system that allowed for the creation of a whole host of walking creatures was Soda Constructor (Soda Constructor is now defunct, but there is a web-based open source version).
More broadly, these are ultimately systems with individual particles or components that interact according to specific rules, which means that this shades somewhat smoothly into a realm of complex systems: agent-based modeling.
Agent-based modeling involves creating rulesets for the interactions between individual “agents,” often with the goal of creating a kind of emergent behavior. For example, systems of particles can do lots of things, including flocking, swarming, and other collective behaviors. You specify how the agents interact, and then get some delightful collective emergent behavior. Many examples from the agent-based model world—some of which are more emergent microcosms than others—can be found over at NetLogo (note: many of these are much smaller and simpler microcosms).
Some Biological Inspiration
Another thread that is worth pursuing in the realm of emergent microcosms is biological inspiration, especially evolution. For example, Gene Pool is one emergent microcosm that relies on digital evolution (basically natural selection, but inside a computer!).
There are also L-systems, which use a recursively executed ruleset to generate plant-like structures: small computational rules that construct trees and ferns and more! And more broadly, there is a whole body of work related to evolving “organisms” in silico by Josh Bongard, Nick Cheney, and many others.
Recombination of these Approaches
But you don’t need to be content with just one of these approaches! When building an emergent microcosm, you might want to combine multiple aspects of these primitives. And one area where this happens a lot is in games. In order to generate a rich virtual world, feel free to mix and match. For example, the Falling Everything engine for Noita combines falling sand and rigid bodies together (some other emergent microcosm games include SimLife, Spore, and No Man’s Sky).
Also worth checking out is Orb.Farm by Max Bittker (Max also developed Sandspiel), a tiny self-contained aquatic ecosystem, which combines ecology and complex systems with falling-sand games. And in an entirely different realm, there is the demoscene devoted to creating mind-blowing demos in tiny computer programs (I don’t know much about this space, but I have to imagine it uses a lot of these techniques together).
Please Try This at Home!
This is just a taste of the different ways of generating emergent microcosms, but if you want to try this at home, there are tons of resources available. I would recommend Processing as a great language for beginning to program these kinds of emergent microcosms yourself. And if you want to see lots of fantastic examples in Processing, I highly recommend the Coding Train.
For reading material about some of these models, the book The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation by Gary Flake is fantastic. You might also enjoy the tutorial “So you want to build a generator…” by Kate Compton.
I would also recommend checking out the work of Lu Wilson (who developed Sandspiel Studio with Max Bittker) who is doing some incredibly generative work around the kinds of primitives that can yield emergent microcosms.
Anyway, there is a lot I've left out here (and we still need that Standard Model for the digital cosmos!), so I would certainly welcome suggestions and ideas here.
Ultimately though, I hope that the concept of emergent microcosms can be a powerful framework for thinking about—and unifying ideas related to—open-ended computational universes. ■
A few links worth checking out:
Digital Astronomy with Cellular Automata: “After fifteen minutes of my laptop revving up my fans, I had my first snapshot of the overarching structure of the Life-Like CA”
PostScript: A Digital Printing Press: Fascinating exploration of PostScript.
Until next time.
Great stuff, thank you for writing! 💚 🥃
I’m interested in what attracts you to these systems? Sone early network science came out of looking at ecological networks, and as far as I’m aware a lot of behaviour modelling in those networks used agent based modelling, so the the intellectually roots of these systems with things like LLMs are fairly close, but what can these systems uniquely help us with, do you think?