in bisk/tasks/stairs.py [0:0]
def reset_state(self):
super().reset_state()
self.max_steps_cleared = 0
self.step_pos: List[float] = []
lengths = self.np_random.uniform(
self.step_length_min, self.step_length_max, size=(self.n_steps,)
)
xpos = self.start_pos + lengths[0] / 2
nm = self.p.named.model
for i in range(self.n_steps // 2):
nm.geom_size[f'step-{i}'][0] = lengths[i] / 2
nm.geom_pos[f'step-{i}'][0] = xpos
self.step_pos.append(xpos)
xpos += lengths[i] / 2 + lengths[i + 1] / 2
nm.geom_pos['top'][0] = (
xpos + self.top_width - lengths[self.n_steps // 2] / 2
)
xpos += self.top_width * 2
for i in range(self.n_steps // 2, self.n_steps):
nm.geom_size[f'step-{i}'][0] = lengths[i] / 2
nm.geom_pos[f'step-{i}'][0] = xpos
self.step_pos.append(xpos)
if i < self.n_steps - 1:
xpos += lengths[i] / 2 + lengths[i + 1] / 2