{
  "title": "Cut list optimizer",
  "human_url": "https://happytails.ai/en/calculators/cut-list-optimizer/",
  "agent_url": "https://happytails.ai/agents/en/calculators/cut-list-optimizer/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/cut-list-optimizer.md",
  "content": "Cut list optimizer\nFit your required cuts into stock lengths with saw kerf and end allowances. See each cut position, offcuts and whether the minimum stock count is proved.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Cut list optimizer\nList each required cut length and quantity in the CSV, then set your stock length and saw kerf.\nReview stock availability, the cut positions and offcuts. Check whether the minimum stock count is proved or the result is a bounded-search estimate.\nDownload the full cut list, stock summary and diagram. Check your physical stock and machine clearances before cutting.\nUseful next steps\nLength\nLumber board foot calculator\nQuilt fabric calculator\nInclude the material the blade removes\nKerf is the width removed by the blade. A 6-unit piece and a 3-unit piece fit exactly into 10 units of stock with a 1-unit kerf between them. Two separate short pieces can also need a final cut, so their total reserved kerf may be larger than the gap between them.\nAn honest optimization result\nThe starting plan packs larger pieces first. Small jobs also use a bounded exact search to look for better combinations. If the plan meets a proven lower bound, or the complete search rules out a better one, it is marked optimal. Otherwise it is a useful plan without a claim that no better arrangement exists.\nEvery piece stays traceable\nExports include the original row, copy number, stock number, start and end positions and kerf after each piece. The diagram is an overview, not a print-at-scale template. Keep one measurement unit throughout and allow separately for defects, grain and machine requirements.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Length",
      "url": "https://happytails.ai/en/unit-converters/length/"
    },
    {
      "name": "Lumber board foot calculator",
      "url": "https://happytails.ai/en/calculators/lumber-board-foot-calculator/"
    },
    {
      "name": "Quilt fabric calculator",
      "url": "https://happytails.ai/en/calculators/quilt-fabric-calculator/"
    }
  ],
  "tool": {
    "id": "cut-list-optimizer",
    "category": "calculators",
    "built": true,
    "requirements": "Plans use equal-length stock in one unit. Up to 200 pieces and 100,000 input characters; dimensions up to 1,000,000 with three decimal places. Each piece reserves one kerf unless it ends exactly at the usable stock end. End allowances reserve material at both ends, not additional saw cuts. Up to 24 pieces use a search capped at 250,000 nodes; larger jobs use first-fit decreasing. Optimality is only stated when proved. A plan requiring more stock remains visible, clearly marked. Grain, defects, clamps and blade tolerances are not modelled. All processing is local.",
    "implementation": {
      "fields": [
        {
          "key": "stockLength",
          "label": "Stock length",
          "value": 2400,
          "type": "number",
          "min": 0.001,
          "max": 1000000,
          "step": 0.001
        },
        {
          "key": "kerf",
          "label": "Saw kerf",
          "value": 3,
          "type": "number",
          "min": 0,
          "max": 1000000,
          "step": 0.001
        },
        {
          "key": "endTrim",
          "label": "Allowance at each end",
          "value": 0,
          "type": "number",
          "min": 0,
          "max": 1000000,
          "step": 0.001
        },
        {
          "key": "stockQuantity",
          "label": "Stock lengths available",
          "value": 200,
          "type": "number",
          "min": 1,
          "max": 200,
          "step": 1
        },
        {
          "key": "unit",
          "label": "Measurement unit",
          "value": "mm",
          "type": "select",
          "values": [
            "mm",
            "cm",
            "m",
            "in",
            "ft"
          ]
        }
      ],
      "presentation": "metrics",
      "inputMaxLength": 100000,
      "inputErrorCode": "CUT_SIZE",
      "note": "Use one measurement unit and one stock length throughout. Up to 200 pieces, with three decimal places. End allowance reserves material at both ends. Each piece uses one saw kerf unless it ends exactly at the usable stock end. Plans for up to 24 pieces use a bounded exact search; larger plans use a heuristic. Optimality is only claimed when proved. Grain, defects and clamping clearances are not modelled. The diagram is not a print-at-scale template. Your input stays on your device.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 100000,
        "inputMode": "text",
        "label": "Required cuts",
        "placeholder": "label,length,quantity\nRails,1000,2\nSupports,600,2\nBraces,350,2",
        "help": "Use the CSV columns label, length and quantity. Lengths use a decimal point. Quantities are whole numbers. Use the selected measurement unit for every dimension. Up to 100,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Cut list optimizer\n\n- Human page: https://happytails.ai/en/calculators/cut-list-optimizer/\n- Markdown: https://happytails.ai/en/calculators/cut-list-optimizer.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/cut-list-optimizer/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `cut-list-optimizer` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nUse one measurement unit and one stock length throughout. Up to 200 pieces, with three decimal places. End allowance reserves material at both ends. Each piece uses one saw kerf unless it ends exactly at the usable stock end. Plans for up to 24 pieces use a bounded exact search; larger plans use a heuristic. Optimality is only claimed when proved. Grain, defects and clamping clearances are not modelled. The diagram is not a print-at-scale template. Your input stays on your device.\n\n### Inputs and settings\n\nText input: Required cuts.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nlabel,length,quantity\nRails,1000,2\nSupports,600,2\nBraces,350,2\n```\n\nUse the CSV columns label, length and quantity. Lengths use a decimal point. Quantities are whole numbers. Use the selected measurement unit for every dimension. Up to 100,000 characters. Review the settings before running.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `stockLength` | Stock length | number | 2400 | min=0.001 max=1000000 step=0.001 |\n| `kerf` | Saw kerf | number | 3 | min=0 max=1000000 step=0.001 |\n| `endTrim` | Allowance at each end | number | 0 | min=0 max=1000000 step=0.001 |\n| `stockQuantity` | Stock lengths available | number | 200 | min=1 max=200 step=1 |\n| `unit` | Measurement unit | select | \"mm\" | Allowed: mm, cm, m, in, ft |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nPlans use equal-length stock in one unit. Up to 200 pieces and 100,000 input characters; dimensions up to 1,000,000 with three decimal places. Each piece reserves one kerf unless it ends exactly at the usable stock end. End allowances reserve material at both ends, not additional saw cuts. Up to 24 pieces use a search capped at 250,000 nodes; larger jobs use first-fit decreasing. Optimality is only stated when proved. A plan requiring more stock remains visible, clearly marked. Grain, defects, clamps and blade tolerances are not modelled. All processing is local.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"cut-list-optimizer\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"Plans use equal-length stock in one unit. Up to 200 pieces and 100,000 input characters; dimensions up to 1,000,000 with three decimal places. Each piece reserves one kerf unless it ends exactly at the usable stock end. End allowances reserve material at both ends, not additional saw cuts. Up to 24 pieces use a search capped at 250,000 nodes; larger jobs use first-fit decreasing. Optimality is only stated when proved. A plan requiring more stock remains visible, clearly marked. Grain, defects, clamps and blade tolerances are not modelled. All processing is local.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"stockLength\",\n        \"label\": \"Stock length\",\n        \"value\": 2400,\n        \"type\": \"number\",\n        \"min\": 0.001,\n        \"max\": 1000000,\n        \"step\": 0.001\n      },\n      {\n        \"key\": \"kerf\",\n        \"label\": \"Saw kerf\",\n        \"value\": 3,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000000,\n        \"step\": 0.001\n      },\n      {\n        \"key\": \"endTrim\",\n        \"label\": \"Allowance at each end\",\n        \"value\": 0,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000000,\n        \"step\": 0.001\n      },\n      {\n        \"key\": \"stockQuantity\",\n        \"label\": \"Stock lengths available\",\n        \"value\": 200,\n        \"type\": \"number\",\n        \"min\": 1,\n        \"max\": 200,\n        \"step\": 1\n      },\n      {\n        \"key\": \"unit\",\n        \"label\": \"Measurement unit\",\n        \"value\": \"mm\",\n        \"type\": \"select\",\n        \"values\": [\n          \"mm\",\n          \"cm\",\n          \"m\",\n          \"in\",\n          \"ft\"\n        ]\n      }\n    ],\n    \"presentation\": \"metrics\",\n    \"inputMaxLength\": 100000,\n    \"inputErrorCode\": \"CUT_SIZE\",\n    \"note\": \"Use one measurement unit and one stock length throughout. Up to 200 pieces, with three decimal places. End allowance reserves material at both ends. Each piece uses one saw kerf unless it ends exactly at the usable stock end. Plans for up to 24 pieces use a bounded exact search; larger plans use a heuristic. Optimality is only claimed when proved. Grain, defects and clamping clearances are not modelled. The diagram is not a print-at-scale template. Your input stays on your device.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 100000,\n      \"inputMode\": \"text\",\n      \"label\": \"Required cuts\",\n      \"placeholder\": \"label,length,quantity\\nRails,1000,2\\nSupports,600,2\\nBraces,350,2\",\n      \"help\": \"Use the CSV columns label, length and quantity. Lengths use a decimal point. Quantities are whole numbers. Use the selected measurement unit for every dimension. Up to 100,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nFit your required cuts into stock lengths with saw kerf and end allowances. See each cut position, offcuts and whether the minimum stock count is proved.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Cut list optimizer\n\n1. List each required cut length and quantity in the CSV, then set your stock length and saw kerf.\n2. Review stock availability, the cut positions and offcuts. Check whether the minimum stock count is proved or the result is a bounded-search estimate.\n3. Download the full cut list, stock summary and diagram. Check your physical stock and machine clearances before cutting.\n\n## Useful next steps\n\n- [Length](https://happytails.ai/en/unit-converters/length/) ([Markdown](https://happytails.ai/en/unit-converters/length.md))\n\n- [Lumber board foot calculator](https://happytails.ai/en/calculators/lumber-board-foot-calculator/) ([Markdown](https://happytails.ai/en/calculators/lumber-board-foot-calculator.md))\n\n- [Quilt fabric calculator](https://happytails.ai/en/calculators/quilt-fabric-calculator/) ([Markdown](https://happytails.ai/en/calculators/quilt-fabric-calculator.md))\n\n## Include the material the blade removes\n\nKerf is the width removed by the blade. A 6-unit piece and a 3-unit piece fit exactly into 10 units of stock with a 1-unit kerf between them. Two separate short pieces can also need a final cut, so their total reserved kerf may be larger than the gap between them.\n\n### An honest optimization result\n\nThe starting plan packs larger pieces first. Small jobs also use a bounded exact search to look for better combinations. If the plan meets a proven lower bound, or the complete search rules out a better one, it is marked optimal. Otherwise it is a useful plan without a claim that no better arrangement exists.\n\n### Every piece stays traceable\n\nExports include the original row, copy number, stock number, start and end positions and kerf after each piece. The diagram is an overview, not a print-at-scale template. Keep one measurement unit throughout and allow separately for defects, grain and machine requirements.\n"
}