Custom Brushes and Stroke Widths in FontForge
While FontForge does not feature a dynamic, raster-style brush engine like digital painting software, you can create custom stroke widths and simulate custom brushes using its vector stroke expansion tools. FontForge allows you to apply precise stroke thicknesses, calligraphic angles, and custom polygonal nib shapes to open paths, which are then converted into closed vector outlines suitable for font generation.
How FontForge Handles Strokes
Fonts rely strictly on closed vector outlines to render glyphs. Because of this, raw strokes with variable weights cannot exist natively in a final font file (such as OpenType or TrueType). FontForge resolves this by allowing you to draw single-line paths (skeletons) and then expand those strokes into filled contours using mathematical pen nibs.
Using the Expand Stroke Feature
To apply specific stroke widths or emulate custom brush tips:
- Draw your glyph or letterform as an open path using the Freehand, Point, or Pen tools.
- Select the path you want to stroke.
- Navigate to Element > Expand Stroke... in the top menu.
Inside the Expand Stroke dialog, you can customize several parameters:
- Stroke Width: Enter the exact width of the stroke in font units.
- Nib Shape (Brush Type): Choose between a circular nib, an elliptical (calligraphic) nib, a rectangular nib, or a custom polygon.
- Nib Angle: For calligraphic and rectangular nibs, adjust the angle to vary stroke thickness based on the direction of your path, closely mimicking traditional broad-edge or chisel pens.
- Caps and Joins: Configure how line terminals and corners appear (e.g., butt, round, or bevel).
Creating Custom Nib Shapes
To emulate a custom brush, select the Polygonal option in the Expand Stroke dialog. FontForge lets you define a custom convex polygon by specifying coordinate points. As FontForge traces your path, it drags this polygon along the trajectory, acting as a custom-shaped brush stamp. This is particularly useful for achieving unique historical pen effects, rough geometric edges, or asymmetrical stroke profiles.
Limitations and the External Vector Workflow
FontForge's brush simulation has notable limitations:
- Destructive Transformation: Expanding a stroke converts the editable center path into an outline. Keep a backup copy of your original single-line paths on the background layer in case you need to adjust stroke widths later.
- No Texture or Variable Pressure: FontForge cannot handle textured brushes, distressing, or tablet pressure gradients.
For highly detailed, textured, or complex variable-width brushwork, the recommended workflow is to design your glyphs in dedicated vector software like Adobe Illustrator or Inkscape. In those programs, apply your custom art brushes, convert all strokes to closed outlines (using "Outline Stroke" or "Expand Appearance"), and import the resulting SVG files directly into FontForge.