Check 3D-print printability (DFM)
check_printabilityAnalyzes a 3D model for printability: checks watertightness, wall thickness, overhangs, and bed fit. Free geometry preview; paid full DFM report adds exact support and infill estimates.
Instructions
3D printing DFM / design-for-manufacturability & printability check for an STL/3MF/OBJ model. Default (full=false) is FREE: a geometry-only preview — printable verdict (yes / with-warnings / no), watertight/manifold check, dimensions & volume, fits-on-bed, a wall-thickness estimate vs the 0.4mm nozzle, and an overhang/support heuristic. No payment needed. Set full=true for the PAID full DFM report ($0.01 USDC on Base, x402): everything above PLUS EXACT support-material grams/time and infill material-saving deltas from REAL OrcaSlicer slices, every field labelled exact vs heuristic. Without payment the paid mode returns the x402 challenge (price + how to pay); pass x_payment to settle. Great before quoting or slicing to catch thin walls, non-watertight meshes, and support-heavy geometry.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | false (default) = FREE geometry-only preview via /agent/v1/dfm-preview. true = PAID full DFM report ($0.01) with exact slice-derived support & material deltas via /agent/v1/dfm (returns x402 challenge unless x_payment is supplied). | |
| printer | No | 3D printer id from list_printers (elegoo-neptune4-max, bambu-a1, bambu-a1-mini, bambu-p1s, bambu-x1c, prusa-mk4, prusa-mini, ender3-v3, creality-k1, creality-k1-max, voron-24-350, anycubic-kobra2). Default elegoo-neptune4-max. | |
| quality | No | Print quality preset: draft 0.28mm | standard 0.20mm | fine 0.12mm layer height. | |
| filename | No | File name incl. extension, e.g. 'bracket.stl'. Sets the file type; required with model_base64. | |
| material | No | Filament/material id (pla, pla-cf, petg, petg-cf, abs, abs-cf, asa, asa-cf, nylon, pc, pet, tpu). Default pla. | |
| model_url | No | Public https URL to the 3D model file (STL, 3MF, OBJ, PLY, or STEP). The server fetches it. Use this OR model_base64. | |
| x_payment | No | x402 payment payload (base64) for a PAID tool. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first. | |
| layer_height | No | Explicit layer height in mm (0.04-0.6); overrides `quality` if both are given. | |
| model_base64 | No | Base64-encoded model file bytes (STL/3MF/OBJ/PLY/STEP), an alternative to model_url for inline data. Provide `filename` too. | |
| infill_percent | No | Sparse infill density percent (0-100). Used for the material-saving delta in a full DFM report. |