GithubHelp home page GithubHelp logo

wrapperband / evolution-simulator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aronvanammers/evolution-simulator

0.0 2.0 0.0 120 KB

Evolution simulator created by Cary Huang, and further developed. First published here: http://openprocessing.org/sketch/205807

Processing 100.00%

evolution-simulator's Introduction

Evolution simulator

Created by Cary Huang and released on OpenProcessing.org. Many thanks for creating this educational and entertaining gem of code!

Some small functionality added by Aron van Ammers.

Up to now I have been unable to get in contact with the original author Cary Huang. Cary, if you read this, I'd be very happy to move this code over to a repo owned by you with proper attribution of the code. Just message me here.

License

Unknown!

Introduction

Original video explanations by Cary Huang

Prerequisites

Install Processing v1.5.1.

Note that the code currently is NOT compatible with the more recent Processing versions 2 and 3. You'll get an error message "GraphImage cannot be resolved or is not a field" when running. Happy to accept a pull request for anyone making it compatible with Processing 3.

Running

Open the .pde file in Processing and run it.

Configuration: changing the simulation

The top of the file contains some easy to edit variables that influence the simulation. They are documented in the file.

Some interesting ones:

Randomization and mutations

  • USE_RANDOM_SEED - when true, the simulation is deterministic, i.e. it will give exactly the same results if you would run it again.
  • SEED - in combination with USE_RANDOM_SEED, this determines the run. The same number will lead to the same results.
  • MUTABILITY_FACTOR - how fast creatures mutate. Lower values will lead to a monoculture of highly optimized creatures. Higher values give some more variety, but also to a lot of "mishaps" because of nonsuccessful mutations.

Minimum complexity

  • CREATURE_MIN_NODES - the minimum amount of nodes that creatures must have. Allows for requiring more complex creatures.
  • CREATURE_MIN_MUSCLES - the minimum amount of muscles that creatures must have.

Randomization of obstacles

  • RANDOMIZE_RECTANGLES - if true, the rectangles (obstacles) will be randomized over each generation. This will give more versatile creatures an advantage, i.e. creatures that aren't completely optimized to climb a single stairway with identical stairs.
  • RECTANGLES_PROGRESSIVE_MUTATION - if true, randomizes the rectangles slightly over each generation. Think of this as a natural environment that slightly changes over time. If false, the rectacles will be completely randomized (from their original configuration) for each generation.
  • RECTANGLES_MUTABILITY_FACTOR - sets how much the rectangles are randomized.

evolution-simulator's People

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.