CtrlK
BlogDocsLog inGet started
Tessl Logo

aopab/jscad-codegen

Generate, validate, and render JSCAD v2 CAD scripts from natural language prompts

94

1.64x
Quality

94%

Does it follow best practices?

Impact

97%

1.64x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-2/

{
  "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
    }
  ]
}

evals

tile.json