We describe a new approach for creating concise high-level generative models from range images or other approximate representations of real objects. Using data from a variety of acquisition techniques and a user-defined class of models, our method produces a compact object representation that is intuitive and easy to edit. The algorithm has two inter-related phases: recognition, which chooses an appropriate model within a user-specified hierarchy, and parameter estimation, which adjusts the model to best fit the data. Since the approach is model-based, it is relatively insensitive to noise and missing data. We describe practical heuristics for automatically making tradeoffs between simplicity and accuracy to select the best model in a given hierarchy. We also describe a general and efficient technique for optimizing a model by refining its constituent curves. We demonstrate our approach for model recovery using both real and synthetic data and several generative model hierarchies...