Build your own
Evolutionary Algorithm!

Use for teaching

Quickly demonstrate evolutionary behaviours to students to help their understanding. Use import and export features to save and restore algorithms.

Export Javascript

Prototype in your browser, optimise in your IDE. Once you have your first prototype, take the generated Javascript code and run it in your favorite controlled environment.

Blocks, not code

Drag and drop blocks specifically designed to build evolutionary algorithms. No prior programming experience needed.

Blockly

Try it yourself!

Get Started!

What are Evolutionary Algorithms?

Evolutionary Algorithms are algorithms that try to optimize a given objective function heuristically. As the name suggests, the inspiration comes from nature, and the algorithm maintains a set of possible solutions (then called “individuals”) and evaluates their objective value (called “fitness”). New individuals are created by slightly changing or combining old ones (“mutation” or, for multiple “parents”, “crossover”). Then, bad individuals are discarded (“selection”). By iterating these steps (over several “generations”), initial solutions are improved to maximize the objective values.
In their simplest form, evolutionary algorithms are a variant of local search. The main problem such algorithms face is getting stuck in local optima (or, as a variant, stagnating with only small improvements). This is the problem addressed by more sophisticated evolutionary algorithms.