def METHOD_NAME(nw: NodeWrangler, instances):
    geometry = nw.new_node(Nodes.GroupInput, expose_input=[('NodeSocketGeometry', 'Geometry', None)])
    points, _, rotation = nw.new_node(Nodes.DistributePointsOnFaces, [geometry],
                                      input_kwargs={'Density': 2e3}).outputs[:3]
    points = nw.new_node(Nodes.MergeByDistance, [points, None, .005])
    perturb = .4
    rotation = nw.new_node(Nodes.AlignEulerToVector,
                           [nw.add(rotation, nw.uniform([-perturb] * 3, [perturb] * 3)),
                               nw.uniform(.2, .5)], attrs={'axis': 'Z'})
    instances = nw.new_node(Nodes.CollectionInfo, [instances, True, True])
    twigs = nw.new_node(Nodes.RealizeInstances, [nw.new_node(Nodes.InstanceOnPoints,
                                                             [points, None, instances, True, None, rotation,
                                                                 nw.combine(1, 1, nw.uniform(1., 1.5))])])
    geometry = nw.new_node(Nodes.JoinGeometry, [[geometry, twigs]])
    nw.new_node(Nodes.GroupOutput, input_kwargs={'Geometry': geometry})