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
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.
Floys in Vml / Dhtml
Game of Floys is a purely browser implemented version of the Floys alife program. It is written in DHTML and VML and does not require either Java or ActiveX. However, it does require MSIE 5.01 or later with the VML option installed. This version is more user friendly than its Java predecessors, and enables easier interactivity and experimentation.
Game of Floys requires the following:
Windows OS, Internet Explorer 5.01 (or higher) with VML option installed and Screen resolution 1024x768 (or higher)
Floys Screen Saver
The Floys screen saver displays a group of red Floys swimming in an aquarium. A yellow Floy, a stranger, is chased and hit by the red ones, who cannot stand any foreigner in their territory.
The Floys Screen Saver is fully customizable: you can define its size, the number of Floys, the speed of movement, the background image (you can put one of your own) and other behavioral parameters.
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
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 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
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.
New web site
The new web site (Artificial Life and Other Experiments) contains more content, and uses a drop down menu for user friendly navigation. However, the old web design (this page) is kept for those who prefer it the old way.
About Me
I am an independent software developer, living in Ramat-Gan, Israel. I develop applications for the MS Windows environment (Visual Basic, VBA, integrated MS Office applications), for the Internet (Java, Javascript, Dhtml, ASP, XML, VML) and for mobile phones (VoiceXML). Here is my cv.