Avatars, A-Life, Agents by Peter Small, (vintage from 1997 and SportSurf.Net)

Magical Web Avatars

The sorcery of biotelemorphic cells


by Peter Small

  • Preface
  • Introduction
  • The Biological Metaphor
  • Word Definitions
  • Eastern Philosophies
  • Essence of this book
  • Enigmatic nature of avatars

Chapter 1

  • The biotelemorphic cell
  • A biotelemorphic cell using Director
  • Creating a germ cell
  • The magic portal
  • Access through the keyboard
  • Time to start thinking
  • Jump starting the concept

Chapter 2

  • A portal for text
  • Overriding human control
  • Email Control
  • Continuation
  • Where it goes from here

Previous writings

  • CD-ROM "How God Makes God"
  • "Lingo Sorcery - the magic of lists, objects and intelligent agents"
  • The continuation of "Lingo Sorcery"

Off-line reading

Note: To receive a copy of this complete site for off-line reading, send a blank email to: _____ putting "Send Avatar Site" into the subject line (leaving the body of the email empty).

You will be sent an email attachment file (approx. 475K) compressed with Stuffit which can be opened with Aladdin's Stuffit expander. When expanded it will be readable with any HTML browser such as Navigator or Explorer.

The compression format is the BinHex (hqx) method. This gives a slightly larger file size than the alternatives but is more robust for cross platform communications over the Internet. This format can be expanded by either Mac or PC machines providing there is a suitable Stuffit expander at the recipient end.

If you do not have a suitable Aladdin Stuffit expander installed, you can send a mail bot to Aladdin's auto responder address to get all the necessary details to download the latest expander (free) to suit your machine - send a blank email to Aladdin: info@aladdinsys.com with the single word "index" in the subject line. You can obtain more details of the Aladdin products from their Web site at: Aladdin's Web site

The Continuation of Lingo Sorcery can be viewed and downloaded from the following sites: ___.


divider-blue

Preface

In 1996, there emerged a significant new development in the world of communications - the Internet protocol engine.

Leading the field was Allegiant's Marionet: a stand alone application, with no visible interface. This powerful little device just sits in RAM, occupying less than 100K of memory, acting like a system extension and accepting instructions from documents to facilitate the movement of messages and files across the Internet.

Humancode and Ventana also designed protocol engine software, as attachments for multimedia players.

All major producers of multimedia authoring packages announced (or hinted) they would be having Internet protocol engines built into their 1997 version releases.

These small special applications, or bolt on extras, enable individual computer documents to communicate and exchange data across the Internet. They provide all the necessary standard messaging protocols to allow documents to use the Internet and the Web without having to go through special servers.

The significance of this seemingly innocuous development is that it allows documents to be "brought to life".

Documents, instead of being merely passive end-products of data processing operations, can now be designed to become contributing members of complex dynamic systems.

This paves the way for documents, not applications, to rule the Internet - ushering in a new phase which has no precedence in mass communication history.

Documents can be receivers or broadcasters; their client and server roles can be interactively interchangeable. They can be designed to behave intelligently: with servers, clients and each other - independently of human supervision or control.

More speculatively, these new Internet protocol engines, by bestowing upon documents the power to communicate, could be ushering in a new kind of life - an Artificial-Life - with the ability to adapt and evolve on the information landscape of the Internet.

This new form of A-life should be capable of transforming the Internet into a vast intelligence - turning it into a gargantuan brain to create a super power which could evolve to rival and perhaps even dominate the human race.

I know you've heard all this many times before, this is what the soothsayers have been saying for the last two or three decades. It hasn't happened yet, but, by the end of this book you will be understanding how this is not only currently possible but also practical and achievable

Already we are using the techniques of evolutionary biology to design information systems. Object oriented programming techniques are enabling systems to be designed which go far beyond any designer's ability to comprehend their full complexity.

Systems are no longer being designed to be isolated and are being regarded lesss and less as stand alone products. They are designed to cooperate and interact with other systems. Systems are evolving into systems of systems with no overall control or authority.

Who will be in control, when all of our computer systems are inter-locked into vast world wide interactive networks which are too complex for anyone to mess with?

Imagine now, an organizing army of smart documents, acting like vast hordes of ants in an ant colony, building, changing, adapting and learning. There is no knowing where this all this can go.

One thing is certain, the human race is now beginning to build a symbiotic relationship with an abstract entity which could turn out to be a dominant partner.

Paradoxically, this book is going to show you the practical steps which will encourage you to become a willing partner in the creation of this phenomenon.

What this book is going to do for you

To the vast majority of users and developers involved in the Internet, the significance of this revolutionary new development of protocol engines went unnoticed at the beginning of 1997. All previous mass communication systems have been based upon the paradigm of broadcasters broadcasting out to passive audiences; publishers printing for passive readerships.

People can visualize the idea of a changing environment where members of an audience or a readership would be able to take part, or have a say, in the communication process, but, the idea of the vectors of communication themselves being involved is something else.

It just isn't intuitive to understand how protocol engines can trigger a metamorphosis of the Internet and the World Wide Web into something spectacularly new - something that requires a radically new paradigm to appreciate and take advantage of.

It is to this major issue that this book will be addressed. It is designed to put you into a new mind set where the Internet and the Web can be looked at in a new light.

We are going to go beyond the superficial initial concept of the Internet and the Word Wide Web to explore another world to find the real opportunities which this truly revolutionary new media will be opening up.

These opportunities will NOT be found by taking a conventional view of the World Wide Web or by using the conventional paradigms of traditional media. Those paradigms are blind to the many other ways in which the Internet and the Web can be used.

The really big opportunities are going to be found by looking at the Internet in a different way, using the tools, methods and techniques of the newly emerging sciences of information processing and molecular biology, perhaps even some of the conceptual techniques of the ancients which they used to explain the unexplainable..

We shall be dealing with an object oriented world of Intranets and hybrids. We shall be dealing with the interplay between humans, intelligent documents, CD-ROMs, computers and the Internet. We shall be discovering a strange new world of information landscapes, of cybernetic structures and biotic mechanisms; exploring new and exciting ideas - which haven't been possible before the advent of the protocol engines which bring "life" to documents.

divider-blue

Forward: The biological metaphor 

A valuable conceptual break-through, in the understanding of the Internet and the World Wide Web, can come about if, instead of looking at the Internet as a communication media, we looked upon it as an information environment very similar to a biological environment.

This may seem strange, but, the modern trend in molecular biology is to treat biological processes as a form of information processing.

With this new way of looking at biology - where molecules are seen as packets of data , cells seen as miniature computers and DNA considered to be digital storage devices - the abstraction of a biological environment maps across perfectly well to the environment of the Internet.

As we shall see later, there are many remarkable similarities between the information landscape of the Internet and biological environments and when abstractions of different kinds of systems are similar it becomes perfectly valid to use one as a metaphor for the other.

From a biological perspective, the Internet, with its substance consisting of hundreds of thousands of computer, can be viewed as fertile virgin soil: a fresh environment, where organic-like structures are free to form and evolve to create a new kind of eco-system.

This is more than just a novel way to look at the Internet, the implication is that all the vast knowledge and tools developed over this last century for understanding and controlling biological forms and structures can be brought to bear in helping us to understand the exact nature of this phenomenon we call the Internet and the World Wide Web.

In particular, we can call upon the tools and conceptual models developed for understanding and explaining the complex world of evolution. We can call upon the modern developments in molecular biology: where the break-throughs which have come in understanding the processes within the human cell will give us insights into developing and using the Internet. It is strange, but true, that the research now being carried out to help us defeat the aids virus is likely to be of great value in helping us design new product for the Web.

In the world of biological landscapes, the most successful structure to have evolved has been the cell. Enclosed within its confining membrane, the cell contains a vast library of genetic instructions (DNA), together with the machinery (mitochondria, etc.) to interpret and act upon those instructions. In this way, a single cell can multiply and turn its clones into a myriad of different little factories and data processing units whose combined interactions can create complex self replicating life forms; the variety of which defies all imagination.

In "Lingo Sorcery - the magic of lists, objects and intelligent agents", I described how the cell was analogous to a computer system and explained how the book's approach to object oriented programming was taken not from techniques of computer programming, but, from the more advanced programming techniques found in nature (molecular biology).

In this present book, I want to extend that biological theme very much further - way beyond the cell itself - to the phenomena produced by the processing activity of the cells.

In the landscape of natural biology the resultant product of cell processing is a life form. In the landscape of the Internet and the World Wide Web the resultant product will be... an AVATAR.

divider-blue

Words and concepts

"Wit and sense are but different avatars of the same spirit"

L. Stephen Pope 1880

 

You can often tell when something exciting is happening in scientific or technical fields because unusual or unfamiliar words start to get bandied about. This will usually indicate that new or expanded concepts are being employed which conflict with, or are not fully explainable by conventional language.

In new media and object oriented programming circles, it became necessary to conceptualize the idea of simultaneous different forms or patterns existing within object oriented environments, where objects with flexible boundaries could be combined in many different ways to form quite separate ephemeral virtual objects. For this purpose the word "paradigm" was adopted, to describe the different conceptual states or phases in which an object oriented system could be viewed.

We shall be using this word, and the enigmatic concept it represents, throughout this book, so, let us just stop for a moment to consider its roots.

The Oxford Dictionary tells us that Wittgenstein used the term paradigm to denote "a logical or conceptual structure serving as a form of thought within a given area of experience" and that A. F. Parker- Rhodes described the concept of paradigm as useful for approaching problems of mathematizing the process of syntactical description with greatly enhanced resources.

Paradigm then, although used long before computers and object oriented programming came into existence, uniquely captures the essence of choosing one from a number of possible patterns which can exist within the same object oriented framework of computer programs. It is used in a way to encapsulate a mind set, or, a particular way of looking at things.

For the purposes of this book we shall also need another word: a word which will conceptualism the manifestation of a product or service which results from the combined input of many pieces of interacting information.

We need this word to describe products and services which have no tangible form or composition until they are called into existence for an immediate purpose: products and services which are created on the fly as a direct response to a need.

A word which may fulfill this role is the word: avatar.

The meaning of Avatar

Longman's dictionary defines avatar as follows:

Avatar: (n)

1) Incarnation of Vishnu, a Hindu deity;

2) An embodiment of a concept or philosophy

 

The Oxford dictionary tells us that avatar can mean:

1) Descent of a deity to earth in an incarnate form (i.e., as in "the fifth avatar appeared as a dwarf")

2) A manifestation or presentation to the world (i.e., the avatar of mathematics)

3) A display

4) A phase

 

Webster's Dictionary also calls an avatar:

1) A manifestation or embodiment of a person, concept or philosophy.

2) A variant phase or version of a continuing basic entity.

 

The Random House dictionary describes an avatar as:

"An embodiment or concrete manifestation as of a principle attitude, way of life, or the like."

 

From these various interpretations of the word avatar, there begins to appear a conceptual picture. It is a manifestation of an image, a display, or, the embodiment of an idea or concept which appears before us in our biological world.

In the landscape of the Internet and the World Wide Web such manifestations and embodiments take place on a computer screen.

The idea of the avatar "coming down" from an unspecified source in one of many possible phases fits in nicely with the idea of self constructing products or services constructing themselves on a computer screen as a result of information "coming down" from the Internet and the World Wide Web.

Certainly this concept of an avatar embodies many of the aspects of computer messages and presentations being transferred from the Web to a client computer screen, but, there is one aspect which makes this word perfect for encapsulating the concept of Web communications - the mystical aspect.

The mystical aspect implies that the deity "Vishnu" has no specific form or shape before manifesting as an avatar on earth. It is implicit that any physical appearance of an avatar is merely a temporary form or phase from an infinite variety of possibilities. - a transient form from an indefinite, indefinable number of sources. It is the capturing of this concept, which makes the word avatar ideal for the purpose of describing the Web communication products which will be described in this book.

It is this same mystical quality which makes life so hard to explain or describe.

Most people know about the germ cells (sperm and egg), from which our human form is made and it is commonly supposed that they must contain a unique set of DNA specifically purposed for the creation of the human form.

This is not true. The human body results merely from a unique selection and use of the instructions which are contained in this DNA. This same DNA that creates the human form is capable of creating all kinds of exotic phenomena.

A few changes to the DNA, or a slight change in some of the instructions, and that self same cellular machinery could produce all kinds of different variations of shape and form - very few of which would be recognizably human.

There are no recorded experiments on humans but there are certainly very many well documented experiments carried out on animals and insects whereby, making a few changes to the genetic machinery in cells causes all sorts of strange effects. Arms growing in place of legs, multiple eyes or wings growing onto insects bodies; the genetic information in the cell can be manipulated to cause almost any variation it is possible to imagine.

The human, animal and insect forms we see in the world today are not ordained creations: they are simply current "phases" of an infinite possible variety of phases, any of which could be called up at any time through different messaging of the genetic information contained in the genes. In this sense, life forms can be seen as the avatars of the biological cell.

In this book we shall be creating a software cell which will emulate a biological cell. You will discover that this cell has extra-ordinary powers and will be as equally capable of producing an infinite range of versatile life forms on the Internet as any biological cell are within a biological environment- the products of these software cells we shall be calling avatars.

divider-blue

Ancient Eastern Philosophies

In the process of writing the manuscript for this book I chanced to have some correspondence with Stephen Guerin of Redfish. He had just returned to the USA after spending three years working on Web systems in China. He pointed out that the references to Avatars could be extended further into Eastern philosophies. He wrote:

The idea of temporal states of objects and transformation has strong parallels in Taoism.

Neo-Confucianist Chang Tsai (1020-1077) writes;

"When the Ch'i condenses, its visibility becomes apparent so that there are then the shapes (of individual objects). When it disperses, its visibility is no longer apparent and there are no shapes. At the time of its condensation, can one say otherwise than that this is but temporary?

The Great Void of Tao (i.e.. the Great Intranet) cannot but consist of Ch'i; this Ch'i cannot but condense to form all things; and these things cannot but become dispersed so as to form (once more) the Great Void. The perpetuation of these movements in a cycle is inevitable and thus spontaneous."

Having had a brief love affair with these Eastern mystical interpretations of the new physics when they were all the rage in the early 1980's I was somewhat skeptical about applying Eastern philosophies to modern day science. I looked at Stephen Guerin's associations:

The Great Void of Tao = The Internet

Ch'i = bit patterns

Li = code

How could Easter mystics, of a thousand years ago, possibly have anything useful to say about a new emerging technology a thousand years hence?

Then the penny dropped. Of course, they were not talking about the Internet and the World Wide Web they were talking about life and existence. They were propounding an abstraction of life so as to determine its meaning and consequence.

If the environment of the Internet and the World Wide Web could be mapped across to the biological environment of planet earth to produce a common abstraction in terms of information theory, there was every reason to believe that the philosophies of the Eastern mystics would also be applicable to the Internet.

This is not just a trivial consequence. We are looking to try to understand this newly emerging phenomenon of the Web. How do we appreciate what it is, and how do we deal with it? If the Eastern mystics thought about a similar phenomenon (life) over the course of a few thousand years they must have come up with some interesting explanations and metaphors which may well be useful to us in our comprehension of this intriguing complexity.

With these thoughts in mind, I looked through the pile of dusty paperbacks I'd bought back in the 1980's. In between Capra's "The Tao of Physics" and Gary Zukav's "The Dancing Wu Li Masters" was a slim volume called "Games Zen Master's Play" by Robert Sohl and Audrey Carr.

I remembered buying this book some fifteen years before, on the strength of the title, and then being bitterly disappointed to find it quite beyond my comprehension.

It struck me that this book could provide a good test: by seeing if this new mind set I had acquired allowed any of this stuff to now make any sense. To my utter amazement the writings of the ancient Zen masters suddenly acquired an enimatic logic.

To understand, it is necessary to realize the mental attitude of the Zen masters. To them, the Self or God of the universe saw life as a type of game. The concept of Zen they promoted was an elusive concept and its explanation was by way of puzzles, contradictions and paradoxes. Typical of these teachings is the story of the student who went one day to a famous Zen master and asked:

"If someone were to ask me in one hundred years what I thought was your deepest understanding, what should I reply?".

The "Zen master replies, "Tell him I said, 'It is simply THIS'"

Until you click onto the mind set that can give such a reply, it seems to be utter nonsense. Let's look at the this same kind of mind set displacement in a contemporary technological environment:

 

Presenting a new Concept

 

Time: Early 1970s.

Place: The president's office in a large electronics company in southern California.

 

 

"The president will see you now"

The geek was ushered into the president's sumptuous office and shown to a seat in front of the huge desk which dominated the room. He waited nervously for the president to finish reading through the pile of papers on his desk. The president then looked up at him.

"You the guy with the killer app for these new fangled computer things?"

"I think so", replied the geek nervously.

"What is it then"?

"Well it's sort of difficult to describe", began the geek hesitantly. "It consists of a grid of rectangles covering the screen"

"What's in the rectangles?"

"Nothing"

"Nothing?"

"Well not until the user puts something in them"

"What sort of things?"

"Text and figures, but, figures mostly because the rectangles are used to do mathematical operations on the figures."

"So each rectangle is programmed to act like a calculator?"

"Well, they could be. It depends how the user programs them"

"You mean these empty rectangles have to be programmed by the user?"

"Yes, that's right. The rectangles are connected to each other by some kind of formula"

"What's the formula you use to connect up these rectangles?"

"I don't provide the formula."

"Who does?"

"The user"

"How are these rectangles connected to each other then?"

"They aren't connected until the user supplies the connections"

"So this killer app of yours consists of a grid of empty, unrelated rectangles which the user has to fill up with figures and connect together with their own programming and formulae."

"That's right?"

"What are you going to call this killer app of yours?"

"I thought of calling it a spread sheet"

"Nice name. Thank you for coming along"

"Thank you for seeing me"

"Good-bye"

"Good-bye"


How to become a Zen Master 

The above scene seems humorous to us now because we know what a spread sheet is and we can see how easily it would have been for somebody not to get the point of having empty rectangles on the screen.

We are now faced with a similar situation with the Internet and the World Wide Web. We have a vast network of "empty rectangles". How many people are there out there, who are saying to themselves:

"What is the point of having empty Web pages ? We have to fill them full of 'content' before they serve any useful purpose".

Wouldn't the Zen Masters smile?

In the style of the Zen Masters we could explain to these people who have a compulsion to fill their Web pages with nothing but content by using a continuation of our contemporary sketch:

 

Time: Early 1970s.

Place: The president's office in a large electronics company in southern California.

 

After the crestfallen geek leaves the room, the president's secretary enters with a batch of letters in her hand ready for signing. She sees the president staring blankly at a grid of empty rectangles and asks him:

"Was that meeting with the geek interesting?"

"The guy was a loony. Look at this. He's brought me a program which consists of nothing more than a screen full of empty rectangles which I have to fill in for myself."

The secretary looks at the screen and immediately recognizes it for what it is - because she had been learning about the concept of spread sheets at an accountancy course she is taking at the local university.

Recognizing her 'I know something you don't know' smile, the Director asks,

"What do you make of it then?"

"It's perfectly obvious. You just put whatever you want into those rectangles and you get out the results of what you put in"

"What sort of thing should I put in?"

"If I were you, I'd put my business into those little rectangles to see how it is likely to perform over the next year".

"You'd what...?"

"Your next appointment has arrived"

Another geek is ushered into the office.

"And what have you come to see me about?", asked the Director.

"I've got this idea about linking millions of computers to the telephone and building this giant brain..."

"Get out ...out ...OUT", screams the Director, bundling the secretary and the startled geek rapidly towards the door.

 

Of course, the secretary is having a little fun with the president, but, how could she have explained the concept behind the spread sheet with any simple answer? The scope of a spread sheet's possibilities are too endless to explain simply - as it is with the Web.

divider-blue

Essence of this work 

Now, here is the gist of what links multimedia, the spread sheet, biological cells, mystic stuff and the Web together.

Within the RAM space allocated to an empty multimedia player (stub movie) we can create objects using the code which comes as the engine of the multimedia document player.

Combining many of these objects together with media we can create highly complex virtual objects - which we are going to call avatars. With access to the Web we can call upon documents, objects and media from any part of the Web to create avatars of almost unlimited complexity.

As you will find in the latter part of this book, it is even possible to give these avatar objects software control mechanisms which act very much like senses and emotions. In some ways allowing them to act uncannily like humans.

This may seem an outrageous statement to make until you take a less subjective and more pragmatic view of feelings and emotions.

Consider, as an example, a very simple object whose on screen image approaches another's on the screen. It is a trivial programming task to measure the distance apart between the two objects and use this value to regulate the speed of approach and under certain conditions use the value to reverse the direction of movement. A very simple programming task - but if the object could reason it would be wondering about the mysterious force which causes it to act in this way to prevent it getting too close to other objects.

Imagine dozens, maybe hundreds, of similar little software mechanisms, being included into the design of one avatar. Wouldn't that avatar appear to have a very complex set of responses? Wouldn't it appear to have a sense of reasoning if it had to decide between these responses when they were in conflict? It is this sort of avatar which we shall be developing in this book.

Now imagine that the object is linked to a vast complexity of other mechanisms and objects on the Web such that the object to be able to question the reason for it's screen image's reaction to another on the screen.

Before the absurdity of this thought occurs to you, think about what we are considering here. We are thinking about an avatar created in RAM which has access to potentially every Web page in existence. As you will discover later, any Web page can be a used as a sophisticated object template: containing complex programming instructions.

Objects can be treated as neurons, Web pages as synapses. The ability for all the components to communicate allows infinitely variable connections. Even as the Web is today, it represents a capacity to create a structure every bit as complex as the human brain.

Certainly no complexity of this order of magnitude will be consciously designed by the human brain, but, just as the human brain has evolved in nature, there is every chance that such an intelligence will evolve of its own accord.and if such a structure were ever designed it would be available to every single avatar to appear on every single client computer on the Web.

Now imagine this super intelligent avatar questioning why it has a strange emotion to move away from another object if it gets too close. How would you answer it in a way which the avatar would be able to understand?

What if the avatar asked you about its birth and what happened when it died?

Now, go to your local library and get out one of those weird Eastern philosophy books and read it while thinking in terms of the Buddha's and the Zen masters being humans, and the unenlightened people being avatars created in computer Ram.

See if what you had thought previously to be utter nonsense now begins to make sense?

If it does, you are going to enjoy the rest of this book.

divider-blue

The enigmatic nature of avatars 

On of the nicest remarks made to me about my Lingo Sorcery book was:

"Object oriented programming seems so wonderfully simple and obvious after you have explained it and it makes me wonder why I didn't think about it in this way by myself".

The concept of avatars is somewhat similar to the concept of object oriented programming in that once the concept clicks it seems so obvious that you wonder why it was ever necessary to have to have it explained...

...excepting of course that it is very difficult to explain.

Typical, of a Zen approach to teaching Zen concepts, is the story of the Zen master who asks his pupils:

"Tell me, what is the quickest means by which you can reach enlightenment?"

All the pupils remain silent, not knowing what to answer.

After several minutes of silence the Zen master exclaims, "Excellent! Excellent! You have answered well".

Of course, the pupils are completely bemused by this - until they realize that the Zen master is telling them that enlightenment cannot be reached through words. "Zen", we are told, "Is outside of the concepts of language" (which can be totally confusing, especially if you have read this in a book which you have just bought in order to try to understand Zen).

I could never understand this paradox myself until I came to write "Lingo Sorcery" where I had the task of explaining the concept of object oriented programming using Lingo - the programming language used in Macromedia's multimedia authoring package: Director.

This appeared to be fairly easy as it involved only four special words: "new", "me", "ancestor" and "property". Within a page or so, I could easily show how to create a fully functioning Lingo object.

Unfortunately, just knowing how to create an object is quite useless in itself because, to use the object, it has to be seen within an abstract conceptual framework. This concept is extremely difficult to explain - it took another two hundred pages to get it across and even then I couldn't be certain that all the readers understood what it was all about.

In "Lingo Sorcery", I likened the experience of learning about objects to that of learning how to ride a bicycle. Object oriented programming cannot be taught as a series of logical steps - it has to be learned as an acquired experience. Even then, when the knowledge comes, it doesn't come gradually: it arrives suddenly, as a kind of explosive enlightenment.

It is this difference, between learned instruction and conceptual break-through, which lies at the heart of differences between Eastern and Western religions and philosophies.

In the Western world, the concept of "God" is the embodiment of a book of rules or laws - the Word is the Lord and the Lord is the Word. "The Word" and "The Lord" are synonymous in most Western religions. The rules come in the form of a bible; tenets of a religion; commandments; a sacred book; a set of ancient scrolls; etc. In effect, the "God" of any Western religion is the provider of a verbal heuristic strategy: a set of algorithmic rules of behavior for leading an optimally efficient life in terms of survival and reproduction.

In contrast, the Eastern "God" does not represent any particular algorithmic set of rules; the Eastern "God" represents a conceptual framework, which cannot readily be explained in terms of words and logic.

To the Western mind, the idea of worshiping an idol in the form of a physically sculptured Buddha figure is ludicrous until it is realized that this "God" is not supposed to represent any human figure at all: it is representative of a non explainable conceptual framework (Buddha is a Sanskrit word meaning "Awakened One").

In reading the draft manuscript of the introduction to this book, several people objected to the use of Eastern mysticism in a book which they felt ought to be about computer programming. "Forget all this Zen nonsense", they said, "Let's get into the code". But, isn't this just the Western mind set: looking for the algorithm, the set of rules, the instructions?

In this book, we are going to use the Eastern mind set, which doesn't look for rules but for enlightenment. In taking this approach, we will not be attaching much importance to the exact syntax of computer code or even to the type of multimedia authoring package used. We will be looking to trigger an enlightenment to an abstract conceptual framework. We shall be looking for that same kind of "something" which allows people to put models into the empty cells of spreadsheets.

In this way, we can consider the techniques and methods used in this book to be as the Buddha described his teachings "Like a raft: useful while crossing the water but to be left behind afterwards".

In Zen philosophy such practical teaching (Dhama) is referred to as:

"A finger pointing at the moon".
divider-blue

Biotelemorphic Cells

 Not many people would want to take the engine out of a vehicle and put it on a test bed before making an automobile purchase. Pretty weird hey? Well we shall be doing the equivalent of this in the first part of this book. We'll get to the regular driving part in later chapters.

In this first chapter, we are going to be taking an unconventional look at multimedia "players". These are the applications which are supplied with multimedia productions to allow multimedia documents to be run outside of their authoring environment.

These packages of concentrated computer code, provide all the complex coding necessary to interpret any instructions which might be programmed into the documents. They can be thought of as the engines which run the multimedia products described by the documents.

Avatars illustration

Fig 1.1

Players are the code engines which run multimedia documents

It is difficult to get away from the conventional mind set of seeing a multimedia player as anything other than a program which plays multimedia documents, so, we are going to use one of the little tricks that Zen Masters use to get people to think differently about a familiar object or situation: we are going to invent a new word for them and call these players biotelemorphic cells.

The "bio" prefix is to denote that the programming logic we are going to use with the players derives more from biological organisms than it does from traditional computer programming techniques. As we shall see later, in many ways we can cause multimedia players to emulate complex organic structures.

The "tele" is the implication that the players we shall be considering will often be associated with a connection to the Internet. Although this is not necessary for many applications, it is the ability for players to communicate via the Internet which can give them almost unlimited power.

The "morphic" element in the name is to denote the polymorphic nature of the products which players can materialize within their allotted RAM space. We shall be seeing how these cells can be configured to produce an infinite variety of forms, uses and purposes - allowing them to create phenomena which go way beyond both human design capability and human comprehension.

The "cell" notation is to imply that these players applications are going to be treated as if they were biological cells, where manifestations of the cell are the result of manipulating the "genetic" code contained within the player's "engine nucleus".

Avatars are intimately associated with biotelemorphic cells because it is through these cells that avatars are able to manifest themselves in a variety of different "avatar" forms, roles or situations.

divider-blue

The basic cell 

Let's begin by creating a primitive biotelemorphic cell using a conventional multimedia authoring package. Any of a variety of different multimedia authoring packages can be used, but, for the first example we will use Macromedia's Director (version 5).

A full authoring environment must be used to create the initial cell because it is necessary to install an engine of code (nucleus) together with a suitably designed portal to be able to allow the entry of media and instructions.

Once this initial cell is created, it can then be copied and distributed to produce any number of clones which can be individually manipulated and programmed to manifest avatars even in the absence of the originating authoring package.

 

 

A "Director" biotelemorphic cell

 

The product of any multimedia authoring package consists of documents specific to the particular authoring environment. This necessitates that a player be provided to "play" the documents in order that they can be viewed by others who do not have the authoring application.

The player (called a projector in Macromedia's Director) can be thought of as a self contained (stand alone) application which operates upon the media and code contained in the documents - within a specified amount of RAM space.

 

Fig 1.2

Paradigm 1 - Player plays document

 

By looking at this from a different paradigm, we can view the player as an application, which exists independent of any document, and has an allotted amount of RAM space into which documents, containing media and instructions, are sent. These documents then manipulate and make use of the code contained in the player to display the media.

 

Avatars illustration

Fig 1.2

Avatars illustration

Fig 1.3

Fig 1.3

Paradigm 2 - Document uses player's code

 

Now if we can give the players a facility to allow a user to select the documents brought into the allocated RAM space, the user will be able to choose which documents the player takes instructions from.

 

Avatars illustration

Fig 1.4

Fig 1 .4

Paradigm 3 - The player can be given a facility to allow the user to choose a document to manipulate its code

 

If we take this a stage further, to allow an intelligent agent to communicate directly with the engine code in the player and also be able to choose which documents are sent into the player's allotted RAM space, this agent could then control and manipulate the code belonging to the player in all kinds of ways; bringing in documents as and when appropriate.

Paradigm 4 - An intelligent agent can select documents to send into a player's RAM space and tell the player to act upon the instructions they contain

 

Taking this process to its logical conclusion, documents can be used to build an intelligence inside a player's RAM space so that the player would have the ability to choose and coordinate its own documents according to specific goals and strategies

 

Avatars illustration

Fig 1.5

Avatars illustration

Fig 1.6

Fig 1.6

Paradigm 5 - An intelligence can be placed inside of the player's RAM space to utilize the player's code and to bring in appropriate documents from outside

 

This, in a nutshell, is the concept of a Web avatar which is a manifestation resulting from many documents cooperating and combining together within the RAM space of a multimedia player.

Intelligently selected documents, cooperating and supplying the necessary media and instructions, can between them utilize the player's engine of code to create avatars of any conceivable form.

Now let us put this into practical effect.

divider-blue

Creating an empty cell 

The code (nucleus) and RAM space (envelope) of a biotelemorphic cell made with Macromedia's Director multimedia authoring package will consist of a Director movie projector (document player) and a single movie (document).

In Director, this is arranged simply by choosing an option from the "File" menu. This creates a projector and presents a dialog box to choose which movies (documents) the projector has to include. This is all it takes to create a basic biotelemorphic cell.

All Director projectors have to include at least one movie (document). For this initial example, a single mandatory document will be used ("pipe") consisting of nothing more than a single empty frame (screen) with one startMovie handler in the movie script:

 

on startMovie

go movie "the movie you want to open"

end

 

Opening the projector containing this "pipe" movie will then bring up a dialog box asking:

 

"Where is the movie you want to open ?"

 

The "pipe" movie, installed into the projector, is simply a programming trick to allow the user to select any starting document. In other words, when the projector is opened, it opens a completely empty cell and the user is allowed to choose the first document which is going to be used to determine the cell's activity.

Technical note:

Frames, in a Director document, are records which specify the appearance of the screen. The designer has the choice of using frames like the frames in a film clip, continuously cycling through different frames to provide screen activity. Alternatively, a single frame can be used and all the screen activity arranged through [Lingo] programming.

For the purposes of this book, we shall be working with single frames (screens) which are set to a "paused" state by putting a pause command in the exitFrame handler of any frame used:

on exitFrame

pause

end

This technique avoids the need for puppeting sprites - although all movements, sounds etc., have to be specifically activated by using the screen refresh command - updateStage.

In this way we can associate each frame with the layout and appearance of a particular computer screen which can be changed and manipulated using programmed instructions.

 

Avatars illustration

Fig 1.7

Fig 1.7

A player application which allows a choice of starter document

 

Opening up one of these empty multimedia players, which is set to ask which document it should read, can be looked upon as bringing life to the cell: causing the cell to wake up and ask the user to point to a document which will give it instructions (figure 1.7).

Although this sounds rather silly, remember, the document the user clicks upon can be a document which gets the cell to alter itself in some purposeful way.

It might, for instance, arrange for the cell to set itself up to accept instructions directly from the user rather than from a document. Amazingly, this will cause the cell to provide its own authoring environment - allowing itself to be authored without having to use the original authoring application package.

 

Avatars illustration

Fig 1.8

Fig 1.8

A player application configured to allow itself to be programmed through an editable text field

 

This is so remarkable that it bears repeating:

If the cell is provided with a suitable portal, the cell can be configured to provide its own authoring environment.

Note:

If you are not familiar with the Director authoring package, don't worry if this concept hasn't clicked yet.

You may have to read this several times before the pieces come together. In these first chapters we will be racing through a crude outline of constructing a basic biotelemorphic cell in order to get a grasp of the underlying concepts. In terms of the automobile metaphor we have an engine on a test bed.

Don't be disappointed or alarmed if at first the descriptions seem a little technical, too confusing, or even too simple - these will be explained in more detail later. The initial goal is to get some kind of conceptual picture so that we can rise above the level of technical detail to explore the practical applications.

We have seen how easy it is to create a basic biotelemorphic cell which comes with its own RAM envelope. Let us now proceed one step further, to give this cell a portal - a doorway through which we can send manipulative messages to the code in the cell engine.

divider-blue

The biotelemorphic cell portal

To be able to control and manipulate what goes on in a biotelemorphic cell we must arrange for the cell to have a portal between its internal and external environments.

We can do this simply by creating (using the Director authoring package) a document which we can use as a stepping stone or bridge. We can then open this "portal" document with the player when the dialog box asks, "Where is the movie you want to open?".

The "portal" document will then be loaded into the RAM space allotted to the player and through this document we can pass messages and instructions to the player's engine of code. See figure 1.9a.

Avatars illustration

Fig 1.9

Figure 1.9 a

Messages and instructions can be sent to the engine code of the player via a portal document loaded into the player

 

We will have to include, in the design of the "portal" document, suitable features which will enable us to pass objects, media and instructions into the cell's environment.

In many ways, this "Portal" document can be viewed as a kind of "Trojan Horse" - used for getting media and control elements into a biotelemorphic cell - to seize control of the cell's activity.

The simplest example of a "portal" document design would be one which would allow us to control the cell through direct input from the keyboard.

This type of "portal" document would need to place an editable field ("Input") on the screen for us to be able to type in appropriate instructions and communication messages (see figure 1.9 b).

To be able to initiate action from the contents of the editable text field, a "do" button will also have to be provided. Here is an example of a simple "do" button's mouseUp script :

 

on mouseUp

put "Input" into fieldName

do field fieldName

end

 

Clicking upon this button on the screen will cause the do command to send the contents of the "Input" field to the engine code where any Lingo instructions it may contain will be acted upon.

(Note: The do command is potentially the most powerful instruction contained in multimedia languages)

If you set up a simple projector and "portal" movie document yourself (or use the projector and "portal1" document provided), type the following lines into the field:

 

put return & the time after field fieldName

beep

put return & the date after field fieldName

 

Clicking on the "Do" button will produce a single beep and the result shown in figure 1.9 b.

 

Figure 1.9 b

The screen of the "Portal" document just after the "Do" button has been clicked

 

This simple exercise illustrates the unrestricted access through the portal to the cell's engine code.

By typing into this "input" field,, we will be able to get the cell to activate scripts covering the complete range of the Lingo programming language. Also, we will be able to populate the RAM space of the biotelemorphic cell with any kind of objects and media - all without having to use the Macromedia authoring package.

To show how we can create objects in the RAM space of the cell, we will, alter the script of the "Do" button and use another little programming trick which will enable us to parse and extract embedded code placed into the "Input" field:

 

on mouseUp

put "Input" into fieldName

put field fieldName into embeddedScript

repeat with i = the number of lines in embeddedScript down to 1

if word 1 of line i of embeddedScript <> "--" then

delete line i of embeddedScript

else

delete word 1 of line i of embeddedScript

end if

end repeat

do field fieldName

end

The trick:

What this "Do" button mouseUp script does now is to place any commented out lines in the "input" field into a variable called embeddedScript. This allows two separate scripts to be placed into the "Input" field: one acted upon immediately by the "Do" button and the other placed into a variable - to be used later.

Note, for those not familiar with Director scripting:

Lines starting with a double dash ("--") are not acted upon and are said to be commented out. These lines are thus ignored by the do command when it acts upon the field.

When the commented out lines of the "Input" field are placed into the variable embeddedScript the first word (the double dash) is removed. This removes the commenting out of the script when it goes into the variable, allowing the script to henceforth be acted upon by the cell's Lingo engine whenever called upon to do so.

The significance of this little trick may not be appreciated until you understand the way in which Director players store scripts and creates objects in RAM.

Director documents store all scripts and media in records called members (see figure 1.10). These member records are themselves stored in records called casts.

 

Figure 1.10

The parent scripts of objects are stored in the scriptText records of cast members of Director documents

If the engine code of a player is asked to look for a named script or item of media, it looks in the cast member records of the currently playing document for the name.

This is the key to manipulating the biotelemorphic cell because, if we can place scripts and media into the locations the engine looks in, we can call on the engine to act upon them.

In particular, we can use this route to install software objects into RAM which will have an existence independent of any document.

We shall be covering the exact nature of objects later but for the moment just consider them to be like miniature applications: a collection of scripts and media which are stored at a particular address in the memory space assigned to the biotelemorphic cell.

The complete design details of objects are always contained in special scripts call "parent scripts" which are used by the player engine to create an object when called upon to do so. (i.e., each object creation script (parent script) contains the full instructions - in text - for the design of a particular object).

To get an empty biotelemorphic cell to create an object in its RAM space, we have to make sure that a suitable parent script is at hand in a place where the cell engine knows where to find it.

The technique then, of getting a Biotelemorphic cell to install an object in its RAM space involves first getting the cell to first place a suitable parent script in a place where it will find it later - in the scriptText of one of the cast members.

 

Avatars illustration

Fig 1-10

Avatars illustration

Fig 1-11

Avatars illustration

Fig 1-12

Figure 1.11

The player will search for a parent script in the scriptText records of cast members when asked to create an object in RAM

Having placed the textual description of an object in a place where the player code engine can find it, we can then issue a command to the biotelemorphic cell to create an object to that specification (figure 1.12).

 

Figure 1.12

Once the parent script has been put in place, the biotelemorphic cell can be sent an instruction to create an object from it

If we had a parent script called "pokerPlayers", which contained all the detail necessary to create an object which could play poker, we could create a poker player named FRED by issuing the following birthing statement:

set FRED to new(script "pokerPlayers")

This command line, fed into a biotelemorphic cell, would go to the code engine and a poker playing object called FRED would be created in RAM according to the specifications found in a parent script named "pokerPlayers" (see figure 1.13).

Avatars illustration

Fig 1.13

Figure 1.13

A poker playing object named "FRED" is created in RAM from the specification found in the "pokerPlayers" parent script

Once the object FRED is created, messages can be sent to it (see figure 1.14) and FRED will be able to act upon these message (according to how it is programmed) to manipulate the code in the player engine.

Figure 1.14

Messages can be sent to the object "FRED" who can act on these messages to manipulate the player code and display the relevant responses on screen

From the same parent script, any number of similar poker playing objects can be created in RAM. Here is another command line to send to the biotelemorphic cell to create another poker playing object called JOE:

set JOE to new(script "pokerPlayers")

This object will appear in RAM and although created from the same parent script will be quite a different object with a different address and able to act quite independently of FRED.

Figure 1.15 shows how a poker game can be set up between the user of the biotelemorphic cell and the two objects FRED and JOE. Notice that the user, via the portal document, can send messages to either of the objects and also to the code engine of the cell.

 

 

Figure 1.15

When two poker playing objects are created in RAM the user can send messages to them both. They can send messages to each other and can communicate back to the user via the computer screen

 

The objects are completely independent and act on messages according to the responses which were specified in their parent scripts. These responses could result in them sending messages to each other to produce complex interactions - in fact the user could start the game off and then retire from the game to leave the two objects continuing to play.

The objects can independently manipulate the biotelemorphic cell's code engine using any appropriate commands and, if necessary, use the cell's engine to produce suitable displays on the computer screen (see figure 1.15).

From this you might be able to get a better idea of the concept of avatars. JOE and FRED are avatars. They have been manifested in the RAM space of the biotelemorphic cell.

By sending their parent scripts across the Internet by Email, they can be sent to play poker in other people's biotelemorphic cells. Poker playing objects, perhaps using different parent scripts, can be created by different designers who could email their players, as parent scripts, to an International challenge game at a neutral biotelemorphic cell somewhere across the other side of the world.

Before you catch your breath, at the realization of the implications of these biotelemorphic cell avatars, let me just mention that the game itself can be considered to be an avatar in its own right. A set of objects, working together purposely to achieve a purpose. In this example it is a trivial game of poker, but, the same principle can be used to design objects to work together for more serious purposes.

Imagine then, the possibilities of different objects coming in from all parts of the Internet to join in some activity within a biotelemorphic cell. Imagine objects competing and cooperating. Imagine objects adapting and evolving.

Once you can begin to get this full picture into your mind you will have begun to grasp the concept of the biotelemorphic avatar and will understand what this book is all about.

divider-blue

The cunning plan

 In the previous section, we missed out a vital step: that of getting the parent script into the scriptText area of the currently playing document.

Objects are created from parent scripts located in the scriptText of the Director cast members (see figures 1.10 to 1.14).

If a suitable parent script can be embedded into the text of the "Input" field, we can instruct the player engine to put it into the scriptText of a cast member slot where we know the engine will find it later when we instruct the cell to create an object.

Using this cunning plan, we can fill the RAM space of the biotelemorphic cell with all kinds of interacting and cooperating objects.

Objects in Director

The object oriented features of the Lingo scripting language allow us to designate areas in memory to be used for self contained objects which can act like applications (similar to the way Java applets can be used in a browser environment). The media and the methods used by these objects, run under the core Lingo code (engine) of the biotelemorphic cell.

Potentially, these objects can be arranged to do anything any multimedia document can do and can be designed to be powerful applications in their own right. We shall be covering the design of objects extensively later in the book but for the purpose of these opening chapters we shall use skeleton objects with just token abilities and characteristics.

To demonstrate how objects can be created and established using the simple "Portal" document, we will create a simple object named "objectCreator" in the RAM space allocated to the biotelemorphic cell we have just used.

We will do this in easy stages, for those who might not be familiar with Director; explaining, as we go, how objects are created and used in the Director environment.

Director makes it easy to create objects in RAM because all you have to do is issue a birthing statement and the object is created from the parent script and the address of that object returned as a result of the birthing statement.

In affect, the programmer says "I want to create an object called FRED" from such and such parent script and then the Lingo engine checks what space is available, creates the object and immediately returns the address in RAM to which messages to FRED should be sent.

Once the FRED object is allocated an address, messages can be sent to FRED to correspond with the scripts in FRED's design. This allows FRED to be quite independent of anything else in the cell or the system.

The birthing statement is of the form:

set FRED to new(script "Fred's parent script")

From the moment that command line is issued, FRED is in existence as an object in RAM. The variable FRED will have received an allocated address in memory so that any instructions or data sent to the variable FRED will automatically go to the address in memory contained in the variable FRED.

Note:

If this is your first exposure to objects and all this seems like Mickey Mouse, don't worry, there are plenty of examples coming up which will thoroughly familiarize you with object creation, design and use.

At this stage, it is only important to know that an object can be created by means of a text which is placed into a named area of memory which the Lingo engine of the biotelemorphic cell can find. The object is represented by a variable (usually a permanent global) to which messages should be directed.

Now, the cunning plan with "Director made" biotelemorphic cells, requires that we slip a parent script for an object into the portal document and position it into the scriptText area of the cell's records.

To do this, we shall need to arrange a suitable "stepping stone" within the portal document. This we can do by using a "dummy" cast member.

In Director, with the authoring package, we create a field member from the menu and give it the name "dummy". This member will be automatically created with a scriptText which we set to do "nothing" (see figure 1.16).

Having created this "dummy" member, we have a named cast member whose scriptText we can use to pass on parent scripts to the code engine of the biotelemorphic cell.

 

Figure 1.16

Previously prepared dummy text cast member with dummy script put into the "Portal" movie

 

Type into the "Input" field of the "portal" document (making sure there is a space between the "--" commenting out word and the next word):

-- on new me

-- return me

-- end

--

-- on makeANoise me

-- beep 3

-- end

 

set fieldName to "dummy"

set the scriptText of member fieldName to embeddedScript

global objectCreator

set objectCreator to new(script fieldName)

 

When the "Do" button is used to do this field, the mouseUp handler parses the commented out new and makeANoise handlers: putting them into a variable called embeddedScript.

The do command then proceeds to execute each line in the field in turn, except for those lines which were commented out (i.e., those starting with the word "--")

Note:

Notice that these script lines in the "Input" field begin by placing the field (member) name into a variable. This is because the do command isn't happy with quotation marks and should be avoided at all times except when used in the context of placing strings into variables.

The executable command lines of the script in the "Input" field cause the "Do" button to place the contents of the variable embeddedScript into the scriptText of the previously prepared dummy text field named "Dummy".

Note:

Simply by setting up the scriptText of a cast member in a Director movie with a birth handler, turns any scriptText into a possible parent script for creating objects in RAM.

After clicking on the "Do" button", the scriptText of the "dummy" will appear as shown in figure 1.17.

 

Figure 1.17

The scriptText of the "Dummy" cast member turned into a parent script after pressing the "Do" button

 

As mentioned previously, to be able to communicate with objects easily, they are usually "birthed" into variables. This allows messages to be sent to a name rather than to an obscure RAM address, i.e., the variable bearing the name of the object is not the object itself but a container which holds the address of the object - where any messages addressed to the named variable are passed.

In this case, an object is birthed from the parent script of the "Dummy" cast member by the lines:

 

global objectCreator

set objectCreator to new(script fieldName)

 

With the "Do" button, these final two lines in the "input" field create a global called objectCreator and then births an object into this global using the newly installed parent script of the cast member "dummy". This newly created object can then be addressed by the name objectCreator.

To prove that you have created an object with the same abilities as the parent script that was placed in "Dummy": click on the "do" button, clear the "Input" field with a drag selection and a delete.

Type into the empty "Input" field, the command lines:

 

global objectCreator

makeANoise objectCreator

 

Now click on the "Do" button again. You should hear three beeps. This is the makeANoise object in RAM carrying out the instructions in the handler makeANoise

If you want to know exactly what this objectCreator object is, clear the "Input field again and type:

 

put return & objectCreator after field fieldName

 

Then click the "Do" button.

You'll find something like that shown in figure 1.18, where the content of the global variable objectCreator is shown as containing an address in memory. This is the address of the object to which all messages addressed to the variable objectCreator will be sent.

 

Figure 1.18

The content of the global variable "objectCreator" is shown to contain the object's address in memory (RAM space of the cell)

The full scope of this cunning trick lies in the fact that once an object is created in RAM by the cell engine it no longer needs its parent script. This leaves the scriptText of the "dummy" cast member free to be used to bring another parent script in - to be able to create another kind of object on RAM.

Any number of different kinds of objects can thus be created in RAM using this same entry route into the biotelemorphic cell.

You might reflect upon the fact that this is analogous to the kind of strategy which viruses use to invade and take control of biological cells. It is also similar to the kind of strategy which is used in genetic engineering and molecular biology to modify or change cell structure or function.

Hopefully, this section will have given you some sort of an idea as to what an object is and how you can get them into the RAM space allotted to a biotelemorphic cell.

divider-blue

Time to start thinking

What this simple exercise has attempted to do is to show you how to create a very powerful application engine in RAM.

If you look at your Ram allocation through something like "MemoryMapper" - which gives a graphical image of the physical allocation of Ram - you will see something like that shown in figure 1.19


Figure 1.19

A memory map showing a Director player named "Bio.pjr" together with its "portal" movie in memory

 

Figure 1.19 shows a Director player engine (the projector) and the portal (the "portal" document) as a kind of "cell" within RAM. This is the physical appearance of a biotelemorphic cell made using the Director authoring package which uses a RAM space of 4,112 kilobytes, of which 3,328 kilobytes is free.

The used space of 784 kilobytes is the amount of memory taken up by the player code (engine) and the portal movie - this constitutes the nucleus of the biotelemorphic cell which has been created.

It is appropriate at this stage that we completely forget about all the metaphors that are normally used with the Director application. As far as we are concerned we are dealing with a "cell" in Ram, into which we can place objects.

In this initial simple example, we can place objects into the free space within a cell by means of the portal facilities of an "Input" field and a "Do" button". We can also communicate and control the objects which we place into the cell by using these same portal facilities ("Input" field and "Do" button").

In essence, this is the total of what the biotelemorphic cell is all about. It is a cell with a Lingo code engine and a portal through which objects, messages, instructions and media can be passed in order to build and control objects and media.

It is the spread sheet equivalent of the "empty rectangle".

 

The virtual cross platform nature of the cell

On first thoughts, the biotelemorphic cell appears to be platform specific. It is certainly true that every different platform will require a different kind of cell to cope with the local hardware and software configurations, but, this is unimportant. What is important is that environment within the cell remains constant across platforms. As far as messages and media entering the cell are concerned it doesn't matter what the platform is.

The biotelemorphic cell must be treated as part of the users system in the same way as the hardware or the operating system. As you will see, this avatar stuff isn't about sending cells across the net: they remain fixed and constant on a client machine. The whole essence of avatars is that they are enigmatic software phenomena which manifest themselves within the cells from messages and media enering from outside.

If you don't quite get the idea of this, remember that to send an email to somebody, you don't have to send a copy of Eudora or Claris Emailer with every post - the posts manifest themselves within the environment of the client's own mailing program which installed by them on their machine. Similarly it isn't necessary to download a copy of Navigator or Explorer every time somebody reads a Web page.

 

What is the nature of the object we created?

 

With the above instructions to the biotelemorphic cell, we created a very simple object within its RAM space which did nothing more than make a noise - three beeps.

Clearly, if we can create an object which will make three beeps when called to do so - simply by sending it a message to activate a Lingo handler - we can create objects which respond to a variety of different messages to activate all kinds of complex Lingo scripting - in fact, any scripts using any commands which use the words and syntax of the Lingo programming language.

As we shall see later, Lingo objects can be given greater functionality than the activation of Lingo scripts: they can also be given a very useful feature called a property.

By declaring a property variable in the parent script of an object, an area of RAM memory will be added to the object's allocated memory space, sufficient to hold whatever content the object might want to store there.

This property feature allows individual objects to store media and to record various conditions and events. In other words, Lingo objects can be given "pockets" which they can use to carry information or bits of media around with them.

These property "pockets", allow the floating objects to have "memories" where they can store information "learned" from the environment or from other objects.

As we shall also see, these "pockets" will allow objects to have an image and a position on screen if necessary.

More incredibly, these pockets will allow the objects to have various types of "smartness" and simulated "emotions".

 

Similarity to Biological cells

The physical reality of a biotelemorphic cell is that it consists of a nucleus of compacted code which is acted upon by instructions coming from the outside to make things happen in a specified empty space within an enclosed area of RAM.

To make a further conceptual jump - needed to escape from the conventional metaphors of multimedia authoring packages - it will be useful to view the biotelemorphic cell with its player/application and its RAM space as analogous to a biological cell which also has a nucleus of code and a confining membrane.

Using this biological metaphor, we can view the RAM space allocated to a player/application as being equivalent to the boundary of the biological cell. Similarly, we can view the player code (engine) as equivalent to the nucleus of a biological cell which contains genetic code (the genes).

Documents and messages entering the RAM space of a biotelemorphic cell would be analogous to the molecular messages which are transmitted through the wall of a biological cell to activate the genes in the cell's nucleus to bring about all the wonderful transforms which translate into biological life.

Figure 1.20 is a diagram of a biotelemorphic cell. Compare this to the display we get from the MemoryMapper application (figure 1.19) and the diagram of a biological cell (figure 1.21).

It doesn't take much thinking about to become aware of the close similarities.

 

Figure 1.20

Diagram of a biotelemorphic cell in memory (Ram)

 

Figure 1.21

Diagram of a biological cell

 

Biological cells communicate with each other and the environment using a wide range of receptors, pumps and channels which input/output various chemicals, molecular signals and components across their bounding membranes.

As we shall see later, by using a variety of software mechanisms to exchange messages, information and media with each other and the environment, biotelemorphic cells can act in a very similar way to biological cells.

Upon first thoughts, it may seem counter productive to compare a a relatively simple software structure with the vastly more complicated structure of a biological cell which is many orders of magnitude more complex. However, we are going to use this biological cell metaphor to examine the higher order of organization which results from these basic mechanisms - not to examine minutiae of detail.

We will be looking, not at the details of structure or operation, but, at the more abstract "consequences of interactions". We will be looking to compare the holistic effects not the static detail.

The total variety of all the life forms present in our planet's physical environment provide ample evidence of the power and complexity which can be achieved through the interaction of biological cells.

If we can abstract out, the underlying structures and mechanisms which produce significant holistic effects in the biological world, there is no reason why we shouldn't simulate those same principles in a biotelemorphic cell world - to achieve similar feats of complexity, creation and variety.

Given time, it should be possible to reproduce the complexity and sophistication of the biological world in the virtual environment of the computer, the Internet and the World Wide Web - creating not physical life forms but a more ephemeral form of life - avatars.

The interaction of communicating cellular objects is truly a breath taking concept which I hope you will discover for yourself in this book - the marvel is that such incredibly powerful results can be obtained from abstract structures which in themselves are essentially very simple.

divider-blue

Jump starting the concept 

Perhaps you have already clicked onto the underlying concepts and become aware of the vast potential for novel and exciting applications which the Internet and the Web have opened up?

Maybe these revelations are yet to come, as you progress through the book?

For those who are impatient to get a glimpse into the novel new world we shall be uncovering here in this book, below are listed a few of the areas we shall be explaining with coded examples.

1) Biotelemorphic cells can be provided with Internet protocol engines which will allow them, and the objects they contain, to use the Internet and the Web to deposit and retrieve media and documents, send emails and open up chat lines.

2) Objects created in cells can be designed to use the portal themselves, to input new objects into the RAM space of the cells they themselves were birthed in. They will be able to import new media and instructions; from a hard disk, a CD-ROM or the Web. Cell objects will be able to change or process the information, display images and produce sounds.

3) Full multimedia presentations and movies can be loaded into a biotelemorphic cell. To these movies can be added all kinds of objects, media and information which objects will be able to be alter, change or update presentations on the fly - according to additional data brought in from the Web, a CD-ROM, a hard disk or an email.

4) Any kind of presentation, service or tool can be built from scratch upon the introduction of a "trigger" object which will set off a sequence of fetching and loading events which result in the immediate creation of a simple or complex avatar from components.

5) Combinations of different objects, brought together in the RAM space of a biotelemorphic cell, can combine and cooperate to provide all kinds of services and perform many different types of operations. They will be able to alter, monitor and control each other, pass messages, create message paths and form hierarchies.

6) Cell objects can also be given memories, sensors, and different forms of "smartness". They can be arranged to combine, cooperate to share their abilities, knowledge and attributes - polymorphing into virtual super objects.

7) In the human brain, dendrites from brain cells reach out to each other and exchange chemical signals across synapses. In a similar way, cell objects will be able to reach out across the Web, using Web pages as synapses, to exchange information, media and instructions.

8) Like the avatars of Eastern mythology, characters and images can manifest themselves in a cell as a result of their component parts being assembled from a wide variety of sources. Not only will avatars be able to manifest as characters, they will also be able to manifest as complete movies, scenes, presentations, processes, or tools.

From these few thoughts, it does not take long to realize that a biotelemorphic cell, which is initially opened empty, could be made to "read" an email which creates a simple object; which initiates an action; whereby the object reads pages from the Web to create other objects; which get data, media, instructions and additional coding from a mix of Web sites, CD-ROM and the hard disk to create any kind of avatar which the imagination can dream up.

Clearly, a scenario could easily develop where the avatars are not just the creations of a single human mind, or, even the result of an organized group of minds. The avatars would have the whole of the millions and millions pages of the Web to draw upon to design and improve themselves.

In the complex systems that are now possible, who would really be able to tell where human minds end and the virtual minds of the avatars begin?

Hopefully, this first chapter will have triggered some form of enlightenment. Shown you not just a dream of untold complexity but given you an introduction to a strategy of eminently practical reality - and it is all brought about through using the same simple mechanism as nature - an empty cell with a portal.

Think of the empty rectangles of a spread sheet and remember the vastly complex organizations and processes which they can be made to model.

Now consider the empty biotelemorphic cell as being filled with programmed objects and connected to the unlimited resources of the Internet and the World Wide Web - who dares try to imagine the variety of different models which could be brought to life?

 

 

Examples of avatar application

 

Avatars and biotelemorphic cells can be used in almost any conceivable application involving communication and information processing.

To give a few examples, of the kind of application where avatars might be useful, is something akin to trying to point out a typical pattern within a system of chaos. There are just too many possibilities for any set of examples to even scratch the surface of the possibilities available. However, here are just a few ideas which will be covered in more detail by coded examples in this book.

-----------------

Teachers will be able to stack all of their miscellaneous course notes and diagrams onto "homemade" CD-ROMs which they can give to their students. They will then be able to send an avatar, by email, to each student to sort through the CD-ROM and provide every one of them with individual sequences and presentations as a customized study program which materializes on their computer screens.

Updates and additions could be gathered from the Web and appropriately inserted into these study notes. Avatars could monitor student progress and report back by way of the Internet to the teacher who could then act on this information to email further avatars to alter or adjust the student's program as needed.

Similarly, avatars can be designed to strip specific paragraphs or sections from an overwhelming volume of data on the Web. Presenting the information in a concise and attractive form on a client machine.

Sales and service departments can use avatars to assemble and deliver combinations of up to date notes, diagrams, specifications, prices and deliveries to satisfy particular client problems or needs.

Avatars can be designed to include and to represent people. The roles of avatar and user can be merged together in valuable symbiotic relationships.

Web based personal intelligence and information systems can be created, which assist the user in maintaining networks of contacts and information sources.

Personalities, abilities and characteristics can be cloned onto avatars, allowing avatars to be sent across the Web to represent their owners to seek out new friends and cooperators, find jobs and new business contacts.

There is no limit to the possibilities for Web based games: for amusement, adventure, social and educational reasons.

-----------------

One last thought to end this chapter. If we can build intelligence into an avatar - which we shall be covering in later chapters - how large could an avatar's brain be?

In considering this problem, think about how the human brain is organized. The continuous flood of signals, emanating from our senses and sensors as they monitor internal and external conditions and events, are constantly being processed by various specialized sections of the brain. The brain must consist then of a vast network of independent processing units connected directly or indirectly to a myriad of sensors and monitoring units.

It is quite possible that the Internet and the World Wide Web will evolve to incorporate many different computing mechanisms - accessible from the Internet. This will make it similar to the human brain with its vast number of individual specialized computing modules.

If this comes about, every individual biotelemorphic cell would be capable of communicating with any of these computational sectors and be able to download suitable interface devices to within its own RAM space.

In effect this would allow any avatar, manifested in any biotelemorphic cell on any individual computer, to have a virtual brain the size of the combined computing powers of the whole of the World Wide Web.

We shall be speculating upon this possibility in the final chapter

Collection of stories of water welcomes your input at S6.CLOH.org.

>