SailChallenge: In search of a virtual sailboat controller

SailChallenge has gone unanswered. Six months ago the ANNEvolve project at presented a challenge to the scientific and
engineering software communities to create a virtual sailboat controller. The Annevolve project has yet to hear about a successful controller, other than our own. Annevolve is an opensource project hosted at
Here are the details for the SailChallenge competition:
The task: To create, by any method you wish, a replacement for the controller() function in the file sailing.c, which is downloadable at no cost from (in the SailChallenge-1.2 package). One way to do this is to use an Artificial Neural Network (ANN) as the controller, as we have done, but a controller may also be hand coded, or developed with Genetic Programming. If an ANN is used it may be developed with our EvSail program (also a free download), but other methods may be used.
The course: There is a circular island, which the sailboat is to circle in the counter-clockwise direction, and not crash on the beach. The program starts the sailing run from a random starting position. The wind will vary in a semi-realistic manner, gradually changing in strength and direction. The SailChallenge software contains the appropriate simulations of wind, geometry, and sailboat physics.
The competition: Annevolve team members created controllers that sail around the island better than 85% of attempts. Some of these are included with SailChallenge. The time required for the circumnavigation is also important; our controllers do it in good, but sub-optimal time.
Getting started: Download the program from our website. We have included an example controller and the sailboat physics model from our EvSail program to get you started. The example controller is an artificial neural network, but yours may be hand coded, or use any technology that appeals to you. You may even use the EvSail software to create a better one than we have! Ample documentation is included in the packages.
Success: A successful controller() function will efficiently circle the island, always moving counter-clockwise in spite of varying winds. We know our figure of 85% can be improved upon, so show us your stuff and start creating your own virtual yachtsman. Try evolving one that is better than the three provided with the package.
Those competitors that decide to use our EvSail program, which can evolve an ANN that does a good job of controlling the virtual sailboat, can use the "extract" program included with EvSail 2.4. This lets you isolate one ANN descriptor and save it in a file. This ANN may then be used as the data file for SailChallenge.
Comments and questions about SailChallenge may be posted on the Annevolve mailing list by sending email to You may post without subscribing, but anyone may subscribe to this mailing list. The list archives may be viewed at .
The Annevolve team is experimenting with the Evolution of Artificial Neural Networks (ANNs). They are combining the two fields of Evolutionary Computation and Artificial Neural Networks. Find out more about EvSail and other ANN evolution programs at the Annevolve project at:
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
Add image file
Upload is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.