Adaptive Subdivision   As our surface grows, we need to maintain the level of detail of our mesh in order to have a smooth surface and a stable stimulation. Any edge that grows above a threshold length is subdivided such that each neighboring triangle is split in two. To maintain good triangle shape, an edge is only split if it is the longest edge in a triangle. Additionally, we introduce edge flipping to balance the topology of the mesh as it subdivides.