progress with implementation of storing map of all transformations and the surfaces they are applied to listed by ID, foreach ID we have a list of transformations and also a starting rough center, we can then translate some arbitrary geometry to the same spot and then perform all the transformations that where done to the surface to unfold it, to the geometry we want to be at the final position of that surface.  This should let us label every surface after it's unfolded, or unfold any other geometry into the space of the unfolded surfaces on a face level.  By keeping track of the transformations by ID avoid needing to somehow check if unfolded surface and starting surface are the same.