Engineering the open-ended evolution of synthetic biology
Advances in the field of synthetic biology have expanded our ability to engineer living systems – be they molecules, networks, genomes or ecosystems – with new-to-nature functionalities. Yet, how we design living systems seems at odds to how they have emerged via evolution and often ignores their inherent capability to further evolve. In this workshop, we will consider this issue and explore 'evotype engineering', where a bioengineer not only designs the function a biosystem must perform, but also sculpts its evolutionary capacity towards being more robust or adaptable when used. We will explore this idea from the perspective of open-ended search and how we might build strategies that enable continuous evolution and innovations that can underpin more powerful engineering biology workflows. We welcome contributions at the intersection of synthetic biology, evolution and open-endedness from experimental, computational and theoretical perspectives.
Organizers
- Michiel Stock - KERMIT - Ghent University
- Thomas Gorochowski - Biocompute lab - Bristol University
- Simeon Castle - Biocompute lab - Bristol University
Automatic Design of Robot Bodies and Brains with Evolutionary Algorithms
The evolution of robot bodies and brains allows researchers to investigate which building blocks are interesting for evolving Artificial Life, and how controllers and morphologies can be shaped together for automated robot design. This tutorial aims to introduce evolution of robot body and control, and some of the key challenges one faces when doing experiments in Evolutionary Robotics. These include finding good ways to represent robots (genotypic encodings), challenges related to co-optimizing morphology and control, how environments shape body and control, and selecting the right physical substrate for evolving robots. After introducing these challenges and showing relevant examples from our own and other labs’ research, we will present a short demo of how to run Evolutionary Robotics experiments in practice, with the Unity ML-Agents framework.
The tutorial requires no prior knowledge of robotics, and is appropriate for beginners. A certain familiarity with Evolutionary Algorithms can be helpful, but we aim to introduce the most central topics in a way everyone can understand. The focus of this tutorial is complementary to the tutorial “SimER: Simulation in Evolutionary Robotics”: Whereas we go into more detail about the opportunities and challenges related to evolving robots, the SimER-tutorial adds much more depth on the different tools for simulation and visualization that are relevant for the field.
Organizers
- Kyrre Glette (University of Oslo)
- Kai Olav Ellefsen (University of Oslo)
- Emma Stensby Norstein (University of Oslo)
- Ege de Bruin (University of Oslo)
JAX for Scaling Up Artificial Life
This tutorial will focus on showing how to scale up and speed up ALife simulations through seamless hardware acceleration.
First, we will give a crash course on JAX, a Python framework that allows for massively parallel computations using numpy-like syntax. We will show how to perform computations, automatic vectorize and parallelize to CPUs, GPUs and TPUs, and show how to render videos using 3D raycasting. Throughout this tutorial, we will use and share Google Colab notebooks. Colab is a fantastic way for sharing code and allowing for reproducibility of experiments. Afterwards, we will show two practical examples of ALife research where we used JAX.
1) Lenia is a family of self-organizing morphogenetic systems. Several Lenia variants like Flow Lenia, Particle Lenia, and the recent Liquid Lenia have been implemented using JAX, with the benefits of easy scale-up, autograd, and smooth application of gradient descent and evolutionary algorithms. We will also take a glimpse of an upcoming JAX-based “Lenia Engine”.
2) Biomaker CA is a framework that allows us to simulate Cellular Automata-based plant biomes. Plants are organisms composed by multiple CA cells, with each organism having their unique DNA. Plants reproduce with variation within the environment. Thanks to JAX parallelization, we can perform seamless meta-evolution such that our plants maximize a given goal. We will show parts of its implementation, how we render environments and how to perform different kinds of experiments. We will finally show how to implement new functionalities in Biomaker CA.
Organizers
- Ettore Randazzo, Google Research, Zurich
- Bert Chan, Google DeepMind, Tokyo
SimER: Simulation in Evolutionary Robotics
ALIFE has a long history with virtual creatures, and the Virtual Creatures Competition has been a mainstay at the conference for a decade now. Enabling research in this area are many unique, and often single-purpose, simulation environments. The variety of simulation options is useful for creating finely tuned experiments but makes it difficult for newcomers to the field to determine which simulation environment is appropriate for their particular problem. ALIFE has also hosted several tutorials relating to this work (e.g., Avida-ED, neural networks and control, modular agent evolution, Unity-based evolutionary robotics). This tutorial, unlike others, will provide a broader look at the paradigms and tools used in the field of evolutionary robotics (and in ALIFE more generally). Specifically, we will discuss the use of several different simulation methods and tools, including: numerical simulation (e.g., Octave/Matlab, Python Sympy, Julia DynamicalSystems, etc.), physical simulation engines (e.g., ODE, DART, Bullet, etc.), soft body simulation (e.g., FEM, Voxelyze, etc.), comprehensive robot simulators (e.g., Gazebo, Webots, Isaac, etc.), and game engines (e.g., Unity, Unreal, Godot, etc.). We will also discuss visualization techniques. Of course, covering this wide range of topics necessarily means that we will not be able to go into great depth on all of them. Instead we will pay special attention to the use of physical simulation engines as they provide the widest range of possibilities with respect to creating and evolving virtual creatures. Staying with the theme of ALIFE 2024 we will share our experiences with "weird and wacky" results (and how to avoid them if they are not what you are looking for).
Organizers
- Anthony J. Clark (Pomona College)
- Jared M. Moore (Grand Valley State University)
Neuroevolution
Neuroevolution, or optimization of neural networks through evolutionary computation, has been a growing subarea of machine learning & artificial life since the 1990s. Its primary focus has been on evolving neural networks for intelligent agents when the training targets are not known, and good performance requires many decisions over time, such as robotic control, game playing, and decision-making. More recently it has also been extended to optimizing deep-learning architectures, understanding how biological intelligence evolved, and optimizing neural networks for hardware implementation.
This tutorial introduces students to the basics of neuroevolution, progresses to several advanced topics that make neuroevolution more effective and more general, reviews example application areas, and proposes further research questions. It builds on tutorials the organizers have given at conferences since 2005, including AAAI, GECCO, IJCNN, CEC, and Alife. They have been well-attended throughout, resulting in the establishment of a neuroevolution track at the GECCO conference starting in 2021. This tutorial is intended to provide a comprehensive methodological and practical foundation for researchers and practitioners to develop the technology further and to apply it to real-world problems.
Organizers
- Sebastian Risi (IT University of Copenhagen)
- Risto Miikkulainen (University of Texas at Austin)
- David Ha (Sakana AI)
- Yujin Tang (Sakana AI)
Phylogenies: how and why to track them in artificial life
Phylogenies (i.e., ancestry trees) group extant organisms by ancestral relatedness to render the history of hierarchical lineage branching events within an evolving system. These relationships reveal the evolutionary trajectories of populations through a genotypic or phenotypic space. As such, phylogenies open a direct window through which to observe ecology, differential selection, genetic potentiation, emergence of complex traits, and other evolutionary dynamics in artificial life (ALife) systems. In evolutionary biology, phylogenies are often estimated from the fossil record, phenotypic traits, and extant genetic information. Although substantially limited in precision, such phylogenies have profoundly advanced our understanding of the evolution of life on Earth. In digital systems, we often have the ability to create perfect (or near perfect) phylogenies that reveal the step-by-step process by which evolution unfolds. However, phylogeny tracking and phylogeny-based analyses are not yet commonplace in ALife. Fortunately, a number of software tools have recently become available to facilitate such analyses, such as DEAP, Empirical, MABE, and hstrat.
Biologists have developed many sophisticated and powerful phylogeny-based analysis techniques. For example, existing work uses properties of tree topology to infer characteristics of the evolutionary processes acting on a population. With an understanding of the differences between biology and artificial life, these approaches can be imported into ALife systems. For example, phylodiversity metrics can be used to detect diversity-maintaining ecological interactions and ongoing generation of significant evolutionary innovations.
This tutorial will provide an introduction to phylogenies, how to record them in digital systems, and use cases for phylogenetic analyses in an artificial life context. We will open with a quick discussion of prior research enabled by and based on phylogenies in digital evolution systems. We will then survey existing phylogeny software tools and lead interactive tutorials on tracking phylogenies in both traditional and distributed computing environments. Next, we will discuss techniques for analyzing co-phylogenies (paired phylogenies of interacting species). Lastly, we will discuss open questions and future directions related to phylogenies in artificial life.
Organizers
- Emily Dolson, Michigan State University
- Alexander Lalejini, Grand Valley State University
- Matthew Moreno, University of Michigan
- Jack Garbus, Brandeis University
SwissGL/GPU: tiny libraries for tiny and beautiful programs on the web
Artificial Life is beautiful to watch and fascinating to interact with, and the modern Web has graphics and compute capabilities to share this beauty with the world. Over the last few years I developed a number of GPU-powered Web-native interactive ALife simulations, including Neural Cellular Automata and various agent-based systems. My experience culminated in a few principles of building expressive minimalist GPU API abstraction layers, that facilitate development of interactive simulations and visualizations, and led to the development of SwissGL/GPU library.
In this presentation I’m going to give a hands-on introduction into GPU programming for ALife by going through a number of examples built with a minimal set of tools and amount of code.
Organizers
- Alexander Mordvinstsev, Google
Bio-inspired Data and Network Science with PolyPhy
This tutorial will cover PolyPhy, an emergent Python package for A-life simulation with data science applications. PolyPhy is an open-source tool that implements the slime mold inspired methodology called Monte Carlo Physarum Machine (MCPM) designed for growing, reconstructing, and visualizing continuous transport networks in 2D and 3D. Originally designed to map the structure of the cosmic web, MCPM is applicable to other types of complex networks, such as roads, linguistic networks, neuronal networks. MCPM can also be used as a sandbox to study the dynamics of massive multi-agent systems with probabilistic behavioral strategies.
The tutorial will cover the MCPM method, the design architecture of PolyPhy, and overview case studies demonstrating its data pipelines with application to different datasets (cosmic web, road networks, linguistic embeddings). The participants will be able to follow on their own computers and reproduce the presented use cases, or choose to develop their own use case by supplying own data and/or modifying PolyPhy’s simulation kernels. The results will be collected in a public GitHub repository and summarized in a research report coauthored by the interested participants.
Organizers
- Oskar Elek, University of California in Santa Cruz