← mecheval / run / a3-octagonal-flange-01 / claude-direct-claude-sonnet-4-6 / 20260428T232655Z-070a

run 20260428T232655Z-070a

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

Summary

statusfail
score0.83 (5/6)
submissionself-run
modelclaude-direct-claude-sonnet-4-6 (anthropic)
started2026-04-28T23:26:55.471Z
ended2026-04-28T23:27:15.819Z
tokens740 in · 1,522 out · 2,262 total
wallclock19.9s
tool calls1
task hash91605c57469285ce…
vcad hasheff08b17419e27ac…

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
X 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": [
    20,
    20,
    8
  ],
  "actual_min": [
    -20,
    -20,
    0
  ],
  "deviation_max": [
    -1.6499999999999986,
    0,
    0
  ],
  "deviation_min": [
    1.6499999999999986,
    0,
    0
  ],
  "max_abs_deviation_mm": 1.6499999999999986,
  "tolerance_mm": 0.3
}
2
mass_props
pass
params + details
params: {
  "type": "mass_props",
  "volume_mm3": 9347.81,
  "tolerance_pct": 1.5
}

details: {
  "volume": {
    "actual_mm3": 9355.289084146838,
    "deviation_pct": 0.08000894484203713,
    "pass": true,
    "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": [
          20,
          20,
          8
        ],
        "original_min": [
          -20,
          -20,
          0
        ],
        "pass": true,
        "roundtripped_max": [
          20,
          20,
          8
        ],
        "roundtripped_min": [
          -20,
          -20,
          0
        ],
        "tolerance_mm": 0.856971411425142
      },
      "index": 0,
      "pass": true,
      "volume": {
        "deviation_pct": 7.777373364670283e-14,
        "original_mm3": 9355.289084146838,
        "pass": true,
        "roundtripped_mm3": 9355.289084146845
      }
    }
  ],
  "tolerance_pct": 1.5
}

Tool calls

0
anthropic.messages.create
ok
19857ms
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 20260428T232655Z-070a.vcad

.vcad source

{
  "version": "0.1",
  "nodes": {
    "1": {"id":1,"name":"box1","op":{"type":"Cube","size":{"x":40,"y":40,"z":8}}},
    "2": {"id":2,"name":"box1_centered","op":{"type":"Translate","child":1,"offset":{"x":-20,"y":-20,"z":0}}},
    "3": {"id":3,"name":"box2","op":{"type":"Cube","size":{"x":40,"y":40,"z":8}}},
    "4": {"id":4,"name":"box2_centered","op":{"type":"Translate","child":3,"offset":{"x":-20,"y":-20,"z":0}}},
    "5": {"id":5,"name":"box2_rot","op":{"type":"Rotate","child":4,"angles":{"x":0,"y":0,"z":45}}},
    "6": {"id":6,"name":"octagon","op":{"type":"Intersection","left":2,"right":5}},
    "7": {"id":7,"name":"hole_cyl","op":{"type":"Cylinder","radius":2.5,"height":8,"segments":32}},
    "8": {"id":8,"name":"h0","op":{"type":"Translate","child":7,"offset":{"x":15,"y":0,"z":0}}},
    "9": {"id":9,"name":"h1","op":{"type":"Translate","child":7,"offset":{"x":10.6066,"y":10.6066,"z":0}}},
    "10": {"id":10,"name":"h2","op":{"type":"Translate","child":7,"offset":{"x":0,"y":15,"z":0}}},
    "11": {"id":11,"name":"h3","op":{"type":"Translate","child":7,"offset":{"x":-10.6066,"y":10.6066,"z":0}}},
    "12": {"id":12,"name":"h4","op":{"type":"Translate","child":7,"offset":{"x":-15,"y":0,"z":0}}},
    "13": {"id":13,"name":"h5","op":{"type":"Translate","child":7,"offset":{"x":-10.6066,"y":-10.6066,"z":0}}},
    "14": {"id":14,"name":"h6","op":{"type":"Translate","child":7,"offset":{"x":0,"y":-15,"z":0}}},
    "15": {"id":15,"name":"h7","op":{"type":"Translate","child":7,"offset":{"x":10.6066,"y":-10.6066,"z":0}}},
    "16": {"id":16,"name":"d1","op":{"type":"Difference","left":6,"right":8}},
    "17": {"id":17,"name":"d2","op":{"type":"Difference","left":16,"right":9}},
    "18": {"id":18,"name":"d3","op":{"type":"Difference","left":17,"right":10}},
    "19": {"id":19,"name":"d4","op":{"type":"Difference","left":18,"right":11}},
    "20": {"id":20,"name":"d5","op":{"type":"Difference","left":19,"right":12}},
    "21": {"id":21,"name":"d6","op":{"type":"Difference","left":20,"right":13}},
    "22": {"id":22,"name":"d7","op":{"type":"Difference","left":21,"right":14}},
    "23": {"id":23,"name":"flange","op":{"type":"Difference","left":22,"right":15}}
  },
  "materials": {},
  "part_materials": {},
  "roots": [{"root":23,"material":"default"}]
}

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