← mecheval / run / a4-flanged-shaft-01 / claude-direct-claude-opus-4-7 / 20260429T120248Z-8807
run 20260429T120248Z-8807
Summary
| status | PASS |
| score | 1.00 (8/8) |
| submission | self-run |
| model | claude-direct-claude-opus-4-7 (anthropic) |
| started | 2026-04-29T12:02:48.911Z |
| ended | 2026-04-29T12:02:59.845Z |
| tokens | 1,052 in · 971 out · 2,023 total |
| wallclock | 9.9s |
| tool calls | 1 |
| task hash | 70d8d5eb7fc1d941… |
| vcad hash | f9066484adb8e1d4… |
Prompt
Make a flanged hollow shaft as a single solid. The base is a circular flange of outer diameter 80mm and thickness 10mm, with its bottom face on the XY plane (z = 0 to z = 10). Above the flange and concentric with it sits a cylindrical shaft of outer diameter 30mm extending 50mm upward (z = 10 to z = 60). A central through-bore of diameter 15mm runs along the Z axis through both the flange and the shaft (z = 0 to z = 60). The flange has four bolt holes of diameter 6mm, axes parallel to Z, on a bolt circle of diameter 60mm (radius 30mm) centered on the Z axis. The first bolt hole is on the +X axis; the others are spaced every 90 degrees. The bolt holes pass through the full flange thickness. Output a single solid.
Checks
0
valid_solidpass
params + details
params: {
"type": "valid_solid"
}
details: {
"root_count": 1,
"solids_produced": 1
}
1
bboxpass
params + details
params: {
"type": "bbox",
"min": [
-40,
-40,
0
],
"max": [
40,
40,
60
],
"tolerance_mm": 0.2
}
details: {
"actual_max": [
40,
40,
60
],
"actual_min": [
-40,
-40,
0
],
"deviation_max": [
0,
0,
0
],
"deviation_min": [
0,
0,
0
],
"max_abs_deviation_mm": 0,
"tolerance_mm": 0.2
}
2
mass_propspass
params + details
params: {
"type": "mass_props",
"volume_mm3": 73874.55,
"tolerance_pct": 1.5
}
details: {
"volume": {
"actual_mm3": 73755.938106028,
"deviation_pct": 0.16055853331357497,
"pass": true,
"spec_mm3": 73874.55,
"tolerance_pct": 1.5
}
}
3
hole_countpass
params + details
params: {
"type": "hole_count",
"diameter_mm": 15,
"expected": 1,
"diameter_tolerance_mm": 0.1
}
details: {
"actual": 1,
"diameter_mm": 15,
"diameter_tolerance_mm": 0.1,
"expected": 1,
"found": [
[
0,
0,
15
]
]
}
4
hole_positionspass
params + details
params: {
"type": "hole_positions",
"diameter_mm": 15,
"positions": [
[
0,
0,
0
]
],
"tolerance_mm": 0.2
}
details: {
"diameter_mm": 15,
"per_expected": [
{
"distance_mm": 0,
"matched_hole": [
0,
0
],
"pass": true,
"spec_xy": [
0,
0
]
}
],
"tolerance_mm": 0.2,
"unmatched_extras": []
}
5
hole_countpass
params + details
params: {
"type": "hole_count",
"diameter_mm": 6,
"expected": 4,
"diameter_tolerance_mm": 0.05
}
details: {
"actual": 4,
"diameter_mm": 6,
"diameter_tolerance_mm": 0.05,
"expected": 4,
"found": [
[
30,
0,
6
],
[
0,
30,
6
],
[
-30,
0,
6
],
[
0,
-30,
6
]
]
}
6
hole_positionspass
params + details
params: {
"type": "hole_positions",
"diameter_mm": 6,
"positions": [
[
30,
0,
0
],
[
0,
30,
0
],
[
-30,
0,
0
],
[
0,
-30,
0
]
],
"tolerance_mm": 0.2
}
details: {
"diameter_mm": 6,
"per_expected": [
{
"distance_mm": 0,
"matched_hole": [
30,
0
],
"pass": true,
"spec_xy": [
30,
0
]
},
{
"distance_mm": 0,
"matched_hole": [
0,
30
],
"pass": true,
"spec_xy": [
0,
30
]
},
{
"distance_mm": 0,
"matched_hole": [
-30,
0
],
"pass": true,
"spec_xy": [
-30,
0
]
},
{
"distance_mm": 0,
"matched_hole": [
0,
-30
],
"pass": true,
"spec_xy": [
0,
-30
]
}
],
"tolerance_mm": 0.2,
"unmatched_extras": []
}
7
step_roundtrippass
params + details
params: {
"type": "step_roundtrip",
"tolerance_pct": 1.5
}
details: {
"per_solid": [
{
"bbox": {
"max_abs_deviation_mm": 0,
"original_max": [
40,
40,
60
],
"original_min": [
-40,
-40,
0
],
"pass": true,
"roundtripped_max": [
40,
40,
60
],
"roundtripped_min": [
-40,
-40,
0
],
"tolerance_mm": 1.9209372712298545
},
"index": 0,
"pass": true,
"volume": {
"deviation_pct": 0.5223793989542345,
"original_mm3": 73755.93810602801,
"pass": true,
"roundtripped_mm3": 73370.65227985669
}
}
],
"tolerance_pct": 1.5
}
Tool calls
0
anthropic.messages.createok
9901ms
args
{
"model": "claude-opus-4-7",
"max_tokens": 8000,
"system_chars": 1674,
"user_chars": 783
}What the model built
isometric render via vcad-render · the model's actual .vcad output, faceted at 28 segments per cylinder · download 20260429T120248Z-8807.vcad
.vcad source
{
"version": "0.1",
"nodes": {
"1": {"id": 1, "name": "flange", "op": {"type": "Cylinder", "radius": 40, "height": 10, "segments": 64}},
"2": {"id": 2, "name": "shaft_raw", "op": {"type": "Cylinder", "radius": 15, "height": 50, "segments": 64}},
"3": {"id": 3, "name": "shaft", "op": {"type": "Translate", "child": 2, "offset": {"x": 0, "y": 0, "z": 10}}},
"4": {"id": 4, "name": "body", "op": {"type": "Union", "left": 1, "right": 3}},
"5": {"id": 5, "name": "bore_raw", "op": {"type": "Cylinder", "radius": 7.5, "height": 60.2, "segments": 64}},
"6": {"id": 6, "name": "bore", "op": {"type": "Translate", "child": 5, "offset": {"x": 0, "y": 0, "z": -0.1}}},
"7": {"id": 7, "name": "body_bored", "op": {"type": "Difference", "left": 4, "right": 6}},
"8": {"id": 8, "name": "bolt_raw", "op": {"type": "Cylinder", "radius": 3, "height": 10.2, "segments": 32}},
"9": {"id": 9, "name": "bolt_px", "op": {"type": "Translate", "child": 8, "offset": {"x": 30, "y": 0, "z": -0.1}}},
"10": {"id": 10, "name": "bolt_py", "op": {"type": "Translate", "child": 8, "offset": {"x": 0, "y": 30, "z": -0.1}}},
"11": {"id": 11, "name": "bolt_nx", "op": {"type": "Translate", "child": 8, "offset": {"x": -30, "y": 0, "z": -0.1}}},
"12": {"id": 12, "name": "bolt_ny", "op": {"type": "Translate", "child": 8, "offset": {"x": 0, "y": -30, "z": -0.1}}},
"13": {"id": 13, "name": "bolts_a", "op": {"type": "Union", "left": 9, "right": 10}},
"14": {"id": 14, "name": "bolts_b", "op": {"type": "Union", "left": 11, "right": 12}},
"15": {"id": 15, "name": "bolts", "op": {"type": "Union", "left": 13, "right": 14}},
"16": {"id": 16, "name": "final", "op": {"type": "Difference", "left": 7, "right": 15}}
},
"materials": {},
"part_materials": {},
"roots": [{"root": 16, "material": "default"}]
}