https://github.com/mlange-42/beecs
The BEEHAVE honeybee model, re-implemented with Go and ECS
https://github.com/mlange-42/beecs
Last synced: 7 months ago
JSON representation
The BEEHAVE honeybee model, re-implemented with Go and ECS
- Host: GitHub
- URL: https://github.com/mlange-42/beecs
- Owner: mlange-42
- License: gpl-3.0
- Created: 2024-05-02T15:34:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-29T12:35:34.000Z (12 months ago)
- Last Synced: 2024-10-29T15:02:02.667Z (12 months ago)
- Language: Go
- Homepage: https://pkg.go.dev/github.com/mlange-42/beecs
- Size: 933 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# beecs
[](https://github.com/mlange-42/beecs/actions/workflows/tests.yml)
[](https://goreportcard.com/report/github.com/mlange-42/beecs)
[](https://pkg.go.dev/github.com/mlange-42/beecs)
[](https://github.com/mlange-42/beecs)Work-in-progress re-implementation of the [BEEHAVE](https://beehave-model.net) model
in [Go](https://go.dev) using the [Arche](https://github.com/mlange-42/arche) Entity Component System (ECS).All the hard work to develop, parameterize and validate the original BEEHAVE model was done by Dr. Matthias Becher and co-workers.
I was not involved in that development in any way, and just re-implement the model following its ODD Protocol and the NetLogo code.Beecs is currently at a state where it implements BEEHAVE's basic colony and foraging models.
Colony dynamics already mimic BEEHAVE quite well, but there are still differences that need to be addressed. See the [tests](https://github.com/mlange-42/beecs/tree/main/_tests).## Usage
### Command line app
A command line interface for beecs is provided in [beecs-cli](https://github.com/mlange-42/beecs-cli).
It also supports basic visualizations. See there for details.### Graphical user interface
A graphical user interface for beecs is provided in [beecs-ui](https://github.com/mlange-42/beecs-ui).
It features configurable visualizations and parameter manipulation in a single window or in a web browser.### Library
To add beecs as a dependency to an existing Go project, run this in the project's root folder:
```
go get github.com/mlange-42/beecs
```Usage examples can be found in folder [_examples](https://github.com/mlange-42/beecs/blob/main/_examples).
## Exploring the model
To explore the model code, start with reading files [`model/default.go`](https://github.com/mlange-42/beecs/blob/main/model/default.go)
and [`params/default.go`](https://github.com/mlange-42/beecs/blob/main/params/default.go).
Given that the model is developed with ECS, the structure should be quite obvious.- [`comp`](https://github.com/mlange-42/beecs/blob/main/comp) contains all components.
- [`sys`](https://github.com/mlange-42/beecs/blob/main/sys) contains all systems.
- [`params`](https://github.com/mlange-42/beecs/blob/main/params) contains model parameters (as ECS resources).
- [`globals`](https://github.com/mlange-42/beecs/blob/main/globals) contains global variables (as ECS resources).Also check out the [examples](https://github.com/mlange-42/beecs/blob/main/_examples).