google / google/codeworld

Support for agent-based modeling in CodeWorld

Open
#673 0 comments 0 reactions 0 assignees View on GitHub
discussion
Dominant language
Haskell
Stars
1.3k
Forks
201
PR merge metrics
No merged PRs in 30d

Description

One thing that is attractive, but remains difficult to do in CodeWorld today, is agent-based modeling. Of course the `activityOf` API is sufficient, but it involves a lot of complicated list manipulation to manage a multi-agent simulation in that way.

I'm interested in what a purely functional API for agent-based modeling would look like. One possible resource is https://www.researchgate.net/publication/228900479_FABLES_A_Functional_Agent-Based_Language_for_Multi-Agent_Simulations - it talks about using functional programming for agent-based modeling, and cites as an advantage that the implementation of an agent model in FABLES looks very similar to the mathematical description of the models. That sounds quite promising.

This is very much an open-ended design project. I'm not sure where it will lead, if anywhere.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing activityOf API and the linked FABLES paper on functional agent-based languages. The issue does not name files or tests, so the first task is to locate activityOf in the CodeWorld source and understand its current list-based approach. Done would be an agreed, documented direction for a functional agent-based modeling API.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.