← mecheval / run / a6-sprocket-blank-01 / claude-mcp-claude-opus-4-7 / 20260612T004628Z-f04a

run 20260612T004628Z-f04a

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

Summary

statusfail
score0.38 (3/8)
submissionself-run
modelclaude-mcp-claude-opus-4-7 (anthropic)
started2026-06-12T00:46:28.077Z
ended2026-06-12T00:48:13.056Z
tokens624,473 in · 5,881 out · 630,354 total
wallclock105.0s
tool calls38
task hash23fd3e0ddb5f42d3…
vcad hashbd1c576469afb7ff…

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
fail
volume off by 10.8%
params + details
params: {
  "type": "mass_props",
  "volume_mm3": 164184.76,
  "tolerance_pct": 1.5
}

details: {
  "volume": {
    "actual_mm3": 181919.81268234327,
    "deviation_pct": 10.801887265507016,
    "pass": false,
    "spec_mm3": 164184.76,
    "tolerance_pct": 1.5
  }
}
3
hole_count
fail
found 0/1 holes of ⌀20mm
params + details
params: {
  "type": "hole_count",
  "diameter_mm": 20,
  "expected": 1,
  "diameter_tolerance_mm": 0.1
}

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

details: {
  "diameter_mm": 20,
  "per_expected": [
    {
      "pass": false,
      "reason": "no candidate cylindrical feature of this diameter remained unmatched",
      "spec_xy": [
        0,
        0
      ]
    }
  ],
  "tolerance_mm": 0.2,
  "unmatched_extras": []
}
5
hole_count
fail
found 0/4 holes of ⌀8mm
params + details
params: {
  "type": "hole_count",
  "diameter_mm": 8,
  "expected": 4,
  "diameter_tolerance_mm": 0.05
}

details: {
  "actual": 0,
  "diameter_mm": 8,
  "diameter_tolerance_mm": 0.05,
  "expected": 4,
  "found": []
}
6
hole_positions
fail
4/4 mispositioned
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": [
    {
      "pass": false,
      "reason": "no candidate cylindrical feature of this diameter remained unmatched",
      "spec_xy": [
        35,
        0
      ]
    },
    {
      "pass": false,
      "reason": "no candidate cylindrical feature of this diameter remained unmatched",
      "spec_xy": [
        0,
        35
      ]
    },
    {
      "pass": false,
      "reason": "no candidate cylindrical feature of this diameter remained unmatched",
      "spec_xy": [
        -35,
        0
      ]
    },
    {
      "pass": false,
      "reason": "no candidate cylindrical feature of this diameter remained unmatched",
      "spec_xy": [
        0,
        -35
      ]
    }
  ],
  "tolerance_mm": 0.2,
  "unmatched_extras": []
}
7
step_roundtrip
pass
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": true,
      "volume": {
        "deviation_pct": 0.5036642509436257,
        "original_mm3": 181919.81268234327,
        "pass": true,
        "roundtripped_mm3": 181003.5476204787
      }
    }
  ],
  "tolerance_pct": 1.5
}

Tool calls

0
open_document
ok
2ms
args
{}
1
create_cad_loon
err
7ms
args
{
  "source": "[let\n  [let disc [translate 0 0 0 [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 0 [cylinder 10 40]]\n      [let keyway [translate -3 10 0 [cube 6 6 40]]\n       [let bolt1 [translate 35 0 0 [cylinder 4 20]]\n        [let bolt2 [translate 0 35 0 [cylinder 4 20]]\n         [let bolt3 [translate -35 0 0 [cylinder 4 20]]\n          [let bolt4 [translate 0 -35 0 [cylinder 4 20]]\n           [difference bolt4\n            [difference bolt3\n             [difference bolt2\n              [difference bolt1\n               [difference keyway\n                [difference bore body]]]]]]]]]]]]]]]]",
  "format": "json"
}
2
create_cad_loon
ok
4ms
args
{
  "source": "[pipe\n  [union [translate 0 0 20 [cylinder 20 20]] [cylinder 50 20]]\n  [difference [translate 0 0 0 [cylinder 10 40]]]\n  [difference [translate -3 10 0 [cube 6 6 40]]]\n  [difference [translate 35 0 0 [cylinder 4 20]]]\n  [difference [translate 0 35 0 [cylinder 4 20]]]\n  [difference [translate -35 0 0 [cylinder 4 20]]]\n  [difference [translate 0 -35 0 [cylinder 4 20]]]]",
  "format": "json"
}
3
create
err
4ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "Disc",
  "params": {
    "radius": 50,
    "height": 20
  }
}
4
create
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "Disc",
  "params": {
    "radius": 50,
    "height": 20,
    "segments": 64
  }
}
5
create
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "HubCyl",
  "params": {
    "radius": 20,
    "height": 20,
    "segments": 64
  }
}
6
read
ok
1ms
args
{
  "document_id": "doc_1781225188257_1"
}
7
delete
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "1"
}
8
delete
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "2"
}
9
create
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "Sprocket Blank",
  "params": {
    "radius": 50,
    "height": 20,
    "segments": 64
  }
}
10
create
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "Hub",
  "parent_part_id": "1",
  "params": {
    "radius": 20,
    "height": 20,
    "segments": 64
  }
}
11
read
ok
1ms
args
{
  "document_id": "doc_1781225188257_1"
}
12
read
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "2"
}
13
get_document
ok
1ms
args
{
  "document_id": "doc_1781225188257_1"
}
14
delete
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "1"
}
15
delete
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "2"
}
16
create
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "Disc",
  "params": {
    "radius": 50,
    "height": 20,
    "segments": 64
  }
}
17
create
err
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "translate",
  "name": "RaiseHub",
  "parent_part_id": "1",
  "params": {
    "offset": {
      "x": 0,
      "y": 0,
      "z": 20
    }
  }
}
18
delete
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "1"
}
19
create
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "Disc",
  "params": {
    "radius": 50,
    "height": 20,
    "segments": 64
  }
}
20
create
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "HubCyl",
  "params": {
    "radius": 20,
    "height": 20,
    "segments": 64
  }
}
21
create
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "translate",
  "name": "RaiseHub",
  "parent_part_id": "2",
  "params": {
    "child": 2,
    "offset": {
      "x": 0,
      "y": 0,
      "z": 20
    }
  }
}
22
read
ok
1ms
args
{
  "document_id": "doc_1781225188257_1"
}
23
get_document
ok
1ms
args
{
  "document_id": "doc_1781225188257_1"
}
24
delete
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "1"
}
25
delete
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "2"
}
26
delete
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "3"
}
27
create
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "Disc",
  "params": {
    "radius": 50,
    "height": 20,
    "segments": 64
  }
}
28
create
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "cylinder",
  "name": "HubCyl",
  "params": {
    "radius": 20,
    "height": 20,
    "segments": 64
  }
}
29
create
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "translate",
  "name": "RaiseHub",
  "parent_part_id": "2",
  "params": {
    "child": 2,
    "offset": {
      "x": 0,
      "y": 0,
      "z": 20
    }
  }
}
30
create
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "type": "union",
  "name": "DiscPlusHub",
  "parent_part_id": "1",
  "params": {
    "left": 1,
    "right": 3
  }
}
31
get_document
ok
1ms
args
{
  "document_id": "doc_1781225188257_1"
}
32
delete
ok
2ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "2"
}
33
get_document
ok
1ms
args
{
  "document_id": "doc_1781225188257_1"
}
34
delete
ok
1ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "1"
}
35
delete
ok
0ms
args
{
  "document_id": "doc_1781225188257_1",
  "part_id": "3"
}
36
get_document
ok
2ms
args
{
  "document_id": "doc_1781225188257_1"
}
37
get_document
ok
1ms
args
{
  "document_id": "doc_1781225188257_1"
}

What the model built

isometric render via vcad-render · the model's actual .vcad output, faceted at 28 segments per cylinder · download 20260612T004628Z-f04a.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": "RaiseHub",
      "op": {
        "type": "Translate",
        "child": 2,
        "offset": {
          "x": 0,
          "y": 0,
          "z": 20
        }
      }
    },
    "4": {
      "id": 4,
      "name": "DiscPlusHub",
      "op": {
        "type": "Union",
        "left": 1,
        "right": 3
      }
    }
  },
  "materials": {},
  "part_materials": {},
  "roots": [
    {
      "root": 4,
      "material": "default"
    }
  ]
}

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