{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "3d-popcorn-flower-granny-square-free-pattern",
  "title": "3D Popcorn Flower Granny Square - Free Crochet Pattern",
  "meta_description": "Crochet a 3D popcorn flower granny square - a free pattern with dimensional popcorn petals over 6 rounds, perfect for blankets, cushions, and cozy decor",
  "published_at": "2026-07-12",
  "updated_at": "2026-07-12",
  "author": "Ruby",
  "thumbnail_url": "data/images/3d-popcorn-flower-granny-square-free-pattern-hero.webp",
  "meta": {
    "title": "3D Popcorn Flower Granny Square - Free Crochet Pattern",
    "pattern_name": "3D Popcorn Flower Granny Square - Free Crochet Pattern",
    "difficulty": "Intermediate",
    "time_needed": "2-3 Hours",
    "rating": 4.7,
    "made_count": "1.2K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Intermediate",
      "yarn_weight": "DK",
      "tags": [
        "popcorn stitch",
        "granny square",
        "3d flower",
        "free pattern",
        "flower granny square",
        "textured crochet",
        "crochet motif",
        "blanket square",
        "popcorn flower",
        "spring crochet",
        "home decor crochet"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "3D Popcorn Flower Granny Square - Free Crochet Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Intermediate Level",
          "value": "Comfortable with popcorn stitches and mid-round color changes",
          "raw_text": "Comfortable with popcorn stitches and mid-round color changes",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "hero-info-2",
          "label": "Afternoon Project",
          "value": "About 2-3 hours of relaxed, satisfying crocheting",
          "raw_text": "About 2-3 hours of relaxed, satisfying crocheting",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "hero-info-3",
          "label": "Dimensional Blossom",
          "value": "A raised 3D flower that's perfect for blankets, cushions, and gifts",
          "raw_text": "A raised 3D flower that's perfect for blankets, cushions, and gifts",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 2,
      "card_type": "about",
      "code": "about",
      "title": "About",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "about-info-1",
          "label": "",
          "value": "This 3D popcorn flower granny square turns a humble motif into a little garden made of yarn. Clusters of raised popcorn stitches bloom from the center outward, giving you a flower that literally lifts off the fabric with soft, sculptural petals. Worked over six tidy rounds in four colors, it's perfect for crocheters who love texture and want a square that stands out in a blanket, cushion, or wall hanging. If plain grannies have started to feel a little flat, this one is your fresh bouquet",
          "raw_text": "This 3D popcorn flower granny square turns a humble motif into a little garden made of yarn. Clusters of raised popcorn stitches bloom from the center outward, giving you a flower that literally lifts off the fabric with soft, sculptural petals. Worked over six tidy rounds in four colors, it's perfect for crocheters who love texture and want a square that stands out in a blanket, cushion, or wall hanging. If plain grannies have started to feel a little flat, this one is your fresh bouquet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "about-info-2",
          "label": "",
          "value": "The magic here is the popcorn stitch - several stitches worked into one space and then cinched closed so they pop forward in dimensional relief. You'll also practice clean color changes between the four shades, corner shaping to keep the square lying flat, and neat ends worked in with a darning needle. It sits comfortably at an intermediate level: if you can manage double crochet corners and a tidy color change, you're ready. Most makers finish a single square in about two to three relaxed hours",
          "raw_text": "The magic here is the popcorn stitch - several stitches worked into one space and then cinched closed so they pop forward in dimensional relief. You'll also practice clean color changes between the four shades, corner shaping to keep the square lying flat, and neat ends worked in with a darning needle. It sits comfortably at an intermediate level: if you can manage double crochet corners and a tidy color change, you're ready. Most makers finish a single square in about two to three relaxed hours",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "about-info-3",
          "label": "",
          "value": "Off the hook, you get a plush square that finishes at about 3.54 x 3.54 inches (roughly three and a half inches across), depending on your yarn and tension, with a flower that begs to be touched. The layered greens, blues, pinks, and creams read like a spring blossom nestled on leafy ground, and the popcorn texture catches the light beautifully. Stitch a stack of them into a throw, frame a single one, or gift a matching set as mini fiber art. Handmade, dimensional, and endlessly repeatable, it's the kind of square people always ask about",
          "raw_text": "Off the hook, you get a plush square that finishes at about 3.54 x 3.54 inches (roughly three and a half inches across), depending on your yarn and tension, with a flower that begs to be touched. The layered greens, blues, pinks, and creams read like a spring blossom nestled on leafy ground, and the popcorn texture catches the light beautifully. Stitch a stack of them into a throw, frame a single one, or gift a matching set as mini fiber art. Handmade, dimensional, and endlessly repeatable, it's the kind of square people always ask about",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 3,
      "card_type": "why_love",
      "code": "why-love",
      "title": "Why You'll Love This Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "why-love-1",
          "label": "",
          "value": "I'll be honest - I get a little giddy every time those popcorn petals start to pop. There's something so satisfying about working several stitches into a single space, pulling that last loop through, and watching a flat round suddenly bloom into a three-dimensional flower right under your hook. This square gives you that payoff round after round. I love how the four colors stack like real petals - green grounding everything like leaves, then blue, pink, and cream layering into the blossom. The color changes keep it interesting, so you're never bored on a long round of the same shade. And because it's only six rounds, you get that finished, look-what-I-made rush without committing to a giant project. I especially love how forgiving the popcorns are; even if your tension wobbles a little, the texture hides it beautifully. Make one on a slow afternoon, or batch a dozen for a blanket - either way, you end up with squares that feel special, look intentional, and make people reach out to touch them",
          "raw_text": "I'll be honest - I get a little giddy every time those popcorn petals start to pop. There's something so satisfying about working several stitches into a single space, pulling that last loop through, and watching a flat round suddenly bloom into a three-dimensional flower right under your hook. This square gives you that payoff round after round. I love how the four colors stack like real petals - green grounding everything like leaves, then blue, pink, and cream layering into the blossom. The color changes keep it interesting, so you're never bored on a long round of the same shade. And because it's only six rounds, you get that finished, look-what-I-made rush without committing to a giant project. I especially love how forgiving the popcorns are; even if your tension wobbles a little, the texture hides it beautifully. Make one on a slow afternoon, or batch a dozen for a blanket - either way, you end up with squares that feel special, look intentional, and make people reach out to touch them",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 5,
      "card_type": "common_mistakes",
      "code": "common-mistakes",
      "title": "Common Mistakes & How to Fix Them",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "mistake",
          "code": "mistake-1",
          "label": "Popcorn stitches popping to the back of",
          "value": "Popcorns are directional. When you drop the loop and reinsert your hook to close the cluster, always insert from the front (right side) to the back so the bobble is pushed toward you. If one pops the wrong way, gently poke it through to the front with your finger before moving on",
          "raw_text": "Popcorns are directional. When you drop the loop and reinsert your hook to close the cluster, always insert from the front (right side) to the back so the bobble is pushed toward you. If one pops the wrong way, gently poke it through to the front with your finger before moving on",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "mistake",
          "code": "mistake-2",
          "label": "Loose, floppy popcorns that don't stand up",
          "value": "A saggy popcorn usually means the closing loop wasn't snugged. After you pull the working loop through the first stitch of the cluster, give it a firm little tug to cinch the base tight. Also make sure you're working the full number of stitches called for into one space - too few and there isn't enough fabric to bulge forward",
          "raw_text": "A saggy popcorn usually means the closing loop wasn't snugged. After you pull the working loop through the first stitch of the cluster, give it a firm little tug to cinch the base tight. Also make sure you're working the full number of stitches called for into one space - too few and there isn't enough fabric to bulge forward",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "mistake",
          "code": "mistake-3",
          "label": "A wavy or cupped square that won't lie flat",
          "value": "This is almost always a corner-count issue. Each corner needs the same increase (typically a 3 dc, ch, 3 dc grouping), and each side should have the same stitch count. Count as you go and place a marker in each corner space. A quick wet block at the end relaxes any leftover ripple",
          "raw_text": "This is almost always a corner-count issue. Each corner needs the same increase (typically a 3 dc, ch, 3 dc grouping), and each side should have the same stitch count. Count as you go and place a marker in each corner space. A quick wet block at the end relaxes any leftover ripple",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "mistake",
          "code": "mistake-4",
          "label": "Gaps or loose loops where the colors change",
          "value": "Change to the new color by yarning over with it on the final pull-through of the last stitch in the old color, rather than fastening off and restarting. This locks the join tight. Give the old-color tail a gentle tug once the new stitch is set so no hole forms at the transition",
          "raw_text": "Change to the new color by yarning over with it on the final pull-through of the last stitch in the old color, rather than fastening off and restarting. This locks the join tight. Give the old-color tail a gentle tug once the new stitch is set so no hole forms at the transition",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "mistake",
          "code": "mistake-5",
          "label": "Losing track over the six rounds and",
          "value": "popcorn clusters and plain stitches alternating, it's easy to lose your place. Drop a stitch marker at the start of each round and count your popcorns before you close the round. If a round looks lopsided, it's much easier to rip back one round than to discover it after blocking",
          "raw_text": "popcorn clusters and plain stitches alternating, it's easy to lose your place. Drop a stitch marker at the start of each round and count your popcorns before you close the round. If a round looks lopsided, it's much easier to rip back one round than to discover it after blocking",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "mistake",
          "code": "mistake-6",
          "label": "A tight, cupping center that pulls the whole square in",
          "value": "The first round sets the tension for everything above it. If your starting ring or center is cinched too hard, the popcorn rounds can't spread. Keep round one relaxed, don't over-tighten the closing pull, and if the middle still domes slightly, a firm block usually flattens it right out",
          "raw_text": "The first round sets the tension for everything above it. If your starting ring or center is cinched too hard, the popcorn rounds can't spread. Keep round one relaxed, don't over-tighten the closing pull, and if the middle still domes slightly, a firm block usually flattens it right out",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 6,
      "card_type": "materials",
      "code": "materials",
      "title": "Materials",
      "raw_heading": "",
      "quantity": 1,
      "groups": [
        {
          "order": 1,
          "group_code": "group-1",
          "group_name": "",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-1-1",
              "label": "",
              "value": "Yarn of your choice- 4 color",
              "raw_text": "Yarn of your choice- 4 color"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Crochet hook- we are using a 3.00mm hook",
              "raw_text": "Crochet hook- we are using a 3.00mm hook"
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-1-3",
              "label": "",
              "value": "Darning Needle",
              "raw_text": "Darning Needle"
            },
            {
              "order": 4,
              "row_type": "item",
              "code": "mat-1-4",
              "label": "",
              "value": "Scissors",
              "raw_text": "Scissors"
            }
          ]
        }
      ],
      "rows": []
    },
    {
      "order": 7,
      "card_type": "abbreviations",
      "code": "abbreviations",
      "title": "Abbreviations",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "abbrev",
          "code": "abbrev-ch",
          "label": "ch",
          "value": "chain stitch",
          "raw_text": "ch = chain stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch",
          "meaning": "chain stitch"
        },
        {
          "order": 2,
          "row_type": "abbrev",
          "code": "abbrev-dc",
          "label": "dc",
          "value": "double crochet",
          "raw_text": "dc = double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dc",
          "meaning": "double crochet"
        },
        {
          "order": 3,
          "row_type": "abbrev",
          "code": "abbrev-sl-st",
          "label": "Sl St",
          "value": "slip stitch for joining for different round",
          "raw_text": "Sl St = slip stitch for joining for different round",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "Sl St",
          "meaning": "slip stitch for joining for different round"
        },
        {
          "order": 4,
          "row_type": "abbrev",
          "code": "abbrev-sc",
          "label": "sc",
          "value": "single crochet",
          "raw_text": "sc = single crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sc",
          "meaning": "single crochet"
        },
        {
          "order": 5,
          "row_type": "abbrev",
          "code": "abbrev-hdc",
          "label": "hdc",
          "value": "half double crochet",
          "raw_text": "hdc = half double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "hdc",
          "meaning": "half double crochet"
        },
        {
          "order": 6,
          "row_type": "abbrev",
          "code": "abbrev-st",
          "label": "st",
          "value": "stitch",
          "raw_text": "st = stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st",
          "meaning": "stitch"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-pc",
          "label": "pc",
          "value": "popcorn stitch",
          "raw_text": "pc = popcorn stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "pc",
          "meaning": "popcorn stitch"
        },
        {
          "order": 8,
          "row_type": "abbrev",
          "code": "abbrev-ch-sp",
          "label": "ch-sp",
          "value": "chain space",
          "raw_text": "ch-sp = chain space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch-sp",
          "meaning": "chain space"
        }
      ]
    },
    {
      "order": 8,
      "card_type": "part",
      "code": "main-pattern",
      "title": "Main Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "round",
          "code": "main-pattern-round-1",
          "label": "Round 1",
          "value": "ch+6sc in a magic loop, sl st to the first sc.",
          "raw_text": "Round 1 ch+6sc in a magic loop, sl st to the first sc.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "instruction",
          "code": "main-pattern-info-1",
          "label": "Steps",
          "value": "Start with a magic loop; Ch as a standing st, sc in the loop; Make another 5sc in the loop; Pull the tail tightly; Sl st to the first sc, round 1 finished.",
          "raw_text": "Step by step: Start with a magic loop; Ch as a standing st, sc in the loop; Make another 5sc in the loop; Pull the tail tightly; Sl st to the first sc, round 1 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "main-pattern-round-2",
          "label": "Round 2",
          "value": "ch3 (count as dc) + 4dc to finish a 5-dc-pc, ch, [5-dc-pc, ch1] repeat 5 times, sl st to the top of the first pc, fasten off.",
          "raw_text": "Round 2 ch3 (count as dc) + 4dc to finish a 5-dc-pc, ch, [5-dc-pc, ch1] repeat 5 times, sl st to the top of the first pc, fasten off.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "info",
          "code": "main-pattern-info-2",
          "label": "Info",
          "value": "Step by step: How to make a 5 double crochet popcorn [5-dc-pc] stitch.",
          "raw_text": "Step by step: How to make a 5 double crochet popcorn [5-dc-pc] stitch.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "instruction",
          "code": "main-pattern-info-3",
          "label": "Steps",
          "value": "Make 5 dc in the same stitch, remove the hook from the fifth dc and insert it into both loops of the first dc. Grab the last dc with the hook and pull it through the loops.",
          "raw_text": "Make 5 dc in the same stitch, remove the hook from the fifth dc and insert it into both loops of the first dc. Grab the last dc with the hook and pull it through the loops.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "instruction",
          "code": "main-pattern-info-4",
          "label": "Steps",
          "value": "Work ch3 as a standing st (count as dc); Make another 4dc in the same st to form a 5-dc-pc, then ch1.",
          "raw_text": "Step by step: Work ch3 as a standing st (count as dc); Make another 4dc in the same st to form a 5-dc-pc, then ch1.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "instruction",
          "code": "main-pattern-info-5",
          "label": "Steps",
          "value": "[5-dc-pc, ch1] repeat 5 times, sl st to the top of the first pc, fasten off, round 2 finished.",
          "raw_text": "[5-dc-pc, ch1] repeat 5 times, sl st to the top of the first pc, fasten off, round 2 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "round",
          "code": "main-pattern-round-3",
          "label": "Round 3",
          "value": "New yarn in ch-sp, ch3(count as dc) + 4dc to form a 5-dc-pc, ch+5-dc-pc in the same ch-sp, ch, [5-dc-pc + ch1 + 5-dc-pc + ch1 in the next ch-sp] repeat 5 times, sl st to the top of the first pc, fasten off.",
          "raw_text": "Round 3 New yarn in ch-sp, ch3(count as dc) + 4dc to form a 5-dc-pc, ch+5-dc-pc in the same ch-sp, ch, [5-dc-pc + ch1 + 5-dc-pc + ch1 in the next ch-sp] repeat 5 times, sl st to the top of the first pc, fasten off.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "instruction",
          "code": "main-pattern-info-8",
          "label": "Steps",
          "value": "Add new color yarn in any ch-sp; Make ch3 as a standing st (count as dc); Another 4dc to form a 5-dc-pc, ch1, another 5-dc-pc in this ch-sp, ch; [5-dc-pc, ch1, 5-dc-pc, ch1 in the next ch-sp] repeat 5 times, sl st to the top of the first pc, fasten off. Round 3 finished.",
          "raw_text": "Step by step: Add new color yarn in any ch-sp; Make ch3 as a standing st (count as dc); Another 4dc to form a 5-dc-pc, ch1, another 5-dc-pc in this ch-sp, ch; [5-dc-pc, ch1, 5-dc-pc, ch1 in the next ch-sp] repeat 5 times, sl st to the top of the first pc, fasten off. Round 3 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "round",
          "code": "main-pattern-round-4",
          "label": "Round 4",
          "value": "New yarn in ch-sp, [5-dc-pc+ch1+5-dc-pc+ch1] repeat 12 times, sl st to the top of the first pc, fasten off. (Repeat the 2nd and 3rd steps of the previous round for the first pc)",
          "raw_text": "Round 4 New yarn in ch-sp, [5-dc-pc+ch1+5-dc-pc+ch1] repeat 12 times, sl st to the top of the first pc, fasten off. (Repeat the 2nd and 3rd steps of the previous round for the first pc)",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "instruction",
          "code": "main-pattern-info-9",
          "label": "Steps",
          "value": "Add new color of yarn in any ch-sp; Repeat the second and third steps of the previous round, so you get 5-dc-pc+ch1+5-dc-pc+ch1 in this ch-sp; [5-dc-pc+ch1+5-dc-pc+ch1 in the next ch-sp] repeat 11 times, sl st to the top of the first pc, fasten off. Round 4 finished.",
          "raw_text": "Step by step: Add new color of yarn in any ch-sp; Repeat the second and third steps of the previous round, so you get 5-dc-pc+ch1+5-dc-pc+ch1 in this ch-sp; [5-dc-pc+ch1+5-dc-pc+ch1 in the next ch-sp] repeat 11 times, sl st to the top of the first pc, fasten off. Round 4 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "round",
          "code": "main-pattern-round-5",
          "label": "Round 5",
          "value": "New yarn in ch-sp, [hdc+dc+ch2+dc+hdc in the same ch-sp, 2hdc, 3sc, 3sc, 3sc, 2hdc] repeat 4 times. Sl st to the first hdc.",
          "raw_text": "Round 5 New yarn in ch-sp, [hdc+dc+ch2+dc+hdc in the same ch-sp, 2hdc, 3sc, 3sc, 3sc, 2hdc] repeat 4 times. Sl st to the first hdc.",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 13,
          "row_type": "instruction",
          "code": "main-pattern-info-10",
          "label": "Steps",
          "value": "Add new color of yarn in any ch-sp; Make hdc+dc+ch2+dc+hdc in this ch-sp, 2hdc in the next ch-sp, 2sc in the next 3 ch-sp, 2hdc in the next ch-sp; [hdc+dc+ch2+dc+hdc in the next ch-sp, 2hdc in the next ch-sp, 3sc in the next 3 ch-sp, 2hdc in the next ch-sp] repeat 3 times. Sl st to the first hdc, round 5 finished.",
          "raw_text": "Step by step: Add new color of yarn in any ch-sp; Make hdc+dc+ch2+dc+hdc in this ch-sp, 2hdc in the next ch-sp, 2sc in the next 3 ch-sp, 2hdc in the next ch-sp; [hdc+dc+ch2+dc+hdc in the next ch-sp, 2hdc in the next ch-sp, 3sc in the next 3 ch-sp, 2hdc in the next ch-sp] repeat 3 times. Sl st to the first hdc, round 5 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 14,
          "row_type": "round",
          "code": "main-pattern-round-6",
          "label": "Round 6",
          "value": "ch3 (count as dc),dc, 2dc+ch2+2dc in the corner space, 12dc, [2dc, 2dc+ch2+2dc in the corner space, 12dc] repeat 3 times. Sl st to the top of the first ch3, fasten off.",
          "raw_text": "Round 6 ch3 (count as dc),dc, 2dc+ch2+2dc in the corner space, 12dc, [2dc, 2dc+ch2+2dc in the corner space, 12dc] repeat 3 times. Sl st to the top of the first ch3, fasten off.",
          "round_start": 6,
          "round_end": 6,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 15,
          "row_type": "instruction",
          "code": "main-pattern-info-6",
          "label": "Steps",
          "value": "Ch3 as a standing st (count as dc). dc in the next st, 2dc+ch2+2dc in the corner space, dc in next 12 sts.",
          "raw_text": "Ch3 as a standing st (count as dc). dc in the next st, 2dc+ch2+2dc in the corner space, dc in next 12 sts.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 16,
          "row_type": "instruction",
          "code": "main-pattern-info-7",
          "label": "Steps",
          "value": "[dc in the next st, dc in the next st, 2dc+ch2+2dc in the corner space, dc in next 12 sts] repeat 3 times. Sl st to the top of the first ch3, fasten off, round 6 finished.",
          "raw_text": "[dc in the next st, dc in the next st, 2dc+ch2+2dc in the corner space, dc in next 12 sts] repeat 3 times. Sl st to the top of the first ch3,  fasten off, round 6 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "important_notes",
      "code": "important-notes",
      "title": "Important Notes",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "note-1",
          "label": "Note",
          "value": "💡 The 3.00mm hook called for gives tight, well-defined popcorns and a firm fabric - great for coasters and structured squares. If you want more drape for a blanket, size up to a 3.5mm hook and check that your square still measures on target",
          "raw_text": "💡 The 3.00mm hook called for gives tight, well-defined popcorns and a firm fabric - great for coasters and structured squares. If you want more drape for a blanket, size up to a 3.5mm hook and check that your square still measures on target",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "note-3",
          "label": "Note",
          "value": "💡 Place a removable stitch marker in each corner space and one at the start of each round. With six rounds of alternating popcorns and plain stitches, those markers are what keep your count honest",
          "raw_text": "💡 Place a removable stitch marker in each corner space and one at the start of each round. With six rounds of alternating popcorns and plain stitches, those markers are what keep your count honest",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "info",
          "code": "note-4",
          "label": "Note",
          "value": "💡 Weave in each color's tail with your darning needle as soon as you finish with that shade, rather than saving them all for the end - four colors means a lot of ends, and burying them early keeps the back tidy and prevents tangles",
          "raw_text": "💡 Weave in each color's tail with your darning needle as soon as you finish with that shade, rather than saving them all for the end - four colors means a lot of ends, and burying them early keeps the back tidy and prevents tangles",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "info",
          "code": "note-5",
          "label": "Note",
          "value": "💡 Always push each popcorn to the front (right side) as you close it. Deciding on your 'right side' early and staying consistent means every petal bulges the same direction for a clean, uniform flower",
          "raw_text": "💡 Always push each popcorn to the front (right side) as you close it. Deciding on your 'right side' early and staying consistent means every petal bulges the same direction for a clean, uniform flower",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "info",
          "code": "note-6",
          "label": "Note",
          "value": "💡 Block the finished square before joining. A gentle wet or steam block opens up the popcorn texture, squares off the corners, and makes multiple squares match in size so your blanket seams line up neatly",
          "raw_text": "💡 Block the finished square before joining. A gentle wet or steam block opens up the popcorn texture, squares off the corners, and makes multiple squares match in size so your blanket seams line up neatly",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "info",
          "code": "note-7",
          "label": "Note",
          "value": "📏 Finished size: worked as written on a 3.00mm hook, the 3D popcorn flower granny square measures about 3.54 x 3.54 inches. Check yours against this before joining a set so all your squares end up the same size",
          "raw_text": "📏 Finished size: worked as written on a 3.00mm hook, the 3D popcorn flower granny square measures about 3.54 x 3.54 inches. Check yours against this before joining a set so all your squares end up the same size",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "info",
          "code": "note-8",
          "label": "Note",
          "value": "🎨 Sample colorway: a cream center, pink middle layer, periwinkle blue outer petals, and an olive green border, chosen to mimic a spring flower in bloom - green as the leaves, with blue, pink, and cream layering into the blossom",
          "raw_text": "🎨 Sample colorway: a cream center, pink middle layer, periwinkle blue outer petals, and an olive green border, chosen to mimic a spring flower in bloom - green as the leaves, with blue, pink, and cream layering into the blossom",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 10,
      "card_type": "faq",
      "code": "faq",
      "title": "FAQ",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "faq",
          "code": "faq-1",
          "label": "What yarn weight and hook work best",
          "value": "The pattern is written for a DK / light worsted yarn with a 3.00mm hook, which keeps the popcorns crisp and defined. You can use any smooth DK yarn you like; just keep your four colors the same weight so the flower layers stay even",
          "raw_text": "The pattern is written for a DK / light worsted yarn with a 3.00mm hook, which keeps the popcorns crisp and defined. You can use any smooth DK yarn you like; just keep your four colors the same weight so the flower layers stay even",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What yarn weight and hook work best for this popcorn flower square?",
          "answer": "The pattern is written for a DK / light worsted yarn with a 3.00mm hook, which keeps the popcorns crisp and defined. You can use any smooth DK yarn you like; just keep your four colors the same weight so the flower layers stay even",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "How big is the finished square?",
          "value": "Worked as written over six rounds on a 3.00mm hook, the finished square measures about 3.54 x 3.54 inches (roughly three and a half inches). Your exact size depends on your yarn and tension, so make one test square first if you're planning to join many into a blanket",
          "raw_text": "Worked as written over six rounds on a 3.00mm hook, the finished square measures about 3.54 x 3.54 inches (roughly three and a half inches). Your exact size depends on your yarn and tension, so make one test square first if you're planning to join many into a blanket",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How big is the finished square?",
          "answer": "Worked as written over six rounds on a 3.00mm hook, the finished square measures about 3.54 x 3.54 inches (roughly three and a half inches). Your exact size depends on your yarn and tension, so make one test square first if you're planning to join many into a blanket",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "Do the popcorn stitches use a lot of yarn?",
          "value": "Yes - popcorn and bobble textures are yarn-hungry because you're packing several stitches into one space. Budget a bit more of each color than a flat granny square would need, especially if you're making a large set for a throw",
          "raw_text": "Yes - popcorn and bobble textures are yarn-hungry because you're packing several stitches into one space. Budget a bit more of each color than a flat granny square would need, especially if you're making a large set for a throw",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Do the popcorn stitches use a lot of yarn?",
          "answer": "Yes - popcorn and bobble textures are yarn-hungry because you're packing several stitches into one space. Budget a bit more of each color than a flat granny square would need, especially if you're making a large set for a throw",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Can I join these into a blanket or cushion?",
          "value": "Absolutely, that's where this square shines. Make a batch, block them all to the same size, and join with a whipstitch, slip stitch, or a simple continuous-join round. A grid of these dimensional flowers makes a gorgeous textured throw or pillow front",
          "raw_text": "Absolutely, that's where this square shines. Make a batch, block them all to the same size, and join with a whipstitch, slip stitch, or a simple continuous-join round. A grid of these dimensional flowers makes a gorgeous textured throw or pillow front",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I join these into a blanket or cushion?",
          "answer": "Absolutely, that's where this square shines. Make a batch, block them all to the same size, and join with a whipstitch, slip stitch, or a simple continuous-join round. A grid of these dimensional flowers makes a gorgeous textured throw or pillow front",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "Can I make it with fewer than four colors?",
          "value": "Definitely. The four colors create the layered blossom effect, but a two-color version (one flower shade plus a background) or even a single-color square still looks beautiful because the popcorn texture carries the design. Just keep your color changes at the same rounds indicated in the pattern",
          "raw_text": "Definitely. The four colors create the layered blossom effect, but a two-color version (one flower shade plus a background) or even a single-color square still looks beautiful because the popcorn texture carries the design. Just keep your color changes at the same rounds indicated in the pattern",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I make it with fewer than four colors?",
          "answer": "Definitely. The four colors create the layered blossom effect, but a two-color version (one flower shade plus a background) or even a single-color square still looks beautiful because the popcorn texture carries the design. Just keep your color changes at the same rounds indicated in the pattern",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/3d-popcorn-flower-granny-square-free-pattern-hero.webp",
    "data/images/3d-popcorn-flower-granny-square-free-pattern-step-2.webp",
    "data/images/3d-popcorn-flower-granny-square-free-pattern-step-3.webp",
    "data/images/3d-popcorn-flower-granny-square-free-pattern-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/3d-popcorn-flower-granny-square-free-pattern-hero.webp",
      "alt": "3D Popcorn Flower Granny Square - Free Crochet Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/3d-popcorn-flower-granny-square-free-pattern-hero.webp",
      "alt": "3D Popcorn Flower Granny Square - Free Crochet Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/3d-popcorn-flower-granny-square-free-pattern-step-2.webp",
      "alt": "3D Popcorn Flower Granny Square - Free Crochet Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/3d-popcorn-flower-granny-square-free-pattern-step-3.webp",
      "alt": "3D Popcorn Flower Granny Square - Free Crochet Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/3d-popcorn-flower-granny-square-free-pattern-step-4.webp",
      "alt": "3D Popcorn Flower Granny Square - Free Crochet Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 3
}