NetLogo / NetLogo/NetLogo

feature: sparse/lightweight internal representation of agents

Open
#587 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

engine
Dominant language
Scala
Stars
1.2k
Forks
272
PR merge metrics
No merged PRs in 30d

Description

an old 2011 writeup of mine:

An internal technical improvement that will permit the addition of a variety of user-visible improvements is changing the engine's internal representation of agents, including patches in the patch grid, to use a sparser, more lightweight representation so that adding agent variables and using large numbers of agents will become more practical.

We propose to develop new underlying data structures such that:

  • Worlds with large numbers of patches will be cheap to create and will use memory proportional only to the amount of informationactually stored in the patches, rather than directly proportional to the patch count.
  • Unbounded patch grids, in which turtles can wander an arbitrary distance from the origin without ever encountering a world boundary, will become possible for the first time.
  • New properties can be added to turtles and patches without increasing memory usage for models in which properties are not used. For example, users often ask for control over the font size of labels attached to turtles, but so far we haven't added that because it would decrease speed and increase memory usage for all models.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reading the issue's listed goals for sparse patches, unbounded grids, and optional agent properties, then locate the current agent and patch representation; done requires a concrete design and validation for the stated memory and capability goals.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
backend, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.