# KH-005 — exact Save Soil logo loom cartoon (founder: "no no let's do exactly this", 2026-09-25 PT)

Files: `KH-005-EXACT-LOGO-LOOM.svg` · `KH-005-EXACT-LOGO-LOOM-6000.png` (6000 px, transparent outside the round) · `KH-005-EXACT-LOGO-LOOM.pdf` (1500 × 1500 mm page).
Phone sheet: `/workspace/005-exact-phone.jpg`. Build scripts: `build/exact/` (edges.py → trace.py → build_exact.py → verify.py).

How it was made: the reference is 600 × 600 px. I fitted its circle from the alpha channel (centre 300.05, 300.05; outer r 300.07 px), so scale = 2.4994 mm per reference px. The rings are true circles at the measured colour-edge radii. The letters come from soft colour masks (each pixel projected onto the green→white or green→blue axis), upscaled 10×, thresholded at 0.5 and traced with potrace (potracer 0.0.4). They are written as cubic Béziers.

Verification (render placed over the upscaled reference at 3000 px): pixel-class agreement 99.76 %. SAVE IoU 0.9967 and SOIL IoU 0.9966. Edge distance on the carpet: mean 0.12 / 0.14 mm, max 0.50 / 0.71 mm. One reference pixel is 2.5 mm, so the reference's own resolution is the limit.

| Role | Hex (sampled median = mean of core pixels) | Geometry |
|---|---|---|
| Green disc | #7EB549 | r 0–710.9 mm |
| White (ring + SAVE) | #FFFFFF | ring r 710.9–721.5 mm (10.6 mm) |
| Blue (rim + SOIL) | #10069F | rim r 721.5–750 mm (28.5 mm) |

There are 3 silk colours, all flat. None match the old house palette (#4C9A28 / #0A1E4D / #F8F5EF), so all three are new yarn matches.

Knot check (150 kpsi, 1 knot ≈ 2.07 mm; morphological 6 mm test at 4 px/mm):
- Letter strokes are about 80–90 mm (I stem ≈ 85 mm, about 41 knots). The white ring is 10.6 mm (about 5 knots) and the blue rim 28.5 mm.
- The O counter is 75 × 291 mm (fine). The A counter is 42 × 154 mm, but it tapers to a point: its top ~14 mm is under 6 mm wide.
- The V's inner notch also tapers: its bottom ~22 mm is under 6 mm wide.
- These two tips (and small traced corner rounding) will close up by about 1–2 cm at knot scale. Everything else passes.
