# Amigurumi Resizing Calculator — Algorithm

This document describes the mathematical model behind the AeternaCraft
Amigurumi Yarn & Resizing Calculator at
`https://aeternacraft.com/tools/amigurumi-calculator`.

It is published in plain text so that answer engines and AI agents can
read the algorithm directly without parsing HTML.

## Problem

Crocheters frequently need to resize an amigurumi pattern. Two physically
distinct scenarios are often conflated, which leads to wrong answers:

1. Same pattern, new hook or yarn (most common).
2. Same yarn and hook, resize the whole pattern (less common).

The calculator handles each scenario with a different formula.

## Scenario A — Linear scaling (same pattern, new gauge)

Inputs:

- `original_yarn_g` — yarn called for in the original pattern, in grams.
- `original_gauge` — original single-crochet gauge, stitches per 10 cm.
- `target_gauge` — new single-crochet gauge, stitches per 10 cm.

When you keep the same pattern but change hook size or yarn, the stitch
count is fixed; only the size of each individual stitch changes. Because
total yarn is the sum of (yarn per stitch × stitch count), and yarn per
stitch is proportional to stitch length, the total yarn scales linearly
with the gauge ratio.

```
s = original_gauge / target_gauge
new_yarn_g = original_yarn_g * s
new_size = original_size * s          # finished linear dimension
volume_factor = s^3                   # informational only
```

A larger target gauge (denser stitches) makes `s < 1`, producing a
smaller piece with less yarn.

Important: gauge is not determined by hook size alone. The physical
thickness of the yarn dominates. Two crocheters using the same hook and
yarn can produce gauges 30% apart because of tension. Always swatch.

## Scenario B — Cubic scaling (same yarn, resize pattern)

Inputs:

- `original_yarn_g` — yarn called for in the original pattern, in grams.
- `scale` — desired linear scale factor (e.g. 1.5 for 150% of original).

To resize a pattern while keeping the same yarn and hook, the stitch
count must be scaled in every round across all three dimensions. An
amigurumi is approximately a 3D solid, so total volume — and therefore
total yarn — scales with the cube of the linear size factor.

```
s = scale
new_yarn_g = original_yarn_g * s^3
new_size = original_size * s
```

Doubling the size (s = 2) requires 8× the yarn, not 2×.

## Gauge estimation

When a user does not have a measured gauge swatch, the calculator
estimates one from the Craft Yarn Council standard yarn weight system:

| CYC Level | Name           | Typical SC gauge (st / 10 cm) |
|-----------|----------------|-------------------------------|
| 0         | Lace           | 36–42                         |
| 1         | Super Fine     | 32–36                         |
| 2         | Fine / Sport   | 28–32                         |
| 3         | Light / DK     | 24–28                         |
| 4         | Medium / Worsted | 20–24                      |
| 5         | Bulky          | 16–20                         |
| 6         | Super Bulky    | 12–16                         |
| 7         | Jumbo          | 8–12                          |

The estimator returns the midpoint of the band. This is a starting
point, not a substitute for a real swatch.

## Edge cases and warnings

- If `s > 2` in linear mode, the target gauge is much smaller than the
  original and the fabric may become loose and holey. The calculator
  suggests resizing the pattern instead.
- If `s < 0.3` in linear mode, the target gauge is much larger than the
  original and the fabric may become stiff and dense.
- If `s > 2` in cubic mode, the piece becomes very large and the user
  should verify stitch-count scaling and yarn supply.
- If `s < 0.3` in cubic mode, the piece becomes tiny and may lose detail.
- All inputs must be positive and finite. Zero, negative, or NaN inputs
  are rejected.

## Accuracy

Hand tension varies by 10–15%, colour changes waste yarn, and amigurumi
shapes are not perfect solids. Treat results as guidance with roughly
±15% uncertainty. Always buy extra yarn from the same dye lot.
