Creating detailed three-dimensional shapes on the computer is hard. The standard tools for the task are complex and require long training and familiarization. As a result, 3D modeling is typically the domain of the professional artist and not the casual user. Professionals invest the time to master their tools, but such tools are usually restricted to low-level sculpting operations. High-level reasoning and geometric manipulation, of which computers are well capable, are not used to help the artist reach her goals more efficiently or creatively. In this dissertation, I propose techniques by which computers, endowed with a greater understanding of the structure of shapes, can both support the creative pursuits of professionals, as well as significantly ease the burden of 3D modeling for the casual user. To this end, I describe methods for generating "suggestions" during the 3D modeling process: component shapes that may be directly used to augment the currently-modeled shape, or to inspire directions for its further development. These suggestions are drawn from a large library of previously-modeled shapes. Also, I discuss the construction of an assembly-based modeling tool that enables casual users to rapidly construct shapes from suggested components, with minimal training. Experiments with both professional and casual users suggest that this approach successfully supports rapid, creative 3D modeling.