← mecheval / run / a3-octagonal-flange-01 / claude-direct-claude-sonnet-4-6 / 20260428T232508Z-11c7

run 20260428T232508Z-11c7

a3-octagonal-flange-01 · claude-direct-claude-sonnet-4-6

Summary

statusfail
score0.67 (4/6)
submissionself-run
modelclaude-direct-claude-sonnet-4-6 (anthropic)
started2026-04-28T23:25:08.505Z
ended2026-04-28T23:25:31.155Z
tokens740 in · 1,812 out · 2,552 total
wallclock22.1s
tool calls1
task hash91605c57469285ce…
vcad hash5be278a53f5f00bd…

Prompt

Make an octagonal prism flange. The outer cross-section is a regular octagon with flat-to-flat distance 40mm (apothem 20mm), oriented so two flats are parallel to the X axis (the top and bottom of the octagon). Height 8mm along Z, base on the XY plane (z = 0 to z = 8). Drill eight through-holes of diameter 5mm, axes parallel to Z, on a bolt circle of radius 15mm centered on the Z axis. The first bolt hole is on the +X axis, and the rest are evenly spaced every 45 degrees. Output a single solid.

Checks

0
valid_solid
pass
params + details
params: {
  "type": "valid_solid"
}

details: {
  "root_count": 1,
  "solids_produced": 1
}
1
bbox
fail
Y off by +1.65mm
params + details
params: {
  "type": "bbox",
  "min": [
    -21.65,
    -20,
    0
  ],
  "max": [
    21.65,
    20,
    8
  ],
  "tolerance_mm": 0.3
}

details: {
  "actual_max": [
    21.65060043334961,
    21.65060043334961,
    8
  ],
  "actual_min": [
    -21.65060043334961,
    -21.65060043334961,
    0
  ],
  "deviation_max": [
    0.0006004333496107961,
    1.6506004333496094,
    0
  ],
  "deviation_min": [
    -0.0006004333496107961,
    -1.6506004333496094,
    0
  ],
  "max_abs_deviation_mm": 1.6506004333496094,
  "tolerance_mm": 0.3
}
2
mass_props
fail
volume off by 11.9%
params + details
params: {
  "type": "mass_props",
  "volume_mm3": 9347.81,
  "tolerance_pct": 1.5
}

details: {
  "volume": {
    "actual_mm3": 10456.803542058746,
    "deviation_pct": 11.863672261831876,
    "pass": false,
    "spec_mm3": 9347.81,
    "tolerance_pct": 1.5
  }
}
3
hole_count
pass
params + details
params: {
  "type": "hole_count",
  "diameter_mm": 5,
  "expected": 8,
  "diameter_tolerance_mm": 0.05
}

details: {
  "actual": 8,
  "diameter_mm": 5,
  "diameter_tolerance_mm": 0.05,
  "expected": 8,
  "found": [
    [
      15,
      0,
      5
    ],
    [
      10.6066,
      10.6066,
      5
    ],
    [
      0,
      15,
      5
    ],
    [
      -10.6066,
      10.6066,
      5
    ],
    [
      -15,
      0,
      5
    ],
    [
      -10.6066,
      -10.6066,
      5
    ],
    [
      0,
      -15,
      5
    ],
    [
      10.6066,
      -10.6066,
      5
    ]
  ]
}
4
hole_positions
pass
params + details
params: {
  "type": "hole_positions",
  "diameter_mm": 5,
  "positions": [
    [
      15,
      0,
      0
    ],
    [
      10.61,
      10.61,
      0
    ],
    [
      0,
      15,
      0
    ],
    [
      -10.61,
      10.61,
      0
    ],
    [
      -15,
      0,
      0
    ],
    [
      -10.61,
      -10.61,
      0
    ],
    [
      0,
      -15,
      0
    ],
    [
      10.61,
      -10.61,
      0
    ]
  ],
  "tolerance_mm": 0.2
}

details: {
  "diameter_mm": 5,
  "per_expected": [
    {
      "distance_mm": 0,
      "matched_hole": [
        15,
        0
      ],
      "pass": true,
      "spec_xy": [
        15,
        0
      ]
    },
    {
      "distance_mm": 0.004808326112067366,
      "matched_hole": [
        10.6066,
        10.6066
      ],
      "pass": true,
      "spec_xy": [
        10.61,
        10.61
      ]
    },
    {
      "distance_mm": 0,
      "matched_hole": [
        0,
        15
      ],
      "pass": true,
      "spec_xy": [
        0,
        15
      ]
    },
    {
      "distance_mm": 0.004808326112067366,
      "matched_hole": [
        -10.6066,
        10.6066
      ],
      "pass": true,
      "spec_xy": [
        -10.61,
        10.61
      ]
    },
    {
      "distance_mm": 0,
      "matched_hole": [
        -15,
        0
      ],
      "pass": true,
      "spec_xy": [
        -15,
        0
      ]
    },
    {
      "distance_mm": 0.004808326112067366,
      "matched_hole": [
        -10.6066,
        -10.6066
      ],
      "pass": true,
      "spec_xy": [
        -10.61,
        -10.61
      ]
    },
    {
      "distance_mm": 0,
      "matched_hole": [
        0,
        -15
      ],
      "pass": true,
      "spec_xy": [
        0,
        -15
      ]
    },
    {
      "distance_mm": 0.004808326112067366,
      "matched_hole": [
        10.6066,
        -10.6066
      ],
      "pass": true,
      "spec_xy": [
        10.61,
        -10.61
      ]
    }
  ],
  "tolerance_mm": 0.2,
  "unmatched_extras": []
}
5
step_roundtrip
pass
params + details
params: {
  "type": "step_roundtrip",
  "tolerance_pct": 1.5
}

details: {
  "per_solid": [
    {
      "bbox": {
        "max_abs_deviation_mm": 0,
        "original_max": [
          21.65060043334961,
          21.65060043334961,
          8
        ],
        "original_min": [
          -21.65060043334961,
          -21.65060043334961,
          0
        ],
        "pass": true,
        "roundtripped_max": [
          21.65060043334961,
          21.65060043334961,
          8
        ],
        "roundtripped_min": [
          -21.65060043334961,
          -21.65060043334961,
          0
        ],
        "tolerance_mm": 0.9263624012362575
      },
      "index": 0,
      "pass": true,
      "volume": {
        "deviation_pct": 5.218581556676348e-14,
        "original_mm3": 10456.80354205875,
        "pass": true,
        "roundtripped_mm3": 10456.803542058755
      }
    }
  ],
  "tolerance_pct": 1.5
}

Tool calls

0
anthropic.messages.create
ok
22146ms
args
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 8000,
  "system_chars": 1674,
  "user_chars": 564
}

What the model built

isometric render via vcad-render · the model's actual .vcad output, faceted at 28 segments per cylinder · download 20260428T232508Z-11c7.vcad

.vcad source

{
  "version": "0.1",
  "nodes": {
    "1":  {"id": 1,  "name": "oct_cyl",      "op": {"type":"Cylinder","radius":21.6506,"height":8,"segments":8}},
    "2":  {"id": 2,  "name": "oct_rot",       "op": {"type":"Rotate","child":1,"angles":{"x":0,"y":0,"z":22.5}}},
    "3":  {"id": 3,  "name": "hole0_cyl",     "op": {"type":"Cylinder","radius":2.5,"height":10,"segments":32}},
    "4":  {"id": 4,  "name": "hole0",         "op": {"type":"Translate","child":3,"offset":{"x":15,"y":0,"z":-1}}},
    "5":  {"id": 5,  "name": "hole1_cyl",     "op": {"type":"Cylinder","radius":2.5,"height":10,"segments":32}},
    "6":  {"id": 6,  "name": "hole1",         "op": {"type":"Translate","child":5,"offset":{"x":10.6066,"y":10.6066,"z":-1}}},
    "7":  {"id": 7,  "name": "hole2_cyl",     "op": {"type":"Cylinder","radius":2.5,"height":10,"segments":32}},
    "8":  {"id": 8,  "name": "hole2",         "op": {"type":"Translate","child":7,"offset":{"x":0,"y":15,"z":-1}}},
    "9":  {"id": 9,  "name": "hole3_cyl",     "op": {"type":"Cylinder","radius":2.5,"height":10,"segments":32}},
    "10": {"id": 10, "name": "hole3",         "op": {"type":"Translate","child":9,"offset":{"x":-10.6066,"y":10.6066,"z":-1}}},
    "11": {"id": 11, "name": "hole4_cyl",     "op": {"type":"Cylinder","radius":2.5,"height":10,"segments":32}},
    "12": {"id": 12, "name": "hole4",         "op": {"type":"Translate","child":11,"offset":{"x":-15,"y":0,"z":-1}}},
    "13": {"id": 13, "name": "hole5_cyl",     "op": {"type":"Cylinder","radius":2.5,"height":10,"segments":32}},
    "14": {"id": 14, "name": "hole5",         "op": {"type":"Translate","child":13,"offset":{"x":-10.6066,"y":-10.6066,"z":-1}}},
    "15": {"id": 15, "name": "hole6_cyl",     "op": {"type":"Cylinder","radius":2.5,"height":10,"segments":32}},
    "16": {"id": 16, "name": "hole6",         "op": {"type":"Translate","child":15,"offset":{"x":0,"y":-15,"z":-1}}},
    "17": {"id": 17, "name": "hole7_cyl",     "op": {"type":"Cylinder","radius":2.5,"height":10,"segments":32}},
    "18": {"id": 18, "name": "hole7",         "op": {"type":"Translate","child":17,"offset":{"x":10.6066,"y":-10.6066,"z":-1}}},
    "19": {"id": 19, "name": "diff1",         "op": {"type":"Difference","left":2,"right":4}},
    "20": {"id": 20, "name": "diff2",         "op": {"type":"Difference","left":19,"right":6}},
    "21": {"id": 21, "name": "diff3",         "op": {"type":"Difference","left":20,"right":8}},
    "22": {"id": 22, "name": "diff4",         "op": {"type":"Difference","left":21,"right":10}},
    "23": {"id": 23, "name": "diff5",         "op": {"type":"Difference","left":22,"right":12}},
    "24": {"id": 24, "name": "diff6",         "op": {"type":"Difference","left":23,"right":14}},
    "25": {"id": 25, "name": "diff7",         "op": {"type":"Difference","left":24,"right":16}},
    "26": {"id": 26, "name": "flange",        "op": {"type":"Difference","left":25,"right":18}}
  },
  "materials": {},
  "part_materials": {},
  "roots": [{"root": 26, "material": "default"}]
}

generated 2026-06-19T01:47:55.887Z · static site, regenerate with npm run build -w @mecheval/leaderboard