Hello everyone!
I wanted to improve how grainlines work in Seamly, but then couldn’t decide on the best approach, maybe you’ll have thoughts and ideas.
Usually I want the same thing on every piece: run the grainline along the grain, nearly the full length of the piece, a little short of the edges, and in most cases centered on the piece. Longer pieces get longer grainlines, shorter ones shorter, and it should keep working when the piece changes or is graded.
Today there are two ways to do this:
- Top + bottom anchors: create two points inside the piece, a little in from the edges along the grain, add them on the piece’s Anchors page, and pick them as Top and Bottom. Length and angle come from those points.
- Center + length: create a point in the middle of the piece, add it as an anchor, pick it as Center, set the rotation (e.g. 90), and write a length formula, e.g.
0.8*Line_A1_A2from some line along the piece.
Either way it’s extra construction points (and often lines) for every piece. When the piece changes shape they don’t follow it unless I build them from the right points, and on slanted edges (sleeve caps, for example) the arrow tip easily ends up on the cut line.
I’d like help with the user experience. These are the options I considered:
1. New variables for piece size
Something like CurrentPieceHeight / CurrentPieceWidth, used in the length formula as 0.8*CurrentPieceHeight. It fits the formula system, but height/width are bounding-box sizes. They only match the grainline when it’s at exactly 0° or 90°, and on angled or shaped pieces the arrow would still overshoot or fall short.
2. Predefined anchor points
Every piece automatically gets anchors like “Piece center”. That covers centering, but “Piece top” / “Piece bottom” don’t work because the grainline isn’t always at 90°. It could still be handy for other things, like labels, without creating points by hand.
3. Options on the grainline tab (the one I prefer)
- Next to Length, “Match to piece”: the length is measured along the grainline’s own direction across the piece, either as a % of that length or as the full length minus a margin from each edge (e.g. 1 cm). The margin is measured to the nearest edge, so slanted edges are handled too.
- Below the Center anchor, “Match to piece center”: the grainline goes through the middle of the piece. Unticked, it stays on the line you drew and only its length is fitted.
The angle still comes from an existing line or a standard value like 90/180, which is a single entry.
Would this work or anyone has other ideas?

