Hoppe et al. extended Loop's scheme by introducing types for the vertices and edges. Now the weights used in calculating the next level vertex locations depend on these types, and we can have sharp features such as creases, corners, and cusps.