Source code for rtgym.arena.arena_shapes.box
"""Three-dimensional box arena adapted from grid_and_place."""
import numpy as np
[docs]
def generate_box_arena(sr, **kwargs):
dimensions = kwargs.get("dimensions", [100, 100, 100])
assert len(dimensions) == 3, "dimensions must be a list of 3 elements"
# Convert dimensions from spatial units to pixels (free interior).
dimensions = np.asarray(dimensions) / sr
dimensions = dimensions.astype(int)
if np.any(dimensions < 1):
raise ValueError("Box dimensions must span at least one grid cell.")
border = 5
arena_map = np.zeros(dimensions)
arena_map = np.pad(arena_map, border, mode="constant", constant_values=1)
return arena_map