Skip to content
/ PyBoids Public

An exploration of various AI's attempts to develop flocking behavior

License

Notifications You must be signed in to change notification settings

meaj/PyBoids

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyBoids

Description

PyBoids is a software toy that attempts to demonstrate flocking behavior, heavily inspired by Craig Reynolds' simulation. The goal of this project is to produce flocking simulations with A.I. algorithms such as the genetic algorithm and NEAT.

This is a highly experimental project and contents may change suddenly.

More information regarding using the genetic algorithm to optimize the boids simulation can be found here.

Prerequisites

  • pygame: Used for displaying the simulation

Roadmap

  1. Cleanup code and adopt best practices when possible
  2. Build engine to display and move boids and determine what is a flock
  3. Build monitoring system to display data about each flock
  4. Implement Mr. Reynolds' version of boids using PyBoids engine
  5. Build wrapping needed to record generations of AI models and display Neural Networks and other data
    1. Build system to allow each generation to be tested on the same permutation of random values
    2. Build menu driven system to allow for modification of the GA controlled Boids Simulation
    3. Build menu driven system to allow user to adjust sliders to control Boids Simulation
    4. Build menu driven system to allow for loading Boids Simulation from file
    5. Build system for N.N. based models that will show the nodes as they activate
  6. Implement Neural Network Controlled Boids Simulation

Contents

  • PyBoids.py: The driver for this project
  • Constants.py: Contains the constant definitions for the project
  • Entities: This directory contains the classes that entities are instantiated from. Entities include boid objects and the goal tokens they search for.
  • Managers: This directory contains the classes that manage entities, output to screen, and call the appropriate boid controllers
  • BoidControllers: This directory contains the classes that control boid movement for various simulations
  • LICENSE: This is the license for the project

License

This project is licensed under the MIT License

About

An exploration of various AI's attempts to develop flocking behavior

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages