assign scaffold coordinate and angle
    {node: (coords, angle)}

def scaffold_coords(rings):
    """ assign scaffold coordinate and angle
    {node: (coords, angle)}
    """
    rs = deque(sorted(rings, key=len, reverse=True))
    base = rs.popleft()
    first = base[0]
    coords = {first: [0, 0, 0, 1]}
    attach_spiro(coords, base, first)
    # display(coords)
    while rs:
        r = rs.popleft()
        isec = list(set(coords) & set(r))
        if not isec:
            rs.append(r)
        elif len(isec) == 1:  # spiro
            attach_spiro(coords, r, isec)
        elif len(isec) == 2:  # fuse
            attach_fused(coords, r, isec)
        else:  # bridge or append
            bridge(coords, r, isec)
        # display(coords)
    return coords