Reshaping brush strokes
Once ink is on the canvas, Formo gives you three different tools for changing it — and it's worth knowing which one to reach for. Global settings change a stroke uniformly, Sculpt nudges its painted outline as a soft, radius-based distortion, and direct path/width-point editing gives exact, individual control over specific points. This article covers all three, in that order.
Editing a stroke after you've drawn it
This is the detail that separates Formo's brush from "commit and hope." Select an existing stroke, and adjusting its smoothing or size doesn't scale or filter the shape you already committed. It goes back to your original raw pressure-and-tilt input and rebuilds the entire stroke from scratch at the new settings.
Why this matters in practice. The line you get after an edit is the line you'd have drawn if you'd used those settings from the start, not a stretched or blurred copy of what you already had. Drew a stroke with the smoothing too low and it came out jittery? Select it, raise the smoothing, and it settles into a clean line built from the same gesture, not a filtered version of the jittery one.
What this doesn't cover. Two limits worth knowing. It only applies to a selected stroke. An unselected one keeps its current shape until you click it. This isn't a retroactive, apply-to-everything setting. And a stroke that's already been baked into a boolean or merge operation with other strokes has passed the point where raw-input regeneration applies; at that point it behaves like a normal, fixed vector shape.
What you can change after the fact. Nib shape, ratio, angle, size, smoothing, and pressure mapping (Min Size) — all of it, on any selected stroke, any time.
Sculpt: push, twirl, pinch, and bloat
Once ink is down, Sculpt lets you reshape it directly, as if it were soft clay, without redrawing anything. It sits alone on its own row in the toolbar, separated from the five paint tools above it. It's the only one of the group that moves existing geometry instead of adding new paint.
Activating it. Select Sculpt from the toolbar, or press W.
The four modes, switchable with number keys 1–4 while Sculpt is active:
- Push: nudges the shape's path in whatever direction you drag, like dragging a finger through wet clay.
- Twirl: rotates the shape locally around your cursor, as if stirring it — great for adding a swirling, organic distortion to an otherwise straight edge.
- Pinch: draws the path inward, toward your cursor, narrowing a shape or sharpening a bulge into a point.
- Bloat: pushes the path outward, away from your cursor, the opposite of pinch, rounding out or inflating a shape locally.
A difference between Push and the other three: Push only moves geometry while your cursor is actually moving — no motion, no effect, since there's nothing for it to act on. Twirl, Pinch, and Bloat are different: they're time-driven, so holding the cursor still with the mouse or pen down keeps applying the effect for as long as you hold it, the same way a real twirl or pinch would deepen the longer you held real clay under your finger. That's worth knowing before you're surprised by a spot twirling further than you meant just from a brief pause.
The two main controls: Radius and Strength. Radius sets how large an area around your cursor the sculpt effect reaches: an 8-to-400-pixel range, with everything outside that radius left completely untouched, not just faded to a negligible amount. Strength sets how forcefully it pushes within that area, from 0 (no effect) to 1 (full strength), defaulting to a moderate 0.6. A small radius with high strength gives you a sharp, localized poke; a large radius with low strength gives a broad, gentle nudge.
Advanced sculpt options refine the feel further, each with a specific effect:
- Hardness (1–4, default 2): how sharply the effect falls off toward the edge of the radius. This is a literal falloff exponent: higher values concentrate the effect into a tighter, harder-edged core instead of a soft gradient, the same idea as a hard-edged versus soft-edged brush in a painting app.
- Rate (0–8, default 2): how fast the time-driven modes accumulate: radians per second for Twirl, a comparable per-second rate for Pinch and Bloat. This is the number that governs exactly how much extra effect you get from holding still, covered above.
- Detail (0.05–2px, default 0.25): how tightly the reshaped geometry is allowed to deviate from the underlying distortion field before a new point gets added. Tighter (lower) follows the sculpt more exactly at the cost of more points on the resulting path; looser (higher) keeps the path leaner but less precisely fitted.
- Refit on commit (on by default): when you release the sculpt, Formo re-fits each piece of geometry it touched into a clean curve instead of leaving behind every intermediate point the live distortion generated. This is what keeps a heavily sculpted stroke from silently accumulating hundreds of extra points over repeated passes; turning it off keeps every point the live sculpt actually created.
- Refit tol (0.1–4px, default 0.5): only relevant when Refit on commit is on: how far the cleaned-up curve is allowed to stray from the sculpted shape. A section that can't be fit that closely keeps its denser, unsimplified points rather than silently drifting off-shape.
Editing a brush stroke's path directly
Beyond global settings or Sculpt, there's a third way to reshape a stroke, one that keeps it a fully brush-editable object the entire time, no conversion involved.
Getting in. Double-click into a brush layer to drill in, then double-click the individual stroke you want to edit. This enters point-and-tangent editing directly on that stroke's own centerline: the recorded path your gesture actually followed, before it was turned into painted ink.
What's inside: two different things you can edit. Once you're in, there are two distinct kinds of edits available on the same stroke, and they work differently.
Moving points and tangents. This reshapes the stroke's underlying path — its skeleton — the same vertex-and-curve editing you'd use on any vector path. Drag a point, and the ink re-derives from the new path automatically, riding along the reshaped route with the same nib and pressure profile it already had.
Adjusting width at a specific point. This is different: rather than moving the path, you're changing how thick the ink is at one particular spot along it, independent of everywhere else on the same stroke. Hover near the edge of the ink itself (not the centerline) at the point you want to adjust, and the cursor changes to indicate you're over a width-adjustable spot. Click and drag outward or inward from there:
- Dragging where no width point exists yet creates one, right at that spot, and starts adjusting it immediately. A stray click with no movement does nothing, so there's no risk of accidentally planting a point you didn't mean to.
- Dragging an existing width point slides it along the stroke, or widens/narrows the ink at that point, depending on the direction you drag.
- Selecting a width point and pressing Delete removes it, and the width smooths back out to whatever the neighboring points (or the stroke's base settings) define.
This is what lets you put a deliberate bulge or pinch at one exact spot on a line — the tip of a claw, a thickened joint, a taper that isn't just pressure-driven — without sculpting the whole area or redrawing the stroke.
How this compares to the other two brush-editing tools. Global settings (Size, Smooth, nib shape/ratio/angle, section 1 above) change the entire stroke uniformly. Sculpt (section 2 above) nudges the painted outline as a soft, radius-based distortion: organic, approximate, good for broad adjustments. Direct path and width-point editing (this section) gives exact, individual control over specific points along the centerline and specific spots of width: precise, deliberate, good for exact corrections rather than broad reshaping.
Getting back out. Click empty canvas space, or press Escape, to leave point-editing and return to normal selection.
Next up — Paint bucket: filling enclosed regions without ever leaving your vector linework.