{
  "title": "ASCIITermDraw-Bench",
  "summary": "Benchmark for ASCII diagram generation and editing.",
  "stats": {
    "task_count": 80,
    "category_count": 4,
    "edit_task_count": 20,
    "rendered_reference_count": 80
  },
  "categories": [
    {
      "id": "1",
      "slug": "box-layout-basics",
      "name": "Box Layout Basics",
      "description": "Single boxes, rows, columns, arrows, lanes, and spacing-sensitive ASCII layout tasks.",
      "count": 20,
      "difficulty": {
        "easy": 10,
        "medium": 5,
        "hard": 5
      },
      "tasks": []
    },
    {
      "id": "2",
      "slug": "network-topology-diagrams",
      "name": "Network Topology Diagrams",
      "description": "Distributed systems, clusters, buses, data flows, and topology-heavy connection diagrams.",
      "count": 20,
      "difficulty": {
        "easy": 10,
        "medium": 5,
        "hard": 5
      },
      "tasks": []
    },
    {
      "id": "3",
      "slug": "diagram-editing",
      "name": "Diagram Editing",
      "description": "Image-to-text edit tasks where a model must transform an existing ASCII diagram correctly.",
      "count": 20,
      "difficulty": {
        "easy": 10,
        "medium": 5,
        "hard": 5
      },
      "tasks": []
    },
    {
      "id": "4",
      "slug": "software-architecture-diagrams",
      "name": "Software Architecture Diagrams",
      "description": "Real-world system architectures — API gateways, event pipelines, feeds, rate limiters, and storage layers — as they'd actually be sketched on a whiteboard.",
      "count": 20,
      "difficulty": {
        "easy": 10,
        "medium": 5,
        "hard": 5
      },
      "tasks": []
    }
  ],
  "public_examples": [
    {
      "category_slug": "box-layout-basics",
      "category_name": "Box Layout Basics",
      "difficulty": "easy",
      "task_id": "0.1",
      "prompt": "- Draw an ASCII diagram illustrating a \"Browser\" box connected to a \"CDN\" box with a right-pointing arrow.",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/box-layout-basics/easy/0.1/reference.png",
      "has_source": false,
      "source_img": null
    },
    {
      "category_slug": "box-layout-basics",
      "category_name": "Box Layout Basics",
      "difficulty": "medium",
      "task_id": "0.2",
      "prompt": "- Draw an ASCII diagram illustrating a \"Load Balancer\" box at the top.\n- Connect it downward to two boxes below: \"Worker-1\" on the left and \"Worker-2\" on the right.",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/box-layout-basics/medium/0.2/reference.png",
      "has_source": false,
      "source_img": null
    },
    {
      "category_slug": "box-layout-basics",
      "category_name": "Box Layout Basics",
      "difficulty": "hard",
      "task_id": "0.3",
      "prompt": "- Draw an ASCII diagram illustrating one outer ASCII box labeled \"Browser Tab\".\n- Inside it, place two inner boxes side by side labeled \"DOM Tree\" and \"JS Engine\".\n- Center the text \"Event Loop\" below the two inner boxes but still inside the Browser Tab box.",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/box-layout-basics/hard/0.3/reference.png",
      "has_source": false,
      "source_img": null
    },
    {
      "category_slug": "diagram-editing",
      "category_name": "Diagram Editing",
      "difficulty": "easy",
      "task_id": "0.4",
      "prompt": "- Draw an ASCII diagram illustrating add an \"Actuator\" box to the right of the Controller box.\n- Connect Controller to Actuator with a right-pointing arrow.\n- Do not change anything else.\n- Strictly apply only the requested edits and do not make any other changes outside them.",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/diagram-editing/easy/0.4/reference.png",
      "has_source": true,
      "source_img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/diagram-editing/easy/0.4/source.png"
    },
    {
      "category_slug": "diagram-editing",
      "category_name": "Diagram Editing",
      "difficulty": "medium",
      "task_id": "0.5",
      "prompt": "- Draw an ASCII diagram illustrating rename the \"Queue\" box to \"Message Queue\".\n- Label the arrow from Producer to Message Queue \"enqueue\".\n- Label the arrow from Message Queue to Consumer \"dequeue\".\n- Do not change anything else.\n- Strictly apply only the requested edits and do not make any other changes outside them.",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/diagram-editing/medium/0.5/reference.png",
      "has_source": true,
      "source_img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/diagram-editing/medium/0.5/source.png"
    },
    {
      "category_slug": "diagram-editing",
      "category_name": "Diagram Editing",
      "difficulty": "hard",
      "task_id": "0.6",
      "prompt": "- Draw an ASCII diagram illustrating insert a \"Cache\" box between API and Worker.\n- Replace the single \"Worker\" box with two boxes in parallel: \"Worker-1\" and \"Worker-2\", each fed by Cache.\n- Connect both Worker-1 and Worker-2 to the same \"DB\" box.\n- Do not change anything else.\n- Strictly apply only the requested edits and do not make any other changes outside them.",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/diagram-editing/hard/0.6/reference.png",
      "has_source": true,
      "source_img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/diagram-editing/hard/0.6/source.png"
    },
    {
      "category_slug": "network-topology-diagrams",
      "category_name": "Network Topology Diagrams",
      "difficulty": "easy",
      "task_id": "0.7",
      "prompt": "- Draw an ASCII diagram illustrating a request path: \"User\" -> \"API Gateway\" -> \"Auth Service\" -> \"Backend\".\n- Linear chain left to right.",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/network-topology-diagrams/easy/0.7/reference.png",
      "has_source": false,
      "source_img": null
    },
    {
      "category_slug": "network-topology-diagrams",
      "category_name": "Network Topology Diagrams",
      "difficulty": "medium",
      "task_id": "0.8",
      "prompt": "- Draw an ASCII diagram illustrating a two-level network tree.\n- At the top, place a \"Router\" box.\n- Connect Router down to two switches below it: \"Switch-A\" on the left and \"Switch-B\" on the right.\n- Connect Switch-A down to two hosts: \"Host-1\" and \"Host-2\".\n- Connect Switch-B down to two hosts: \"Host-3\" and \"Host-4\".",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/network-topology-diagrams/medium/0.8/reference.png",
      "has_source": false,
      "source_img": null
    },
    {
      "category_slug": "network-topology-diagrams",
      "category_name": "Network Topology Diagrams",
      "difficulty": "hard",
      "task_id": "0.9",
      "prompt": "- Draw an ASCII diagram illustrating a core-distribution-access network topology.\n- At the top, place a \"Core Switch\" box connected down to two distribution switches: \"Dist-A\" on the left and \"Dist-B\" on the right.\n- Draw a dashed horizontal redundant link directly between Dist-A and Dist-B, labeled \"backup link\".\n- Connect Dist-A down to an \"Access-1\" box, and Dist-B down to an \"Access-2\" box.",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/network-topology-diagrams/hard/0.9/reference.png",
      "has_source": false,
      "source_img": null
    },
    {
      "category_slug": "software-architecture-diagrams",
      "category_name": "Software Architecture Diagrams",
      "difficulty": "easy",
      "task_id": "0.10",
      "prompt": "- Draw an ASCII diagram illustrating \"IoT Sensor\" connected to \"MQTT Broker\" with an arrow labeled \"publish\".\n- \"MQTT Broker\" connects to \"Time-Series DB\" with an arrow labeled \"ingest\".\n- Linear chain left to right.",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/software-architecture-diagrams/easy/0.10/reference.png",
      "has_source": false,
      "source_img": null
    },
    {
      "category_slug": "software-architecture-diagrams",
      "category_name": "Software Architecture Diagrams",
      "difficulty": "medium",
      "task_id": "0.11",
      "prompt": "- Draw an ASCII diagram illustrating a URL shortener architecture.\n- \"Client\" connects to \"Shortener API\" with an arrow labeled \"shorten URL\".\n- \"Shortener API\" connects to \"Cache (Redis)\" with an arrow labeled \"cache lookup\".\n- \"Shortener API\" connects to \"Datastore\" with an arrow labeled \"persist mapping\".\n- \"Shortener API\" connects to \"Analytics Queue\" with an arrow labeled \"log click\".\n- \"Analytics Queue\" connects to \"Analytics Worker\" with an arrow labeled \"consume\".",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/software-architecture-diagrams/medium/0.11/reference.png",
      "has_source": false,
      "source_img": null
    },
    {
      "category_slug": "software-architecture-diagrams",
      "category_name": "Software Architecture Diagrams",
      "difficulty": "hard",
      "task_id": "0.12",
      "prompt": "- Draw an ASCII diagram illustrating a video upload and transcoding pipeline.\n- \"Client\" connects to \"Upload Service\" with an arrow labeled \"upload video\".\n- \"Upload Service\" connects to \"Object Storage\" with an arrow labeled \"store raw file\".\n- \"Upload Service\" connects to \"Transcode Queue\" with an arrow labeled \"enqueue job\".\n- \"Transcode Queue\" connects down to two workers, \"Transcoder-1\" and \"Transcoder-2\", each arrow labeled \"dequeue\".\n- \"Transcoder-1\" connects to \"CDN\" with an arrow labeled \"publish\".\n- \"Transcoder-2\" connects to \"Metadata DB\" with an arrow labeled \"write metadata\".",
      "img": "https://huggingface.co/datasets/YuvrajSingh9886/asciitermdraw-bench-public/resolve/main/software-architecture-diagrams/hard/0.12/reference.png",
      "has_source": false,
      "source_img": null
    }
  ]
}
