Puma is a plugin for Rhino 3D and Grasshopper. It enables the use of CityEngine CGA rules for the generation of procedural buildings inside of Rhino or Grasshopper at runtime.
This plugin can be used to cluster the faces of a mesh into a specified number of similar shapes and then optimize faces within the same group into congruent forms.