Table of Contents

preface xi
acknowledgements xii
author online xiv
overview xv
introduction xxii
programming examplesx xviii

1 Hijacking a computer program to create artificial life 1

     1.1 Multimedia players: The biological cells of the Internet 4
               Giving control to the client 7
     1.2 Client-side control 8
     1.3 Practical reality 9
     1.4 Who is the designer of an avatar? 11
               Where is the intelligence? 11
     1.5 Choice of A-Life avatar cell engine 13
     1.6 Creating an A-Life avatar cell 14
     1.7 The cell portal 17
     1.8 The cunning plan 26
               Creating an object from the client side 27
     1.9 Summary 31


2 Add-ons, plug-ins, Xtras, and supplementary engine code 33

     2.1 Creating an avatar 42
     2.2 Summary 52


3 The ability of documents to take control 53

     3.1 Tagged text and parsing 54
     3.2 Auto control, rogues, and viruses 66
               Thinking time 69
     3.3 Control by email 69
     3.4 Where and what is the avatar? 77
               An avatar on the Web 77, Rogue documents 80
     3.5 Transferring documents from the Web to the local system 81
     3.6 Creating frames and frame scripts on the fly 84
     3.7 Importing nontext documents from the Web 91
     3.8 Summary 95


4 The creation of complex systems 97

     4.1 How to safeguard an avatar system against rogues and viruses 100
     4.2 Intranets 101
     4.3 Object-oriented design strategies 102
     4.4 Adaptability and metamorphosis 105
     4.5 A business as an object-oriented structure 106
     4.6 Presenting a new concept 109
     4.7 Interaction with the Internet 114
     4.8 Tricks and illusions with intranets 117
     4.9 Avatars as marketing tools 120
     4.10 The illusion of bots 122
               Bot party 123
     4.11 Summary 129



5 The practical aspects of programming an A-Life avatar 131

     5.1 A recap 132
     5.2 Examples of avatar application 134
     5.3 The dimensions of a computer environment 135
     5.4 Structure of the A-Life avatar cell 137
     5.5 Separate casts 145
     5.6 Onscreen presentation--sprites, frames, and scores 147
     5.7 The human/avatar communication interface 155
     5.8 Lists of pointers 161
     5.9 Objects and behaviors 163
     5.10 Movies in a window 165
     5.11 A-Life avatar cells and the Internet 168
     5.12 Practical avatar technology 172
     5.13 Summary 174


6 An avatar interface to the Internet 177

     6.1 Converting real world to virtual world 186
     6.2 Bringing in customers 193
               Bringing a new customer into the cafe 194
     6.3 Filling the cafe with customers 200
     6.4 Virtual objects 205
      Reconfiguring virtual objects 211, Are objects in RAM or onscreen? 212
     6.5 Expansion of the cafe concept 214
     6.6 Summary 217


7 The opening of a new paradigm 219

     7.1 A client-controlled door to external avatars 223
     7.2 Setting up a menu in an A-Life avatar cell 223
     7.3 From cast document to avatar 229
     7.4 Thinking Time 237
     7.5 Adding to an object's abilities and knowledge 238
               The customer object shows what it has learned 244
     7.6 The flexible virtual object 247
     7.7 Discriminative message passing 252
     7.8 Summary 255


8 Getting an avatar to make decisions 257

     8.1 Responses and reactions 258
     8.2 Avatar response to environmental prompts 262
               Encroaching on the world of science fiction 268
     8.3 Message passing 269
     8.4 Summary and conceptual implications 275


9 Emotive decision making 279

     9.1 Intelligent objects 280
               Joe's brain 281
     9.2 Emotional decision making 286
               An abstract view of emotions 288
     9.3 Considering other options 293
     9.4 Conditioning Joe to deal with new situations 296
     9.5 A generic Joe object 300
     9.6 Influences that change Joe's emotions 304
     9.7 Nonlinear systems and artificial intelligence 306
     9.8 Summary 306


10 Hilbert space 309

     10.1 Hilbert space and genetic algorithms 310
     10.2 The strange concept of a multidimensional space 311
     10.3 Hilbert space 314
               The use and power of Hilbert space 316
     10.4 The genetic algorithm 319
     10.5 Function replication 321
     10.6 Complex structures in Hilbert space 328
     10.7 Emotions and strategies in Hilbert space 331
     10.8 The Web, avatars, and Hilbert space 333
     10.9 Extending Hilbert space to include CD-ROMs 336
     10.10 Worth a thought 338
     10.11 Modeling "thinking" in Hilbert space 340
     10.12 Nonlinear results and rules in the environment 343
     10.13 Evolution ofa heuristic strategy 353
     10.14 Different types of genetic algorithms 355
     10.15 Summary 357


11 The merging of the silicon and biological worlds 361

     11.1 Computers and biological systems--a common abstraction 368
     11.2 The enigma of a virtual object 371
     11.3 Resolving the difference between biological and A-Life avatar cells 375
     11.4 Using avatars as links to the Internet 381
     11.5 Commerce--the energy driving the evolution of the Web 388
     11.6 The wormhole 393
     11.7 Conclusion 394
     11.8 Summary 396

epilogue 399
references 402
index 409