A system for assessing three dimensional printability of a 3D model, said system comprising: at least one processor configured to: receive, from a client-side design application, a 3D model and configuration data describing the print material and parameters of a 3D printing process; receive or generate slices of the 3D model based on the parameters of the 3D printing process of the configuration data, the slices representing two dimensional solids of the 3D model to be printed in corresponding print layers; regularize each slice by performance of Boolean operations to the slice merging disjoint overlapping components in the respective slice; partition each regularized slice into a printability map by simulating the translation of a print head within the boundaries of the regularized slices, the simulation identifying printable regions of each of the regularized slices; wherein the printability map of each regularized slice is portioned into three disjoint sets of regions, the three disjoint sets including a first set of regions formed of features smaller than a smallest printable feature determined from the configuration data, a second set of regions formed of features larger than the smallest printable feature, but smaller than a minimum recommended feature size for the print material, and a third set of regions formed of features larger than the smallest printable feature and the minimum recommended feature size for the printing material, wherein the simulation includes computing a white hat transform of each regularized slice based on a morphological opening and a disc having a diameter equal to the minimum recommended feature size for the print material in order to distinguish between the second and thirds sets of regions; and wherein the simulation further includes calculating the morphological opening in each regularized slice by a structuring element representing the smallest printable feature; and determine a 3D layer for each of the printability maps by selecting a set of regions of the printability map and extruding the regions of the set in the print direction by a distance equal to a layer thickness, wherein the layer thickness is determined from the configuration data; combine the 3D layers into a layer model provided to the client-side design application. receive, from a client-side design application, a 3D model and configuration data describing the print material and parameters of a 3D printing process; receive or generate slices of the 3D model based on the parameters of the 3D printing process of the configuration data, the slices representing two dimensional solids of the 3D model to be printed in corresponding print layers; regularize each slice by performance of Boolean operations to the slice merging disjoint overlapping components in the respective slice; partition each regularized slice into a printability map by simulating the translation of a print head within the boundaries of the regularized slices, the simulation identifying printable regions of each of the regularized slices; wherein the printability map of each regularized slice is portioned into three disjoint sets of regions, the three disjoint sets including a first set of regions formed of features smaller than a smallest printable feature determined from the configuration data, a second set of regions formed of features larger than the smallest printable feature, but smaller than a minimum recommended feature size for the print material, and a third set of regions formed of features larger than the smallest printable feature and the minimum recommended feature size for the printing material, wherein the simulation includes computing a white hat transform of each regularized slice based on a morphological opening and a disc having a diameter equal to the minimum recommended feature size for the print material in order to distinguish between the second and thirds sets of regions; and wherein the simulation further includes calculating the morphological opening in each regularized slice by a structuring element representing the smallest printable feature; and determine a 3D layer for each of the printability maps by selecting a set of regions of the printability map and extruding the regions of the set in the print direction by a distance equal to a layer thickness, wherein the layer thickness is determined from the configuration data; combine the 3D layers into a layer model provided to the client-side design application.