200
150
100
50
0
Create new world with seed:
Mutation rate:
Elite clones:
Select track type:
Select track fraction:
Select track friction:
Number of "cargo wheels":
Leg/Wheel/Box tiers:


Controls

Suprise: Toggles drawing, makes the simulation faster.
New Population: Keeps the generated track and restarts the whole car population.
Create new world with seed: The same seed always creates the same track, so you can agree on a seed with your friends and compete. :)
Mutation rate: The chance that each gene in each individual will mutate to a random value when a new generation is born.
Elite clones: The top n cars that will be copied over to the next generation.
Track Type: Select different tracks (resets world)
Track Fraction: Make track tiles smaller (resets world)
Track Friction: Changes track tiles' friction factor (resets world)
Number of cargo wheels: Chooses how many wheels - from the default 8 - will be cargo. Cargo wheels can't touch the floor. (resets world)
Leg/Wheel/Box tiers: Float values between 0 and 1. When rolling a random car, a float number is rolled for each wheel. If less than the first number, it'll be a "leg" wheel. If it's greate than the second one, it'll be a "box" wheel. Otherwise, it'll be a common, round wheel.

Graph

Red: Top score in each generation.
Green: Average of the top 10 cars in each generation.
Blue: Average of the entire generation.

But what is it?

The program uses a simple genetic algorithm to evolve random two-wheeled shapes into cars over generations. This is originally from rednuht.org/test/simulator - I just removed the ghost part and added legs, more wheels and different tracks.
Check that page for more info, or this one (rednuht.org/genetic_cars_2/) for a newer version of his simulator, both loosely based on BoxCar2D.
(thanks rednuht for letting me make this version public)

Contact

wendelscardua+boxwalk2d@gmail.com.