1. A computer-implemented method comprising: receiving a glyph to be rendered at a size; generating from the glyph an outline of line segments, each line segment having two endpoints and a plurality of points; for each of the line segments, performing, in a computer, operations comprising: determining a movement direction for the line segments, where the movement direction is based on an exterior of the outline of line segments, where the exterior of the outline of line segments is determined based on a winding order, where the winding order is determined based on cross products of a plurality of vector pairs, and where each vector pair is two vectors that intersect at an extrema point of the outline of line segments; and translating the line segment in the movement direction by a distance, where translating comprises moving each point of the line segment in a same direction by a same distance; after translating the line segments, rejoining pairs of adjacent line segments, where rejoining a pair of adjacent line segments comprises: if the adjacent line segments do not intersect, extending the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair; and if the adjacent line segments do intersect, trimming the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair; determining a synthetic bold or synthetic light scaled outline of the glyph from the translated and rejoined line segments.