Paper title: Nerve Garden: a Public Terrarium in Cyberspace

Bruce Damer, Contact Consortium
Karen Marcelo, Biota.org, Contact Consortium Special Interest Group
Frank Revi, Biota.org, Contact Consortium Special Interest Group

Contact author name, mailing address, phone, fax, and email

Bruce Damer, Contact Consortium, 343 Soquel Ave, Suite 70
Santa Cruz, CA 95062-2305 USA
E-mail us via: our Webmaster

key words: Internet; Virtual Worlds; Virtual Reality; Artificial Life; Generative Techniques; L-Systems; Cellular Automata; VRML; Scientific Visualization; Interactive Techniques; Keyframe Techniques; Animation Techniques; Interactive Environments; K-12 Education; University Education

Abstract

Abstract. Nerve Garden is a biologically-inspired multi-user collaborative 3D virtual world available to a wide Internet audience. The project combines a number of methods and technologies, including L-systems, Java, cellular automata, and VRML. Nerve Garden is a work in progress designed to provide a compelling experience of a virtual terrarium which exhibits properties of growth, decay and energy transfer reminiscent of a simple ecosystem. The goals of the Nerve Garden project are to create an on-line "collaborative A-Life laboratory" which can be extended by a large number of users for purposes of education and research.






Nerve Garden: a Public Terrarium in Cyberspace

Introduction

During the summer of 1994, one of us (Damer) paid a visit to the Santa Fe Institute for discussions with Chris Langton and his student team working on the Swarm project. Two fortuitous things were happening during that visit, SFI was installing the first Mosaic Web browsers, and digital movies of Karl Sims' evolving "block creatures" (Sims, 1994) were being viewed through the Web by amazed students (figure 1). It was postulated then that the combination of the emerging backbone of the Internet, a distributed simulation environment like Swarm and the compelling 3D visuals and underlying techniques of Sims' creatures could be combined to produce something very compelling: on-line virtual worlds in which thousands of users could collaboratively experiment with biological paradigms.


Figure 1: View of Karl Sims' original evolving block creatures in competition


In the three years since the SFI visit, we founded an organization called the Contact Consortium which has 35 member and supporting companies and universities. This organization serves as a focal point for the development of on-line virtual worlds and hosts conferences and research and development projects. One of its special interest groups, called Biota.org, was chartered to develop virtual worlds using techniques from the Artificial Life (ALife) field. Its first effort is Nerve Garden, which came on-line in August of 1997 at the SIGGRAPH 97 conference. Three hundred visitors to the Nerve Garden installation used L-systems and Java to germinate plants models into a shared VRML (Virtual Reality Modeling Language) world hosted on the Internet. Biota.org is now developing a subsequent version of Nerve Garden, which will embody more biological paradigms, and, we hope, create an environment capable of supporting education, research, and cross-pollination between traditional A-Life subject areas and other fields.

Nerve Garden I: architecture and experience


Figure 2: Lace Germinator Java client interface


Nerve Garden I is a biologically-inspired shared state 3D virtual world available to a wide audience through standard Internet protocols running on all major hardware platforms. Nerve Garden was inspired by the original work on ALife by Chris Langton (Langton 1992), the digital ecosystem called Tierra by Tom Ray (Ray 1994a) and the evolving 3D virtual creatures of Karl Sims (Sims 1994). Nerve Garden sources its models from the work on L-systems by Aristide Lindenmayer, Przemyslaw Prusinkiewicz and Radomir Mech ( Prusinkiewicz and Lindenmayer 1992) (Mech and Prusinkiewicz, 1996).

The first version of the system, Nerve Garden I, allowed users to operate a Java client, the Germinator (figure 2) to extrude 3D plant models generated from L-systems. The 3D interface in the Java client provided an immediate 3D experience of various L-system plant and arthropod forms. Users employed a slider bar to extrude the models in real time and a mutator to randomize production rules in the L-systems and generate variants on the plant models. Figure 3 shows various plant extrusions produced by the Germinator, including models with fluorescences. After germinating several plants, the user would select one, name it and submit it into to a common VRML 2.0 scenegraph called the Seeder Garden.


Figure 3: Plant models generated by the Germinator


The object passed to the Seeder Garden contained the VRML export from the Germinator, the plant name and other data. Another Java application, called NerveServer, received this object and determined a free "plot" on an island model in a VRML scenegraph. Each island had a set number of plots and showed the user where his or her plant was assigned by a red sphere operated through the VRML external authoring interface (EAI). Cybergardeners would open the Seeder Garden window where they would then move the indicator sphere with their plant attached and place it into the scene. Please see an overview of the client-server architecture of Nerve Garden I in figure 4.


Figure 4: Nerve Garden I architecture
Click to get higher resolution view


Various scenegraph viewpoints were available to users, including a moving viewpoint on the back of an animated model of a flying insect endlessly touring the island. Users would often spot their plant as the bee or butterfly made a close approach over the island (figure 5). Over 10MB of sound, some of it also generated algorithmically, emanated from different objects on the island added to the immersion of the experience. For added effect, L-system based fractal VRML lightening (with generated thunder) occasionally streaked across the sky above the Seeder Garden islands.


Figure 5: Flight of the bumblebee above Nerve Garden
Click to get higher resolution view


NerveServer permitted multiple users to update and view the same island. In addition, users could navigate the same space using standard VRML plug-ins to Web browsers on SGI workstations, PCs or Macintosh computers from various parts of the Internet. One problem was that the distributed L-system clients could easily generate scenes with several hundred thousand polygons, rendering them impossible to visit. We used 3D hardware acceleration, including an SGI Onyx II Infinite Reality system and a PC running a 3D Labs Permedia video acceleration card to permit a more complex environment to be experienced by users. In 1999 and beyond, a whole new generation of 3D chip sets on 32 and 64 bit platforms will enable highly complex 3D interactive environments. There is an interesting parallel here to Ray's work on Tierra, where the energy of the system was proportional to the power of the CPU serving the virtual machine inhabited by Tierran organisms. In many Artificial Life systems, it is not important to have a compelling 3D interface. The benefits to providing one for Nerve Garden are that it encouraged participation and experimentation from a wide group of users. The experience of Nerve Garden I is fully documented on the Web at (see references below). Several gardens generated during the SIGGRAPH 97 installation can be visited.

What was learned

As a complex set of parts including a Java client, simple object distribution system, a multi-user server, a rudimentary database and a shared, persistent VRML scenegraph, Nerve Garden functioned well under the pressures of a diverse range of users on multiple hardware platforms. Users were able to use the Germinator applet without our assistance to generate fairly complex, unique, and aesthetically pleasing models. Users were all familiar with the metaphor of gardens and many were eager to "visit their plant" again from their home computers. Placing their plants in the VRML Seeder Gardens was more challenging due to the difficulty of navigating in 3D using VRML browsers. Younger users tended to be much more adept at using the 3D environment.

In summary, while a successful user experience of a generative environment, Nerve Garden I lacked the sophistication of a "true ALife system" like Tierra (Ray 1994a) in that plant model objects did not reproduce or communicate between virtual machines containing other gardens. In addition, unlike an adaptive L-system space such as the one described in (Mech and Prusinkiewicz, 1996), the plant models did not interact with their neighbors or the environment. Lastly, there was no concept of autonomous, self replicating objects within the environment. Nerve Garden II, now under development, will address some of these shortcomings, and, we hope, contribute a powerful tool for education and research in the ALife community.

The next steps: Nerve Garden II

The goals for Nerve Garden II are:

Much of the above depends on the availability of a comprehensive scenegraph and behavior control mechanism. In development over the past two years, Nerves is a simple but high performance general purpose cellular automata engine written as both a C++ and Java kernel. Nerves is modeled on the biological processes seen in animal nervous systems, and plant and animal circulatory systems, which all could be reduced to token passing and storage mechanisms. Nerves and its associated language, NerveScript, allows users to define a large number of arbitrary pathways and collection pools supporting flows of arbitrary tokens, token storage, token correlation, and filtering. Nerves borrows many concepts from neural networks and directed graphs used in concert with genetic and generative algorithms as reported by Ray, Sims (Ray 1994b, Sims 1994) and others.

Nerves components will underlie the Seeder Gardens providing functions analogous to a drip irrigation system, defining a finite and therefore regulatory resource from which the plant models must draw for continued growth. In addition, Nerves control paths will be generated as L-system models extrude, providing wiring paths connected to the geometry and proximity sensors in the model. This will permit interaction with the plant models. When pruning of plant geometry occurs or growth stimulus becomes scarce, the transformation of the plant models can be triggered. One step beyond this will be the introduction of autonomous entities into the gardens, which we term "polyvores", that will seek to convert the "energy" represented by the polygons in the plant models, into reproductive capacity. Polyvores will provide another source of regulation in this simple ecosystem. Gardens will maintain their interactive capacity, allowing users to enter, germinate plants, introduce polyvores, and prune plants or cull polyvores. Gardens will also run as automatous systems, maintaining polygon complexity within boundaries that allow users to enter the environment.


spinalTap.nrv



Figure 5: Sample NerveScript coding language

We expect to use Nerves to tie much of the above processes together. Like VRML, Nerves is described by a set of public domain APIs and a published language, NerveScript. Figure 6 lists some typical NerveScript statements which describe a two chain neural pathway that might be used as a spinal chord of a simple swimming fish. DEF defines a reusable object spinalCordSeg consisting of input paths spinalTapA and spinalTapB which will only pass the token Swim into a four stage filter called bodyMotion. All generated tokens end up in Complex, another Nerve bundle, defined elsewhere.


Figure 6: Nerves visualizer running within the NerveScript development environment


Figure 6 shows the visualization of the running NerveScript code in the NerveScript development environment. In the VRML setting, pathways spinalTapA and B are fed by eventOut messages drawn out of the scenegraph while the Nerve bundles generate eventIns back to VRML using the EAI. Nerves is fully described at the web address referenced at the end of this paper.

Goals and call for participation

The goals of the Nerve Garden project are to create an on-line "collaborative A-Life laboratory" which can be extended by a large number of users for purposes of education and research. We plan to launch Nerve Garden II on the Internet in the next year and look forward to observing both the user experience and, we hope, the emergence of complex forms and interactions within some of the gardens. The Contact Consortium and its Biota.org special interest group would welcome additional collaborators on this project.

Acknowledgments

In addition to the extensive contributions made by the authors of this paper, we would like to thank the following sponsors: Intervista, Silicon Graphics and Cosmo Software, 3D Labs. A special thanks goes to Przemyslaw Prusinkiewicz and numerous other individuals who have worked on aspects of the project since 1995.

References

Sims, K., "Evolving Virtual Creatures," Computer Graphics (Siggraph '94) Annual Conference Proceedings, July 1994, pp.43-50.

Ray, T. S. 1994a. Netlife - Creating a jungle on the Internet: Nonlocated online digital territories, incorporations and the matrix. Knowbotic Research 3/94.

Ray, T. S. 1994b. Neural Networks, Genetic Algorithms and Artificial Life: Adaptive Computation. In Proceedings of the 1994 ALife, Genetic Algorithm and Neural Networks Seminar, 1-14. Institute of Systems, Control and Information Engineers.

Langton, C. 1992. Life at the Edge of Chaos. Artificial Life II 41-91. Redwood City CA: Addison-Wesley.

Prusinkiewicz, P., and Lindenmayer, A., eds. 1990. The Algorithmic Beauty of Plants. New York: Springer Verlag.

Mech, R., and Prusinkiewicz, P. 1994. Visual Models of Plants Interacting with Their Environment. In Proceedings of SIGGRAPH 96 . In Computer Graphics Proceedings, 397-410. ACM Publications.

Online resources

Karl Sims' creatures are viewable on Biota.org at: https://digitalspace.com/biota.org/conf97/ksims.html.

Read about the goals and projects of the Contact Consortium at https://www.ccon.org.

Nerve Garden I on the Web at https://digitalspace.com/biota.org.

The Nerves home page, with language specification, examples and downloads is at: http://www.digitalspace.com/nerves/.