Recipes
Inspect
Inspect reads the model the way the repair engine will: its size, volume, whether it is watertight, how many shells it has, what the engine would recommend for a repair, plus thumbnails and a web preview.
Running it#
/v1/jobsjobs:writeinspect is the default recipe and takes no parameters: send only the file.
curl -sS "$API/v1/jobs" -H "Authorization: Bearer $PRINTY3D_API_KEY" \
-H "Content-Type: application/json" -H "Idempotency-Key: $(uuidgen)" \
-d "{\"input_file_id\": \"$FILE_ID\", \"recipe\": \"inspect\"}"The analysis#
When the job has succeeded, job.analysis holds the result (also downloadable as the analysis artifact). Lengths are in millimetres.
vertices, facesintegerSize of the imported mesh.
dimensions_mm[x, y, z]requiredThe bounding box size in millimetres.
volume_mm3numberrequired≥ 0Enclosed volume; only meaningful for a closed mesh.
surface_area_mm2numberrequired≥ 0Total surface area.
is_watertightbooleanrequiredTrue when the surface is closed, with no holes or open edges. Printers need it; a repair produces it.
shellsinteger | null≥ 0Number of separate pieces. null means the engine did not report it, not zero.
warningsstring[]Printability warnings in plain words.
recommendedRepairParams | nullThe repair parameters the engine recommends for this file, in the same names a repair takes. Send it back as params as it is, or change single fields.
recommended_by_scalemap<string, RepairParams> | nullThe same recommendation for each print size: one entry per group 1in, 2in, 3in, 4in, 5in, 7in, 10in, 15in, 20in (the model's longest side), each carrying the scale that reaches it. Offer the groups to your users and send the chosen one as a repair's params.
recommendation_assessmentRecommendationAssessment | nullHow well the recommended wall is supported by measurement at this size (for example source_below_wall_fraction, the share of the surface thinner than the wall). A prediction about the source, never a certificate of the printed result; recommendation_assessments_by_scale has one per print-size group.
fidelityFidelityReportA shape-comparison report. On an inspection it is usually not_assessed; absent or uncalibrated evidence never counts as passed.
simulatedbooleanrequiredTrue for a test-key job: the values are placeholders and the geometry was not processed. Live jobs report false.
{
"schema_version": "1",
"simulated": false,
"vertices": 48211,
"faces": 96418,
"dimensions_mm": [61.2, 148.9, 52.7],
"volume_mm3": 112840.55,
"surface_area_mm2": 40211.08,
"is_watertight": false,
"shells": 3,
"warnings": ["..."],
"recommended": {
"quality": "high",
"wall_thickness_mm": 0.7,
"clearance_mm": 1.0,
"close_holes_mm": 42.9,
"smoothing": { "post_construct": 8, "clr": 0 },
"scale": { "mode": "target", "value": 5.86, "unit": "in" }
},
"recommended_by_scale": { "1in": { "...": "..." }, "2in": { "...": "..." } }
}Thumbnails#
Every inspect job renders eight views of 512 px, the artifacts thumbnail_0 to thumbnail_7 (JPG), for galleries and order pages.
Preview#
The preview artifact is a GLB of the imported model, whatever format you uploaded, so a web viewer (three.js, model-viewer, Babylon.js) can show it. It is the model as imported, before any repair.
Then repair#
An inspection is the cheap way to decide whether a model needs a repair and at which size. A repair runs its own analysis first, so you do not need to inspect before repairing. Repair









