N-Bodies Simulator Overview The idea is similar to the N-Body Simulator, except instead of dealing with stars, it would instead deal with living organisms. There is no problem being solved, but rather just a cool idea. There would be a basic framework in in which creatures would exist, with food sources and other terrain. The simulation would run for some number of time units with some random set of animals and choose the most viable (based on some score function) of those animals. These would have random mutations and a new round of simulation would be run. It will not require that much single-step computation, but the goal would be to run the simulation for many, many iterations and see what animals it creates. Solution/System Architecture The hardest part of the project, far and away, would be modeling the animals and their possible interactions in the word in a way that is not artificially limiting. Coming up with a good set of building blocks of both physical parts and interaction parts (eat, hunt, mate, sleep, etc) will be a large design challenge. The rest of the code will be fairly simple, involving spawning many different worlds, each with a different set of creatures. These worlds would run for some number of steps and constitute the map phase. In the reduce phase, the highest scoring creatures (surivivability? destruction of opposing lifeforms? any other metric we can think of) will be selected, and random mutations of those plus more random creatures will form the backbone of the next round of simulation. Basic things creatures would have are some form of energy and sustenance system, such that they need to rest and eat, and having more body parts would increase these needs. Optionally, they would also be able to have social interactions, but this is admittedly much tougher. They should also, if time permits, maintain a list of their evolutions to see how they got to their current state. Development Plan Week 1: Have in place a generic system of actions/body parts that can be put together and react in reasonable, but inventive ways. Week 2: Continue evolving the possible actions and other rules of the simulation. Week 3: Continue development on infrastructure and have a finished world simulation running. Try several iterations and see what happens. Week 4: Fine tune and code like hell. Run the world for a long period of time and find both very succesful and very pitiful creatures to present. Feasability Rationale A basic system is implementable in a day. A cool system could take much, much longer than anyone can imagine. The goal would be to get something moderately cool without failing your other classes.