Springbots - Genetic Algorithm

Rodrigo Setti
25/11/2008

Overview

Links

About

This project aims to show how exactly genetic algorithm works. Creature like 2d structures called springbots are made of nodes with mass connected with elastic springs, it can have movement giving a structure a particular behavior.

A program called "evolve" receives as input a set of springbots and applies the genetic algorithm to them for a specific fitness function which current implementation includes walk, swim, jump, height and equilibrium. At every generation all springbots are tested against a selected fitness and its performance are taken to discard the worse and select the best, which are cloned and mutated to replace the discarded.

It is expected, and experience confirms that, that after several generations creatures evolve to hit best at fitness test. Indeed animal-like behavior seems to emerge to achieve walking, swimming and jumping.

Features

Graphics

Real time at evolve time and also there is a program to convert from springbot's XML to SVG graphics.

Network Distribution

The evolution process can be distributed in a TCP/IP network for better performance and fast results. fitness servers are programs that stand by receiving springbots to test and send back its performance value. An evolve client actually does the genetic algorithm and connects to several fitness tests to let them do the hard processing work.

Springbot editor

A user friendly editor for editing springbots structure and behavior. Very simple to use.

Data overview

Springbots population are saved in a very simple XML dialect, and statistic output from evolve program is given in a very simple self-explained plain text.

Other projects from same author: