Skip to content

wmaqk1/evolution_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Darwin World Simulation

Overview

Darwin World is a simulation project, where in a virtual world population of animals evolves over time. The project is implemented in Java using the JavaFX library for the graphical user interface. The simulation allows users to configure various parameters and observe the evolution of species in a changing environment.

Project Structure

The project is structured into several key components:

  1. World Map: A rectangular grid representing the environment, divided into steppes and jungles.
  2. Animals: Creatures that consume plants, and reproduce. Each animal has a genome that determines its behavior.
  3. Plants: Food sources for animals that grow in specific patterns across the map.
  4. Simulation Engine: Manages the daily cycles of the world, including animal movement, plant growth, and reproduction.
  5. User Interface: Provides a graphical representation of the simulation, allowing users to configure, start, stop, and observe the simulation.

Features

Configurable Parameters

  • Map Dimensions: Width and height of the world map.
  • Plant Growth Variants: Different patterns of plant growth (e.g., forested equator, creeping jungle).
  • Animal Behavior Variants: Different mutation and behavior patterns (e.g., full randomness, swap mutation).
  • Initial Conditions: Starting number of plants and animals, initial energy levels, energy required for reproduction, etc.

Configuration panel

Simulation Mechanics

  • Daily Cycle: Each day consists of several steps:
    1. Remove dead animals.
    2. Turn and move each animal.
    3. Consume plants by animals.
    4. Reproduce animals if conditions are met.
    5. Grow new plants.
  • Animal Genome: Each animal has a genome that determines its movement and behavior. The genome is a sequence of genes, each representing a direction.
  • Reproduction: Animals reproduce if they have sufficient energy. The offspring's genome is a crossover of the parents' genomes, with possible mutations.

User Interface

  • Configuration: Users can select from predefined configurations or create new ones.
  • Simulation Control: Start, stop, and pause the simulation.
  • Statistics: Display various statistics about the current state of the simulation, such as the number of animals and plants, average energy levels, and popular genotypes.
  • Tracking: Users can select an animal to track its status and history, including its genome, energy, and offspring.

Simulation interface showing a small number of animals on the map

Simulation interface showing a large number of animals in a complex simulation

Requirements

  • JavaFX: The project uses JavaFX for the graphical user interface.
  • Gradle: The project can be built and run using Gradle.

Getting Started

Clone the Repository:

git clone https://github.com/wmaqk1/PROJ_WOJCIK_SAWIEC.git

Creators

This project was created by Mateusz Wójcik and Maciej Sawiec

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors