← All Builds DAY 26 OF 30

crochetgraphic

Photo-to-crochet-pattern generation for cause-driven crocheters — comfort blankets for cancer patients, hospice quilts, NICU blankets, photo-memorial commissions. Drag a photo in, pick a blanket size and yarn weight, get a printable PDF pattern with a stitched grid, row-by-row scanline instructions, and a yarn-requirements-by-color table — all in one workflow. · React 18 + TypeScript single-page application (Create React App) at crochetgraphic.com — image upload via react-dropzone with drag-drop, configuration panel with seven yarn-weight options (lace through jumbo) and seven blanket-size presets (baby 30×40", lap 36×48", throw 50×60", twin 68×86", full/queen 90×90", king 108×90", or custom), pattern preview with tabbed views (grid / materials / instructions), in-browser pattern grid editor with click-to-recolor, row-completion tracker with progress bar, PDF download trigger · Python image-processing backend exposing a `/api/upload` multipart endpoint and a `/api/generate-pdf` endpoint — PNN (Pairwise Nearest Neighbor) color quantization performed in CIELAB color space to keep yarn-appropriate palette choices, Floyd-Steinberg error-diffusion dithering for smooth color transitions, 1.3-to-1 stitch aspect ratio correction so faces in the source photo do not squash on the blanket, configurable padding behavior (automatic centering, manual border in stitches, manual border in inches, or none), per-color stitch counting and yardage math with a 20% safety margin baked in, skein-count rollup against published yarn-weight gauges (gauge 4 worsted at 220 yds/skein, gauge 5 chunky at 170 yds/skein, gauge 6 super-bulky at 120 yds/skein, etc.), scanline generation alternating left-to-right and right-to-left in standard tapestry-crochet form · WeasyPrint-style HTML-to-PDF pattern document renderer — pattern grid with 10-stitch numbering overlay, color legend keyed A–F to hex codes, scanline instructions printable on standard 8.5×11, yarn shopping list, gauge information and finished dimensions, downloadable as `crochet_pattern.pdf` from the in-browser preview · Brand integration with Beth Gaan's existing Etsy shop — `knotzoflovecrochet` link in the header CTA bar (today's surface), Buymeacoffee donation button (`buymeacoffee.com/KnotsOfLove`), Knots of Love for Cancer branding in the header · Standard React tooling — axios for the multipart upload, react-dropzone for drag-drop, react-scripts for build, web-vitals for performance instrumentation; deployed as a static React build with the Python backend reachable via `/api/*` proxy

Day 26 of 30 — the IRL Premium arc widens to the most tangible output in the run

crochetgraphic is a photo-to-crochet-pattern tool built for cause-driven crocheters — comfort blankets for cancer patients, hospice quilts, NICU blankets, photo-memorial commissions. It is live today at crochetgraphic.com, built with Beth Gaan of Knots of Love for Cancer as operator-domain co-founder. The tool takes a photo and returns, in one workflow, a printable PDF pattern with a stitched grid, row-by-row scanline instructions, and a yarn-requirements-by-color table — the surrounding workflow around image processing that turns a quantization demo into something a working crocheter will actually finish a blanket with.

crochetgraphic is the Day 26 launch in the 30-day Velocity run, and it carries the IRL Premium arc — Day 22 WhatAreWeWearing, Day 23 DoggyDaddy, Day 24 SundaySync, Day 25 NetWeave — to its literal-IRL end: a handmade blanket, made for a specific human, often a cancer patient. Each previous arc launch pulled AI deeper into a real in-person moment. Day 26 lands on the moment itself: the blanket on a real person’s lap.

The problem

A meaningful photo — a grandchild, a beloved pet, the portrait of someone in chemo — is the start of a comfort blanket. Turning that photo into a workable crochet pattern is the part most crocheters never finish.

The arithmetic is brutal. Reduce the image to three or four yarn-appropriate colors. Fit it to a standard blanket size — baby, lap, throw, twin, full, king. Account for the fact that a crochet stitch is taller than it is wide at roughly a 1.3-to-1 ratio, which means the source photo has to be vertically compensated or every face turns square. Count every stitch by color so the yardage math is right. Convert the yards to skeins at the right yarn weight, because the gauge for worsted weight is very different from the gauge for super-bulky, and a 20% safety margin per color is the difference between finishing the blanket and running out at row 230. Write out row-by-row instructions in a form a human can actually follow with a hook in one hand and a printed sheet propped against a coffee mug. Make sure the direction alternates — left-to-right on the odd rows, right-to-left on the even rows — because that is how single-crochet construction actually flows.

That work is hours. Most of it is wrong on the first pass. And for a crocheter whose unit of caring is finished blankets — a Knots of Love chapter volunteer making chemo blankets, an oncology craft-room team working through a list, a hospice volunteer with photos of grandparents the family wants memorialized, a photo-memorial commissioner who runs the order list off her phone — the math is the wall between the photo and the blanket. The blanket is what matters. The math is the friction.

crochetgraphic exists to make the math the part that gets shortest. The hours of pixel-counting and color-matching and yarn-math compress into one drag-drop and one PDF download. The rest of the time goes into the part that actually matters: making the blanket.

What crochetgraphic does — photo to pattern in one workflow

The flow has four moves.

Move 1 — Drop a photo in. PNG, JPG, JPEG, up to 10MB. The browser handles the upload (drag-drop or click-to-select), the Python image-processing backend reduces the image to the chosen palette (two to six colors) using Pairwise Nearest Neighbor quantization in CIELAB color space — chosen specifically because CIELAB is perceptually uniform, which means the four colors PNN picks are four colors a crocheter will actually see as four distinct colors when the blanket is on a couch in a hospital room at 2 AM. Floyd-Steinberg error-diffusion dithering smooths the transitions so the picture does not look like a posterized print, while still producing a stitchable grid.

Move 2 — Pick the blanket. Baby (30×40”), lap (36×48”), throw (50×60”), twin (68×86”), full/queen (90×90”), king (108×90”), or a custom size. The stitch count auto-calculates from the size and the chosen yarn weight — gauge 4 worsted runs about 4 stitches per inch, gauge 5 chunky runs about 3 stitches per inch, gauge 6 super-bulky runs about 2 stitches per inch. A throw blanket at worsted weight is 200 stitches wide; the same throw at super-bulky is 100 stitches wide. The 1.3-to-1 stitch aspect ratio is baked into the resize step so faces stay faces and circles stay circles.

Move 3 — Pick the yarn. Lace through jumbo, gauge weights 1 through 7. The yardage math follows: per-color stitch counts get converted to yards using the gauge data, a 20% safety margin gets added per color, and the result gets rolled up to a skein count against the published yards-per-skein for the chosen weight. The yarn shopping list comes out of the same calculation — color, stitches, total yards, skeins to buy.

Move 4 — Get the pattern and crochet from it. The in-browser preview shows the pattern grid with row numbers, a color legend keyed to letters A through F (with hex codes for color-matching against a yarn brand’s palette), and the row-by-row scanline instructions. Each row’s instructions read like a working crocheter would actually write them — “28 A (cream), 24 B (rose), 28 A (cream)” — and the direction alternates row by row so the audience of the pattern (a crocheter, hook in hand) can follow without flipping pages. The PDF download produces a printable artifact: pattern grid with the 10-stitch numbering overlay, color legend, scanline instructions, yarn shopping list, gauge information, and finished dimensions. Prop it next to the hook. Check off rows as they finish.

What makes it a tool and not a generator

The difference between the thirtieth photo-to-crochet-pattern hobby project on GitHub and a tool a working crocheter will actually use is the surrounding workflow. crochetgraphic ships with that workflow on day one.

An in-browser pattern editor. Click any stitch in the grid; the color picker shows the active palette keyed A–F; the click changes the stitch color; the scanline instructions regenerate on the fly to reflect the edit. The PNN-and-dither pass is a starting point, not a finish line. The crocheter making a chemo blanket for a specific recipient is going to want to tune the eyes, soften the shadows on the face, swap one of the picked palette colors for one she already has skeins of. The grid editor is how that works.

Padding behavior that handles non-blanket-shaped photos. A vertical portrait does not fit a 50×60” throw shape without intervention. crochetgraphic offers four padding modes: automatic centering (the default, with the source aspect ratio preserved and the gap filled), no border, manual border in stitches, or manual border in inches. When the auto-centered padding produces unassigned gap cells in the grid, the preview surfaces a “choose a background color” prompt that lets the crocheter pick a color from the source image’s initial palette to fill the gap — or accept the default white. The point: a real photo never matches a standard blanket aspect ratio, and the tool handles that case rather than asking the user to.

Row-completion tracking. The instructions tab has a per-row checkbox and a progress bar — “247 of 600 rows completed, 41%.” For a chemo blanket the size of a throw, the progress bar is not a UI decoration; it is the thing that converts an unstructured cliff of stitch counts into a project with intermediate finish lines.

Standard yarn-weight gauges. The configuration panel is built around the seven Craft Yarn Council weight categories. A pattern can be regenerated at a different yarn weight without re-uploading the photo — the “Recalculate Pattern” button picks up the changed config and runs the math against the same source image, with the new gauge data, and produces a new grid in the same blanket size. A crocheter who has lace-weight stash on the shelf and wants a baby blanket out of it gets the answer in one click. A crocheter who has super-bulky and wants a king-size throw gets the math for that, too — same source photo, different grid size, different scanline lengths, different skein count.

A color legend that maps to real yarn. Every color in the pattern shows the assigned letter (A–F), the hex code, and the optional human-readable name. The color square in the legend is the same color the crocheter will be matching against a Lion Brand or Red Heart card at the store. The legend is also the print artifact a chapter coordinator hands to a volunteer alongside the yarn — “your A is the cream, your B is the rose, your C is the seafoam.”

Built alongside the customer — Beth Gaan of Knots of Love for Cancer

crochetgraphic was designed with Beth Gaan of Knots of Love for Cancer as operator-domain co-founder. Beth makes crocheted comfort blankets for cancer patients. She lives the photo-to-pattern workflow. The decisions that distinguish crochetgraphic from a quantization demo — the blanket-size presets at every Craft Yarn Council weight, the 1.3-to-1 aspect-ratio correction, the automatic padding for non-blanket-shaped portraits, the row-completion tracking, the printable PDF — every one of those choices comes from someone who finishes blankets.

The operator-at-the-table pattern is now the third proof in three weeks of the 30-day run. Day 3 PartFoundry sat Taylor Merrill (Founder/CE, Rubbermaid plastics alum) and Aaron Vedlitz (Production / Design Partner, @eldritchcosplays) on the cap table beside Todd. Day 9 CogleGroup announced Jim Hasty as 50/50 GP. Day 20 CrewSheet sat Ty Flippin (Pilatus PC-24 Check Airman) on the cap table at 50%. Day 26 crochetgraphic continues the pattern at a different scale and a different vertical: the operator who knows the workflow is the principal, not the advisor, and the product clears a category that is otherwise saturated with hobby projects because the founding team is one of the people the product is built for. The thesis is identical. The categories are different. The cap-table shape is the through-line.

Beth’s existing brand — Knots of Love for Cancer and her Etsy shop knotzoflovecrochet — is integrated into the live app today via the header CTA bar (link out to the Etsy shop and the Buymeacoffee donation page). The deeper Etsy-API integration (direct listing creation, file upload, preview image, activation) is the next module and is named explicitly as roadmap below.

The IRL Premium arc and the cause-driven thesis

crochetgraphic sits inside Theme #6 of the 30-day run — Future Premium will be IRL, alongside Connisour Platform (curated food & beverage), SundaySync (family coordination), and NetWeave (in-person networking). Each of those launches pulls AI deeper into a real in-person moment. crochetgraphic carries the arc to its literal-IRL end: the moment is a handmade blanket on a real person’s lap, often a cancer patient, often a recipient who will never know what tool was used to convert the photo of their grandchild into the pattern that produced the gift.

The thesis underneath is one line: the AI is the part you forget about by the time the recipient is holding the blanket. Anti-doomscroll by construction, because the workflow ends on a hook and a skein and a printed sheet, not on a feed. Pro-handmade by construction, because the output the recipient touches is a physical object a human made with their hands. Pro-cause by construction, because the operator-domain expert is a person whose business is making things for cancer patients, and the cohort she is opening is built around people doing similar cause-driven work.

The “Future Premium will be IRL” essay drops this Friday as the Day 28 thematic anchor for the IRL Premium arc, and crochetgraphic is the literal-IRL closing example.

Pricing & business model

  • Freemium with paid premium tier, structured so a chapter volunteer making chemo blankets can use the tool for free and a working pattern-shop operator monetizes the paid features (direct Etsy publish, account-based pattern library, advanced editing). The published pricing is in the technical specification ($10–$15/month premium); the live surface today routes interested cohort participants directly to Beth for fit conversations rather than self-serve checkout during the design-partner window.
  • Design-partner cohort opens today. A small founding cohort of cause-driven crocheters — Knots of Love–style chapters, comfort-blanket guilds, hospice and oncology craft-room volunteers, photo-memorial commissioners. Early-access pricing in exchange for structured feedback on the patterns that matter most to your work. We are deliberately picking the cohort for shape (chapter-scale needs, repeat-volume workflows, cause-driven use cases), not for raw user volume.
  • Honest launch state. crochetgraphic has a tip jar at launch. It is opening a design-partner cohort today, not reporting adoption. The proof on offer is the tool itself and Beth’s operator-domain credibility — not invented traction.

The Velocity Process notes

What Claude Code handled. The React 18 + TypeScript single-page application with the three-component architecture (ImageUpload, ConfigurationPanel, PatternPreview); the drag-drop upload flow via react-dropzone with multipart axios POST to /api/upload; the configuration state model carrying num_colors, target_width, yarn_weight, padding_type and dimensions, blanket_size, and custom width/height; the seven-mode blanket-size selector with per-mode stitch-count auto-calculation against the chosen yarn weight; the seven-mode yarn-weight selector against the Craft Yarn Council weight categories; the four-mode padding behavior (automatic / none / stitches / inches); the in-browser pattern grid editor with click-to-recolor, the background-color picker for unassigned padding cells, the per-row completion checkboxes with progress bar, the zoom controls; the materials tab with the yarn-requirements table broken down by color (stitches / yards / skeins) and the gauge information block; the instructions tab with the scanline-by-row directional alternation (left-to-right on odd rows, right-to-left on even rows) and the per-row completion tracking; the Python backend /api/upload multipart handler with the PNN-in-CIELAB color-quantization pipeline, the Floyd-Steinberg dithering pass, the 1.3-to-1 stitch-aspect-ratio correction, the stitch-counting and yardage math with the 20% safety margin per color, the gauge-data lookup for skein-count rollup, and the scanline generation; the /api/generate-pdf endpoint and the printable PDF assembly (pattern grid with the 10-stitch numbering overlay, color legend, scanline instructions, yarn shopping list, gauge information, finished dimensions); the Knots of Love header integration with the Etsy shop link to knotzoflovecrochet and the Buymeacoffee donation button.

What required human judgement. The decision to lead with Beth Gaan and Knots of Love for Cancer rather than the algorithm — the category is full of weekend image-quantization projects, and the differentiator is the operator-domain expert at the cap table, not the dithering kernel; the call to keep the brand split (crochetgraphic = tool, Knots of Love for Cancer = cause / operator brand) rather than merging them, because the tool’s addressable audience includes cause-driven crocheters who are not Knots of Love chapter members and merging the brands narrows the audience without expanding the value; the scoping discipline on what ships today versus what is named as roadmap — the marketplace integration (Etsy API listing creation, Ravelry webhook, automatic digital file delivery) and the formal DMCA / auto-deletion pipeline are in the technical specification but are not in the live code, and the right call is to ship the pattern engine honestly today and name the marketplace and DMCA modules as the next sprints rather than implying they are live; the IRL Premium arc framing — crochetgraphic is the literal-IRL end of the arc (Day 22 events → Day 26 a blanket on a real person’s lap), and the post and the build page both lean into that as the through-line for the week.

What the readiness pass caught. Three items the launch-prep audit caught and the post pulled back on. (1) The apex domain crochetgraphic.com returned HTTP code 000 during the audit fetch while www.crochetgraphic.com returned 200 — the launch post’s links got pulled to www.crochetgraphic.com (and a pre-flight item was added to fix the apex redirect before 9 AM ET). Same posture as the Day 14 GEOPress and Day 20 CrewSheet stale-domain-sweep precedents. (2) The technical specification carried “Marketplace Integration” with Etsy API listing creation, Ravelry webhook integration, and automatic digital file delivery as a Phase 3 deliverable, but the live code surface has only an Etsy shop link to knotzoflovecrochet, not an API integration — the launch post explicitly names this as roadmap rather than implying the API integration ships today. Same class of catch as the Day 14 GEOPress “Trusted by 50+ firms,” the Day 15 Swole Labor fabricated reviews, and the Day 21 PatentFlow “200+ law firms” landing-page metrics — fabricated traction or implied capabilities that the readiness pass surfaces before they land in front of a critical audience. (3) The technical specification carried “DMCA agent registration / 24-48 hour auto-deletion / three-strike repeat infringer policy” as a Security & Legal requirement, but those items are not in the live code today either; the launch post names them honestly as roadmap and the (b) comment-seed response covers the design-partner-cohort attestation pattern that bridges the gap. The discipline is consistent across the run: ship what is true; name what is roadmap as roadmap; let the operator-domain credibility carry the rest.

What I’d do differently. Ship the formal upload-attestation copy and the 24–48-hour auto-deletion job on day one, not in a Phase 3 milestone. The technical specification calls the DMCA / auto-deletion / attestation pipeline a Phase 3 deliverable; the live launch needed a simpler version of the same idea (“upload what you own or have permission for; uploaded images are deleted after pattern generation”) to ship inside the first cohort window. A 50-line upload-attestation checkbox plus a cron-driven deletion job is a one-afternoon investment that pulls the entire DMCA conversation forward by months. Next launch in the consumer-content category gets that on day one.

What’s next this week

  • Day 26 (today): crochetgraphic.com is live; the pattern engine, the blanket-size and yarn-weight presets, the in-browser grid editor, the row-completion tracker, the yarn-requirements math, and the printable PDF export are all working; Beth Gaan is the operator-domain co-founder and the design-partner cohort opens for cause-driven crocheters.
  • Day 27 (Wed May 27): PIM launches, the Investing arc opens. PIM is Karen Rands’s 21-sector investing framework made interactive — the same operator-validated-founder pattern in a different vertical.
  • Day 28 (Thu May 28): SapphireInvestments — the Investing arc widens. Three-tier autonomous trading, $25K min on Premium, Jim Rozich on the cap table.
  • This week — design-partner punch list: ship the upload-attestation checkbox; ship the 24–48 hour auto-deletion lifecycle on uploaded images (cron-driven S3 prefix scan or its filesystem equivalent — the spec calls for it, the cohort needs it); fix the apex domain redirect so crochetgraphic.com resolves to the live site without the www. prefix; populate a real OG card image so social previews on the launch post render cleanly.
  • Roadmap, named honestly as roadmap: direct Etsy listing creation via the Etsy API (draft listing, file upload, preview image, activation in one click), Ravelry pattern-library integration, account-based pattern libraries for repeat operators, AI-routed palette suggestions (Claude over Bedrock — palette tuning by recipient context: skin tones for portraits, calming palettes for chemo blankets, seasonal palettes for memorial commissions), and the formal SOC 2 / DMCA / attestation pipeline at the size cohort where it becomes load-bearing.

Want to talk

If you crochet for a cause — chemo blankets, NICU blankets, hospice quilts, photo-memorial commissions — crochetgraphic’s founding design-partner cohort is open today. Book a slot at crochetgraphic.com. Beth is taking the first calls personally.

If you are an Etsy or Ravelry pattern-shop operator, patterns from your own photos with publish-ready PDFs is the wedge today, with direct Etsy listing creation as the next module. Get in the cohort before that module ships.

If you run a yarn shop, a chapter, or a craft-room volunteer team, the cohort version of crochetgraphic is built around chapter-scale needs — single-operator workflows, shared pattern libraries, the volunteer hand-off from coordinator to crocheter. Email hello@crochetgraphic.com with your chapter size and your typical project mix and we will slot the integration work in the right order.

crochetgraphic is co-built with Beth Gaan of Knots of Love for Cancer and lives inside the IRL Premium thesis the rest of the 30-day run is organized around. Live today at crochetgraphic.com. Tomorrow: Day 27 — PIM, the Investing arc opens.