AI & IT toolsAI Workflow

3D Printing from One Picture with Meshy AI and Claude Code: Printing a Fighter Jet Model and a Character

The real workflow for turning one reference picture into a 3D model with Meshy AI, checking and repairing it with Claude Code and Blender, and printing it on a 3D printer.

AZTechnology24 min read

한국어English

This post contains affiliate links. If you buy through these links, AZTechnology earns a commission from the seller. Signing up and paying for a plan also counts as a purchase. (Affiliate and content policy)

Based on: the Meshy web interface (Meshy 7.1), the official Meshy API and MCP docs, the official Claude Code docs, and Blender 5.2, checked in October 2026. Prints were made in a single color on a Bambu Lab H2C.

Two fighter jet models and one small 3D character printed in white, on a gray stone-pattern table The printed fighter jet models and the 3D character. The two in front are the jet models, the one behind is the 3D character (photo of the real prints). The jets are the same file printed once, then printed again with the model laid on the build plate in a different direction (lying flat and standing up).

Having a 3D printer does nothing for you if you have no model to print. Making a model yourself means learning a 3D program first. This guide is a record of skipping that step. I put one reference picture into Meshy AI(affiliate link) to make a 3D model, handed checking and repair to Claude Code, and got files ready for the printer. The jet models and the 3D character in the photo above came out that way, and both printed well.

It is not a one-button job, though. The models Meshy made had holes that made them hard to print as they were, and thin areas such as the wings needed a separate look. This guide goes through the order step by step, including which parts are automatic and where a person has to check.

By the end of this guide you will be able to:

  1. Know what makes a reference picture suitable for 3D printing.
  2. Make an untextured 3D model from one picture in Meshy.
  3. Connect Meshy to Claude Code and ask it in plain words to generate, download, and check.
  4. Fill a model's holes in Blender, scale it in mm, and make 3MF and STL files.
  5. Read the check numbers and choose slicer settings (supports, brim, walls).

1. The whole flow at a glance

There are seven steps. Meshy turns the picture into 3D; Claude Code does the rest of the checking, repair, and tidying by driving Blender. A person looks at the picture and the results along the way and only decides "continue" or "redo".

StepWhat happensWhoCredits
1Prepare a reference pictureYou (or an image generation AI)0
2Check the pictureYou0
3Picture → 3D modelMeshy20
4Import into Blender, scale, previewClaude Code0
5Printability checkMeshy (free check) + Claude Code0
6Repair and make 3MF and STLClaude Code + Blender0
7Write print notes from the check numbersClaude Code0

With Meshy alone, the model with holes stays as it is; with Claude Code alone, there is no model to fix. That is why you use both.

2. What you need

ItemUseNotes
Meshy accountPicture → 3D modelThe free plan gives 100 credits a month. The API and MCP that connect to Claude Code start from the Pro plan (section 5)
Claude CodeGeneration requests, checks, running Blender, writing notesInstall: Installing Claude Code for the first time
BlenderChecking, repairing, exporting the modelFree. Install: Blender for beginners, part 1
3D printer and slicerThe actual printThis guide uses a Bambu Lab H2C and Bambu Studio
One reference pictureThe source to turn into 3DWhite background, one object
Node.jsThe npx install command in section 5Needed to use the npx command. Install from the official site (nodejs.org)

Meshy(affiliate link) is a web service that makes 3D models from text or pictures. When you log in, you see a home screen like the one below.

The Meshy home screen. Buttons for quick generation and agent mode at the top, a box for uploading a photo or sketch in the middle, and options for high detail and Meshy 7.1 - Flagship below The Meshy home screen. Drag a picture into the middle box, choose the model (Meshy 7.1) below, then click generate (Meshy screenshot, labels in Korean)

Follow along: After signing up for Meshy, check on the home screen that the quick generation option is selected. The box in the middle that asks you to upload a photo or sketch is where the picture goes. The menu on the left also has a Print item. If you only want to try it on the web, you can upload the picture from section 3 on this screen and test right away. (The screenshot shows Meshy's Korean interface; the English labels on your screen may be worded differently.)

Claude Code is an AI work assistant made by Anthropic. You give it tasks in plain words in a terminal (a window of text), and it reads files and runs programs. The way Meshy is plugged into it is MCP (Model Context Protocol). MCP is like a power strip for plugging tools into an AI. Once the Meshy plug is in the strip, Claude Code can directly call "make 3D from a picture", "check task status", "download a file", and "check printability".

3. Making a reference picture: what prints well

Meshy copies the shape it sees in the picture. So if the picture contains a shape the printer can't print, the 3D model will have a shape it can't print too. Pictures that followed these rules gave good results.

  • White background, no shadow, one object only.
  • A 3/4 angle, turned slightly from the front, so the front and side are both visible.
  • Antennas, rods, and thin props sticking out of the body are removed or attached to the body.
  • Thin areas such as wingtips and tail tips are drawn a little thicker.
  • For a character, draw the hair as solid masses and the feet wide and flat.
  • If you print in one color, draw the eyes and mouth as carved, raised shapes, not colors. Eyes drawn only in color disappear from the 3D model.

Left: a reference picture of a gray fighter jet model seen from the front left, above. Right: a preview of the 3D model Meshy made, seen from the front left, below. The belly sits lower than the wings ① The reference picture (AI-generated image, input for the 3D conversion) ② A Blender preview of the 3D model Meshy made, seen from the front left, below. Even the underside, which the picture doesn't show, was created (Blender render)

Follow along: I made the jet model picture by ordering it from an image generation AI in English. The main points of the prompt were: "a realistic-proportion stealth fighter model, landing gear retracted, wing and tail edges slightly thicker, no antennas, missiles, or pilot, no markings, text, or numbers, matte gray plastic, 3/4 view from the front left, above, pure white background, no shadow." At first it came out as a cute, squashed chibi shape, so I asked for it to look "more like the real aircraft" and used the second picture (picture ①).

Words in the prompt such as "thicker", "attached", and "no" reduce the repair work later.

4. Making a 3D model with Meshy

Use Meshy's Image to 3D feature (picture → 3D). It works in the web interface, or you can ask Claude Code to do it. Either way, the values to set are the same.

SettingValue chosenWhy
ModelMeshy 7 (7.1 in the current interface and API docs)The work in this guide was done with Meshy 7. The official docs say to use 7.1 in place of 7
Texture (color)OffPrinting in one color needs no color data. It also uses fewer credits
RemeshOn, trianglesPrinter files (STL) are saved as triangles anyway
Triangle count200,000Explained below
FormatsGLB, STL, 3MFGLB is downloaded and repaired in Blender. STL and 3MF are a backup for when you want to open the unrepaired shape in the slicer right away. 3MF is only made if you choose it

Why 200,000 triangles: The surface of a 3D model is many small triangles joined together. More pieces make curves smoother but make the file bigger. When printing 80 mm with a 0.4 mm nozzle, bumps smaller than 0.2 mm won't show in the print anyway. 200,000 holds all the detail that will show in the print, and the STL file is around 10 MB, which is easy to handle. According to the official docs, this value can be set from 100 to 300,000.

Follow along: In Claude Code, ask in plain words like this.

Run Meshy image-to-3d with the reference picture jet.png.
No texture, 200000 triangles, formats glb, stl, 3mf. Tell me how many credits it costs first.

Claude Code calls the Meshy MCP "make 3D from a picture" tool, gets a task number, checks the status until it finishes, and downloads the GLB file into the folder. The real job took 20 credits and about 90 seconds. The official price list also says 20 credits for an untextured model and 30 credits with texture.

The result is picture ② above. Even the belly and engines, which the picture didn't show, were made convincingly. However, the belly came out lower than the wings, and this later increased the amount of support material.

5. Connecting Meshy to Claude Code

You can make 3D models with the web interface alone. The reason to add Claude Code is to hand off the repeated work after generation (downloading, checking, running Blender, collecting numbers) in one go.

Before you start: On Meshy's pricing page, the API and "MCP & Skill for AI Agent" are listed under the Pro plan, and the free plan does not list the API. According to Meshy's docs, tasks called through MCP use credits at the same rate as tasks called through the API. You can compare plans on the Meshy(affiliate link) pricing page.

Follow along:

  1. Create an API key on the API Keys page of Meshy's Developer Platform. An API key is a secret string that tells Meshy a request comes from your account. Keep it out of sight of others. A key typed on the command line stays in the terminal history, so if you share the computer, clear the history after installing.
  2. In a terminal, run the install command from Meshy's official docs. Put the key from step 1 in place of msy_YOUR_API_KEY.
npx add-mcp @meshy-ai/meshy-mcp-server --env MESHY_API_KEY=msy_YOUR_API_KEY
  1. This command finds the AI tools installed on your computer and sets up Meshy for them. If you want to add it directly with Claude Code's own command, use the form claude mcp add --env MESHY_API_KEY=msy_YOUR_API_KEY --transport stdio meshy -- npx -y @meshy-ai/meshy-mcp-server (the part after -- is the command that starts the server).
  2. Start Claude Code and type /mcp. If meshy shows as connected in the list, you're done.
  3. Ask, "How many Meshy credits do I have left?" If it shows your remaining credits, the connection works.

Once connected, these are the Meshy tools Claude Code can call that matter for 3D printing.

What the tool doesCredits
Make 3D from a picture20 (no texture)
Check task status, download a model0
Printability check (holes, non-manifold, volume)0
Printability repair10
Find and open an installed slicer0 (works only on your own computer)
Check remaining credits0

6. Printability check: Meshy models leak as they are

A 3D printer needs a watertight model, closed tight inside and out, to tell the inside from the outside and fill it. Just as a balloon with one pinhole loses its air, a hole in the surface makes the slicer calculate the inside wrongly.

First, three terms that come up together.

  • An open edge is an edge with a face on only one side. The rim of a hole is made of these.
  • A non-manifold edge is an edge shared by three or more faces. You can't decide which side is inside and which is outside.
  • A degenerate face is a squashed triangle with almost zero area.

Follow along: Ask Claude Code, "Check the model you just made with Meshy's printability check." For the Blender side, ask it to first run the script made from the instructions in section 7 without repair (scaling and preview only). The results were:

CheckJet model3D character
Meshy printability checkWatertight: no. 2 holes, 90 non-manifold edges, 59,096 degenerate facesWatertight: no. 8 holes, 305 non-manifold edges, 27,185 degenerate faces
Blender check (after merging overlapping vertices)60 open edges, 26 non-manifold, 1 piece200 open edges, 99 non-manifold, 2 pieces

Neither model passed as a print file as it was. So don't skip the repair in the next step.

How to choose the size: Meshy models have no mm units. Size standing objects such as characters by height, and flat objects such as planes and cars by longest side. I learned this difference while working on the jet. So make sure the instructions in section 7 say to size flat objects by their longest side. I set the character to 80 mm tall and the jet to 120 mm long.

7. Repairing and making 3MF and STL

Repair happens in Blender. Claude Code starts Blender with no window and runs a script (a small program that moves Blender through set steps). The order is:

  1. Delete squashed triangles and loose vertices.
  2. Fill open holes. If that works, you're done.
  3. If open areas still remain, rebuild the surface with a voxel remesh.
  4. Reduce the triangles added by the remesh back to 200,000.
  5. Delete small pieces separated from the main body.
  6. Cut 0.3 mm off the bottom to make it flat, and save as 3MF and STL.

A voxel remesh rebuilds the model out of tiny cubes (voxels) and then wraps a new skin around the outside. Instead of darning a sock with holes, it is like knitting a new sock on the same form. I used a block size of 0.12 mm. It is smaller than the line width the printer can draw, so the shape change doesn't show in the print. Since this happens inside Blender, it costs no credits. I decided to use Meshy's paid repair (10 credits) only if the Blender repair ruined the shape, and I didn't use it this time.

You don't have this script yet. The first time, give Claude Code the instructions below as they are. Change only the Blender location, file name, and size to your own.

Follow along (first time only):

Write and run a Python script (print_prep.py) that makes 3D printing files with Blender.

- Blender location: C:\Program Files\Blender Foundation\Blender 5.2\blender.exe
- Run with no window: blender.exe -b --python script.py -- options
- Input: jet.glb downloaded from Meshy. Put the results in an out folder inside the same folder.
- Convert all save and render paths to absolute paths.

Steps:
1. Import the GLB and join it into one object.
2. Scale it in mm. Standing objects by height, flat objects such as planes by longest side.
   Take the size and the basis as options (for example --height-mm 80, --longest-mm 120).
3. Merge overlapping vertices.
4. Delete squashed faces and loose vertices, and fill holes.
5. If open edges or non-manifold edges still remain,
   do a voxel remesh (0.12 mm) and reduce to 200,000 triangles.
6. Delete small pieces separated from the main body.
7. Cut 0.3 mm off the bottom to make it flat.
8. Save as 3MF and STL (units: mm).
9. Report the check numbers as a table: watertight, piece count, size, triangle count,
   share of walls thinner than 0.8 mm and 0.4 mm, share of overhangs over 45 degrees, bottom contact area.
10. Save previews from five directions (front, side, back, 3/4, top) as jpg.

Also add an option (--no-repair) that runs only steps 1-3 and 9-10, without repair.

Claude Code writes and runs the script itself from these instructions. Once made, the script is reused as it is next time. The core of the repair in step 5 is a few lines that add Blender's Remesh modifier in Voxel mode.

mod = ob.modifiers.new("voxel", "REMESH")
mod.mode = "VOXEL"
mod.voxel_size = 0.12          # 0.12 mm, since the model is already scaled in mm
# after applying, if there are more than 200,000 triangles, reduce with Decimate

From then on, ask in one line, such as "Repair jet.glb and make 3MF and STL with the longest side at 120 mm. Show the check numbers after repair as a table too."

A large preview of the repaired jet model seen from above, with two small previews seen at an angle from below and from the tail Previews after repair. ① From above ② At an angle from below ③ From the tail (Blender render)

Follow along: Open the five previews. For flat objects, always look at the top view (picture ①) too. From the side alone, it is hard to tell whether the wing shape is right.

I repaired the 3D character with the same instructions, scaled to 80 mm tall. Before repair, the Meshy check found 8 holes and 305 non-manifold edges; after repair it became one watertight piece, with 4 small pieces deleted.

Previews of the repaired 3D character from the front and at an angle from the front. A big head, hair strands, and clothing folds are visible, and the face has no eyes or mouth The repaired 3D character (80 mm tall). ① From the front ② At an angle from the front. It was made without texture, so the face has no eyes or mouth (Blender render)

Follow along: For a standing character, look under the chin and at the soles in the front and angled previews. A big head leaves the underside of the chin hanging in the air and needs support, and small soles need a brim.

The numbers after repair:

ItemJet model3D characterPass mark
WatertightYes (0 open edges, 0 non-manifold)Yes (0 open edges, 0 non-manifold)0, 0
Piece count11 (4 small pieces removed)1
Size (mm)120.0 × 99.8 × 30.635.4 × 36.5 × 80.0Same as the set size
Triangle count199,678199,678Around 200,000
Walls thinner than 0.8 mm7.4%0.09%Under 1%
Walls thinner than 0.4 mm0.03%Not recordedUnder 0.5%
Faces floating at over 45 degrees (overhang)30.1%9.2%Record only
Bottom contact area141 mm²201 mm²Record only
File size3MF 2.5 MB, STL 10.0 MB3MF 2.5 MB, STL 10.0 MB

The jet went over the pass mark with 7.4% thin walls. That is because the edges of the wings and tail fins are 0.4 to 0.8 mm thin. But only 0.03% was thinner than 0.4 mm, so I judged it printable and went ahead. A real-proportion plane can't avoid thin wings, so looking at it with a two-level standard like this is how you tell whether it can be printed.

8. Slicer settings and printing

A slicer is a program that cuts a 3D model into thin layers and makes the path the printer will follow.

Follow along: Open Bambu Studio and load the 3MF file. The units are saved in mm, so there is no need to rescale. Then choose settings by looking at the numbers in section 7. The recommended values written in the print notes are below.

ItemJet model3D characterLink to the numbers
Nozzle0.4 mm0.4 mm
Layer height0.12 to 0.16 mm0.16 mmStair-stepping on the top of the wings, face and hair detail
MaterialPLAPLA
Wall generatorArachneNot set7.4% thin walls → fills thin edges with a single wall line
Walls / infill3 walls / 15% gyroid3 walls / 15% gyroid
SupportTree, everywhereTree, everywhereOverhang 30.1%, 9.2%
Brim5 mm5 mmSmall bottom area
OrientationBelly downFeet down

A brim is a thin border around the first layer. It widens the bottom area and holds the model so it doesn't come loose during printing. A tree support is a support that branches as it grows upward to hold floating parts; you remove it after printing.

Check the slice result on screen yourself. I also tried automatic slicing with Bambu Studio's command line through Claude Code, but on the H2C it stopped with a nozzle assignment error. So Claude Code made the files only, and a person checked the slice and printed. The photo at the top is the result printed that way.

A close-up of the 3D character printed in white. The bangs, hair strands, and clothing folds are clear, and the face is plain A close-up of the printed 3D character. The hair strands and clothing folds came through, and the face is plain, as in the preview (photo of the real print)

Follow along: When the print is done, remove the supports slowly and check that no thin parts broke. A character printed in one color, as in the photo above, comes out with a plain face, so if you need eyes and a mouth, order them as carved shapes at the picture stage, following the rules in section 3.

9. Repeated work: bundle it into one command

Once you have done the steps, you can bundle them into a Claude Code custom command. According to the official docs, one md file in the .claude/commands/ folder, or one .claude/skills/<name>/SKILL.md file, becomes a /name command. Text you add after the command when you call it goes into the $ARGUMENTS spot in the file.

Follow along: For this work I made a /mascot command. Below is a version adapted to be easy to use on your own computer. Create a .claude/commands/mascot.md file in your working folder and put in the content below. Change the folder name (prints) and the repair script name (print_prep.py, the one Claude Code made in section 7) to match yours.

---
description: Make 3D printing files from one picture
argument-hint: <name> <picture path> [size mm]
---
Input: $ARGUMENTS

Follow the steps below exactly. Keep all files in the prints/<name>/ folder.
If no size is given, use 80mm height. Flat objects such as planes and cars use the longest side.

1. Copy the picture to prints/<name>/ref/, show it to me, and ask whether to continue.
2. Run Meshy image-to-3d (no texture, 200000 triangles, glb).
   Tell me the credit cost first, and run it only after I confirm.
3. Download the GLB and run Meshy's printability check (free).
4. Use print_prep.py to scale, repair, and make 3MF and STL.
5. Look at the previews yourself and check the pass marks below.
   - Watertight: yes, piece count: 1, size: same as the set value
   - Walls thinner than 0.8mm under 1%, walls thinner than 0.4mm under 0.5%
   - If they are over, note where and ask whether to make it bigger
6. Look at overhang and bottom area, and write print notes with recommended support and brim settings.
7. Report the results as a table. Always stop and ask before any step that uses credits.

The official docs recommend the skill format for new commands. Putting the same content in .claude/skills/mascot/SKILL.md makes the same /mascot command.

From then on, one line runs the same procedure (for example, a rabbit picture at 80 mm tall).

/mascot rabbit C:\pictures\rabbit.png 80

It is a good idea to write it so that it always stops and asks before steps that use credits. Because it is a tool you instruct in words, credits can be spent for nothing if it misunderstands you once.

10. Cost and time

ItemThis jobNotes
3D generation (no texture)20 credits per modelTwo models, 40 credits
Generation timeAbout 90 secondsMeshy 7
Meshy printability check0
Blender repair and export0Blender is free
Meshy printability repairNot used10 credits if used

To choose a plan, compare these two.

PlanCredits per monthDifferences relevant to this guide
Free100No API or MCP. Download limit: 10 Meshy 6 Lite models per month. Results are CC BY 4.0 (credit required)
Pro1,000API and MCP included, unlimited model downloads, private license for all results

Prices are shown on the pricing page in the currency of the country you visit from. Prices and credits change often, so check the pricing page yourself on Meshy(affiliate link) before you pay.

CC BY 4.0, which applies to free plan results, is a public license meaning "you may use it, even commercially, if you give credit." If you plan to sell the models you make, read this condition first.

11. Common mistakes and fixes

SymptomCauseFix
The slicer says the model has holesPut the Meshy result in without repairUse the 3MF from the section 7 repair
The plane model is much smaller than expectedScaled by heightScale flat objects by their longest side
The character's face has no eyes or mouthEyes drawn only in color disappear from an untextured modelOrder the eyes and mouth as carved shapes at the picture stage
A thin prop sticking out of the body breaks when removing supportsIt is thin and floating in the airAttach the prop to the body at the picture stage
Wingtips get holes or turn mushyWalls are thinner than 0.8 mmTurn on Arachne walls or make it bigger (for example 120 → 160 mm)
The underside of the wings is rough from support marksThe belly sits lower than the wings, so the wings floatYou can also print it standing on its tail. It tips over easily, so widen the brim
Command-line auto slicing stops with an errorNozzle assignment error on the H2CSlice in the Bambu Studio window

12. Wrapping up

There are two key points to this method: order the picture so it prints well, and don't trust an AI-made model; check it with numbers. Meshy turns one picture into a 3D model in 90 seconds, and Claude Code takes on the tedious checking and repair afterwards. You pick the picture, look at the previews, and press print on the printer.

If this is your first time, try putting one picture that follows the rules in section 3 into the Meshy web interface on the free plan. The free plan has 100 credits a month, so you can see first how the models turn out. However, the comparison table on the pricing page lists the free plan's download limit only as "10 Meshy 6 Lite", and does not say whether models made with Meshy 7 (7.1), as in this guide, can be downloaded for free. To follow this guide all the way to print files and hand repeated work to Claude Code, you need the Pro plan, which has unlimited downloads and includes the API and MCP.

Get started with Meshy(affiliate link)

Affiliate links: if you buy through these links, AZTechnology earns a commission.

Sources


More: a book on building low-poly war animations with Claude Code and Blender — https://azblender.gumroad.com/l/lowpoly_war_animation

KEEP EXPLORING

Read next

Diagram with arrows from a model box to three boxes: service (app), API, and open weights (diagram)AI & IT tools
AI Tools25 min read

Claude, ChatGPT, Gemini, and other US and Chinese AI services compared: pricing, privacy, and how to choose

A side-by-side look at pricing, privacy, and how to choose among 12 US and Chinese AI services, including Claude, ChatGPT, and Gemini.

The Copyright and Artificial Intelligence page of the U.S. Copyright Office (screenshot of the official U.S. Copyright Office site)AI & IT tools
AI Tools13 min read

Copyright basics for AI-made images and text

Official guidance in the United States and Korea says AI output made only from a prompt is unlikely to be protected by copyright. This guide explains the standards in both countries and what to check before you use AI output.

The image generation page of the Google Gemini API documentation (screenshot of the official site)AI & IT tools
AI Tools11 min read

How AI image generation works, and how to write good prompts

AI finds a picture little by little in noise. Learn how diffusion models work and prompt tips for getting the picture you want.

The page on creating subagents in the Claude Code documentation (Claude Code official site screenshot)AI & IT tools
AI Tools13 min read

Subagents and multi-agent systems: splitting work among several AIs

How one AI can hand side tasks to assistant AIs instead of taking on everything itself, and when splitting the work actually costs you more.

A blockout made of cubes (left) compared with the result after AI turned it into live-action-style video (right) (our own result)AI & IT tools
AI Tools10 min read

AI video generation basics: making video from text and images

AI video is a technology that draws many pictures in a row so they fit together over time. This guide explains how it works, three ways to start, and how to write prompts that include the camera.

The first screen of Anthropic's article Building effective agents (screenshot of Anthropic's official site)AI & IT tools
AI Basics10 min read

How AI and AI agents differ: AI that answers, AI that works

An AI agent is not a new brain but an AI that has been given tools and a repeating loop. This guide explains the difference between the two and what to watch out for when using agents.