Caveat : I am very prone to approaching research & experimentation back to front. I’ll have an idea on something I know little about and without doing much/any searching of the literature (Web) I’ll start implementing blindly. In my defence, it’s not always obvious what terms to search for without having a play. Without exception the idea will have been thought of before, though very occasionally the way I was thinking of it may suggest an original angle. Anyhow, just a caveat on what follows – don’t expect anything new, thought through or even remotely consistent.
Edit: I’m very likely to edit this
Two things here, both of which I hope to write code for. One is a Web-distributed experimental artificial life setup I’m calling Environs. Details on GitHub. Not rocket science, just gluing a few well-known things together.
The other is very much hypothetical – the stuff below.
Origins of Artificial Life
Given the resources I have to play with, I’m only going to talk about life on the computer, not what can be built with chemicals in a lab.
There are loads of artificial life simulations around, many that include evolution. But I don’t recall any that really address the starting point : what’s necessary and sufficient for life to occur?
We only really have one reliable data point – our universe, one product of which being life on Earth. I’m pretty sure deities aren’t a precondition (and even if they were, any simulation in this universe would presumably be governed by the same deities, so their existence is moot).
A couple of other fundamental assumptions I’m relying on here are that forms of life other than our own are possible and that the kind of quasi-deterministic systems we can build on computers based on mathematical constructs can potentially support something we might reasonably consider life. There’s a tar pit of philosophy underneath all that – notably that it supposes that our mathematics is somehow isomorphic to how things work in what we call reality. At human scale there’s certainly a lot of evidence to support that, but the question of scale is pretty important here (see Layering below).
A very practical assumption is that life can be supported in a system that’s doable with today’s computers. There’s a subtle adjunct to this – that all the features of our physical universe aren’t necessary, that a simpler system could support life. I don’t think this is too much of a philosophical leap. Given a hypothetical multitude of universes and a definition of life that is broader than just having one kind (our own), it’s reasonable to suggest that quite a range of different physics could support it. A hypothesis is that some of these are less complicated than our own and tractable in a 21st century simulation (or implementation, to go a bit Frankenstein).
What is Life?
Ok, obviously having a workable definition would be useful. Wikipedia’s definition of Life is predictably vague, but does list some characteristics most people would agree upon. “One popular definition is that organisms are open systems that maintain homeostasis, are composed of cells, have a life cycle, undergo metabolism, can grow, adapt to their environment, respond to stimuli, reproduce and evolve.”.
Certainly life simulations tend to contain most of those characteristics. But there still isn’t really a full distinction between life/not life. One thing that can be gleaned is that there’s a distinction between a particular organism and its environment (even if that environment may be another organism itself). I guess we can call this integrity. While all life we know relies on interactions with the environment and usually other organisms, related to integrity, it’s probably reasonable to say living organisms have some level of autonomy. On the point of interaction, that could be considered in an information-oriented model (as artificial life on the computer will be) as communication.
These terms overlap with what Wikipedia has to say, but from there it seems reasonable that any life form would involve reproduction and evolution. Underneath these, there will need to be some kind of morphogenesis, how the living organism takes form. Jumping ahead (a lot) a common feature of life on Earth is a genotype-phenotype model.
So what does a universe need to be able to support these characteristics?
Before having a google (see caveat at the top), I’ll dive right in and suggest that some kind of physics that can support complex chemistry is required. Ok, talking artificial so some kind of mathematical system that has features comparable to the real world.
I’ll have a punt and say a good starting point is some kind of space which can contain things (perhaps, using particle physics terminology, ‘fields’ would be more accurate, but ‘space’ seems more intuitive). In comparison with our universe I don’t think it’s worth worrying about bounds and topology at this point. The origin of the universe here will be it being coded up. Real life is composed of complex molecules that are composed of elements that are composed of particles that…quantum. The physicists have used up a lot of Greek and Latin here when it comes to talking about the smallest/simplest things that can exist. So I’ll opt for plain English, item.
While very simple rules can lead to arbitrarily complex behaviour (cf. Conway’s Life), that probably isn’t the quickest route to getting the behaviour of life. Sure, I could potentially be editing this document on a system built from a minimal Turing Machine with symbols on a strip of tape. This desktop machine is a lot more convenient.
So I don’t think there’s much to be gained from trying to fully grasp what’s necessary & sufficient. Just as long as there is enough.
Intuitively, the amalgamation property of real stuff (matter and it’s friends) is pretty important to complex organisms forming and holding together long enough to reproduce. Which suggests attraction between items. But with attraction alone, pretty soon you’ll just have all the stuff in one big blob. So add repulsion. So far the physicists have counted four fundamental forces in our reality. action locally/action at a distance…
Layers of Life
The environment in which our kind of life occurs can be viewed at a variety of scales. We have :
- subatomic – particle physics and all the quantum weirdness
- atomic – chemical elements and their low-level interactions
- molecular – what happens when the chemical elements join together to make complex systems
- living – the interactions of groups of complex molecules
At each of these layers some approximate level of simulation is currently possible. What they have in common is that they model sets of simple components to see what happens at a more macroscopic level.
Work in Progress
Think just a 2D space that you could potentially run in a browser.
How do generate a life-sustaining environment?
It’s kind-of cheating, but I reckon a genetic algorithm might do the trick. Universes with different rules, evolve them to find some that show behaviour that suggests something like life is happening.
Potential markers :
- chaotic behaviour (not purely static/cyclic, not statistically random – perhaps look for 1/f signals)
- clustering of items
// later : intelligence as being similar problem, different layer