def reset()

in gym_genesis/tasks/cube_pick.py [0:0]


    def reset(self):
        B = self.num_envs

        # === Deterministic cube spawn using task._random ===
        x = self._random.uniform(0.45, 0.80, size=(B,))
        y = self._random.uniform(-0.25, 0.25, size=(B,))
        z = np.full((B,), 0.02)
        pos_tensor = torch.tensor(np.stack([x, y, z], axis=1), dtype=torch.float32, device=gs.device)
        quat_tensor = torch.tensor([[0, 0, 0, 1]] * B, dtype=torch.float32, device=gs.device)

        self.cube.set_pos(pos_tensor)
        self.cube.set_quat(quat_tensor)

        # Reset Franka to home position
        qpos = np.array([0.0, -0.4, 0.0, -2.2, 0.0, 2.0, 0.8, 0.04, 0.04])
        qpos_tensor = torch.tensor(qpos, dtype=torch.float32, device=gs.device).repeat(B, 1)
        self.franka.set_qpos(qpos_tensor, zero_velocity=True)

        self.franka.control_dofs_position(qpos_tensor[:, :7], self.motors_dof)
        self.franka.control_dofs_position(qpos_tensor[:, 7:], self.fingers_dof)

        self.scene.step()

        if self.enable_pixels:
            self.cam.start_recording()

        return self.get_obs()