Pattern anatomy: how written patterns are structured
How a written amigurumi pattern is put together, what each part means, and what Frogproof's validator checks on every round. Every example on this page is syntax the app actually accepts.
The big picture
A pattern is a list of pieces (Head, Body, Legs...), each made separately and sewn together. Each piece is a list of rounds (or rows, if worked flat), one per line. A round line has up to three parts:
R4: (SC 3, Inc) x 6 [30]
- A round label:
R4:,Rnd 3:,Row 2),4., or a range like9-15./R5-R7:. The app strips these on import; a range repeats the same round. - The instructions: stitches, repeats, and modifiers.
- A count tag
[30](or(30)): the number of stitches the round should end with. This is ground truth for checking.
Starts
- Magic ring:
SC 6 in magic ring [6]. Also writtenmagic circle,mc,mr,adjustable ring. See the magic ring. - Chain-2 start:
Ch 2, 6 sc in 2nd ch from hookis structurally a magic ring of 6 and is read as one. - Chain-loop ring:
Ch 4, sl st to form a ring, 8 sc in ringalso becomes a ring of 8. - Flat row start:
ch 11, sc in 2nd ch from hook and in each ch acrossworks back down the chain (skipped chains = ordinal minus 1). - Oval start:
Ch 4, 2sc, sc, 3sc, sc, sc [8]or the written form with "3 sc in last ch" and "working on the opposite side of the chain". The app solves the chain arithmetic (side one takes N-1 chains, the return side N-2) and only accepts an oval reading when exactly one assignment fits. See ovals.
Repeats
The workhorse notation, all equivalent:
(SC 3, Inc) x 6
[SC 3, Inc] x 6
(SC 3, Inc) ×6 (unicode times sign)
(SC 3, Inc) * 6
[sc 3, inc] 6 times (CYC bracket style)
[sc 3, inc] twice
Numbers can lead or trail a stitch (6 sc, sc 6, even glued: sc6, Incx6). A period separates groups just like a comma (inc, 4 sc, inc. 8 sc.), and it also closes a section-scoped FLO, / BLO, modifier.
"Around" and "in each stitch": SC around [24], (4 sc, dec) around [20], 2 sc in each st around [12] all resolve from the stated count. Antique patterns state no counts at all, so "repeat all around" resolves against the previous round's count instead. With neither, "around" is an honest error, never a guess.
Counts: the two numbers that matter
For every round the validator computes:
- produced: stitches this round leaves for the next round to work into.
- consumed: base stitches of the previous round it works across.
Per stitch: sc/hdc/dc/tr/dtr/sl make 1 use 1; ch makes 1 uses 0 (or 0 if it is a turning chain or spike spine); inc makes 2 uses 1; dec and hdc-dec make 1 use 2; skip makes 0 uses 1; picot makes 0 uses 0; an N-shell makes N uses 1; an N-cluster makes 1 uses N; popcorn/bobble/puff make 1 use 1. Placements back and same, and stitches after an around-spike marker, consume no base.
What the validator checks
- The stated count: produced must equal the
[N]tag. Mismatch is an error: "Counted 29 stitches, but you wrote [30]." - The previous round: consumed should equal what the previous round produced. Mismatch is a warning: "Works 23 base stitches, but the previous round has 24."
- Short rows (
short SC 16) are allowed to stop early; leftover bases stay live for the next round. Only over-consuming warns. - Magic-ring rounds skip the previous-round check (there is no previous round).
- Hard parse errors (unknown stitch, bare special with no size, "around" with nothing to resolve it) make the round's counts unreliable and are surfaced as errors.
Common printed-errata types
The kinds of mistakes the checker actually catches in published patterns:
- Count-tag typos: the instructions make 30 but the pattern says [32].
- A repeat that does not divide: a real 1915 pattern repeats a 4-stitch unit over 10 stitches; the printed pattern silently relies on the crocheter fudging the lap. The app refuses to guess and flags it.
- Drifted counts: an earlier round's error carrying forward, so every later "works N but previous has M" warning points back to the first bad round.
- Increase/decrease placement ambiguity: "2 sc, inc x 5" could be "2 sc, (inc) x 5" or "(2 sc, inc) x 5"; the app tries both and keeps the one matching the stated count.
- Missing counts entirely (antique patterns): resolved by threading each round's count into the next; anything that still does not reconcile is flagged.
See also
- Glossary for every term the app reads
- Reading charts for the symbol side
- Reading patterns for the beginner-paced walkthrough