---
title: "Idea → Printable Part — a described part becomes a slicer-ready STL + CAD-interchange STEP"
tier: hero
format: 3d-asset
theme: cad | product | hardware | 3d-printing | maker
persona: product designer, maker, hardware engineer, industrial designer
duration: "1 prompt → a printable STL (+ STEP/GLB) in ~2–6 min"
budget_usd: "$0.05–$0.40 per part (OpenSCAD render + printability gate; convert is pennies)"
caps: ["cad-render", "cad-validate", "format-convert"]
verbs: ["create_cad_model", "refine_cad_model", "export_stl", "convert", "handoff"]
skills: ["cad-pipeline"]
showcases: ["/chapters/idea-to-printable-part-example.html"]
status: "pilot (2026-06-19) — create_cad_model/refine_cad_model/export_stl are live; convert to STEP/GLB is flag-gated (PRO_PIPELINE_ENABLED) + needs format-convert deployed on BYOC."
requires: "PRO_PIPELINE_ENABLED + format-convert cap on BYOC for the STEP/GLB convert steps. STL path works today."
reliability: 4.3 # OpenSCAD render deterministic, printability gate deterministic; −0.4 STEP is tessellated-shell (not parametric) + format-convert not yet deployed; −0.3 LLM SCAD authoring can need a refine pass
---

# Idea → Printable Part

Describe a part. Get a **manifold, slicer-ready STL** that passes a real
printability gate — plus a CAD-interchange STEP and a web preview GLB. The
honest path: OpenSCAD authors clean printable geometry; STEP from it is a
tessellated shell for handing geometry to a CAD tool (not editable parametrics).

## What you'll get

> **A finished part = a watertight/manifold STL that passes the printability
> gate (bed-fit, min-wall, positive volume) + an optional tessellated STEP for
> CAD interchange + a GLB preview.** Exact dimensions in mm, restated before
> render. Not a pretty mesh that fails in the slicer.

## The verb chain

```
prompt ("wall bracket, 80×40×5mm, four M4 holes, 2mm fillet")
  → create_cad_model           # OpenSCAD → manifold STL + 4-view PNG + printability report
  → refine_cad_model "<change>" # e.g. "+2mm thickness, chamfer the top edge" (chain as needed)
  → export_stl                 # re-validate slicer-readiness; stable STL url
  → convert --source-url <stl_url> to="step"   # tessellated-shell STEP (WARNS: not parametric)
  → convert --source-url <stl_url> to="glb"    # web/AR preview
  → hand over the STL / STEP / GLB urls (or handoff to="freecad")
```

## How the agent should run this (interaction contract)

1. **CONFIRM + RESTATE DIMENSIONS (≤1 question):** echo the exact dims in mm and
   the feature list ("80×40×5mm bracket, 4× M4 through-holes on a 60×20 pattern,
   2mm fillets"). A wrong dimension is worse than a wrong image — confirm numbers
   before rendering.
2. **RENDER + GATE:** run `create_cad_model`; show the 4-view PNG + the
   printability report. If it FAILS (not watertight / wall too thin), say so and
   propose a `refine_cad_model` fix — never ship an unprintable STL.
3. **REFINE:** chain `refine_cad_model` for each change; re-gate each time.
4. **EXPORT:** `export_stl` for the slicer; offer `convert to="step"` for CAD
   interchange (state the tessellated-shell caveat) and `convert to="glb"` for a
   shareable preview.

## STOP gates

- **STOP 1 — spec:** "These dims right? 80×40×5mm, 4× M4, 2mm fillet. (y / fix)"
- **STOP 2 — gate:** show the report. "Printable ✓ — export? Or change anything?"
- **STOP 3 — formats:** "STL for printing; STEP for CAD (tessellated shell, not
  parametric); GLB for preview. Which do you want?"

## Notes / honesty

- The authoring path is **OpenSCAD (mesh)**. STL is the lossless deliverable.
- `convert to="step"` is a **tessellated-shell** STEP — valid for CAD-tool
  geometry import, **not** an editable parametric solid. The spine stamps this
  warning; surface it. True parametric STEP → FreeCAD/OCC cap (fast-follow).
- The printability gate (cad-validate) is the reason this beats raw AI mesh:
  tripo-i3d output usually fails watertight/manifold. Code-CAD is manufacture-ready.
- This is the **Product/CAD** beachhead of the pro-tool spine. Game assets →
  see `concept-to-game-asset`.
