A computing device, comprising: a drawing beautification engine (108, 300) configured to beautify raw drawing data representing drawing strokes input by a user of a canvas, the drawing beautification engine (108, 300) including: a raw data processor configured to receive the raw drawing data and identify a set of segments in the raw drawing data; a beautification director configured to construct a structural representation of the set of segments identified in the raw drawing data that specifies a topological relationship between the segments included in the set of segments identified in the raw drawing data; a multiple primitive beautifier configured to identify at least one set of adjacent segments in the structural representation to which a multiple primitive beautification action applies, based at least on proximity of segments in the set of segments identified in the raw drawing data, on the segments of the set of segments identified in the raw drawing data that have a predetermined geometric relationship with each other, and on the segments of the set of segments identified in the raw drawing data that have particular portions proximate to each other, wherein the multiple primitive beautification action is a beautification action that applies to multiple segments, such that the relationship between the multiple segments is changed by the multiple primitive beautification action; and a multiple primitive action applier configured to apply the multiple primitive beautification action to the adjacent segments to generate beautified raw drawing data, wherein the beautification director comprises an undirected graph builder and the structural representation comprises one or more undirected graphs constructed from the set of segments that indicate each segment in the set as a vertex, and indicates for each vertex any other vertexes representing adjacent segments in the set. a drawing beautification engine (108, 300) configured to beautify raw drawing data representing drawing strokes input by a user of a canvas, the drawing beautification engine (108, 300) including: a raw data processor configured to receive the raw drawing data and identify a set of segments in the raw drawing data; a beautification director configured to construct a structural representation of the set of segments identified in the raw drawing data that specifies a topological relationship between the segments included in the set of segments identified in the raw drawing data; a multiple primitive beautifier configured to identify at least one set of adjacent segments in the structural representation to which a multiple primitive beautification action applies, based at least on proximity of segments in the set of segments identified in the raw drawing data, on the segments of the set of segments identified in the raw drawing data that have a predetermined geometric relationship with each other, and on the segments of the set of segments identified in the raw drawing data that have particular portions proximate to each other, wherein the multiple primitive beautification action is a beautification action that applies to multiple segments, such that the relationship between the multiple segments is changed by the multiple primitive beautification action; and a multiple primitive action applier configured to apply the multiple primitive beautification action to the adjacent segments to generate beautified raw drawing data, a raw data processor configured to receive the raw drawing data and identify a set of segments in the raw drawing data; a beautification director configured to construct a structural representation of the set of segments identified in the raw drawing data that specifies a topological relationship between the segments included in the set of segments identified in the raw drawing data; a multiple primitive beautifier configured to identify at least one set of adjacent segments in the structural representation to which a multiple primitive beautification action applies, based at least on proximity of segments in the set of segments identified in the raw drawing data, on the segments of the set of segments identified in the raw drawing data that have a predetermined geometric relationship with each other, and on the segments of the set of segments identified in the raw drawing data that have particular portions proximate to each other, wherein the multiple primitive beautification action is a beautification action that applies to multiple segments, such that the relationship between the multiple segments is changed by the multiple primitive beautification action; and a multiple primitive action applier configured to apply the multiple primitive beautification action to the adjacent segments to generate beautified raw drawing data, wherein the beautification director comprises an undirected graph builder and the structural representation comprises one or more undirected graphs constructed from the set of segments that indicate each segment in the set as a vertex, and indicates for each vertex any other vertexes representing adjacent segments in the set.