Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/arzoka/emergencejs

a fun little project to simulate emergence
https://github.com/arzoka/emergencejs

Last synced: about 1 month ago
JSON representation

a fun little project to simulate emergence

Awesome Lists containing this project

README

        

# Emergence Canvas
Emergence Canvas is an interactive web-based project that showcases the concept of emergence through a dynamic and visually captivating simulation. This project utilizes HTML Canvas and JavaScript to create a complex system from simple individual elements that exhibit behaviors leading to emergent properties when they interact. It's an exploration of how complexity can arise from simplicity, demonstrating patterns, self-organization, and phenomena that do not exist at the level of individual components.

## Features
Dynamic Simulation: Watch as simple rules give rise to complex behaviors in real-time.
Interactive Controls: Adjust parameters in real-time to see how they affect the emergence of patterns and behaviors.
Responsive Design: The canvas dynamically adjusts to different screen sizes for a seamless experience on any device.
Educational Tool: A great resource for educators and students to visualize and understand the principles of emergence.

## Live Demo
You can view a live demo of the project here. (Note: Replace the hashtag with the URL of your live demo)

## Getting Started
To get a local copy up and running, follow these simple steps.

### Prerequisites
Ensure you have a modern web browser installed (e.g., Google Chrome, Firefox, Safari) to view and interact with the simulation.

### Installation
1. Clone the repo
```shell
git clone https://github.com/Arzoka/emergencejs.git
```
2. Open the index.html file in your web browser.

## Usage
Once the project is running, you will see a canvas filled with entities exhibiting simple behaviors. You can interact with the simulation in several ways:

- **Adjust Parameters**: Adjust js/index.js and js/constants/.. to change the parameters of the simulation, such as the number of entities, their speed, and the rules that govern their behavior.
- **Flip Entity Behavior**: Click on the button shown in index.html to flip the behavior of the entities.

## Built With
- **HTML5** - For structuring the web page and canvas element.
- **JavaScript** - Used to create the simulation logic and interactivity.

## License
Distributed under the MIT License. See `LICENSE` for more information.