Microcosmos
Reimagining artificial life for the GPU era
Paper · Code · Supplementary videos
tl;dr
We introduce Microcosmos, a GPU-native, fully differentiable, artificial life engine in which lifeforms are elastic filament chains swimming in a viscous fluid. We use it to fold filaments into target shapes with gradient descent, to evolve a diverse range of swimming and foraging behaviors, and to validate that the fluid coupling respects real physical constraints. We release Microcosmos as an open platform for the artificial life community to build on.
Summary
Despite decades of progress, artificial life has not produced the kind of open-ended evolutionary complexity we see in nature. We think part of the reason lies in the tools themselves. The computational substrates available to the field have forced an uncomfortable choice. Abstract rule-based worlds are efficient to evolve but disconnected from the physics that shapes real organisms. Physically grounded simulators are credible but too slow to support evolutionary search at the scale that open-endedness seems to require.
Microcosmos is our attempt to close that gap. Lifeforms are modeled as elastic filament chains living in a two-dimensional viscous fluid, with genetic encodings that specify both their shape and their behavior. The engine is written in JAX, runs natively on GPUs, and is end-to-end differentiable, supporting gradient-based optimization and evolutionary search within the same framework. We validate the engine across four experiments covering physical correctness, differentiability, evolvability, and scalability.
Background, the tradeoff that holds artificial life back
Modern AI has been transformed by scale. Artificial life has not had the same moment, and we believe the substrates are a large part of why.
On one side sit abstract worlds such as cellular automata and particle systems. These show that rich collective dynamics can emerge from simple local rules. These systems are cheap to run, but they have no notion of bodies, fluids, or forces, which limits the embodied behaviors they can express. On the other side sit physically grounded, embodied simulators. These produce convincing creatures, but the cost of resolving real physics usually makes them intractable for the large populations that evolutionary search demands. Other systems regain tractability by abstracting the physics away, which puts them back in the first camp.
We wanted a substrate that is physically grounded enough to be credible, efficient enough to evolve at scale, and rich enough to inspire. Achieving all three at once was the central design challenge.
Why filaments
To find a building block that satisfies all three goals, we looked to biology. Filamentous structures are everywhere at the micro and nanoscale. Bacterial flagella, cytoskeletal networks, muscle fibers, and the body plans of organisms like C. elegans are all chains of connected units. Even protein folding starts from a one-dimensional chain that collapses into a functional three-dimensional structure. Filaments are among the most ancient and ubiquitous forms of biological organization.
This shared structure is not a coincidence, and it happens to work in our favor. A filament is a chain with simple nearest-neighbor connectivity. That topology is what makes filaments cheap to simulate, since the cost of simulating one filament does not grow with the population. The biology that makes filaments expressive is the same property that makes them scalable.
How the engine works
Microcosmos has two coupled parts. Filaments represent the lifeforms, and fields represent the environment. Filaments live in continuous space and are modeled as discrete elastic rods that resist stretching and bending. Fields are discrete grids that hold environmental quantities such as the fluid. The two are overlaid and evolved together as a single dynamical system, which places Microcosmos between the grid-based and particle-based paradigms that the field has traditionally used.
The fluid is simulated with the Lattice Boltzmann Method, chosen because each lattice site updates from its local neighborhood alone. That locality is what keeps the fluid solver linear in cost and naturally parallel on a GPU. Viscosity is set by a single parameter, which makes it easy to sweep across physical regimes.
Filaments and fluid exchange information through the Immersed Boundary Method. Each filament node senses the local flow as drag, and in turn pushes its own motion back onto the fluid. Self-avoidance is handled by depositing filament positions onto a grid and reading off a repulsive steric force, which avoids the quadratic cost of checking every pair of nodes to avoid collisions.
Every one of these choices was made with scaling in mind. Nothing in the core loop grows quadratically with the number of nodes.
Experiments
Hand-designed locomotion
Our first experiment tests whether the physics is correct. Five hand-built creatures, a worm, a tadpole, a ray, a set of cilia, and a jellyfish, swim using distinct strategies while we sweep viscosity across several orders of magnitude. The results line up with known constraints from low-Reynolds-number physics. Consistent with Purcell’s scallop theorem, time-reversible strokes produce no net motion as viscosity rises, while non-reciprocal strokes keep swimming. The engine reproduces these constraints on its own, without us encoding them by hand.
Filament folding
To show that the simulation is differentiable, we treat shape formation as a simplified two-dimensional analog of protein folding. Just as a chain of amino acids folds into a protein, a filament can fold into a target shape. We optimize the angles and lengths of a 1000-node filament with gradient descent, asking it to settle into each of the ten MNIST digits. Gradients flow all the way through the simulation, including the constraint solver and the fluid computation, and the filament reliably recovers recognizable digit shapes. This confirms that the filament parameterization is both expressive and fully differentiable.
Evolving behavior
Microcosmos is also search-method agnostic, so we can evolve controllers rather than design them. Using a compositional pattern producing network (CPPN) as a shared per-node controller, evolved through NEAT, filaments learn to swim, and with an added energy field they learn to forage along chemical gradients. Pushing further with quality-diversity search, the engine discovers a whole zoo of swimming gaits with no hand-design at all, including sinusoidal undulation, directional turning, complex multi-part motions, and paddling with flipper-like appendages.
Scalability
Finally, we test how the engine scales. Holding the grid fixed, we run the simulation with up to half a million particles and measure wall-clock time. Microcosmos scales linearly with particle count, in contrast to simulators built on pairwise interactions, which scale quadratically. This linear scaling is the property that makes evolutionary search over large populations feasible, and it is the direct payoff of the local update structure baked into the engine.

What’s next?
Microcosmos already supports far more than we have tested. Many filaments can share a single fluid, which opens a multi-agent setting we have only begun to explore. We expect this direction to call for some notion of birth, death, and self-assembly, and with it the emergence of competition, symbiosis, and individuality. Richer body topologies and richer sensing are natural next steps too, and all three are possible in the engine today.
We offer Microcosmos as an open platform and an invitation. Our bet is that scaling physically grounded simulation could do for artificial life what scaling compute did for artificial intelligence. If you are interested in getting involved contact <emaiil>
Citation
@misc{tensen2026microcosmosreimaginingartificiallife,
title={Microcosmos: Reimagining Artificial Life for the GPU Era},
author={Mark Tensen and Ciaran Regan and Bert Wang-Chak Chan and Mizuki Oka and Kenneth O. Stanley and Grisha Szep},
year={2026},
eprint={2607.02954},
archivePrefix={arXiv},
primaryClass={cs.NE},
url={https://arxiv.org/abs/2607.02954},
}