Home - GhengopelALPHA/scriptbots GitHub Wiki

Welcome to the Scriptbots project - GhengopelALPHA (Julian Hershey's) fork - wiki!

What is Scriptbots?

(Julian's v1.2-alpha pictured, agents with volume waves)

Simply, Scriptbots is an open source artificial evolution simulation, written originally by Andrej Karpathy, and contributed to by Casey Link, Dave Coleman, and Julian Hershey.

The basics of the sim are a large physical 2d space (the World) wherein bots (also known as agents) can interact with the world and each other, and attempt to persist. Each bot has a health bar, in the range (0,2], that allows them to continue operating. Their behaviors are widely varied, and are dictated by the Brain, a single-layered recursive network of Boxes. These boxes forward information (in the form of floating decimal values) from the senses via inputs, thru various biased, weighted, damped, and frozen connections, to the outputs, which directly control the movement and activity of the bots.

(Julian's v12-25-13 pictured, basic HUD description)

Each bot also has many physical characteristics which may modify its chances of survival. Mutation rates, temperature preference, lung type, radius, metabolism, stomach type, and spikes all contribute in their own way to ensuring a bot's - or more broadly, its species' - survival. As you might have guessed, the survival of a single bot is not the end-game here. Each bot has the ability to reproduce, copying its variables and brain, with the occasional mutation, to two children. Bots can do this asexually or sexually, depending on several conditions, including species similarity and a "projection" output being active on one of the parents.

(Julian's v1.2-alpha pictured, with GUI menu and agent HUD descriptions)

Random events and chance are a huge factor in this sim, so don't expect a consistent performance. Some runs you might get a huge population bloom and bust, others you might have a meager, but constant, 70 bots running around. The effects of natural selection are best observed over the long run, so the program has been optimized to try to produce the latter.

Finally, ignoring the user is the last thing we want to do. With this version you have the ability to delete, heal, and even force reproduce. Pressing spacebar also triggers a special input on the selected agent. But for those who want to try their hand at survival, pressing w,a,s, or d will take manual control of the selected bot, so that you can take part in your own version of artificial selection if you so wish.

As said, Scriptbots is open source, and ideas are welcome! If you know a bit of C++, or even if you're just starting out coding, this is a great project to get involved in! Join us on our Google Groop for discussion with the other developers, ask for or look up general information, or just tell us about your experiences with Scriptbots. We'd love to hear from you!

Get compiled executable versions

How to Install (WIP)

Using Scriptbots

(Karpathy's old v1.4 pictured)