def generate_branches(scales=None, angles=None, shift_angle=0):
    """Generates branches with alternative system.

    Args:
        scales (tuple/array): Indicating how the branch/es length/es develop/s from age to age.
        angles (tuple/array): Holding the branch and shift angle in radians.
        shift_angle (float): Holding the rotation angle for all branches.

    Returns:
        branches (2d-array): A array constits of arrays holding scale and angle for every branch.
    """
    branches = []
    for pos, scale in enumerate(scales):
        angle = -sum(angles) / 2 + sum(angles[:pos]) + shift_angle
        branches.append([scale, angle])
    return branches
