Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions mecheval/tasks/a5-disc-hub-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"id": "a5-disc-hub-01",
"suite": "A",
"tier": "A5",
"title": "Flanged disc with raised central hub, bore, and bolt circle",
"prompt": "Make a flanged disc with a raised hub as a single solid. The outer flange is a cylinder of diameter 100mm and height 10mm, base on the XY plane (z = 0 to z = 10), centered on the Z axis. Concentric with the flange and sitting on top of it is a raised hub cylinder of diameter 40mm and height 20mm (z = 10 to z = 30). A central through-bore of diameter 18mm runs along the Z axis through the full combined height (z = 0 to z = 30). Six bolt holes of diameter 8mm, axes parallel to Z, pass through the flange only (z = 0 to z = 10), arranged on a bolt circle of diameter 75mm (radius 37.5mm) centered on the Z axis, evenly spaced every 60 degrees with the first hole on the +X axis: positions (37.5, 0), (18.75, 32.476), (-18.75, 32.476), (-37.5, 0), (-18.75, -32.476), (18.75, -32.476). Output a single solid.",
"inputs": [],
"checks": [
{ "type": "valid_solid" },
{
"type": "bbox",
"min": [-50, -50, 0],
"max": [50, 50, 30],
"tolerance_mm": 0.2
},
{
"type": "mass_props",
"volume_mm3": 93022.56,
"center_of_mass": [0, 0, 8.23],
"tolerance_pct": 1.5
},
{
"type": "hole_count",
"diameter_mm": 18.0,
"expected": 1,
"diameter_tolerance_mm": 0.1
},
{
"type": "hole_positions",
"diameter_mm": 18.0,
"positions": [[0, 0, 0]],
"tolerance_mm": 0.2
},
{
"type": "hole_count",
"diameter_mm": 8.0,
"expected": 6,
"diameter_tolerance_mm": 0.05
},
{
"type": "hole_positions",
"diameter_mm": 8.0,
"positions": [
[37.5, 0.0, 0],
[18.75, 32.476, 0],
[-18.75, 32.476, 0],
[-37.5, 0.0, 0],
[-18.75, -32.476, 0],
[18.75, -32.476, 0]
],
"tolerance_mm": 0.3
},
{ "type": "step_roundtrip", "tolerance_pct": 1.5 }
],
"anti_cheese": {
"max_solid_count": 1
},
"limits": {
"max_tokens": 40000,
"max_wallclock_sec": 240,
"max_tool_calls": 50
},
"pass_k": 5,
"tags": ["disc", "hub", "bolt-circle", "central-bore", "flanged", "advanced"]
}
34 changes: 34 additions & 0 deletions mecheval/tasks/a5-double-d-shaft-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"id": "a5-double-d-shaft-01",
"suite": "A",
"tier": "A5",
"title": "Cylindrical shaft with two opposing flats (double-D profile)",
"prompt": "Make a double-D profile shaft as a single solid. Start with a cylinder of diameter 40mm (radius 20mm) and height 60mm, with its base on the XY plane (z = 0 to z = 60), centered on the Z axis. Mill a flat on each side by subtracting a rectangular block from the left and from the right. The left flat is at x = -14: subtract all material at x < -14 (i.e. remove the cylindrical segment from x = -20 to x = -14, running the full height z = 0 to z = 60 and the full cylinder width in Y). The right flat is at x = +14: subtract all material at x > 14. The result is a shaft with flat-to-flat width 28mm and circular arc sections of radius 20mm on the front and back (+Y and -Y sides). Output a single solid.",
"inputs": [],
"checks": [
{ "type": "valid_solid" },
{
"type": "bbox",
"min": [-14, -20, 0],
"max": [14, 20, 60],
"tolerance_mm": 0.15
},
{
"type": "mass_props",
"volume_mm3": 61214.28,
"center_of_mass": [0, 0, 30],
"tolerance_pct": 1.0
},
{ "type": "step_roundtrip", "tolerance_pct": 1.0 }
],
"anti_cheese": {
"max_solid_count": 1
},
"limits": {
"max_tokens": 40000,
"max_wallclock_sec": 240,
"max_tool_calls": 40
},
"pass_k": 5,
"tags": ["shaft", "double-d", "flat", "boolean", "machined"]
}
34 changes: 34 additions & 0 deletions mecheval/tasks/a5-hex-bolt-blank-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"id": "a5-hex-bolt-blank-01",
"suite": "A",
"tier": "A5",
"title": "Hex-head bolt blank (head + shank, no thread)",
"prompt": "Make a hex-head bolt blank as a single solid with no holes. The hexagonal head is a regular hexagonal prism with flat-to-flat distance 24mm and height 14mm, base on the XY plane (z = 0 to z = 14), centered on the Z axis, oriented so two flats are parallel to the X axis (flat-to-flat distance 24mm in the Y direction, so the head spans y in [-12, 12] and x in [-13.856, 13.856]). Directly above the head and concentric with it is a cylindrical shank of diameter 14mm and height 46mm (z = 14 to z = 60). The combined part is a single solid: hexagonal head at bottom, cylindrical shank extending upward. Output a single solid with no bores or holes.",
"inputs": [],
"checks": [
{ "type": "valid_solid" },
{
"type": "bbox",
"min": [-13.856, -12, 0],
"max": [13.856, 12, 60],
"tolerance_mm": 0.2
},
{
"type": "mass_props",
"volume_mm3": 14068.14,
"center_of_mass": [0, 0, 22.10],
"tolerance_pct": 1.5
},
{ "type": "step_roundtrip", "tolerance_pct": 1.5 }
],
"anti_cheese": {
"max_solid_count": 1
},
"limits": {
"max_tokens": 40000,
"max_wallclock_sec": 240,
"max_tool_calls": 40
},
"pass_k": 5,
"tags": ["bolt", "hex-head", "shank", "polygon", "machined"]
}
34 changes: 34 additions & 0 deletions mecheval/tasks/a5-hollow-cap-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"id": "a5-hollow-cap-01",
"suite": "A",
"tier": "A5",
"title": "Hollow cylindrical cap with 8mm base wall",
"prompt": "Make a hollow cylindrical cap (like a cup or thimble) as a single solid. The outer body is a cylinder of diameter 60mm and height 50mm, base on the XY plane (z = 0 to z = 50), centered on the Z axis. The inside of the cap is hollow: subtract a coaxial inner cylinder of diameter 50mm and height 42mm that opens from the top (z = 8 to z = 50), leaving a solid base wall 8mm thick at the bottom (z = 0 to z = 8) and a cylindrical wall 5mm thick all around. The top is open. Output a single solid.",
"inputs": [],
"checks": [
{ "type": "valid_solid" },
{
"type": "bbox",
"min": [-30, -30, 0],
"max": [30, 30, 50],
"tolerance_mm": 0.1
},
{
"type": "mass_props",
"volume_mm3": 58904.77,
"center_of_mass": [0, 0, 19.40],
"tolerance_pct": 1.0
},
{ "type": "step_roundtrip", "tolerance_pct": 1.0 }
],
"anti_cheese": {
"max_solid_count": 1
},
"limits": {
"max_tokens": 40000,
"max_wallclock_sec": 240,
"max_tool_calls": 40
},
"pass_k": 5,
"tags": ["hollow", "cap", "cup", "thin-wall", "blind-bore"]
}
65 changes: 65 additions & 0 deletions mecheval/tasks/a5-lightened-disc-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"id": "a5-lightened-disc-01",
"suite": "A",
"tier": "A5",
"title": "Disc with central bore and six lightening holes",
"prompt": "Make a lightened disc as a single solid. The outer disc is a cylinder of diameter 120mm and height 15mm, base on the XY plane (z = 0 to z = 15), centered on the Z axis. Subtract a central through-bore of diameter 22mm along the Z axis. Subtract six through-holes of diameter 16mm, axes parallel to Z, arranged on a bolt circle of diameter 76mm (radius 38mm) centered on the Z axis, evenly spaced every 60 degrees with the first hole on the +X axis: positions (38, 0), (19, 32.909), (-19, 32.909), (-38, 0), (-19, -32.909), (19, -32.909). All holes pass through the full disc height (z = 0 to z = 15). Output a single solid.",
"inputs": [],
"checks": [
{ "type": "valid_solid" },
{
"type": "bbox",
"min": [-60, -60, 0],
"max": [60, 60, 15],
"tolerance_mm": 0.2
},
{
"type": "mass_props",
"volume_mm3": 145848.66,
"center_of_mass": [0, 0, 7.5],
"tolerance_pct": 1.5
},
{
"type": "hole_count",
"diameter_mm": 22.0,
"expected": 1,
"diameter_tolerance_mm": 0.1
},
{
"type": "hole_positions",
"diameter_mm": 22.0,
"positions": [[0, 0, 0]],
"tolerance_mm": 0.2
},
{
"type": "hole_count",
"diameter_mm": 16.0,
"expected": 6,
"diameter_tolerance_mm": 0.05
},
{
"type": "hole_positions",
"diameter_mm": 16.0,
"positions": [
[38.0, 0.0, 0],
[19.0, 32.909, 0],
[-19.0, 32.909, 0],
[-38.0, 0.0, 0],
[-19.0, -32.909, 0],
[19.0, -32.909, 0]
],
"tolerance_mm": 0.3
},
{ "type": "step_roundtrip", "tolerance_pct": 1.5 }
],
"anti_cheese": {
"max_solid_count": 1
},
"limits": {
"max_tokens": 40000,
"max_wallclock_sec": 240,
"max_tool_calls": 50
},
"pass_k": 5,
"tags": ["disc", "lightening-holes", "bolt-circle", "central-bore", "advanced"]
}
51 changes: 51 additions & 0 deletions mecheval/tasks/a5-ribbed-plate-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"id": "a5-ribbed-plate-01",
"suite": "A",
"tier": "A5",
"title": "Plate with three longitudinal stiffening ribs and corner bolts",
"prompt": "Make a ribbed plate as a single solid. The top plate is 120mm × 80mm × 10mm with its bottom face at z = 10 and top face at z = 20, centered in X and Y (x in [-60, 60], y in [-40, 40]). Three stiffening ribs run along the full length of the plate (along X) on the underside: each rib is 120mm long × 8mm wide × 10mm tall (z = 0 to z = 10). Rib A is centered at y = -24: it spans x in [-60, 60], y in [-28, -20], z in [0, 10]. Rib B is centered at y = 0: it spans x in [-60, 60], y in [-4, 4], z in [0, 10]. Rib C is centered at y = 24: it spans x in [-60, 60], y in [20, 28], z in [0, 10]. Four bolt holes of diameter 8mm, axes parallel to Z, pass through the entire assembly height (z = 0 to z = 20), located at the four corners: (45, 30), (-45, 30), (-45, -30), (45, -30). Output a single solid.",
"inputs": [],
"checks": [
{ "type": "valid_solid" },
{
"type": "bbox",
"min": [-60, -40, 0],
"max": [60, 40, 20],
"tolerance_mm": 0.1
},
{
"type": "mass_props",
"volume_mm3": 120778.76,
"center_of_mass": [0, 0, 12.78],
"tolerance_pct": 1.0
},
{
"type": "hole_count",
"diameter_mm": 8.0,
"expected": 4,
"diameter_tolerance_mm": 0.05
},
{
"type": "hole_positions",
"diameter_mm": 8.0,
"positions": [
[45.0, 30.0, 0],
[-45.0, 30.0, 0],
[-45.0, -30.0, 0],
[45.0, -30.0, 0]
],
"tolerance_mm": 0.2
},
{ "type": "step_roundtrip", "tolerance_pct": 1.0 }
],
"anti_cheese": {
"max_solid_count": 1
},
"limits": {
"max_tokens": 40000,
"max_wallclock_sec": 240,
"max_tool_calls": 40
},
"pass_k": 5,
"tags": ["plate", "ribs", "stiffener", "boolean", "structural"]
}
63 changes: 63 additions & 0 deletions mecheval/tasks/a5-stepped-boss-plate-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"id": "a5-stepped-boss-plate-01",
"suite": "A",
"tier": "A5",
"title": "Rectangular plate with raised central boss and through features",
"prompt": "Make a stepped boss plate as a single solid. The base is a rectangular plate 80mm × 60mm × 10mm, centered in X and Y with its bottom face on the XY plane (x in [-40, 40], y in [-30, 30], z in [0, 10]). Centered on top of the base plate sits a rectangular boss 40mm × 30mm × 8mm (x in [-20, 20], y in [-15, 15], z in [10, 18]). A central through-bore of diameter 18mm, axis parallel to Z, passes through the entire assembly from bottom to top (z = 0 to z = 18), centered at the origin. Four corner bolt holes of diameter 6mm, axes parallel to Z, pass through the base plate only (z = 0 to z = 10), located at (28, 22), (-28, 22), (-28, -22), (28, -22). Output a single solid.",
"inputs": [],
"checks": [
{ "type": "valid_solid" },
{
"type": "bbox",
"min": [-40, -30, 0],
"max": [40, 30, 18],
"tolerance_mm": 0.1
},
{
"type": "mass_props",
"volume_mm3": 51888.59,
"center_of_mass": [0, 0, 6.31],
"tolerance_pct": 1.0
},
{
"type": "hole_count",
"diameter_mm": 18.0,
"expected": 1,
"diameter_tolerance_mm": 0.1
},
{
"type": "hole_positions",
"diameter_mm": 18.0,
"positions": [[0, 0, 0]],
"tolerance_mm": 0.2
},
{
"type": "hole_count",
"diameter_mm": 6.0,
"expected": 4,
"diameter_tolerance_mm": 0.05
},
{
"type": "hole_positions",
"diameter_mm": 6.0,
"positions": [
[28.0, 22.0, 0],
[-28.0, 22.0, 0],
[-28.0, -22.0, 0],
[28.0, -22.0, 0]
],
"tolerance_mm": 0.2
},
{ "type": "step_roundtrip", "tolerance_pct": 1.0 }
],
"anti_cheese": {
"max_solid_count": 1
},
"limits": {
"max_tokens": 40000,
"max_wallclock_sec": 240,
"max_tool_calls": 50
},
"pass_k": 5,
"tags": ["plate", "boss", "stepped", "multi-diameter", "boolean", "advanced"]
}
46 changes: 46 additions & 0 deletions mecheval/tasks/a5-u-bracket-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"id": "a5-u-bracket-01",
"suite": "A",
"tier": "A5",
"title": "U-channel bracket with mounting holes",
"prompt": "Make a U-channel bracket as a single solid. The base is a rectangular plate 100mm × 30mm × 8mm with its bottom face on the XY plane, centered in X and Y (so it spans x in [-50, 50], y in [-15, 15], z in [0, 8]). From the left end of the base, a vertical leg rises: 8mm × 30mm × 35mm, at x in [-50, -42], y in [-15, 15], z in [8, 43]. A matching vertical leg rises from the right end: 8mm × 30mm × 35mm, at x in [42, 50], y in [-15, 15], z in [8, 43]. Drill two through-holes of diameter 6mm, axes parallel to Z, through the base only (z = 0 to z = 8), centered at (-25, 0) and (25, 0). Output a single solid.",
"inputs": [],
"checks": [
{ "type": "valid_solid" },
{
"type": "bbox",
"min": [-50, -15, 0],
"max": [50, 15, 43],
"tolerance_mm": 0.1
},
{
"type": "mass_props",
"volume_mm3": 40347.61,
"center_of_mass": [0, 0, 12.95],
"tolerance_pct": 1.0
},
{
"type": "hole_count",
"diameter_mm": 6.0,
"expected": 2,
"diameter_tolerance_mm": 0.05
},
{
"type": "hole_positions",
"diameter_mm": 6.0,
"positions": [[-25.0, 0.0, 0], [25.0, 0.0, 0]],
"tolerance_mm": 0.2
},
{ "type": "step_roundtrip", "tolerance_pct": 1.0 }
],
"anti_cheese": {
"max_solid_count": 1
},
"limits": {
"max_tokens": 40000,
"max_wallclock_sec": 240,
"max_tool_calls": 40
},
"pass_k": 5,
"tags": ["u-bracket", "channel", "legs", "boolean", "mounting-holes"]
}
Loading