3DVCE, Download

Downloading 3DVCE



HOW DOES THIS PROGRAM WORK?


3DVCE combines a genetic algorithm (GA) with a physics engine and a 3D graphics engine. The evolution process works as follows:

  1. A population of random genomes is created.
  2. Each genome translates into a virtual creature.
  3. Each creature is allowed to move about in the virtual world for a fixed amount of time, and is assigned a "fitness" value that reflects its ability to perform some simple task - the distance it travels, for example.
  4. A new population of genomes is generated by mutation and crossover (combining the genomes of two creatures to create a hybrid genome). Creatures that perform better than others have a greater chance of being chosen as "parents" for mutation and crossover.
  5. The program returns to step 2) and keeps looping. The performance of the best individual in each new population (called a "generation") tends to increase over time.

As the user, you have the ability to configure many aspects of this evolution, including the size of the population, the probabilities for mutation and crossover, various parameters that govern restrictions on creature bodies... etc. You also have some flexibility in specifying the "fitness" measure that will be applied to your population of creatures.

Should you happen to evolve any interesting creatures, 3DVCE has the ability to record a series of PNG image files that can be combined via the right software (like the free "Bink" utility, for example) into a video of your evolved creature in action. Alternately, you can send evolved creatures to me and I'll (eventually) record and post them to the zoo gallery.

3DVCE also contains a number of little features that have nothing to do with the evolution side of things. You can spawn various solid blocks and spheres. Pick them up, throw them, push them, blast them with grenades, put them under water, turn gravity on or off, and so on - a kind of primitive physics playground. Many of the graphical aspects can be turned on or off as well, such as fog, ambient light levels, shadows, etc. These features were original created while I was learning how to make use of the physics and graphics engines for the project, but I've left them in. For my fellow Doctor Who fans, there's also a virtual TARDIS, complete with bigger insides than outsides and de/materialization.

CAN YOU SHOW ME SOME VIDEOS?


Yes. Have a look at The Zoo and the Misc Videos pages. As a user, you can also contribute to the videos by sending me any interesting creatures you've evolved. I'll be happy to record videos and put your creatures in the zoo. More on that, below.

DOWNLOAD LINK:


Click HERE to download 3DVCE.

INSTALLATION:


Easy. Just unzip the downloaded file to any location you like.

BEFORE YOU START:


I should warn you: the software is a little rough around the edges. It can be buggy sometimes. It might even crash, but only very rarely, and it's very slow. A full run of evolution can take many solid days to produce something interesting (depending on evolution settings and your hardware). Below is some information you need to know to download the program and get it up and running. There are a lot of instructions, but it's not as complicated as it seems. Neither is it quite as user-friendly as it could or should be. I cannot, of course, provide any guarantees of suitability, workability, stability, or any other ilities.

HOW TO RUN AN EVOLUTION:


The download of 3DVCE comes with an evolution called "experiment_1" that is already configured and ready to go. Further down this page I'll include links to some more information on how you can set up and configure your own evolution. Here are instructions on running experiment_1, but the same goes for any other evolution whether it's downloaded from me or whether you create and configure it yourself. The evolution contained in the download will evolve a population of 100 creatures for the task of traversing a rough terrain.
You may want to save the following info someplace easily accessible for future reference, or bookmark this page. The same steps should apply to any custom evolutions that you create and configure on your own. Some of the most interesting creatures have been from evolutions users created themselves..

1) Run go.bat (or creatures.exe in the bin folder - either way is fine)
2) An "OGRE" window will pop up for choosing graphics settings - choose settings and click OK
3) In the menu, go to "Evolution" and then "Open Evolution"
4) In the file dialog choose experiment_1.evolution and click OPEN
5) In the menu, go to "Evolution" and then "Go"
6) If speed is more important than image quality to you, press the MINUS key on the numeric keypad (this will turn off a bunch of rendering features like shadows and fog and so on - it runs faster that way)
7) Let it run for as long as you like (during the night, for example)
8) When you need the machine again, ESCAPE toggles you back to the menu..
9) Choose "Evolution" and then "Stop" (progress is saved automatically, even if it actually crashes nothing will be lost)
10) The option to quit is under the "App" menu (or press Q)
11) To resume the evolution later on, just repeat the steps above. It will simply continue where it left off.

RUNNING IN THE BACKGROUND:


If you'd like to use other applications while it's running - this can be done, but the method is a little unusual. In the menu choose "App" and then choose "Ignore keyboard input". It will give you a message indicating that keyboard input will be ignored until you press the right mouse button. Click OK in that message box and then you can safely ALT-TAB to go and run other applications on your machine (this *might* be quirky if you are using full-screen mode and DirectX rendering, but if so just change one of those settings). When you want to come back to the creature program, just put it in focus or ALT-TAB back to it and click the right mouse button. You'll get a message box telling you that keyboard input won't be ignored anymore. (the reason for this strangeness is that my app will catch keyboard input even when it's not the app directly in use - for now, this is a work-around until I eventually figure out how to solve that problem).

If you want to minimize it, the most successful way I've seen is to use the Windows_Key-M combination. Also, if you want to use the machine from time to time while the program is running, it might be a good idea to right-click the process creatures.exe in the task manager and set its priority to "below normal" (that way it consumes less processor time when you run other things, but uses a lot when you don't). For those with mult-core processors, this shouldn't be much of an issue. Note that 3DVCE will only make use of a single core at a time unless you run several instances simultaneously.

Also, you may want to disable your screen-saver and power-saving settings while running the program. Some people have told me that these things slow it down or, in some cases, cause it to stop processing until the computer "wakes up".

HOW TO SEND ME CREATURES FOR THE ZOO:


I'm always up for new creatures to add to the zoo. If you have one you'd like to send to me, you need only email me the following two files (email address is further down this page).

1) The .evolution file used to produce the creature (example: experiment_1.evolution)
2) The file experiment_1\run_RRRRR\generation_GGGGG\creature_00000.creature
Replace "experiment_1" with the name of your evolution, and replace RRRRR and GGGGG with the run and generation numbers of your creature. For example, if you've got an evolution named "my_evolution.evolution" and run zero has produced an interesting creature that has evolved for 800 generations, the file is: my_evolution\run_00000\generation_00800\creature_00000.creature

If you prefer to record your own creature video(s) and send me an URL for the zoo, that's alright too.

SOME LINKS:


If you're a facebook user, there's a group for this application HERE

DOES IT ONLY RUN UNDER WINDOWS?


Unfortunately, yes. I'm sorry about that :(
I have been told by some Linux users that they've successfully run it under wine - the software, not the beverage, I think ;).

CAN I SUGGEST A MODIFICATION?


Absolutely. Suggest away. If I make the requested modification it might not be for a long time as I don't intend to do more programming on this system for a while; not for lack of desire, just lack of time. I'm happy to hear your ideas, though.

WHERE CAN I GET THE CODE?


You can't. At least not yet. I have no intention of releasing the code just yet. Eventually I expect I'll make it open-source, but it'll be a while before I do. If you have specific questions about what's going on under the hood, I'm happy to answer, though. Just contact me at the email address below.

MORE INSTRUCTIONS:


The HOW-TO instructions for all the other aspects of the application can be found in the videos I've posted to the group above. Those videos can also be found HERE .

CONTACT ME:


Please don't hesitate to contact me if you have any questions, or if you run into any trouble. Enjoy the program! If you don't... well, at least it was free ;D

Cheers,
-Lee Graham

I can be reached at: