The Origin of CyberLife
Brits have a reputation for being innovative, eccentric or just plain weird. Think of entrepreneurs like Sir Clive Sinclair (famous for the ZX81 and Spectrum computers, the electric tricycle, and the QL 16 bit computer) or Sir Richard Branson (of the Virgin empire and ballooning adventures). Enter Steve Grand, creator of the game Creatures. He wants to throw out object oriented programming and create consciousness within the computer. Is Steve Grand a visionary seeing a new order of computing or just a game developer with a God complex?
An interview with Steve Grand by Sue Wilcox
In September 98 the second Digital Biota conference drew a small but select group of invited speakers on Artificial Life to Magdelene College in Cambridge UK. I was one of the speakers and took the opportunity to talk with Steve about his revolutionary ideas for computing and the future of life in cyberspace.
Steve Grand sets the technology strategy for CyberLife, a Cambridge UK company working with Artificial Life technologies. He is a self-taught programmer who never went to university. His game Creatures (version 2 came out in September 98 to critical acclaim from male and female users) has cute lifeforms called Norns that live and reproduce and die in their world of Albia inside your computer - they are also capable of learning and evolving. With Creatures you play virtual God or virtual parent - tinkering with the genes of your Norns and then teaching them how to speak and survive.
Steve Grand against a backdrop of the Creatures set model
Your Creatures are more than virtual pets. It seems as if you're creating children for people.
Well, I'm trying to. It's the emergence that you want. You can't program in emergence, it just has to emerge.
Does believability really equate to intelligent emergent behavior? It seems from the successful products - Petz and FinFin, that believability equates to cute cuddliness. If you can love it it's believable.
Only to an extent. Loveability is a big factor in believability. It depends how far you want to go with it. You hit limits very quickly. What you want is the right pathology - when something goes wrong it goes wrong in the right way. You need the quirkiness and dynamics of the real world. For example, programming a flight simulator is a huge task when you explicitly try to program in the behavior you want to get out, for example stalling and spinning. Whereas if you program in the physics and the underlying structure the flight behavior emerges naturally.
It sounds as if your creatures would make responsive characters to use in games. Will we see them as Non Player Characters (NPCs)?
Yes, but with a slight shift of focus. If you have the user in mind it's as bad as having the graphics in mind. You've got to have the creatures in mind, and you've got to build the world for them. And then it'll make sense and be interesting for the user. At the beginning of Creatures I said to myself ''I want to tug at people's heart strings. I want them to care about these creatures.'' They're only going to care about them if they believe in them, which means they have to think they're alive. I don't think I can fool people, because people are very adept at seeing when things are right or not, so I've got to make them alive. Whereas many virtual pets start from the other end. The designers think 'What do the users want? What do they expect?' and then they program in the behavior. And that gets it wrong - because you can't. It's OK at a certain level but beyond that my approach overtakes the behavior-based approach.
How did you become interested in Artificial Life and end up as a games programmer?
I went to teacher training college and found I was really crap at standing up in front of a roomful of kids and talking. I was not very interested in teaching but I was very interested in how children's minds develop. I discovered computers, and got much more interested in Artificial Life than natural life.
I published educational software myself, but only made peanuts on it. And then I started writing educational software for Logotron as a freelancer. They started getting interested in games, went to the States to look for new products, and came back with a boxful of games. This was nothing to do with me, I hated computer games. So then there was a management buyout. One side bought out the games and went its own way [and became Millennium] and Logotron was bought out by Longman. I ended up programming a version of a side scrolling platform game Millennium wanted porting to the PC - their expert said you couldn't do fast background scrolls on the PC. I didn't know it couldn't be done, so I did it. A few weeks later the game was done and everyone was sufficiently impressed that I got more business. I found myself reluctantly a games programmer.
I wrote a multi agent sim, called Robin Hood, based on biological principles with lots of autonomous characters that did their own thing and the story emerged from it. In our terms it was reasonably successful - [not certain of qty] it was our second biggest seller. Then I used the same engine to do another game which was more elaborate but a lot more boring, it was an awful game called 'Rome AD 92'. It was published by Maxis. It flopped. It was a case of trying to screwdriver a new way of looking at adventure games into an old format. To linearize this non-linear emergent thing. A big mistake. They should have listened to me.
How did you get from 'Rome' to something as hugely divergent as Creatures?
Maxis published 'Rome' in the States. I went over to Maxis to finish it off. They were really into agents and agent interfaces. SimLife was just being done. They wanted to work with me again. So I said 'how about I do this little pet that lives on your screen?' Effectively Dogz. And they didn't like it. So I said alright it lives in a virtual world and you're like an anthropologist, you just look in on these creatures while they do their own thing. They liked that so we went with it. But things changed inside Maxis - they didn't believe that just making a creature that was alive was enough. They wanted gameplay. A lot of people didn't understand (in Maxis and in Millennium) that you can't mix gameplay, in the traditional sense, with autonomous creatures 'cos they just don't read the script. You can have one or the other. So it didn't seem right and we parted company. Michael, our CEO, really believed in Creatures by this time. He had a 'Road to Damascus' experience when he sat down in front of a computer with it on, the Creatures did something weird and he said ''you didn't program that did you?'' and after that he was hooked.
Another CyberLife development from the mind of Steve Grand is a new computing paradigm - cellular computing. This uses a computer architecture called Origin to create cells for each object in a computer program. Unlike the Objects in Object Oriented programming these cells have no need to know about the other cells in existence. Using a biological metaphor for the way the code works Origin Cells send out messages like the chemical signals used by real cells.
Why is the Origin architecture so important?
Because software complexity is growing out of control. Everywhere. A Telecom switch contains 12 million lines of code - and 11.9 million of them are kludges. My interest is in biological organisms and virtual worlds, both of which are vastly more complex potentially. If you take the old top-down, procedural approach you fail very quickly. I know ActiveWorld [a virtual world developed by Circle of Fire] is a very big place but it's also a relatively sparse place, it's got great geography but it hasn't got any intelligence in it. You try and add behaviors, using conventional methods and you hit combinatorial problems very quickly. So, if you want to make very big worlds you need a new approach. You need a new way of looking at it. And you particularly need to do it from the inside out. From the architecture and the physics, outward to the graphics. You shouldn't start from the graphics and work backwards - like VRML 2 does trying to strap behavior on the back. And you need self-consistency. Particularly in a virtual world that's got intelligence in it. The glimmerings of intelligence come in a system that can say 'the clouds are gathering - I think it's going to rain - let's go indoors.' But if clouds don't produce rain consistently then you can't make that sort of association. You can't learn it. If you want a self- consistent world you can't author it. Playing God is a hard thing to do.
How did you create the new paradigm (or Grand Design) exemplified in Origin?
The most complex machine I know is me, I'm made up of a million million working parts, each of which is made up of a million million working parts. And it all works - it all hangs together - and I even consider myself a single coherent thing. Creatures was built more or less that way. Not for any computer science reason - it was built that way because I was trying to create life and so you've got to do it that way. Well I think you've got to do it that way. If you want to make something biologically believably alive then you've got to take a biological route. The program was really a meta-program. A Creature doesn't exist as far as the program is concerned. It's described at higher levels. And it's made out of building blocks and uses genes to code for those building blocks which are really simple things like chemical reactions, chemo-receptors, and neurons. There are five basic building blocks and I put them together in lots of interesting ways to make this program. And even though it's really complex underneath these building blocks separated everything. So it's highly modular. But there are characteristics in biological modules that aren't there in computer science modules. The whole history of computer science has been to try and take the mess out of programs.
You mean to transition from the plate of spaghetti that is a looping set of instructions, to a flow diagram, to an object oriented modular approach that seems almost logical?
Yes, almost (laughs). If you look at the history of computing it's dividing things up into more and more tightly defined chunks. And Object Orientation is a great invention in that respect. But it still suffer from things that biological machines don't suffer from. An object tells another object what to do by calling a member function - so there's a method in one object that's being called by another. And if that object doesn't exist then you've got a dangling pointer and the system will crash. [memory gets overwritten at random until something critical is damaged and your machine goes down] So you can't take things out of Object Oriented programs. If you have a new object that's different and doesn't support that member function, then there's nothing to call. [and the program crashes] You can't make programs that you can add stuff to. [at run-time and without reassessing all the object relationships and recompiling] You can't take something out, it'll crash the system, bring the whole thing down.
So are you saying there's something wrong with the whole Object Oriented approach?
I've always thought in terms of circuit diagrams and plugging things together. This is structural computation. We forget it exists. We forget that a transistor radio is a computer – not a general purpose computer, but it certainly changes information from one mode to another. And it does it by parallel systems and feedback loops. It's done by wiring. You design a circuit, you wire it up in space, and you get computation out of it. We've forgotten this approach after 50 years of computers where you do one thing after another. [procedural computing] When you're trying to move in cyberspace you have to go back to spatial understandings of computation.
So what's the advantage of your approach?
Biological systems work the other way round. They're all autonomous agents, even cells. They sense their environment in some way and they change their internal state. But they can't tell something else what to do. They can only decide what to do based on something they see about the change of state in other things. So they're receiving, they're choosing to do something rather than being told to do something. Computer science is moving that way anyway with component-based systems. It comes with an agreement to hold a Lowest Common Denominator (LCD) conversation. Which is all right within limits - but is not all right when you're trying to make cyberspace full of hugely rich organisms and objects. Now the way biological systems do it is, the way cellular systems do it, is to make sure everything is derived from the same base class. Cells are cells. It doesn't matter if they are brain cells or liver cells. They all ''look'' the same to each other. So they've got this consistent structure for communicating. They communicate by using very simple things: they send out chemical messages which are picked up by receptors on the surface of other cells. And then magic happens inside the cell.
But don't you have a huge amount of information inside each cell because of the base class information? Isn't this like the DNA molecule in a living cell?
No, the base class needn't be thick. There's not all that much you have to implement. What you have to write and the approach I've tried to take is that everything inside my virtual world, be it a neuron, or a brain, or a planet, is a cell. They all look the same to each other. And so the task is to find some metaphor that makes consistent sense throughout that range of things. And it struck me that biology already has a sufficiently consistent metaphor: We have cells which are made of organelles, and organs made of cells, and bodies are made of organs. They are all membrane bounded sacs that use receptors.
So do you mirror this structure in your code?
Pretty much, except that objects are all called cells, all the way up, and we have a smaller component called an organelle. You have to have something sub-cellular, some of the rules change. But anyway the idea is to make a modeling system in which everything looks the same. And therefore everything can talk to everything else. If a cell decides to behave differently internally it doesn't matter. If a cell is added to the system later, that the programmer hadn't thought of when the model was first created, then it'll work.
Is either version of Creatures an example of using the Origin architecture?
No. It was the thing that taught me about it. You get lots of stuff out of Origin: you can maintain complex things and they don't fall over. They heal themselves when things go wrong - all the things you expect of biology. And you can add new stuff after it's published - which is quite a trick. You can reuse parts of it and it doesn't waste anything. You can take a brain out of a Creature and stick it in another Creature. It solves the 'reinventing the wheel' problem.
So, how did you implement Creatures?
In Creatures I hadn't sussed all this out. I'd got part-way there.
1) I've got basic building blocks like neurons which are very very fast. They can wire themselves up in circuits, they can rewire themselves, and do exciting cool stuff like that. They can't compute very much, they can only do relatively trivial differential equations.
2) I've got objects in the virtual world and the Creatures themselves which can be made out of many parts. They've got a rich script language to control how they behave, but they can't be wired together in circuits. They can't do biochemical type reactions.
3) And then I've got the virtual world itself, which is really just dumb - it's just a shell. It's got weather and that sort of thing - but that's all hard-coded into it.
So we've got these three structures, all of them have good things about them for making selectable add-ons but it's not as cool as I'd wanted it.
What Origin is is fusing these three structures into one concept.
If Origin is a new programming paradigm that will be able to handle the level of complexity expected to be necessary with the introduction of objects with behaviors why is Origin still conceived of as an internal tool? A couple of years ago at CGDC CyberLife presented Origin (then called Gaia) as a universal computing solution.
The problem with raw Origin is that you have to have the right mind-set to be able to use it. If you gave C++ to someone who'd never programmed a computer before it would take them a very long time to work out how to do it. [Because it has a philosophy of objects, inheritance, sharing, and reusability of code to absorb to use it effectively.] It's like that with Origin. In this case you have to take strange concepts on board like computing by wiring diagram - connectionists are used to that - neural networks people compute by wiring diagram but they don't often recognize it as such because connectionism sort of went sour. I don't want people to have the raw system. They won't be able to use it - they won't enjoy it. And it won't do us any good - we'll just end up as a shrink-wrapped software company.
What's wrong with shrink-wrapped software?
I think the notion of a shrink-wrapped product is dead (thumps the table) and I think we're some of the people who are helping to kill it. The reason you have shrink-wrapped products is that someone has to sit down for two years and write them. And when they're done they dump the code into a box and start on the next product. You've got this serial stream. But once you start to make things from the bottom up, things assembled in bits and the bits still work in other things, the notion of a shrink-wrapped product doesn't make sense anymore. Instead you've got an incremental product.
But isn't Origin like the idea of Esperanto, a universal language, it's only universal if everyone adopts it? Do you plan to convert the whole world to using Origin?
At the moment it's purely an internal development tool. There's only fifty people who need to know how to use it. It's not easy to learn because it's not actually a language, it contains several languages: one is rich and good at deciding the kinds of things you need to do, and one is extremely rapid and genetically robust and can be used for controlling the rules for how neurons fire and that kind of stuff. It's more like a philosophy - you have to take on board several new ideas about computing just to use it at all. Using these languages you can make things on-the-fly. Pump stuff into a world that already exists and is running somewhere. And enable evolution to create things on-the-fly for you.
So you have to rethink the way virtual worlds are designed?
Yes, you have to author the physics instead of the behavior. You have to get right in deep. I think the conventional computer paradigm is not suitable for thinking in cyberspace. Once you've got this basic level architecture you can start to build interesting neural networks and cuddly creatures out of it. We could do things like make tools for architects who want to understand the flow of people around new buildings. We could give them ready built people and they could just tweak the parameters. They don't need to worry about neural networks or biochemistry.
Are you saying you developed Origin exclusively for creating virtual worlds?
Virtual worlds and virtual organisms. I find it hard to distinguish between them. It's a world building tool.
At some point will you let other people use Origin?
Yes, but not raw Origin. There's no point our trying to be another Java. It's a bit like being another hula hoop - it's a very unpredictable concept. Why didn't SmallTalk become the other Java?
But in the sense that people talk about Quake becoming a rival platform to Windows simply by being out there and being hugely popular and being used by so many people for things it wasn't originally designed for, it comes to have a position where it can be seen as an alternative or at least a challenger. Could you see that happening with Origin?
Oh, yes, it could. Doom and Quake and co. took a similar approach - they use well embedded physics systems where they worked outwards from the world to the screen somewhat. And they've written tools and let people use them. Yes you can do that. It has been useful with Creatures - its been great to have a community of people doing interesting and exciting work for us - for free. They do it for themselves but it creates this bootstrapping effect in the market that we can make use of .
So these worlds created with Origin are in a proprietary format cyberspace. Do you hope that Origin will become the de facto standard for virtual worlds?
There's no point in designing a limited set of tools - you might as well design an unlimited set. It's also a cultural and business issue. It's not a matter of if you want to promote Origin worlds it's whether you have the clout to do so - the marketing muscle, the cash to stay alive while you do things a non-profitable way in order to reap a later reward. Trying to make a business that's able to implement such a thing is not easy.
Yet starting with a game is not the most obvious path to world domination of cyberspace?
Well, there's a lot of experiments to be done yet. Superscape have done some, blaxxun have done some, and there's going to be some evolution. We don't know how to do this. I think that the next phase of the Internet is going to be entirely Cartesian Virtual. The first phase of the Internet was as a set of wires. And then the email protocol was invented and it became a community. And then the WWW was invented and it became information space. But most of our brain is wasted in information space. We're good at 3D space. So it seems to me there's no reason at all not to create certain protocols to make 3D space real for the next generation. Somebody's going to have to run the protocols and they're not going to be as trivial as HTML and HTTP. I wouldn't care to guess who's going to come up with these protocols because there's a lot of experiments still to be run. When you try to move up into virtual physics, high speed, high quality rendering, intelligence, and contiguous cyberspace there are huge problems to be solved.
You've come up with a hit game based on a new premise, you've invented a new computing architecture, you have ambitions that a lot of people think are impossible - why are you so unique? Is it because you haven't been to university?
Oh, well yes that helps. If there's a problem to be solved it stands to reason that the people who are trying to solve it are failing. Therefore the best place to look is not in the same direction as they're looking. It helps to have some randomness in these things and being ignorant does that. You don't have the preconceptions. I started writing neural networks in 1979 before I'd ever heard of such things. I called them neural nets. What I meant by net was somewhat different from network. By the time I found out I was already going about them in a different way. I've been trying to make things with minds for 20 years now. I'd been doing Artificial Life but it was only after I'd started doing Creatures that I heard of Artificial Life. I didn't know about Chris Langton and co. [ALife at the Santa Fe Institute and series of conferences starting in 1987] until I'd got the elements in place. That kind of reinvention of the wheel can be terribly wasteful if you end up in the same place as everyone else, but if you end up somewhere different it's good. We can't all do that but it's as well that some people do.
Is there some quality of Britishness involved?
Well yes, I think that Brits are on the whole more aberrant than most cultures. They tend to have that kind of an attitude - it comes out in wartime. I mean people like Alan Turing with lateral thinking. Deviousness is something in the national culture I think. Making do with very little is also in the national culture. (laughs)
But if you had to look elsewhere on the planet for a competitor where would it be?
This rather spoils my point, but I think I'd look on the US west coast because the intellectual community is there, and so much more upbeat and the noise level is so much higher. It's difficult to know about competition. There doesn't seem to be any. As commercial competition there are people who've tried to get into the same market, but not with the same aim, like Fujitsu, but with completely different approaches. They were more with the behaviorally based approach than the architectural one.
What are your long term goals or is it too early to say?
Too early in terms of business at least. I'm mostly interested in making more intelligent and interesting Creatures. I designed Origin and I'm responsible for making sure our research goes in the right direction. Creatures 3 that's a complete restart and I don't even know what sort of a thing that will be, it depends on all sorts of circumstances. The basic goal is to create cyberspace that's as real and believable as possible starting from physics and working upwards. And to create intelligence that's as real and believable as possible starting from the neurons and working upwards. And then at some point you've got to make money out of it. (laughs)
What do you see the rest of the world doing while you're working on this? As far as I'm aware you're the only person working on this kind of project.
We have competitors in the virtual pet market galore.
But not in the attempt to create consciousness?
No. And that's where they don't recognize the problem.
And none of them are thinking about developing a new architecture or a new approach to programming?
I hope not. (laughs) You've got to have some commercial advantage.
Creatures and Origin are just the first parts of Steve's vision of creating conscious beings within the computer - called the 2020 Vision it aims to have self-aware lifeforms living in computers or robots by the year 2020. He describes the project as "a route not a destination" meaning he sees it as part of the evolution of mankind and technology to progress from inanimate tools controlled by humans, through animate tools (automated machines), to tools which are artificially alive. He describes the mission as ''putting the life back into technology.''
Sue Wilcox trained as a psychologist and computer scientist. With the clarity of hindsight this lead inevitably to her interest in virtual world design, social engineering, and the development of Artificial Life. Her latest book is a Science Fiction adventure featuring symbiogenesis for higher organisms. Sometimes found on the conference circuit speaking on issues ranging from Internet 3D graphics to the nature of identity, Sue is currently working on a follow-up to her book on 3D Avatar Tools. This new book will examine the world of Digital Biota - ALife in Cyberspace. As spin-offs from her virtual world research, Sue's writings can be found in a range of art, design, and computer graphics publications.