def apply_surfaces_offset(surfaces, offset):
    """
    :param offset: (X, Y, Z) offset
    :param surfaces: list of 4 (X, Y, Z) points for a quadrilateral
    :return: new list of surfaces with offset applied
    """
    ox, oy, oz = offset
    return [[[x1 + ox, y1 + oy, z1 + oz],
             [x2 + ox, y2 + oy, z2 + oz],
             [x3 + ox, y3 + oy, z3 + oz],
             [x4 + ox, y4 + oy, z4 + oz]] for ((x1, y1, z1), (x2, y2, z2), (x3, y3, z3), (x4, y4, z4)) in surfaces]