The Delta Filter

Use the Delta filter to try a shape change while retaining the outline that preceded it. Move a few important coordinates, hold others in place, and let FontLab interpolate the remaining coordinates. The result stays adjustable, including the overall strength of the change.

Delta Filter Mechanics

Power Nudge commits a contour edit, moving selected nodes and proportional followers, the virtual servant nodes from Editing Modes and Modifiers. The Delta filter generalizes this to the whole outline non-destructively: explicit adjustments remain separate from the source drawing in a live construction.

Each node has an X coordinate and a Y coordinate. The filter treats those coordinates independently. A transformed coordinate has an explicit instruction to move by an offset or to remain at its original position. An untransformed coordinate has no such instruction; FontLab derives its position by interpolation between transformed coordinates.

“Untransformed” therefore does not mean “will stay in place.” To hold a coordinate at its original position while surrounding coordinates move, give it an attachment delta.

Add the filter

Select the element and choose Element > Add Filter > Delta. An empty filter has no visible effect. Its untransformed points appear as small light-blue circles when you edit the filter.

The Elements panel distinguishes the Delta construction from the source nested inside it. Select the Delta entry to edit deltas, or select the source to edit the original contour. You can also switch editing contexts by double-clicking the source nodes or the filter result. Use the panel if the overlapping outlines make the intended target difficult to select.

Move or hold coordinates

There are three useful kinds of adjustment:

Delta How to create it Purpose
Bidirectional move Drag a filter point diagonally Give both X and Y an explicit offset.
Unidirectional move Drag horizontally or vertically Change one coordinate while leaving the other available for interpolation.
Attachment Click a point without dragging Hold one or both original coordinates in place.

Hold Shift while dragging to constrain the direction. If following the italic angle is enabled, the constraint can follow that angle rather than a strictly vertical line. Inspect the offset values when you need a strictly horizontal or vertical adjustment.

A new attachment can infer its initial type from the existing deformation. Select it and click again to cycle its coordinate-locking behavior. The display distinguishes a two-axis attachment from horizontal-only and vertical-only attachments. Check the displayed state rather than assuming that the first click always locks both axes.

For example, to widen an oval while retaining its left edge, attach the leftmost point and move the rightmost point horizontally. Then inspect the upper and lower curves. Add further deltas only where the interpolated result needs more control.

The transformed/untransformed distinction also appears in TrueType hinting; see The TrueType Hinting Model and Workspace and the delta-instruction workflow in Visual TrueType Instructions. Here, however, the controls are editing instructions for the live outline construction; adding a Delta filter does not itself create a set of TrueType hinting instructions.

Edit and copy deltas

Click a delta to select it, then drag to change its offset. Cmd-click on macOS or Ctrl-click on Windows opens numeric entry. The property bar also provides numeric controls for inspecting and setting the adjustment.

The Delta widget keeps its adjustment values and strength together for the selected filter.

The Delta widget keeps its adjustment values and strength together for the selected filter.

Press Backspace to remove the selected delta. That coordinate becomes available for interpolation again, so removing an attachment may cause it to move rather than simply return to its original position.

To reuse an existing delta, select the destination filter point or points, then Alt-click the delta whose settings you want to copy. Selection is important: confirm the active destination and inspect the copied result before continuing with a larger group.

Adjust Progress

The property bar's Progress control ranges from 0% to 100%, setting the overall strength of the adjustment. At 0%, the filter displays the source shape. At 100%, it displays the full adjustment. Intermediate values interpolate between those states.

Use this control to compare a proposal with its source or to find a useful amount of change without editing every delta again. A half-strength result is a geometric interpolation, not a guarantee of halfway optical weight or width.

Save the live version if the proposal may need further revision. Then choose Element > Expand Filters to make the result ordinary editable contours, or Element > Remove Filter to discard the Delta construction. The filter also has Apply Delta Filter and Remove Delta Filter context commands.

Deriving Weights, Widths, and Alternates

Delta is useful for prototyping another weight or width from an existing glyph. Begin with a few coordinates that define the main strokes and use attachments to protect positions that should remain fixed.

For a trial heavier shape, move the appropriate sides of stems and bowls outward while checking the counters. For example, a vertical stem running from x = 100 to x = 180 is 80 units wide. Give its left-edge nodes horizontal attachment deltas and its right-edge nodes horizontal move deltas of +20. At 100% strength the stem becomes 100 units wide; at 50% it becomes 90 units wide. Inspect the adjoining curves and counter before repeating the adjustment on another stem. For a lighter shape, move those boundaries inward. For condensed or extended proportions, adjust horizontal positions while protecting vertical landmarks and any stroke thickness that should remain stable.

These operations require design decisions. Scaling or moving all outer points does not automatically preserve contrast, counter proportions, overshoot, or spacing. Work on representative letters and compare them in text before applying a pattern broadly.

Derive an alternate from a shared source

  1. Add an element reference to the base drawing in the alternate glyph.
  2. Apply a Delta filter to the referenced content.
  3. If the filter is shared with other occurrences, use Element > Reference > Unlink Filter so that the alternate has its own treatment while retaining the shared drawing.
  4. Add attachment deltas at positions that should remain fixed, then move the coordinates that establish the alternate's proportions.
  5. Adjust the overall progress value and inspect the result with neighboring glyphs.

For example, zero.onum can begin with a reference to zero and a Delta adjustment to its proportions. This does not encode an automatic recipe for an oldstyle figure: choose the intended height, width, contrast, and spacing yourself. Edits to the shared source continue to affect the alternate while its reference remains linked.

Recheck deltas after changing the source's structure. Adding, removing, or reordering nodes changes the geometry to which the adjustment was attached.

For a local revision, attach coordinates on either side of the region you want to change, then adjust the intervening points. The attachments help contain the interpolation. Save the live construction as a proposal and use the progress control to compare amounts. Expand only when direct editing of the revised contour is more useful than retaining the adjustable proposal.