def METHOD_NAME(self):
    n_branch = np.random.randint(6, 8)
    n_major = np.random.randint(4, 5)
    n_minor = np.random.randint(4, 5)
    n_detail = np.random.randint(3, 4)
    span = uniform(.7, .8)
    detail_config = {
        'n': n_minor,
        'path_kargs': lambda idx: {
            'n_pts': n_detail * 2 + 1,
            'std': .4,
            'momentum': .6,
            'sz': .01 * (2.5 * n_detail - idx)},
        'spawn_kargs': lambda idx: {
            'rnd_idx': 2 * idx + 1,
            'ang_min': np.pi / 8,
            'ang_max': np.pi / 6,
            'axis2': [0, 0, 1]},
        'children': []}
    minor_config = {
        'n': n_major,
        'path_kargs': lambda idx: {
            'n_pts': n_minor * 2 + 1,
            'std': .4,
            'momentum': .4,
            'sz': .03 * (2.2 * n_minor - idx)},
        'spawn_kargs': lambda idx: {
            'rnd_idx': 2 * idx + 1,
            'ang_min': np.pi / 8,
            'ang_max': np.pi / 6,
            'axis2': [0, 0, 1]},
        'children': [detail_config]}
    major_config = {
        'n': n_branch,
        'path_kargs': lambda idx: {
            'n_pts': n_major * 2 + 1,
            'std': .4,
            'momentum': .4,
            'sz': uniform(.08, .1)},
        'spawn_kargs': lambda idx: {
            'init_vec': [span * np.cos(2 * np.pi * idx / n_branch + uniform(-np.pi / 9, np.pi / 9)),
                span * np.sin(2 * np.pi * idx / n_branch + uniform(-np.pi / 9, np.pi / 9)),
                math.sqrt(1 - span * span)]},
        'children': [minor_config]}
    return major_config