← Back to portfolio
bound.less engineering lab

How many arcs does a smooth stroke need?

Arc Pen Lab compares a cubic pen with smoothly joined pairs of circular arcs. Adjust the split tolerance to see where extra pieces help preserve a difficult turn.

The engineering question

Before rebuilding the engine around circular arcs, the first question was whether they could preserve the feel and shape of the original cubic pen. A biarc is a pair of circular arcs joined smoothly. This lab lets the same pen samples drive both versions, then makes tiny differences visible.

What the lab makes visible

Too few pieces can change a tight bend; more pieces cost work. This experiment feeds both pens the same samples and tangents, then lets you switch views, show joints and inspect the count of arcs used between samples.

Arc Pen Lab showing reference curves, pen samples, arc joints and subdivision measurements
The sparse sweep at 0.05-unit tolerance, with both curves, sample points and arc joints. The panel shows the number of pieces and the measured shift for this example. Open full size ↗

Try it

  1. Start with fast sweep, hairpin or tight wiggle, or draw your own stroke.
  2. Switch between ink, centerlines and difference views.
  3. Change the split tolerance from never split to a finer value.
  4. Watch the arcs-per-gap count, show joints or samples, and drag sample points to test difficult turns.

What it showed

In testing, arcs fitted to within 0.25 units of the original curve felt right to draw. That result led to Arc Bake Lab and, later, to circular arcs throughout bound.less.

An earlier experiment from bound.less

I used AI to build focused tools for comparing engineering choices in bound.less. These pages make an abstract choice visible and measurable, so I could inspect the result and decide what to build next.

This version comes from the project’s revision of August 26, 2026. The lab pages were later removed from the main app, which has kept evolving; the geometry code here is from that same revision.

How to read the results

This lab tests only the stroke’s center line, not its filled outline or the full infinite canvas. The difference view is a visual check at the current zoom, not a precise error measurement.

This earlier lab doesn’t show how fast or accurate the current bound.less renderer is.