there are three groups any point can fall under root, node, and stem. root points will search for node points around it to grow. The root point will then be “killed” (taken out of node and root group) and be transferred into the stem group which are the points that will be skinned.
all points are initialized with a direction attribute and they will attempt to grow in this direction the best they can. the root points grow by looking for the points nearest to them and drawing vectors between itself and all the points. The point will then grow to the vector that is most similar to its direction attribute. Those vectors override the initialized direction attribute of the near points for the next iteration.