{
  "schema": "cadsolver.design-loop/1",
  "name": "bracket_fea",
  "description": "L-bracket inside-corner fillet ladder 0/1/2/4/6 mm, steel, 400 N, SF >= 5 (docs/AGENT_FEA_LOOP.md)",
  "startedAt": "2026-09-22T06:29:02.408Z",
  "finishedAt": "2026-09-22T06:32:14.895Z",
  "kernelCommit": "d4ce015d",
  "status": "pass",
  "spec": {
    "params0": {
      "radius": 0
    },
    "policy": {
      "kind": "sweep",
      "variable": "radius",
      "values": [
        0,
        1,
        2,
        4,
        6
      ]
    },
    "stop": {
      "allPass": false,
      "maxIters": 5
    },
    "verdicts": [
      "structural.SF>=5"
    ]
  },
  "iterations": [
    {
      "i": 0,
      "params": {
        "radius": 0
      },
      "steps": [
        {
          "i": 0,
          "tool": "cad_extrude_profile",
          "ok": true,
          "ms": 117,
          "handle": "41f5f3d5_solid_1",
          "note": "L-bracket 60x40x8 base, 8x50 leg",
          "args": {
            "profile": {
              "outer": [
                [
                  0,
                  0
                ],
                [
                  60,
                  0
                ],
                [
                  60,
                  8
                ],
                [
                  8,
                  8
                ],
                [
                  8,
                  50
                ],
                [
                  0,
                  50
                ]
              ]
            },
            "depth": 40,
            "plane": {
              "origin": [
                0,
                0,
                0
              ],
              "xAxis": [
                1,
                0,
                0
              ],
              "yAxis": [
                0,
                0,
                1
              ]
            }
          },
          "volume": 32640,
          "faceCount": 8,
          "watertight": true
        }
      ],
      "build": {
        "ok": true,
        "body": "41f5f3d5_solid_1",
        "ms": 117,
        "refusal": null,
        "skipped": null
      },
      "verdicts": [
        {
          "pass": true,
          "measured": 6.809,
          "limit": 5,
          "unit": "SF",
          "margin": 1.8090000000000002,
          "details": {
            "solver": "calculix",
            "peakMPa": 54.3,
            "at": [
              7.908,
              -26.005,
              8.562
            ],
            "onFace": "#105",
            "onFillet": false,
            "maxDisplacementMm": 0.036,
            "cells": 13103,
            "wallSec": 13.4,
            "caseDir": "iter-00/case",
            "summary": "calculix: max von Mises 54.3 MPa at (7.9, -26.0, 8.6) mm vs yield 370.0 MPa → SF 6.81 max displacement 0.0361 mm (face #105)",
            "singular": "r=0 is a sharp re-entrant corner: its peak tracks the mesh, not the part"
          },
          "name": "structural.SF>=5",
          "ms": 13584
        }
      ],
      "allPass": true,
      "objective": null,
      "decision": {
        "kind": "sweep",
        "params": {
          "radius": 1
        },
        "reason": "ladder step 2/5",
        "next": {
          "radius": 1
        }
      },
      "ms": 13704
    },
    {
      "i": 1,
      "params": {
        "radius": 1
      },
      "steps": [
        {
          "i": 0,
          "tool": "cad_extrude_profile",
          "ok": true,
          "ms": 15,
          "handle": "f33bc9bb_solid_1",
          "note": "L-bracket 60x40x8 base, 8x50 leg",
          "args": {
            "profile": {
              "outer": [
                [
                  0,
                  0
                ],
                [
                  60,
                  0
                ],
                [
                  60,
                  8
                ],
                [
                  8,
                  8
                ],
                [
                  8,
                  50
                ],
                [
                  0,
                  50
                ]
              ]
            },
            "depth": 40,
            "plane": {
              "origin": [
                0,
                0,
                0
              ],
              "xAxis": [
                1,
                0,
                0
              ],
              "yAxis": [
                0,
                0,
                1
              ]
            }
          },
          "volume": 32640,
          "faceCount": 8,
          "watertight": true
        },
        {
          "i": 1,
          "tool": "cad_fillet_edges",
          "ok": true,
          "ms": 3280,
          "handle": "f33bc9bb_solid_2",
          "note": "inside-corner fillet r=1",
          "args": {
            "of": "$0",
            "radius": 1,
            "edges": [
              {
                "direction": [
                  0,
                  1,
                  0
                ],
                "convexity": "concave"
              }
            ]
          },
          "volume": 32648.5840734641,
          "faceCount": 9,
          "watertight": true
        }
      ],
      "build": {
        "ok": true,
        "body": "f33bc9bb_solid_2",
        "ms": 3295,
        "refusal": null,
        "skipped": null
      },
      "verdicts": [
        {
          "pass": false,
          "measured": 4.955,
          "limit": 5,
          "unit": "SF",
          "margin": -0.04499999999999993,
          "details": {
            "solver": "calculix",
            "peakMPa": 74.7,
            "at": [
              9.178,
              -11.517,
              7.877
            ],
            "onFace": "#296",
            "onFillet": false,
            "maxDisplacementMm": 0.035,
            "cells": 10898,
            "wallSec": 76.4,
            "caseDir": "iter-01/case",
            "summary": "calculix: max von Mises 74.7 MPa at (9.2, -11.5, 7.9) mm vs yield 370.0 MPa → SF 4.96 max displacement 0.0350 mm (face #296)",
            "singular": null
          },
          "name": "structural.SF>=5",
          "ms": 76687
        }
      ],
      "allPass": false,
      "objective": 74.7,
      "decision": {
        "kind": "sweep",
        "params": {
          "radius": 2
        },
        "reason": "ladder step 3/5",
        "next": {
          "radius": 2
        }
      },
      "ms": 80771
    },
    {
      "i": 2,
      "params": {
        "radius": 2
      },
      "steps": [
        {
          "i": 0,
          "tool": "cad_extrude_profile",
          "ok": true,
          "ms": 7,
          "handle": "f1ececb5_solid_1",
          "note": "L-bracket 60x40x8 base, 8x50 leg",
          "args": {
            "profile": {
              "outer": [
                [
                  0,
                  0
                ],
                [
                  60,
                  0
                ],
                [
                  60,
                  8
                ],
                [
                  8,
                  8
                ],
                [
                  8,
                  50
                ],
                [
                  0,
                  50
                ]
              ]
            },
            "depth": 40,
            "plane": {
              "origin": [
                0,
                0,
                0
              ],
              "xAxis": [
                1,
                0,
                0
              ],
              "yAxis": [
                0,
                0,
                1
              ]
            }
          },
          "volume": 32640,
          "faceCount": 8,
          "watertight": true
        },
        {
          "i": 1,
          "tool": "cad_fillet_edges",
          "ok": true,
          "ms": 3234,
          "handle": "f1ececb5_solid_2",
          "note": "inside-corner fillet r=2",
          "args": {
            "of": "$0",
            "radius": 2,
            "edges": [
              {
                "direction": [
                  0,
                  1,
                  0
                ],
                "convexity": "concave"
              }
            ]
          },
          "volume": 32674.336293856406,
          "faceCount": 9,
          "watertight": true
        }
      ],
      "build": {
        "ok": true,
        "body": "f1ececb5_solid_2",
        "ms": 3241,
        "refusal": null,
        "skipped": null
      },
      "verdicts": [
        {
          "pass": true,
          "measured": 6.43,
          "limit": 5,
          "unit": "SF",
          "margin": 1.4299999999999997,
          "details": {
            "solver": "calculix",
            "peakMPa": 57.5,
            "at": [
              5.927,
              -12.579,
              7.116
            ],
            "onFace": "#258",
            "onFillet": true,
            "maxDisplacementMm": 0.034,
            "cells": 14104,
            "wallSec": 24.8,
            "caseDir": "iter-02/case",
            "summary": "calculix: max von Mises 57.5 MPa at (5.9, -12.6, 7.1) mm vs yield 370.0 MPa → SF 6.43 max displacement 0.0343 mm (face #258)",
            "singular": null
          },
          "name": "structural.SF>=5",
          "ms": 24997
        }
      ],
      "allPass": true,
      "objective": 57.5,
      "decision": {
        "kind": "sweep",
        "params": {
          "radius": 4
        },
        "reason": "ladder step 4/5",
        "next": {
          "radius": 4
        }
      },
      "ms": 28930
    },
    {
      "i": 3,
      "params": {
        "radius": 4
      },
      "steps": [
        {
          "i": 0,
          "tool": "cad_extrude_profile",
          "ok": true,
          "ms": 13,
          "handle": "0338b651_solid_1",
          "note": "L-bracket 60x40x8 base, 8x50 leg",
          "args": {
            "profile": {
              "outer": [
                [
                  0,
                  0
                ],
                [
                  60,
                  0
                ],
                [
                  60,
                  8
                ],
                [
                  8,
                  8
                ],
                [
                  8,
                  50
                ],
                [
                  0,
                  50
                ]
              ]
            },
            "depth": 40,
            "plane": {
              "origin": [
                0,
                0,
                0
              ],
              "xAxis": [
                1,
                0,
                0
              ],
              "yAxis": [
                0,
                0,
                1
              ]
            }
          },
          "volume": 32640,
          "faceCount": 8,
          "watertight": true
        },
        {
          "i": 1,
          "tool": "cad_fillet_edges",
          "ok": true,
          "ms": 3968,
          "handle": "0338b651_solid_2",
          "note": "inside-corner fillet r=4",
          "args": {
            "of": "$0",
            "radius": 4,
            "edges": [
              {
                "direction": [
                  0,
                  1,
                  0
                ],
                "convexity": "concave"
              }
            ]
          },
          "volume": 32777.34517542563,
          "faceCount": 9,
          "watertight": true
        }
      ],
      "build": {
        "ok": true,
        "body": "0338b651_solid_2",
        "ms": 3981,
        "refusal": null,
        "skipped": null
      },
      "verdicts": [
        {
          "pass": true,
          "measured": 5.44,
          "limit": 5,
          "unit": "SF",
          "margin": 0.4400000000000004,
          "details": {
            "solver": "calculix",
            "peakMPa": 68,
            "at": [
              8.442,
              -6.078,
              7.198
            ],
            "onFace": "#258",
            "onFillet": true,
            "maxDisplacementMm": 0.032,
            "cells": 11187,
            "wallSec": 35.3,
            "caseDir": "iter-03/case",
            "summary": "calculix: max von Mises 68.0 MPa at (8.4, -6.1, 7.2) mm vs yield 370.0 MPa → SF 5.44 max displacement 0.0323 mm (face #258)",
            "singular": null
          },
          "name": "structural.SF>=5",
          "ms": 35425
        }
      ],
      "allPass": true,
      "objective": 68,
      "decision": {
        "kind": "sweep",
        "params": {
          "radius": 6
        },
        "reason": "ladder step 5/5",
        "next": {
          "radius": 6
        }
      },
      "ms": 40283
    },
    {
      "i": 4,
      "params": {
        "radius": 6
      },
      "steps": [
        {
          "i": 0,
          "tool": "cad_extrude_profile",
          "ok": true,
          "ms": 11,
          "handle": "93fdb9eb_solid_1",
          "note": "L-bracket 60x40x8 base, 8x50 leg",
          "args": {
            "profile": {
              "outer": [
                [
                  0,
                  0
                ],
                [
                  60,
                  0
                ],
                [
                  60,
                  8
                ],
                [
                  8,
                  8
                ],
                [
                  8,
                  50
                ],
                [
                  0,
                  50
                ]
              ]
            },
            "depth": 40,
            "plane": {
              "origin": [
                0,
                0,
                0
              ],
              "xAxis": [
                1,
                0,
                0
              ],
              "yAxis": [
                0,
                0,
                1
              ]
            }
          },
          "volume": 32640,
          "faceCount": 8,
          "watertight": true
        },
        {
          "i": 1,
          "tool": "cad_fillet_edges",
          "ok": true,
          "ms": 3083,
          "handle": "93fdb9eb_solid_2",
          "note": "inside-corner fillet r=6",
          "args": {
            "of": "$0",
            "radius": 6,
            "edges": [
              {
                "direction": [
                  0,
                  1,
                  0
                ],
                "convexity": "concave"
              }
            ]
          },
          "volume": 32949.02664470767,
          "faceCount": 9,
          "watertight": true
        }
      ],
      "build": {
        "ok": true,
        "body": "93fdb9eb_solid_2",
        "ms": 3094,
        "refusal": null,
        "skipped": null
      },
      "verdicts": [
        {
          "pass": true,
          "measured": 8.809,
          "limit": 5,
          "unit": "SF",
          "margin": 3.8089999999999993,
          "details": {
            "solver": "calculix",
            "peakMPa": 42,
            "at": [
              8.314,
              -5.249,
              12.347
            ],
            "onFace": "#258",
            "onFillet": true,
            "maxDisplacementMm": 0.03,
            "cells": 13831,
            "wallSec": 24.3,
            "caseDir": "iter-04/case",
            "summary": "calculix: max von Mises 42.0 MPa at (8.3, -5.2, 12.3) mm vs yield 370.0 MPa → SF 8.81 max displacement 0.0299 mm (face #258)",
            "singular": null
          },
          "name": "structural.SF>=5",
          "ms": 24395
        }
      ],
      "allPass": true,
      "objective": 42,
      "decision": {
        "kind": "sweep",
        "done": "bounds",
        "reason": "ladder of 5 values exhausted"
      },
      "ms": 28295
    }
  ],
  "result": {
    "status": "pass",
    "reason": "ladder of 5 values exhausted",
    "iterations": 5,
    "iterationsToPass": 1,
    "best": {
      "i": 4,
      "params": {
        "radius": 6
      },
      "objective": 42
    },
    "wall": {
      "variable": "radius",
      "found": true,
      "pass": 0,
      "fail": null,
      "between": null
    },
    "refusals": [],
    "skipped": []
  }
}
