Return to Web Labs at

Artificial Zoo

This lab grows zoo creatures with an L-system. The gene of a zoo creature defines its form by repeating the gene instructions at each generation of growth. The lab was inspired when I read Richard Dawkins' book The Blind Watchmaker.

Select a creature to get started. When first selected, creatures are grown with the recommended number of generations. You may then reduce the number to see how growth occurs, but be careful about increasing past the recommended value. For example, Islands takes an unreasonable amount of time above 2. In that case, reload the page.

The three numeric values at the start of a gene are the angle of rotation (+ and -) and the relative size of line segments in the next generation grown from major (B) and minor (b) buds. F means to grow a line, J means to jump, ] means to return to the location and angle at [ but continue instructions after ].

enter gene:

enter starting x, y, angle, length:

edit gene (3 numbers first) & starting values (larger y is down), values separated by commas



The Reactor Lab provides interactive simulations for active learning. The web site is Web Labs and desktop versions of ReactorLab and SimzLab, which includes PureWaterLab, are available. The lab is provided free of charge and code is open source and available at our GitHub site. The code is structured to allow fast construction of new simulations of reactors and other systems. The author of Reactor Lab is Richard K. Herz, emeritus professor of chemical engineering at the University of California, San Diego, UCSD, in the Department of NanoEngineering. Please let us know if you use the Lab or the code. Thanks!