1. A method comprising: receiving, by a computing device, a three dimensional (3D) model corresponding to a 3D shape; receiving, by the computing device, selections of an output device and a printing material for printing a 3D object corresponding to the 3D shape; determining, by the computing device, a feature size based at least in part on a possible feature size supported by the output device and properties of the printing material; insetting, by the computing device, an outline of the 3D shape inwards from a boundary of the 3D shape based on the feature size; generating, by the computing device, a medial axis of the 3D shape; applying, by the computing device, a mathematical transform to the medial axis to identify which parts of the medial axis correspond to one or more components of the 3D shape that need to be preserved, the one or more components including at least one of: (i) a component that is thinner than another component of the 3D shape or (ii) a surface feature of the 3D shape; and producing, by the computing device, an output model by creating a union of the one or more components and the insetted shape corresponding to the 3D shape, wherein the output model that is produced includes the insetted shape and the one or more components, wherein the output device uses the output model to print the 3D object corresponding to the 3D shape.