Crochet Engine

io.github.dengyu123456Published by GitHub account dengyu123456v0.1.1Updated Oct 24, 2026

Deterministic photo-to-crochet-chart engine: stitch counts, 5 techniques, yarn estimates.

VerifiedSTDIODesktop onlyProductivity & WorkflowMedia & Design

Overview

AI-generated overview

Turns photos or ASCII designs into crochet charts with exact stitch counts, technique presets, and yarn estimates.

What you can do
A deterministic photo-to-crochet-chart engine exposed over stdio. Tools include photo_to_chart (local image path to chart PNG plus per-color stitch counts), render_ascii_design (ASCII design file to chart PNG and counts), and estimate_yarn_tool (stitch counts to per-color yardage for one yarn weight or all). It supports five technique presets (graph, c2c, tapestry, mosaic, filet) and uses resize, median-cut color quantization, and confetti cleanup rather than AI image generation.
When to use it
Use it when an assistant should convert a photo or ASCII design into a crochet chart with reproducible stitch counts, or estimate yarn yardage for a chart. It suits craft pattern planning where exact, repeatable output matters more than generative imagery.
Requirements
Runs locally as a Python package (crochetpatterngen-engine) over stdio; install with pip, optionally with the mcp extra, or run via uvx. Needs Python with Pillow and numpy; the optional rembg extra is needed for background removal. No accounts, API keys, or environment variables are declared. Desktop only.
Before you install
It reads local image or design file paths and can write chart PNGs to an output_path, so point it only at files you intend to process and choose output locations deliberately. No credentials, payments, or third-party data sharing are indicated.

Installation

In SourceWeft

  1. Open Crochet Engine in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

crochetpatterngen-engine

The deterministic photo-to-crochet-chart engine behind crochetpatterngen.com — packaged as a Python library, CLI, and MCP server so AI agents (Claude Desktop, Cursor, etc.) can turn photos into crochet charts with exact stitch counts.

Deterministic, not generative. There is no AI image generation here — just resize, median-cut color quantization, and confetti cleanup. Same input, same chart, same stitch counts, every time. No hallucinated rows.

Why this engine

  • Real stitch counts — every chart comes with per-color hex + stitch counts that sum exactly to the grid size. What you see is what you crochet.
  • C2C block aspect correction — C2C blocks are physically wider than tall (0.7:1 h:w). The engine adjusts grid dimensions so the worked piece keeps the photo's proportions instead of coming out squashed.
  • 5 technique presets — graph, c2c, tapestry, mosaic, filet.
  • Yarn estimation — per-color yardage for 6 yarn weights (fingering → super bulky).
  • Zero heavy deps — Pillow + numpy only. Optional rembg extra for background removal.

Install

bash
pip install crochetpatterngen-engine          # corepip install crochetpatterngen-engine[mcp]     # + MCP serverpip install crochetpatterngen-engine[rembg]   # + background removal

Python API

python
from PIL import Imagefrom crochet_chart_engine import generate_chart, render_design, estimate_yarn
png_bytes, meta = generate_chart(    Image.open("photo.jpg"),    technique="c2c",     # graph | c2c | tapestry | mosaic | filet    grid_w=60,           # 20..120    n_colors=8,          # 2..16)# meta: {"grid_w", "grid_h", "colors": [{"hex", "count"}],#        "total_stitches", "technique", "warning"}
yarn = estimate_yarn(meta, weight="worsted")# {"total_yards": ..., "colors": [{"hex", "count", "yards"}], ...}
png_bytes, meta = render_design("designs/frog.txt")  # ASCII design -> chart

CLI

bash
crochet-chart chart photo.jpg out.png --technique c2c --grid-w 60 --colors 8crochet-chart design designs/frog.txt frog.pngcrochet-chart yarn photo.jpg --technique graph --weight worsted

MCP server (Claude Desktop & friends)

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "crochet": {      "command": "uvx",      "args": ["--from", "crochetpatterngen-engine[mcp]", "crochetpatterngen-mcp"]    }  }}

Or with a regular pip install:

json
{  "mcpServers": {    "crochet": {      "command": "python",      "args": ["-m", "crochet_chart_engine.mcp_server"]    }  }}

Tools exposed (stdio transport):

ToolWhat it does
photo_to_chartLocal image path → chart PNG (base64 or saved to output_path) + per-color stitch counts JSON
render_ascii_designASCII design file → chart PNG + stitch counts
estimate_yarn_toolStitch counts → per-color yardage for one yarn weight or all

ASCII design format

See designs/frog.txt and designs/dragon.txt:

# commentpalette: G=#58A05C, W=#FFFFFF, .=#FAFAF7title: Frog Facetechnique: graph---..GGGG..........GGGG.....GGWWGG........GGWWGG...

One character per stitch; . is the background/padding color. Rows are padded to the longest row.

Development

bash
pip install -e .[dev,mcp]pytest tests/

License

MIT — see LICENSE.


Free web tool + pattern library at crochetpatterngen.com.

Source: README.md at commit 31b75ce

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts