Gene regulatory networks creating patterns in a Kilobot swarm


Jorren Bosga, Fredrik Jansson (
Swarm-Organ Project,

As our ability to develop complex artificial systems improves, inspiration is sought in perhaps the most perfect example of complexity: nature. Especially in the new field of swarm robotics, which aims to develop large groups of robots displaying collective behavior, nature is used as a source of inspiration. In the Swarm-Organ project, we explore using the biological principles of gene regulation to control a swarm of robots, where the robots communicate only with their close neighbors. As one example, we are using the genetic make-up of the common fruit fly, Drosophila melanogaster, as a means to achieve patterning or differentiation of agent functions in the robot swarm. The fruit fly is among the most well-documented organisms in biology. During its embryonic stage, a number of genes, known as the gap genes, are expressed along its body in a stripe-like pattern. This pattern is later refined, and serves to define the segments of the fruit fly body and to determine the function of each segment. The gap gene stripe pattern consists of four genes, and is formed by interactions among the genes facilitated by proteins, or morphogens. These morphogens are produced by the genes, and can activate or repress other genes. The resulting network of interactions is called a gene regulatory network, and is often at the basis of complex pattern formation in biology.


A gene regulatory network inspired by that of the fruit fly gap genes has been implemented in a swarm of Kilobots. The Kilobots are small, cheap and simple robots developed by the Self-Organizing Systems research group at Harvard University. We use these robots in the Swarm-Organ project to try out our swarm control algorithms in practice. The robots possess a number of simple functions that allow them to interact with each other and, under the right control system, operate as a swarm: the Kilobots can move using vibration motors, display their internal state with a tricolor LED, and communicate with their neighbors using infrared light. Using these robots, our fruit-fly inspired network produces a striped distribution of ‘genes’, or states. The starting state is a gene distribution with two genes forming opposing concentration gradients along the longer axis of the swarm. In both simulated and real Kilobot swarms, striped patterns containing up to four additional genes were created based on these gradients. From this pattern, different tasks could be distributed among different groups of robots, similar to the way some cells become skin cells, and others become muscle cells. These findings signify a small yet promising step in recreating biological processes with artificial systems.

Kilobot Simulator
The Kilobot was selected for use in the Swarm-Organ project, partially because its lower unit cost compared to other research robots makes larger swarms feasible. The Kilobot robot is based on an ATmega 328 microcontroller, which is programmable in C. When developing programs for the Kilobots, it is convenient to be able to test the program in a simulator running on a desktop computer. As no simulator was available which can run the same program as the real Kilobots, we decided to create our own. When the simulator is running the same program, from the same source code file as the real robots, it is possible to test not just the algorithms in principle, but also the actual implementation of them. It also means only one version of the Kilobot program needs to be written and maintained, instead of separate versions for the simulator and the real robot.

The simulator will be released in the near future under an open source license. We already use it routinely within the project for Kilobot program development.

Path, Sim Path

Simulated and real Kilobots performing an Orbit demonstration, where one robot moves around another stationary one, while keeping a constant distance to it.