Skip to content

How FlossGrid matches colors and builds charts

Every equivalent on this site is computed, not copied: 2,020 thread and bead colors from open datasets are converted to the CIELAB color space and compared with the CIEDE2000 formula. The pattern maker runs the same code on your photo in your browser. Data last updated October 26, 2026.

From a screen color to CIELAB

Each palette lists a color as an sRGB hex value, the way a screen shows it. Distances between hex values do not match what the eye sees: a step in dark blues looks bigger than the same step in yellows. So every color is first converted to CIELAB. The sRGB values are linearized (the screen gamma is removed), turned into CIE XYZ with the D65 white point, then into L* (lightness, 0 to 100), a* (green to red) and b* (blue to yellow). In that space, equal distances are much closer to equal visible differences.

CIEDE2000 and the match bands

The distance between two Lab colors is measured with CIEDE2000 (ΔE₀₀), the color-difference formula published by the CIE in 2001. It adds corrections for lightness, chroma and hue, and for the blue region where the older formulas disagree with people. A ΔE₀₀ of about 1 is the smallest difference most people notice when two colors sit side by side. Every equivalent on the site carries its ΔE₀₀ and one of five plain-language bands:

Match-quality bands used on every color page
BandΔE₀₀What it meansDMC colors with an Anchor match in this band
identical ΔE₀₀ below 1 No visible difference on screen; in the data the two colors are effectively the same. 11 (2.2 %)
very close 1 to under 3 A difference you only see side by side; safe to swap in most designs. 170 (34.8 %)
close 3 to under 6 Visible next to each other, fine where the color is not next to the original. 264 (54.0 %)
similar 6 to under 10 Same color family but clearly different; check before you swap a large area. 43 (8.8 %)
loose 10 or more No good match in that brand; the nearest color is shown only as a pointer. 1 (0.2 %)

The last column is computed from the data on this site: for each of the 489 DMC colors, the nearest of the 445 Anchor colors. The mean distance of those best matches is ΔE₀₀ 3.69. The full table is on the DMC to Anchor conversion chart.

Worked example: DMC 321 Red

DMC 321 Red is listed as #c72b3b, which is L* 44.5, a* 60.5, b* 30.2 in CIELAB. The nearest Anchor color is Anchor 1098 Bright Red (#d41829, L* 45.4, a* 67.7, b* 42.3) at ΔE₀₀ 4.73, a close match. The plain straight-line distance in Lab (CIE76) would be 14.13; the runner-up is Anchor 29 Carnation Dark at ΔE₀₀ 5.28.

Why every screen color is an approximation

A hex value is a measurement of a color card or a product photo, taken by whoever compiled the dataset. Thread is dyed cotton with a sheen that changes with the light, beads are plastic that shifts color when it is ironed, and your screen has its own brightness and calibration. That is why the color pages note that RGB values are screen approximations, and why "identical" means identical in the data, not a promise about two skeins in your hand. For a commission or a large area, compare the real threads before you buy.

How the pattern maker turns a photo into a chart

  1. Resize. The photo is scaled to the grid you ask for, for example 80 stitches wide. Each cell averages the pixels it covers in linear light, so thin dark lines do not vanish and edges do not turn muddy. The height follows the photo's aspect ratio and the shape of the cell (knitting stitches are wider than tall).
  2. Choose the colors. The cell colors are grouped in CIELAB with k-means++ (seeded deterministically, so the same photo and settings always give the same chart). Each group center is snapped to the nearest real color of the chosen palette by CIEDE2000, and every cell is then assigned to the nearest of those chosen colors. Optional Floyd–Steinberg dithering spreads the rounding error to soften gradients.
  3. Clean up confetti. Single isolated stitches of a color are slow to stitch and rarely visible. The cleanup step replaces a cell that has no neighbor of its own color with the color most of its neighbors share; the strength setting decides how aggressive that is.
  4. Skip the background. Optionally, the area of one color that touches the border is flood-filled and left unstitched, which is how many portraits on Aida are worked. Transparent parts of a PNG are never stitched.
  5. Assign symbols and count. The most-used color gets the clearest symbol, then the next, so the chart stays readable. The key lists each color's code, name, stitch count and estimated skeins, drills or beads, and the finished size is computed from the fabric count or bead size.

All of this runs in your browser. The photo is never uploaded; the server only delivered the page and the palette files. The PDF chart is a vector PDF with real text symbols and a color key, so it prints sharply at any size.

How skeins are estimated

A full cross stitch is two diagonals across the cell on the front (2 × √2 × the cell width) plus about two cell widths of travel on the back, so one cross uses (2√2 + 2) ≈ 4.828 cell widths of thread for each strand. FlossGrid adds 15 % for starting, ending and traveling between areas, and counts a skein of six-strand cotton (DMC, Anchor, Madeira) as 8 m × 6 strands = 48 m of single strand.

Worked example: 1,000 stitches on 14-count Aida with 2 strands. The cell is 25.4 mm ÷ 14 = 1.814 mm wide. One cross uses 4.828 × 1.814 mm × 2 strands = 17.52 mm of single strand, so 1,000 stitches use 17.52 m. With the 15 % allowance that is 20.15 m, or 20.15 ÷ 48 = 0.42 of a skein. The color key rounds up, so you buy 1 skein.

Full cross stitches per skein by fabric (formula above, 15 % allowance included; evenweave from 25 count is stitched over two threads)
FabricStitches per inchCell widthUsual strandsStitches per skeinWith 1 strand
11-count Aida 11 2.31 mm 3 1,247 3,743
14-count Aida 14 1.81 mm 2 2,382 4,764
16-count Aida 16 1.59 mm 2 2,722 5,445
18-count Aida 18 1.41 mm 2 3,062 6,125
22-count Aida 22 1.15 mm 1 7,487 7,487
28-count evenweave, over two 14 1.81 mm 2 2,382 4,764
32-count evenweave, over two 16 1.59 mm 2 2,722 5,445

Real use varies with tension, how far you travel on the back and whether you work half stitches, so treat the estimate as a planning number and buy one spare skein of the main colors. Fuse beads are counted exactly, one per cell, so buy a few extra of each color for the ones that roll away. Diamond-painting drills are counted one per cell plus 10 % spare per color for drills that are lost or chipped, and use DMC color numbers. Per-count details are on the fabric count pages.

Data sources

The site holds 2,020 colors: 1,303 stranded-cotton thread colors and 717 fuse-bead colors, from the open datasets below. Brand names are trademarks of their owners and are used only to identify their products; FlossGrid is not affiliated with any of them.

Palette datasets, their sources and licenses
PaletteColorsSourceLicenseRetrieved
DMC DMC Mouliné stranded cotton (art. 117) 489 sharlagelfand/dmc (data-raw/floss_adrianj.csv); codes 01-35 from KDE KXStitch dmc.xml MIT (codes 01-35: GPL-2.0-or-later) 2026-10-26
Anchor Anchor stranded cotton 445 KDE KXStitch floss schemes GPL-2.0-or-later 2026-10-26
Madeira Madeira stranded cotton (Mouliné) 369 KDE KXStitch floss schemes GPL-2.0-or-later 2026-10-26
Perler Perler fuse beads (5 mm midi) 103 maxcleme/beadcolors MIT 2026-10-26
Perler Mini Perler Mini fuse beads (2.6 mm) 41 maxcleme/beadcolors MIT 2026-10-26
Hama Hama Midi fuse beads (5 mm) 92 maxcleme/beadcolors MIT 2026-10-26
Hama Mini Hama Mini fuse beads (2.5 mm) 78 maxcleme/beadcolors MIT 2026-10-26
Artkal S Artkal S-series fuse beads (5 mm, soft) 199 maxcleme/beadcolors MIT 2026-10-26
Artkal C Artkal C-series mini fuse beads (2.6 mm) 174 maxcleme/beadcolors MIT 2026-10-26
Nabbi Nabbi fuse beads (5 mm) 30 maxcleme/beadcolors MIT 2026-10-26

Codes and names follow the datasets, and the retrieval date of each file is shown above. Found a wrong value? The contact page explains what to send, and the about page explains who runs the site and how it is funded.

Questions about the method

Why does the thread look different from the swatch on my screen?

Swatches are RGB approximations of dyed cotton or molded plastic. Screens differ in brightness and color calibration, and real thread has sheen and texture that no hex value captures. Use the equivalents as a computed guide and confirm important colors against a physical color card.

Is a ΔE of 0 a guarantee that two threads are the same?

No. It means the two datasets give the same screen color for both codes. Brands dye to their own standards, so even an "identical" pair can differ slightly in real life. Across all 489 DMC colors, 11 have an Anchor match below ΔE 1 in this data.

Why CIEDE2000 and not a simple RGB distance?

RGB distance treats every channel the same, but the eye is much more sensitive to some differences than others, for example small hue shifts in blues and grays. CIEDE2000 works in the CIELAB space and corrects for those effects, so its ranking of the nearest color is much closer to what a person would pick.

Founder price

FlossGrid Pro opens soon

Pro adds full-size PDF charts split over pages with overlap and a page map, up to 80 colors, symbol, color or symbol-on-color chart styles, a shopping-list CSV and saved projects in this browser. Reserve the founder price: 30% off $14 one-time when Pro opens. No payment is taken now. Everything on the free plan keeps working today.

We'll e-mail you once when Pro opens, with your founder price. No account, no newsletter. See the privacy policy.