Creative Lab — Make a Product (end-to-end)
meshy_creative_labGenerate a finished 3D product model from a photo—figures, keychains, lamps, keycaps, or fidgets—by running concept and build stages in one call.
Instructions
Turn a photo (file_path or image_url; no text prompt) into a finished Creative Lab product 3D model, end to end.
Products and cost — confirm before calling:
figure (chibi), vinyl-figure, brick-figure, keychain, fridge-magnet, fidget-pixel (pixel-art board of interlocking pieces) → 36 credits (6 + 30)
lamp (3D-printable lampshade with base plate) → 36 (30 + 6)
keycap (Cherry MX 1u) → 62 (12 + 50)
fidget-collapsible (nested-ring fidget from the photo's outline) → 6, one stage
Most products run a concept prototype, then a 3D build. One call runs both, blocks while they run (typically 2–5 minutes, with progress) and returns only the final model; the concept image is internal and never shown. If the prototype does not succeed, the build is NOT started: a FAILED stage is refunded; one still running when the wait ends keeps running and is charged.
Outputs: GLB (or output_format) for figures, keychain and fridge-magnet; lamp_stl (+ base_stl with a fixture preset); keycap a model; fidget-pixel a 3MF with one object per piece; fidget-collapsible STL + GLB. Download with meshy_download_model and the task_type this tool reports; omit format to save every part. To multicolor-print it, pass its GLB URL (or a GLB data URI) to meshy_process_multicolor as model_url; its task id is not accepted there.
Examples:
{ product: "keychain", file_path: "/Users/me/dog.jpg", name_text: "Biscuit", build_options: { badge_shape: "star" } }
{ product: "fidget-pixel", file_path: "/Users/me/cat.jpg", pixel_subject: "other", build_options: { grid_size: 16 } }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Display name for the task; not engraved (see name_text). | |
| product | Yes | The product (see the tool description for costs). | |
| file_path | No | Absolute path to a local photo; the server encodes it. | |
| image_url | No | Public URL or data URI of the photo (.jpg/.jpeg/.png/.webp). For local files use file_path. | |
| name_text | No | Keychain only: text to engrave, ≤10 characters (CJK count one each). | |
| base_model | No | Keycap only: base profile (Cherry MX 1u). | |
| head_size_mm | No | Keycap only: the head's LONGEST edge in mm (default 23), not its height. | |
| build_options | No | Build options (the API checks ranges). Keychain / fridge-magnet: badge_shape (circle|rounded-rect|hexagon|shield|star), size_mm, relief_height_mm, relief_offset_mm, base_thickness_mm, has_closed_back, relief_curve (linear|gamma|s-curve), curve_param, invert_depth, smoothing, relief_scale, depth_threshold, remove_background, export_resolution. Lamp: diameter_mm (50–400), thickness_mm, cut_amount_percent, light_source_preset (bambu_mh001_60mm|none), fixture_offset_x_mm, fixture_offset_z_mm, rotate_x_deg, rotate_y_deg, rotate_z_deg, include_result_json. Fidget pixel: shape (square|hex), grid_size (16|32), piece_size_mm (6|8|10; hex 6|8), color_count (1–8), piece_height_mm (10–80). Other products take none. | |
| image_subject | No | Lamp only: what the photo shows. | |
| output_format | No | Keychain / fridge-magnet: glb (default), obj (zip of OBJ + MTL + texture) or zip (everything). Lamp: stl (default) or zip. Fidget pixel: 3mf. Others: none. | |
| pixel_subject | No | fidget-pixel only, REQUIRED: 'person' → chibi pixel sprite; 'other' (pets, objects, logos, landscapes) → bead-art icon. | |
| response_format | No | markdown (default) or json | markdown |
| timeout_seconds | No | Max wait per stage in seconds; a longer stage keeps running (check it with meshy_get_task_status). | |
| vertical_offset_mm | No | Keycap only: raise (+) or lower (-) the head on the base, in mm (default 0). |