This dissertation introduces and explores the idea of "User-Guided Inverse 3D Modeling'" -- an interactive approach to shape construction and redesign that extracts well-structured, parameterized, procedural descriptions from unstructured, hierarchically flat input data, such as boundary representation meshes, of a given inspirational prototype. With a few cursor strokes users can express their preferences of the type of modeling primitives to be used in a particular area of the given prototype to be approximated, and they can also select the degree of parameterization associated with each modeling routine. The results are then pliable, structured descriptions that are well suited to implement the particular design modifications intended by the user.
I will present research on the components that make up an inverse 3D modeling system -- from primitive fitting to shape editing to cleaning the resulting model for export. A key research question guiding the design of our system has been how bringing the user into the loop affects the problem: i.e., where can the user's inputs simplify, accelerate or otherwise improve a surface-fitting process? What simple inputs can the user provide to unambiguously extract a desired primitive fit? And how can we let the user immediately begin using their fitted primitives to edit the shape? Answering these questions leads us to many new research findings, including: (1) simple inputs that allow the system to extract primitives with a great deal of user control, (2) improvements to the state of the art in fast, effective fitting methods for sweeps and quadric surfaces, (3) new ways for users to easily guide the boundary-to-CSG reverse-engineering process, and (4) new interactions between diverse primitive fitting and editing modules.