{
  "title": "Our puzzle generator lied about difficulty. Twice.",
  "url": "https://cybiqon.in/lab/puzzle-generator-random-walk-doesnt-work",
  "author": "Prajjwal Pathak",
  "published": "2026-08-10",
  "license": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/"
  },
  "citation": "Prajjwal Pathak, “Our puzzle generator lied about difficulty. Twice.”, Cybiqon Lab, 2026-08-10. https://cybiqon.in/lab/puzzle-generator-random-walk-doesnt-work",
  "tables": [
    {
      "id": "five-block-kinds-five-ways-to-break-the-search",
      "section": "Five block kinds, five ways to break the search",
      "csv": "https://cybiqon.in/data/lab/puzzle-generator-random-walk-doesnt-work/five-block-kinds-five-ways-to-break-the-search.csv",
      "columns": [
        "Kind",
        "World",
        "Rule",
        "What it costs the search"
      ],
      "rows": [
        [
          "Crystal",
          "1",
          "ordinary slide, any distance",
          "nothing"
        ],
        [
          "Sand",
          "2",
          "slides once, then frozen forever",
          "one bit of state per block; irreversible"
        ],
        [
          "Ice",
          "3",
          "frictionless — only the furthest slide exists",
          "no state at all; never returns to where it started"
        ],
        [
          "Rime",
          "4",
          "immovable until the Key passes orthogonally adjacent",
          "shares the sand bitmask, read backwards"
        ],
        [
          "Mirror",
          "5",
          "never moves; reflects the beam 90°",
          "changes the win condition, not the moves"
        ]
      ]
    },
    {
      "id": "the-filters-exist-to-throw-work-away",
      "section": "The filters exist to throw work away",
      "csv": "https://cybiqon.in/data/lab/puzzle-generator-random-walk-doesnt-work/the-filters-exist-to-throw-work-away.csv",
      "columns": [
        "Filter",
        "Sliding",
        "Beam"
      ],
      "rows": [
        [
          "maxOptimalSolutions",
          "14",
          "40"
        ],
        [
          "maxDeadFraction",
          "0.40",
          "0.55"
        ],
        [
          "maxPerFamily",
          "2",
          "6"
        ]
      ]
    }
  ]
}
