An artificial life simulator