larvaworld.lib.model.envs.arena

Classes

Arena

Simulation arena providing spatial environment for agents.

Module Contents

class larvaworld.lib.model.envs.arena.Arena(model: Any | None = None, **kwargs: Any)

Bases: ViewableBoundedArea, agentpy.Space

Simulation arena providing spatial environment for agents.

Combines bounded area geometry with agentpy.Space functionality to create a simulation environment where agents can be placed, moved, and interact with sources. Supports both stable and displaceable source management.

Attributes:

boundary_margin: Margin from arena boundaries (default: 0.96) edges: List of boundary edge segments as Point pairs stable_sources: List of non-movable sources displacable_sources: List of movable sources accessible_sources: Cached accessible sources for agents

Example:
>>> arena = Arena(model=sim_model, dims=(1.0, 1.0))
>>> arena.place_agent(agent, (0.5, 0.5))
>>> arena.add_sources([food1, food2], [(0.2, 0.3), (0.8, 0.7)])
boundary_margin
edges
stable_source_positions = []
displacable_source_positions = []
displacable_sources = []
stable_sources = []
accessible_sources = None
accessible_sources_sorted = None
place_agent(agent: Any, pos: Any) None
move_agent(agent: Any, pos: Any) None
add_sources(sources: list[Any], positions: list[Any]) None
source_positions_in_array() None
accessible_sources_multi(agents: Any, positive_amount: bool = True, return_closest: bool = True) None
draw(v: Any | None = None) matplotlib.figure.Figure