Artificial Life on the Web

A web oriented artificial life site: alife, genetic algorithms and cellular automata experiments written in cross platform web languages (java, tcl/tk), with free source code

If you can read this then your browser does not support Java, and you cannot see the Floys.

My Topics of Interest
My main topics of interest are Evolution, Artificial Life and Computers.
I became fascinated by these three ideas:

Artificial Life and Java
The Java language is not the ideal language for experiments in the fields of evolution and life, which require fast execution of many calculations. But Java has a unique feature: an unparalleled communication power. A Java program can be easily tried and reviewed by anyone, regardless of location or equipment. It is like a computer Esperanto, taking us back to pre-Tower-of-Babylon era. I therefore think that it is the right tool for playing around with ideas, for experimenting, and for getting feedback from people with similar interests, wherever they are, whatever they work with.

Floys - Social, Territorial, Evolving Java Alife Animals
Floys, iFloys (individualistic Floys) and eFloys (evolving Floys) are simple Artificial Life creatures implemented in Java applets. Their life-like emergent behavior is dictated by a few very simple rules. They extend the family of Boids-like programs by adding an aggressive territorial behavior towards strangers. Both iFloys and eFloys can have individual personalities. eFloys can also evolve: their evolution is implemented by a real-valued (high-order alphabet) genetic algorithm.

A description of the Floys applets is presented in the Floys description page.

Artificial Life, Genetic Algorithms, Rules Evolution And Tcl/Tk
Genetic algorithms in Java and other compiled languages involve parametric evolution: they try to optimize a predefined function by searching for a suitable set of parameters. The function itself, however, does not evolve. An interpreted language, although slow, can support evolution of the rules themselves and open a new dimension in evolution experiments. Tcl/Tk is a beautiful language, it is multi-platform, and with its plug-in, it is also an Internet language. In short, it is suitable for rule-evolution experiments.

tFloys - Artificial Life in Tcl/Tk
tFloys are similar to Floys, but they are implemented in Tcl/Tk. The current version is only a feasibility test, and does not include rule evolution. There are separate versions for 640x480 resolution and for 800x600 resolution. The tFloys tclet enables the insertion of an obstacle to be placed anywhere on the screen, of a target (food) object and of a background picture. Tcl/Tk plugin ver. 2.0 is needed for viewing the tclet within a browser. The plugin is download-able from http://sunscript.sun.com/plugin/download.html

JcaToi: A Java, Double-CA, Text-Oriented-Interactive Game of Life
Cellular Automata in general, and the Game-of-Life in particular, are fascinating because they are extremely simple, absolutely deterministic and at the same time almost totally unpredictable. The JcaToi Cellular Automata applet uses the classic Conway's Game of Life rules. However, the CA world (implemented here as an arbitrary background picture) is shared by two parallel, independent, overlapping CA's. It is an interactive applet, where control is achieved through clicking on textual links rather then by the orthodox use of buttons and menus. This enables a friendlier and more descriptive user interface, not limited by the shorthand language of button and menu captions. The effect is achieved by combining Java and Javascript, and can be used for designing interactive essays. See also the Wica (Web Interactive Cellular Automata) homepage for extensions of this concept.

The Alife Database
The Alife Database is a searchable database of Alife-related sites on the world wide web. The initial purpose was to encourage code sharing in the Alife community by making it easy to find Alife code on the net (See the page A Thought about Sharing Alife Code). It is still primarily oriented towards active Alife participation, and therefore it puts an emphasis on sites offering free source code (especially Java) and on sites providing online playing and experimenting.The emphasis on Java is based on the fact that Java supports both cross-platform code-sharing and online-experimenting better then any other programming languages.

The searching is implemented in two versions, and each has its pros and cons. While the Two-Panel searcher provides more information, the Grid searcher seems easier to use. Since both are based on the same database, you can use either according to your taste.

The New Alife Database
The New Alife Database is a successor to the first Alife Database (see above). Unlike the first version, it is not specifically oriented towards online experimentation and code sharing. It is a much larger and more comprehensive database, where the data is automatically gathered by an intelligent search bot (Macrobot) that scans the world wide web for Alife related pages. The searching robot analyzes the imported pages and creates (or updates) a database record for each. The New Alife Database is implemented in two versions: A searchable-database Java applet and an Html version. Both are freely downloadable (although you will need the InfoBook product to use it locally in the applet mode).

The Newest Alife Database
Alife Database Weblication The newest version of the Alife Database The Alife Database Weblication is a true database web application. As its predecessor, this version too is generated by an intelligent agent that gathers information about Alife-related sites. In addition this version is more open, dynamic, fast and flexible, and supports online editing and additions by Alife site authors.

New features:

The GA Playground
The GA Playground The GA Playground is a general purpose GA toolkit implemented in Java, designed for experimenting with genetic algorithms and handling optimization problems. New problem definition requires only coding of a fitness function and supplying parameters by an Ascii file (similar to Windows ini file). However, the structure of the program is very modular and supports overwriting of any GA operator or function, if required.

The GA Playground is primarily designed to be used as an application and not as an applet, since it requires re-compiling of at least one function (the fitness function) and the use of local file I/O. In addition, it is a little heavy as an applet. However, although its use as an applet does not enable defining new problems (new fitness functions), it enables extensive playing with many variations of already defined problems (the applet includes demos of TSP, knapsack, bin packing, facility allocation and real-value function optimizations, both simple and multi-modal).

The applet is written in JDK 1.1.5 and uses the new event model, requiring a browser that supports AWT 1.1. (MSIE 4.01, Netscape Communicator 4.05, HotJava 1.1 or using the Java Plugin).

The applet, which typically will not be used over the Internet, is relatively large (about 200K). Please be patient while it loads.

Doll House
One of the Dolls pictures Many years ago I had an artistic period, and I created a series of three dimensional collage pictures based on small plastic dolls. A few dozens of them covered the walls of my apartment, but almost all were destroyed when an Iraqi Scud missile crashed my house during the Gulf War. Each of these pictures represented a specific thought or a personal experience, and they were dear to me. Several photographs remained, so I decided to put them again, this time on this Internet wall.

Java Annotated Picture Browser
The Java Annotated Picture Browser is a Java applet for browsing a collection of pictures with their corresponding texts or annotations. It allows navigation by buttons or direct selection from a list, and each picture is displayed along with its description. Here it is shown with the Dolls picture collection, as an alternative to the thumb nails display mode.

All the Source Code
On this page you will find the source code of all the Alife applets and tclets: All the version of Java Floys (Floys, iFloys and eFloys), the Tcl/Tk Floys (tFloys) and the Java interactive Game-of-Life (TcaToi). The code can be used for any purpose. When you use it, please add appropriate credits.

The Download page includes a note titled: A thought about sharing Alife code - Code Sharing as an Alife Experiment in Memetic Evolution. I shall be glad to receive feedback concerning this idea.

About Me
I am a free-lance software developer, living in Ramat-Gan, Israel. I develop applications for the Windows environment (Visual Basic, Office and Access), and for the Internet (Html, Java). I specialize in applications that integrate data processing, graphics and engineering. My interests are described above.


| Home Page | Floys | iFloys | eFloys | tFloys | Floys Description | Java CA | Wica | Doll House | Picture-Browser | Download | Alife Database | New Alife Database | Newest Alife Database | GA Playground | Experiments |

Ariel Dolan
aridolan@netvision.net.il

Dr.
Matrix Award for Science Excellence Editor's Choice Award Rated Top 25% WebApplet by JARS