Guide · parametric CAD API Python

Parametric STEP/STL CAD API — programmatic, not diffusion (beta)

A CAD generator that outputs parametric STEP and STL via build123d (Python). Manufacturing-grade geometry with DFM checks. Currently in private beta.

AI 3D tools optimise for art: render quality, mesh smoothness, visual appeal. Beautiful in a portfolio shot, useless on a CNC mill or in injection molding. The mesh is not the part you can actually make.

This API takes a different approach: it generates CAD parametrically using build123d (Python) — not by diffusion. Output is STEP (B-rep) or STL with a Design-for-Manufacturing report attached: wall thickness, draft angle, overhang, tolerance ranges per machining process. Closer to a CAD assistant for engineers than a 3D art generator. Currently in private beta — request access via support.

Step by step

  1. 01

    Describe the part with manufacturing intent

    Mention the manufacturing process (CNC milling, injection molding, FDM print), the material (aluminium 6061, ABS, PLA), and any constraints (M3 through-hole at 30mm centres, 2mm minimum wall). The actor uses these to choose appropriate primitive operations and DFM rules.

  2. 02

    Receive STEP plus DFM report

    Output is a STEP file (B-rep, opens cleanly in Fusion 360, SolidWorks, FreeCAD) plus a DFM JSON report listing wall thickness checks, draft angle pass/fail, and any flagged overhangs. STL is also available as a sister output for direct printing.

  3. 03

    Iterate via parameters

    Because the part is parametric, the API returns the build123d Python source alongside the STEP. Tweak a dimension in the source, re-run, get a new variant — without re-prompting the LLM. Useful for design exploration sweeps.

Example prompts

Copy, click, tweak — the CTA opens the terminal with the prompt pre-loaded.

Functional bracket Bracket to mount a GoPro under a desk lip. 40mm wide, 4mm thick, two M3 through-holes 30mm apart. Material: PLA, FDM print, no supports. Try →
Enclosure Enclosure for a Raspberry Pi 5: 90×60×30mm internal cavity, 2mm wall, slot cut-out for HDMI and USB-C, mounting bosses for M2.5 screws at corners. Material: ABS, FDM. Try →
Jig for assembly Drilling jig for hinges on a 18mm shelf. Two pilot holes 32mm apart, 25mm from edge. Material: aluminium 6061, CNC milled. Add 1mm draft on side walls. Try →

API call

Standard REST. Bearer token, JSON body, URL response. Works in any HTTP client, n8n, Make, Zapier, or MCP agent.

curl -X POST https://api.42rows.com/v1/cad-creative \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "GoPro under-desk bracket, 40mm wide, two M3 holes 30mm apart, PLA",
    "format": "step",
    "manufacturing_process": "fdm"
  }'

Pricing

Private beta — pricing not finalised. Request access at info@salesmart.it for early-access terms.

FAQ

Why parametric and not diffusion-based?

Diffusion 3D models produce art-quality meshes — beautiful but with non-manifold edges and unsupported geometry. Parametric CAD via build123d produces clean B-rep that survives a CAM pipeline. For functional parts, B-rep is non-negotiable.

What manufacturing processes does the DFM report cover?

CNC milling (3-axis, undercut detection), injection molding (draft angle, wall thickness), FDM printing (overhang angle, support placement). SLS and CNC turning are roadmap.

Can I edit the generated CAD?

Yes — STEP files open in Fusion 360, SolidWorks, FreeCAD, OnShape. The Python source (build123d) is also returned; edit a dimension and re-run for a parametric variant without re-prompting.

How does this compare to Zoo.dev or other AI CAD tools?

Zoo.dev focuses on a conversational chat interface with a CAD-trained LLM. Our endpoint is API-callable and procedural — different audience (programmatic batch users vs. interactive engineers). Both output STEP.

Why beta and not GA?

The library of build123d primitives covers brackets, enclosures, jigs, fixtures, simple housings. It does not yet handle free-form organic shapes (sweeps, lofts on complex profiles) reliably. We are widening that during beta.

Ship it

Use the first example prompt as a starter — the button opens the public terminal with it pre-filled.