Smart Technology
Engineering Demostrations
On-line demostrations of smart technologies

Differential Evolution Approximates Any Function

Differential evolution--an application of genetic algorithms to mathematical approximations--is a population-based, stochastic function minimizer designed to model functions that are resistant to traditional approximation techniques--primarily, non-differentiable or non-linear functions. The Java applet also includes graphics support for visually checking the optimization process as it runs.

Xfuzzy freeware handles synthesis -- Design environment from Spanish researchers zeroes in on code development

A freeware synthesis tool, for embedding fuzzy logic into ASICs, was posted to the Internet by Spanish researchers at Spain's University of Seville in the Instituto de Microelectronica for both hardware and software synthesis. Control systems designed with it can be either cast into C-language modules or synthesized with PLAs, FPGAs or as part of a VHDL-based custom ASIC, according too project leader Santiago Sanchez Solano. Click for the full story.

Adaptive Filter Algorithm

The adaptive filter uses neural-like learning to track and compensate for dynamically changing noise. This Java implementation by Moritz Harteneck reveals adaptive filtering algorithms at work. The surfer is provided with an "impulse" window in which clicks change the impulse response of the unknown system. Graphical windows readout the error of the adaptive filter as it tracks the unknown system. Various parameters may be adjusted by filling-in-the-blanks and pop-up menus.

Fuzzy applet performs smart database search

SmartRanker permits wed surfers to experiment with various kinds of fuzzy ranking with a Java applet from programmer Pei Wang, a former Indiana University researcher who is now a software engineer at Explore Reasoning Systems Inc., Wayne, Pa. The freeware Java applet performs smart database searchs using fuzzy logic to make "intelligent" choices from imprecise and perhaps conflicting queries. SmartRanker was designed to get by on whatever level of knowledge is available. Download from: Click for full story

English phrases encode membership values -- User customizes fuzzy-logic system

Jan's Fuzzy System offers weighted rules, linguistic hedges and a variety of defuzzification methods. Fuzzy operators accept arguments, make use of hedges and can be set to execute at a specific preference levels within a rule base. The JFS explains how its fuzzy inferences were made by listing the values of the fuzzy-input variables which were most influential in arriving at that conclusion. The program also logs all the values of the fuzzy inputs as well as the details of each rule application. After debugging with the interpreter, a source-code library permits standard C code to be generated.

Logo language extension aids modeling of real-world situations -- StarLogo simulates complex system behavior

StarLogo--an extension to the Logo programming language for complex system simulations--is available free from MIT's Epistemology and Learning Group. Logo was already an intuitive programming language, and StarLogo works to extend its functionality to complex systems, while maintaining the same look and feel. Accordingly, complex-system behavior is treated, in StarLogo, as the the natural outcome of complex interactions among individuals. Its decentralized model elicits complex behaviors without completely specifying the overall actions. StarLogo also has a built-in visual display and development environment for complex-system simulations. Individual agents are created with simple Logo-style programming extensions that can be made application specific. Click for full story.

Platform-independent applet tutors novices in genetic algorithms -- Java-based artificial life 'Floys' freely over Net

Floys offers artificial life (AL) novices some hands-on experience with genetic-algorithm theory via a Java-based species at: Floy creator Ariel Dolan, a freelance software developer in Ramat-Gan, Isreal, intends floys to populate an artificial zoo that executes on nearly any platform-even over the Internet from Web pages. The Floys' Java applet was based on an earlier Java applet by shareware author Alex Vulliamy (, who created a screensaver called "Flies" to simulated a 3-D volume filled with swarming flies. That artificial-life algorithm was constructed to keep each fly in the air with local rules. Likewise, floys exhibit group behavior resulting from rules governing only individual behavior. Click for the full story.

Technique accelerates evolution of computer programs

Probabilistic Incremental Program evolution (Pipe) offers a new approach to genetic-algorithm design by Rafal Salustowicz, a professor at the Istituto Dalle Molledi Studi sull'Intelligenza Artificiale (IDSIA; Pipe evolves a program for a specific computation or application. The software package may be downloaded: Unlike conventional genetic algorithms Pipe speeds artificial evolution by harnessing a statistical theory to, in effect, evolve a probability distributions along with an individual program thereby ensuring incrementally improved programs will always be selected. Conventional genetic algorithms must do time-consuming backtracking to eliminate poor performers. Pipe is written entirely in the C language and permits users to write application-independent components to customize its source code, which is provided. Pipe can also be run in batch mode so that multiple experiments may be automatically completed without user intervention. Click for full story.

Artificial Life Garden

The Artificial-Life Garden, programmed by Tesh Nakamura, features a common ALife Ecosystem composed of up to 500 software creatures. Each creature is described by 50kbytes of artificial DNA, which defines its eating, moving and sexual preferences. The artificial ecosystem contains 10 edible substances that any creature can adapt to tolerate, but each creature is "born" with an innate "fondness" for some foods and "repulsion" from others. Since these innate tendencies are not always for the better, some creatures die off quickly. Others die from eating other creatures which have recently eaten distasteful substances. All these same aversions and attractions also come into play regarding creatures' sexual behavior. Successful mating results in a random splicing together of "half" the DNA from each creature. If you see a creature you particularly like, you can also set up a personal tank in which to isolate your cyber-pet after you pluck it from the common ecosystem.

BITMed Simulators

BITMed, a collaboration between the engineering, mathematics and psychiatry departments at USCD--with the cooperation of the San Diego Supercomputer Center--offers a slew of on-line simulators for X-Windows clients (see The simulations make use of the Cellular Device Machine Development System (CDM-DS, made by InSilico Technologies Inc.). As a development environment for simulating many interacting objects, the CDM-DS is a virtual computer composed of multiple processors connected in the shape of a torus (donut) and running the Slang parallel programming language. On-line simulators using the CDM-DS include a genetic algorithm, the classic cellular automata called the game of life, a neural dendritic growth simulator, a robotic simulator, wire world, the wave rule, the Hodge rule, a lymph node simulator, and a hypothalamic-pituitary-adrenal (HPA) simulator.

BITMed's genetic algorithms simulator uses hexadecimal arithmetic--providing 64 levels of fitness for which it measures each member of its population each epoch. The most fit are colored blue in the on-screen graphical representation, while the least fit are red--which those in-between various shades of violet. The user specifies the number of generations, the active percentage of the torus, the number and configuration of the nodes, and a random seed for initialization.

BITMed's dendritic growth simulator grows a neural connection matrix. In addition to the parameters specified for the GA, users for the dendritic growth simulator also specifies how many nodes are occupied at the beginning of the simulation, as well as whether all nodes are evaluated simultaneously (synchronous operation) or one at a time (asynchronous).

BITMed's game of life cellular automata simulation adds the "geometry" parameter to those specified for GAs and dendritic growth. The robotic simulator employs two types of robots, those that flee and those that pursue, in a kind of robot tag. The fleeing robots leave a trail that evaporates, while the pursuing robots move randomly until they find a evaporation trail, after which they chase the fleeing robot. If the pursuer tags the fleeer they, as in the human game, switch roles. The number of robots and the density of obstacles is specifiable ahead of time by users.

Wire world is a routing simulations using blue wires along which electrons flow in only one direction. Various digital logic gates are automatically created and wired in the wire world simulation.

BITMed's wave rule and Hodge rules are neighbor-oriented cellular automata simulations. Each rule measures the state of the cells nearby it and reacts according to a mathematical rule. The simulation shows how the two rules spread their influence across the torus in real time.

BITMed's most comprehensive simulation is the HPA, which tracks the interactions among three glands including their biochemical communication mechanisms. A complex three-way feedback mechanism among the three hormones secreted by glands is modeled. The three neural modulators are three such modulators: the corticotropic (CRF)--the releasing factor, the adrenocorticotropic hormone (ACTH), and cortisol (CORT). The lymph node simulator is a specialized cellular automata consisting of four cell types: lymphocytes, macrophages, stoma cells and viruses.

The BITMed Web site also serves as a central distribution point for downloadable public domain simulators, including:


Craig W. Reynolds programmed Boids in Java to simulate coordinated animal motions, such as bird flocks and fish schools. Each boid observes the entire scene, but reacts only to other boids in its nearby vicinity. For instance, boids steer as a flock while maintaining enough distance between each other to maneuver. When they come to an obstacle, the flock separates into two parts and merges back together on the other side.

Derivatives of Reynolds' work have been widely used in research labs, as will as for animated "bat" swarms in the Hollywood movies, "Batman Returns" and "Cliffhanger."

Boids is written in Common Lisp, but a version in C++ has also been written by Christopher Kline. There are also many screen savers modeled on Boids as well as a commercial version listed here.


According to director of the Research Imaging Center (RIC) Peter Fox, the on-line BrainMap project extends a user's understanding of the functional anatomy of the human brain, by virtue of rapid, exhaustive access to image-derived data on behavioral functions. BrainMap offers detailed readouts of actual recordings of the brain and relates them to the brain regions known or suspected to control various functions. Since its inception in 1994, BrainMap has grown to over 6000 entries from over 500 experiments reported on in over 150 scholarly papers from 100 institutional research participants. BrainMap is sponsored in San Antonio,m Texas by RIC at the University of Texas Health Science Center. CLICK FOR FULL TEXT


The Carbohydrate Neural Network (CarbNet), the neural-based on-line pattern recognizer was created by the University of Georgia Complex Carbohydrate Research Center (CCRC) University of Georgia is using a neural network to automate the recognition of spectral data from complex chemical formulas. Any researchers with unidentified compounds can submit their spectral data to the university's neural network over the World Wide Web ( for on-line pattern recognition and classification. The service is free.

Researchers Faramarz Valafar and Homayoun Valafar at CCRC programmed the neural network to compare user spectral data with the spectra stored in its on-line databases. Users first dial up CarbNet and submit their raw spectral data using file-transfer protocol. Then a switch to the Web enables them to direct the neural-based search engine. Alternatively, users may cut-and-paste their data directly into the Web page. Only a few parameters need to be set by the user: the recognition threshold, number of hits, instrument type, method of analysis, and data format. The neural network then searches the database and returns a hit list of compounds, each with a score between 0 and 1; the higher the score, the closer the match. CLICK FOR FULL TEXT

Evolve or Die

Robert Silverman, whose signature features the "Evolve or Die" motto, has posted many artificially life-like demos here. His artificial life forms have names as varied as "CA," short for cellular automata, to more descriptive names, such as Demons, Morphs, Swarm, Fire, Bots and most descriptively of all, Planet Wa-Tor. Silverman and his little critters illustrate the many aspects of artificial life research.

Face-It Project

Professors Luigi Pagliarini and Domenico Parisi (see EETimes, June 26, 1995, page 43) at the University of Pavia, Italy, have automated Leonardo Da Vinci's Face Studies. The automated version called the Face-It Project, uses genetic algorithms (GAs) to evolve meaningful facial expressions. Used in psychological studies, the animated face evolves its expressions based on the evaluation made by the user. Each time the user selects a face, the GA evolves another one. As the user accepts new choices the GA culls mismatches from a population of facial "genotypes." Each face is represented by a bit string codyfying 33 analog variables describing up to 400,000 different facial expressions. Each selected face is "cloned" and randomly mutated to create a new population of faces for the user to evaluate.

Game of Life

Inventor of the game of Life, John Conway, explains that his Web implementation of the Game of Life uses HTML "checkboxes" to represent cells which grow in number as the population reproduces. (He warns that some browsers will not redraw large numbers of checkboxes quickly, which "can make scrolling and redrawing very painful.")

Project: Von Neumann

Charles Ofria ( maintains the Project: Von Neumann page as a full-scale international version of the "evolving enemies" idea posted to the Usenet "" newsgroup by Christian Darkin. The basic idea is to utilize genetic algorithms and related artificial-life technologies to evolve formidable enemies to battle each other in cyberspace. As C-language freeware, game universes, evolved enemies and the artificial-life engine can all be downloaded from the FTP site:

Each user maintains a personal game arena inside their own computer. When a user evolves particularly interesting enemies, they can be uploaded to the FTP site for free distribution to others. What-ifs can be played out by pitting different differently evolved enemies against each other by downloading them and watching them battle it out. Users, of course, can also battle it out with evolved enemies, using the standard "shoot them up" skills honed fine in video games. One non-standard addition is that enemies don't get stronger as you ascend levels, enemies only gets smarter, not stronger--that is, users and enemies all use standard issue ships that are each as fast and responsive as the other. The only thing that counts is the user's "natural intelligence" pitted against an evolved "artificial intelligence."

Enemies evolve by learning and remembering counters that worked in the past against tactics similar to the ones a current user is exhibiting. The algorithm used by the artificial-life engine is a straight-forward genetic programming tree. Neural networks and virtual machine code are two areas of current exploration that may be included in upcoming versions of the artificial-life engine that drives Project Von Neumann.

Visual Models of Morphogenesis: A Guided Tour

According to Przemyslaw Prusinkiewicz and Mark Hammel, biological structures, as a whole, acquire complex properties through the interaction, in space and over time, among various component modules. The modules themselves are usually fairly simple. The complex forms and patterns of living organisms result from development, and their emergence is traditionally referred to as morphogenesis. By studying emergent processes in a biological context, engineers can gain a better understanding of the processes they must model in the real world.


"We hope to set the record straight-machine translation is not perfect, and it may never be. However, MT is very useful and cost-effective for certain applications," according to president Jim Lewis, speaking about Globalink's TranslateNow service.

The TranslateNow Web site can translate a message from English into French, German and Spanish (or visa versa) automatically for free.

TranslateNow demonstrates Globalink's Barcelona translation technology. You just paste into a Web form page up to 500 words in French, German or Spanish. Barcelona performs the translation automatically and e-mails it back to you within minutes. You may also paste in English and translate to the foreign language of your choice. CLICK FOR FULL TEXT

Web site offers image-processing service

Visioneering Research Laboratory Inc.'s resident image-processing computers will automatically transform images according to users' specifications. The system is activated by moving an image into a public area on the client's Web server. VRL will grab the image, upload it into its high-end image-processing computers, transform the image to specifications and return the finished image to the same public directory in which it found the original. CLICK FOR FULL TEXT