Light-Bot Interactive Applet

This is the interactive part of the site, where you can watch the genetic algorithm run in your browser on any of the available boards (or you can create a custom board), as well as try to solve the boards yourself. To fire up the algorithm immediately, scroll to the bottom and click "Start", then use the two blue buttons to either step through, or run the algorithm continuously. At any point you can click on any of the programs/organisms to load them into the viewer above, and watch the program executed.

Additionally, at any time you can edit the program in the viewer by dragging the commands at the top into any of the 28 command squares. You can use this to try to find your own solution, or to experiment with tweaking one of the algorithm-generated solutions.

Level 12

Edit this board
Choose new board
Function 1
Function 2

Genetic Algorithm

You can click the Start button to begin immediately, or adjust the parameters first. The "Pop Size" parameter sets the constant size of the population. The "Allow Duplicates" checkbox indicates whether or not the population is allowed to contain several identical members. If this box is unchecked, then any time a mutation/recombination results in a program that already exists in the population, it will be discarded, and a new random program will be added instead.

The "Recombine Sections" parameter sets the number of sections that each parent is divided into during a recombination. For example if this is set to 3, then each parent will be divided into 3 pieces of random length in the same way, and the child will be formed by taking the first and last piece from one parent and the middle piece from the other parent.

The "Mutation Width" parameter sets the number of commands affected by a mutation. The "Protect Leader" parameter specifies whether or not the highest ranked program can be changed by a mutation. This may be desirable to prevent bad mutations from reverting progress.


Pop Size
Allow Duplicates
Recombine Sections
Mutation Width
Protect Leader (from mutation)