← mecheval / run / a6-sprocket-blank-01 / claude-mcp-claude-opus-4-7 / 20260612T004519Z-1455

run 20260612T004519Z-1455

a6-sprocket-blank-01 · claude-mcp-claude-opus-4-7

Summary

statusfail
score0.88 (7/8)
submissionself-run
modelclaude-mcp-claude-opus-4-7 (anthropic)
started2026-06-12T00:45:19.057Z
ended2026-06-12T00:47:25.861Z
tokens545,281 in · 7,381 out · 552,662 total
wallclock126.7s
tool calls50
task hash23fd3e0ddb5f42d3…
vcad hashab28153d85d8234f…

Prompt

Make a sprocket blank as a single solid. The main disc is a cylinder of diameter 100mm and height 20mm, base on the XY plane (z = 0 to z = 20), centered on the Z axis. Concentric with the disc and sitting on top of it is a raised hub cylinder of diameter 40mm and height 20mm (z = 20 to z = 40). A central through-bore of diameter 20mm runs along the Z axis through the full height (z = 0 to z = 40). Cut a rectangular keyway slot through the entire height: the keyway is 6mm wide (x in [-3, 3]) and 6mm deep, starting at the bore wall and extending radially outward to y = 16 (so y in [10, 16], x in [-3, 3], z in [0, 40]). Four bolt holes of diameter 8mm, axes parallel to Z, pass through the disc only (z = 0 to z = 20), arranged on a bolt circle of diameter 70mm (radius 35mm) centered on the Z axis at 90-degree intervals: (35, 0), (0, 35), (-35, 0), (0, -35). Output a single solid.

Checks

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

details: {
  "root_count": 1,
  "solids_produced": 1
}
1
bbox
pass
params + details
params: {
  "type": "bbox",
  "min": [
    -50,
    -50,
    0
  ],
  "max": [
    50,
    50,
    40
  ],
  "tolerance_mm": 0.2
}

details: {
  "actual_max": [
    50,
    50,
    40
  ],
  "actual_min": [
    -50,
    -50,
    0
  ],
  "deviation_max": [
    0,
    0,
    0
  ],
  "deviation_min": [
    0,
    0,
    0
  ],
  "max_abs_deviation_mm": 0,
  "tolerance_mm": 0.2
}
2
mass_props
pass
params + details
params: {
  "type": "mass_props",
  "volume_mm3": 164184.76,
  "tolerance_pct": 1.5
}

details: {
  "volume": {
    "actual_mm3": 164412.61317369735,
    "deviation_pct": 0.1387785161651655,
    "pass": true,
    "spec_mm3": 164184.76,
    "tolerance_pct": 1.5
  }
}
3
hole_count
pass
params + details
params: {
  "type": "hole_count",
  "diameter_mm": 20,
  "expected": 1,
  "diameter_tolerance_mm": 0.1
}

details: {
  "actual": 1,
  "diameter_mm": 20,
  "diameter_tolerance_mm": 0.1,
  "expected": 1,
  "found": [
    [
      0,
      0,
      20
    ]
  ]
}
4
hole_positions
pass
params + details
params: {
  "type": "hole_positions",
  "diameter_mm": 20,
  "positions": [
    [
      0,
      0,
      0
    ]
  ],
  "tolerance_mm": 0.2
}

details: {
  "diameter_mm": 20,
  "per_expected": [
    {
      "distance_mm": 0,
      "matched_hole": [
        0,
        0
      ],
      "pass": true,
      "spec_xy": [
        0,
        0
      ]
    }
  ],
  "tolerance_mm": 0.2,
  "unmatched_extras": []
}
5
hole_count
pass
params + details
params: {
  "type": "hole_count",
  "diameter_mm": 8,
  "expected": 4,
  "diameter_tolerance_mm": 0.05
}

details: {
  "actual": 4,
  "diameter_mm": 8,
  "diameter_tolerance_mm": 0.05,
  "expected": 4,
  "found": [
    [
      35,
      0,
      8
    ],
    [
      2.1431318985078682e-15,
      35,
      8
    ],
    [
      -35,
      4.2862637970157365e-15,
      8
    ],
    [
      -6.429395695523604e-15,
      -35,
      8
    ]
  ]
}
6
hole_positions
pass
params + details
params: {
  "type": "hole_positions",
  "diameter_mm": 8,
  "positions": [
    [
      35,
      0,
      0
    ],
    [
      0,
      35,
      0
    ],
    [
      -35,
      0,
      0
    ],
    [
      0,
      -35,
      0
    ]
  ],
  "tolerance_mm": 0.2
}

details: {
  "diameter_mm": 8,
  "per_expected": [
    {
      "distance_mm": 0,
      "matched_hole": [
        35,
        0
      ],
      "pass": true,
      "spec_xy": [
        35,
        0
      ]
    },
    {
      "distance_mm": 2.1431318985078682e-15,
      "matched_hole": [
        2.1431318985078682e-15,
        35
      ],
      "pass": true,
      "spec_xy": [
        0,
        35
      ]
    },
    {
      "distance_mm": 4.2862637970157365e-15,
      "matched_hole": [
        -35,
        4.2862637970157365e-15
      ],
      "pass": true,
      "spec_xy": [
        -35,
        0
      ]
    },
    {
      "distance_mm": 6.429395695523604e-15,
      "matched_hole": [
        -6.429395695523604e-15,
        -35
      ],
      "pass": true,
      "spec_xy": [
        0,
        -35
      ]
    }
  ],
  "tolerance_mm": 0.2,
  "unmatched_extras": []
}
7
step_roundtrip
fail
STEP drift on 1/1 solid
params + details
params: {
  "type": "step_roundtrip",
  "tolerance_pct": 1.5
}

details: {
  "per_solid": [
    {
      "bbox": {
        "max_abs_deviation_mm": 0,
        "original_max": [
          50,
          50,
          40
        ],
        "original_min": [
          -50,
          -50,
          0
        ],
        "pass": true,
        "roundtripped_max": [
          50,
          50,
          40
        ],
        "roundtripped_min": [
          -50,
          -50,
          0
        ],
        "tolerance_mm": 2.2045407685048604
      },
      "index": 0,
      "pass": false,
      "volume": {
        "deviation_pct": 12.306640521212865,
        "original_mm3": 164412.61317369735,
        "pass": false,
        "roundtripped_mm3": 184646.28244851655
      }
    }
  ],
  "tolerance_pct": 1.5
}

Tool calls

0
open_document
ok
2ms
args
{}
1
create_cad_loon
err
4ms
args
{
  "source": "[let\n  [let\n    [let\n      [let\n        [let\n          [let\n            [let\n              [translate 0 0 0 [cylinder 50 20]]\n              disc [translate 0 0 20 [cylinder 20 20]]]\n            [union disc hub]\n            body [translate 0 0 -1 [cylinder 10 42]]]\n          [difference bore body]\n          body2 [translate -3 10 -1 [cube 6 6 42]]]\n        [difference keyway body2]\n        body3 [translate 35 0 -1 [cylinder 4 22]]]\n      [difference [circular-pattern 0 0 0 0 0 1 4 360 body3] body4]\n      [root body4 \"steel\"]]]]]"
}
2
create_cad_loon
ok
11ms
args
{
  "source": "[let disc [cylinder 50 20]\n [let hub [translate 0 0 20 [cylinder 20 20]]\n  [let body [union disc hub]\n   [let bore [translate 0 0 -1 [cylinder 10 42]]\n    [let key [translate -3 10 -1 [cube 6 6 42]]\n     [let bolt [translate 35 0 -1 [cylinder 4 22]]\n      [let bolts [circular-pattern 0 0 0 0 0 1 4 360 bolt]\n       [let cut1 [difference bore body]\n        [let cut2 [difference key cut1]\n         [let cut3 [difference bolts cut2]\n          [root cut3 \"steel\"]]]]]]]]]]]"
}
3
create
err
6ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cylinder",
  "name": "Disc",
  "params": {
    "radius": 50,
    "height": 20
  }
}
4
create
err
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cylinder",
  "name": "HubRaw",
  "params": {
    "radius": 20,
    "height": 20
  }
}
5
create_cad_loon
ok
3ms
args
{
  "source": "[root\n  [difference\n    [circular-pattern 0 0 0 0 0 1 4 360 [translate 35 0 -1 [cylinder 4 22]]]\n    [difference\n      [translate -3 10 -1 [cube 6 6 42]]\n      [difference\n        [translate 0 0 -1 [cylinder 10 42]]\n        [union\n          [cylinder 50 20]\n          [translate 0 0 20 [cylinder 20 20]]]]]]\n  \"steel\"]",
  "format": "json"
}
6
create
ok
2ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cylinder",
  "name": "Disc",
  "params": {
    "radius": 50,
    "height": 20,
    "segments": 64
  }
}
7
create
ok
3ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cylinder",
  "name": "HubRaw",
  "params": {
    "radius": 20,
    "height": 20,
    "segments": 64
  }
}
8
read
ok
1ms
args
{
  "document_id": "doc_1781225119251_1"
}
9
delete
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "1"
}
10
delete
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "2"
}
11
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cylinder",
  "name": "Disc",
  "params": {
    "radius": 50,
    "height": 20,
    "segments": 64
  }
}
12
read
ok
2ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "1"
}
13
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cylinder",
  "name": "HubCyl",
  "params": {
    "radius": 20,
    "height": 20,
    "segments": 64
  },
  "parent_part_id": "1"
}
14
read
ok
2ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "2"
}
15
read
ok
1ms
args
{
  "document_id": "doc_1781225119251_1"
}
16
delete
ok
2ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "2"
}
17
create
err
3ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "difference",
  "name": "BoreCut",
  "params": {
    "tool": {
      "type": "cylinder",
      "radius": 10,
      "height": 42,
      "segments": 64,
      "translate": {
        "x": 0,
        "y": 0,
        "z": -1
      }
    }
  },
  "parent_part_id": "1"
}
18
get_document
ok
3ms
args
{
  "document_id": "doc_1781225119251_1"
}
19
create
ok
3ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cylinder",
  "name": "HubCyl",
  "params": {
    "radius": 20,
    "height": 20,
    "segments": 64
  }
}
20
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cylinder",
  "name": "Bore",
  "params": {
    "radius": 10,
    "height": 42,
    "segments": 64
  }
}
21
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cube",
  "name": "Keyway",
  "params": {
    "size": {
      "x": 6,
      "y": 6,
      "z": 42
    }
  }
}
22
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "cylinder",
  "name": "Bolt",
  "params": {
    "radius": 4,
    "height": 22,
    "segments": 32
  }
}
23
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "translate",
  "name": "HubT",
  "params": {
    "child": 2,
    "offset": {
      "x": 0,
      "y": 0,
      "z": 20
    }
  }
}
24
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "translate",
  "name": "BoreT",
  "params": {
    "child": 3,
    "offset": {
      "x": 0,
      "y": 0,
      "z": -1
    }
  }
}
25
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "translate",
  "name": "KeywayT",
  "params": {
    "child": 4,
    "offset": {
      "x": -3,
      "y": 10,
      "z": -1
    }
  }
}
26
create
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "translate",
  "name": "BoltT",
  "params": {
    "child": 5,
    "offset": {
      "x": 35,
      "y": 0,
      "z": -1
    }
  }
}
27
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "circular_pattern",
  "name": "BoltPattern",
  "params": {
    "child": 9,
    "axis_origin": {
      "x": 0,
      "y": 0,
      "z": 0
    },
    "axis_dir": {
      "x": 0,
      "y": 0,
      "z": 1
    },
    "count": 4,
    "angle_deg": 360
  }
}
28
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "union",
  "name": "DiscPlusHub",
  "params": {
    "left": 1,
    "right": 6
  }
}
29
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "difference",
  "name": "CutBore",
  "params": {
    "left": 11,
    "right": 7
  }
}
30
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "difference",
  "name": "CutKeyway",
  "params": {
    "left": 12,
    "right": 8
  }
}
31
create
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "type": "difference",
  "name": "SprocketBlank",
  "params": {
    "left": 13,
    "right": 10
  }
}
32
get_document
ok
1ms
args
{
  "document_id": "doc_1781225119251_1"
}
33
delete
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "1"
}
34
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "2"
}
35
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "3"
}
36
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "4"
}
37
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "5"
}
38
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "6"
}
39
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "7"
}
40
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "8"
}
41
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "9"
}
42
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "10"
}
43
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "11"
}
44
delete
ok
1ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "12"
}
45
delete
ok
0ms
args
{
  "document_id": "doc_1781225119251_1",
  "part_id": "13"
}
46
get_document
ok
1ms
args
{
  "document_id": "doc_1781225119251_1"
}
47
render_view
ok
185ms
args
{
  "document_id": "doc_1781225119251_1"
}
48
inspect_cad
ok
31ms
args
{
  "document_id": "doc_1781225119251_1"
}
49
get_document
ok
2ms
args
{
  "document_id": "doc_1781225119251_1"
}

What the model built

isometric render via vcad-render · the model's actual .vcad output, faceted at 28 segments per cylinder · download 20260612T004519Z-1455.vcad

.vcad source

{
  "version": "0.1",
  "nodes": {
    "1": {
      "id": 1,
      "name": "Disc",
      "op": {
        "type": "Cylinder",
        "radius": 50,
        "height": 20,
        "segments": 64
      }
    },
    "2": {
      "id": 2,
      "name": "HubCyl",
      "op": {
        "type": "Cylinder",
        "radius": 20,
        "height": 20,
        "segments": 64
      }
    },
    "3": {
      "id": 3,
      "name": "Bore",
      "op": {
        "type": "Cylinder",
        "radius": 10,
        "height": 42,
        "segments": 64
      }
    },
    "4": {
      "id": 4,
      "name": "Keyway",
      "op": {
        "type": "Cube",
        "size": {
          "x": 6,
          "y": 6,
          "z": 42
        }
      }
    },
    "5": {
      "id": 5,
      "name": "Bolt",
      "op": {
        "type": "Cylinder",
        "radius": 4,
        "height": 22,
        "segments": 32
      }
    },
    "6": {
      "id": 6,
      "name": "HubT",
      "op": {
        "type": "Translate",
        "child": 2,
        "offset": {
          "x": 0,
          "y": 0,
          "z": 20
        }
      }
    },
    "7": {
      "id": 7,
      "name": "BoreT",
      "op": {
        "type": "Translate",
        "child": 3,
        "offset": {
          "x": 0,
          "y": 0,
          "z": -1
        }
      }
    },
    "8": {
      "id": 8,
      "name": "KeywayT",
      "op": {
        "type": "Translate",
        "child": 4,
        "offset": {
          "x": -3,
          "y": 10,
          "z": -1
        }
      }
    },
    "9": {
      "id": 9,
      "name": "BoltT",
      "op": {
        "type": "Translate",
        "child": 5,
        "offset": {
          "x": 35,
          "y": 0,
          "z": -1
        }
      }
    },
    "10": {
      "id": 10,
      "name": "BoltPattern",
      "op": {
        "type": "CircularPattern",
        "child": 9,
        "axis_origin": {
          "x": 0,
          "y": 0,
          "z": 0
        },
        "axis_dir": {
          "x": 0,
          "y": 0,
          "z": 1
        },
        "count": 4,
        "angle_deg": 360
      }
    },
    "11": {
      "id": 11,
      "name": "DiscPlusHub",
      "op": {
        "type": "Union",
        "left": 1,
        "right": 6
      }
    },
    "12": {
      "id": 12,
      "name": "CutBore",
      "op": {
        "type": "Difference",
        "left": 11,
        "right": 7
      }
    },
    "13": {
      "id": 13,
      "name": "CutKeyway",
      "op": {
        "type": "Difference",
        "left": 12,
        "right": 8
      }
    },
    "14": {
      "id": 14,
      "name": "SprocketBlank",
      "op": {
        "type": "Difference",
        "left": 13,
        "right": 10
      }
    }
  },
  "materials": {},
  "part_materials": {},
  "roots": [
    {
      "root": 14,
      "material": "default"
    }
  ]
}

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