mujoco_worldgen/core.py (19 lines of code) (raw):
import collections
def define(typename, **fields):
items = list(fields.items())
# makes it deterministic between python runs.
items = sorted(items)
keys = [k for k, _ in items]
values = [v for _, v in items]
T = collections.namedtuple(typename, keys)
T.__new__.__defaults__ = (None,) * len(T._fields)
prototype = T(*values)
T.__new__.__defaults__ = tuple(prototype)
return T
WorldParams = define('WorldParams',
randomize_light=False,
randomize_material=False,
num_substeps=1,
# Minimum distance between placed objects.
placement_margin=0.0,
show_outer_bounds=False,
size=(10., 10., 2.5),
)