The simulated track is represented as a mathematical function. Each of the four sensor inputs measures the distance to the track; if it hits the track the 'intensity' of the signal is returned to the robot (computed via 'regula falsi' where the sensor ray intersects the function), otherwise the sensor input returns zero, i.e. where a real sensor would measure nothing.

The Task is solved by the ESC-GP system, a machine learning algorithm implementing the Genetic Programming paradigm.

Click on the picture below to download an animation showing a track-following behaviour 'learned' by the computer after about 4 minutes (on a PPC750/266MHz, 160MB RAM).

sample solution

Click on the picture to view the whole GIF animation (460K).

View the program code translated to Pseudo-C for the program which can be seen in action in the screen shot gallery picture 4-6.


Various strategies evolved during the numerous runs.

In the screen shots, arrows mark the trail travelled so far, lines indicate the sensor direction and range.

Click on thumbnails for bigger images!

An initial strategy The best strategy from the very same run after 50 generations After 97 generations a successfull strategy emerged
A successfull strategy travelling on another track The same robot on a different track And the same robot on yet another track

screen saver

Recently the RoboRail project was reincarnated as a Mac OS X screen saver!

Witness the robot's struggles in your coffee break, or whenever..

The free screen saver can be downloaded from the screen saver section of the website.


Feel free to make a small donation if you like the program and would like to support the work on this freeware application.