Generate, validate, and render JSCAD v2 CAD scripts from natural language prompts
94
94%
Does it follow best practices?
Impact
97%
1.64xAverage score across 3 eval scenarios
Passed
No known issues
{
"context": "Tests whether the agent follows the revolve-profile construction rules: building a symmetric body by defining a 2D polygon profile and using extrudeRotate, expressing all dimensions as proportional ratios of a master TOTAL_H constant, and using correct segment counts.",
"type": "weighted_checklist",
"checklist": [
{
"name": "extrudeRotate for body",
"description": "The thermos body is generated using extrudeRotate (or extrusions.extrudeRotate) with a 2D polygon profile — not as a union/subtract of cylinders or cuboids",
"max_score": 15
},
{
"name": "polygon profile points",
"description": "The profile is constructed as primitives.polygon({ points: [...] }) with an array of [radius, height] (or [r, z]) coordinate pairs",
"max_score": 12
},
{
"name": "Profile base at zero",
"description": "The first profile point has a height/z coordinate of 0 (profile starts at the base plane)",
"max_score": 8
},
{
"name": "All profile X non-negative",
"description": "Every radius value in the profile point array is >= 0 — no negative radius values appear",
"max_score": 8
},
{
"name": "TOTAL_H master constant",
"description": "A single master height constant (e.g. TOTAL_H, totalHeight) is declared, and all other vertical/radial dimensions are derived from it via multiplication",
"max_score": 12
},
{
"name": "Proportional ratios",
"description": "Dimensions such as body height, neck radius, lid height are expressed as TOTAL_H * <ratio> or similar — not as standalone absolute numbers",
"max_score": 12
},
{
"name": "segments: 64",
"description": "The extrudeRotate call includes segments: 64 (not 32, 16, or absent)",
"max_score": 10
},
{
"name": "No imports or require",
"description": "The script contains no import or require statements — uses injected scope names directly",
"max_score": 8
},
{
"name": "main(params = {}) signature",
"description": "Entry function is main(params = {}) with a default empty object parameter",
"max_score": 8
},
{
"name": "Returns geometry",
"description": "main() returns a geometry value (not undefined, not a string) — either a single shape or an array of shapes",
"max_score": 7
}
]
}