🤖 Tested · 15 min read

Can ChatGPT or Claude make a mold for my 3D print? We tested it

By meshcast.app · Updated October 2026

This guide was drafted with AI assistance.

White wax David bust candle held in a hand, next to the white printed David bust master and the orange and blue halves of the printed housing
David bust candle mold · free download →
The short answer

Yes for simple shapes, if you can run code and check the result yourself. We ran the two-part mold script an assistant writes in one reply on 14 models. It made watertight halves for all 14 in seconds, but only the sphere was ready to use. On most figures the pour hole ended in solid plastic, and the split left 31 to 71% of the surface gripped by a rigid mold. None of it shows on screen.

What ChatGPT, Claude and Gemini can do with an STL

None of them draws a 3D model. They write code, usually Python, and run it in a sandbox if they have one. For a mold of your own file, three things decide it: can it run code on your upload, can it load a mesh library, and how big a file it takes.

Runs code on your fileMesh librariesFile sizeShows the mold in 3D
Claude (claude.ai)Yes, on every plan, and hands back filesFree, Pro and Max can install packages from PyPI, where trimesh and manifold3d live30 MB per file, in and out. Task length is capped, no figure givenNot by itself
ChatGPTYes, Python in a sandbox, and hands back files. The API version defaults to 1 GB of memory and closes after 20 idle minutesOpenAI's docs don't list which packages are there512 MB per fileNot by itself
Gemini (API code execution)Python, stopped after 30 seconds. Returns charts as images, no other filesNone in its list, and “You can't install your own libraries”“Works best with text and CSV files”No

From each vendor's own documentation, opened 14 October 2026: Anthropic, Create and edit files with Claude; OpenAI, Code Interpreter, plus a third-party summary for the 512 MB limit, because OpenAI's help page refused our request; Google, Gemini API code execution (updated 13 October 2026). We did not test the three apps themselves. These limits change, so check the date.

File size is not a footnote. About one in five models that people upload to Meshcast's mold tools is bigger than 30 MB.

The test

On 14 October 2026 we asked Claude (the same assistant that drafted this guide) for the script it would give anyone who types:

The prompt

Make a two-part mold of my STL for casting, with registration keys, a pour spout and air vents.

It wrote a competent, generic Python script, the kind you get in one reply. The script:

We ran it ourselves, outside the chat apps, on 14 example models from Meshcast's mold tools: a sphere, a chess pawn, a teddy bear, a chonky cat, an owl, a rubber duck, a frog in a cowboy hat, a mug, a vase, a planter, a sitting cat, the David and Hercules busts and the Venus de Milo. Four of the files were not watertight, like plenty of downloads. Then we broke the teddy bear the two ways real files are usually broken: a ball pushed into its body as a separate part, and a 6 mm hole in its surface.

For every mold we checked what you would otherwise find out at the bench. Does the pour hole reach the cavity? Will the cast come out of a rigid mold pulled straight apart? Is every high point vented? Is any piece of the mold loose?

Show the script we ran (Python, 100 lines)
"""The kind of script a general assistant writes in one turn when asked:
"Make a two-part mold of my STL for casting, with registration keys, a pour
spout and air vents." Written deliberately as a competent generic answer:
trimesh to load and repair, manifold3d for booleans, split at mid height,
four corner keys, a spout over the model's top, two vents at the highest
points. No knowledge of Meshcast's engine is used.
"""
import sys, json, time
import numpy as np
import trimesh
import manifold3d as m3d

WALL = 10.0        # mm of mold material around the bounding box
KEY_R = 4.0        # registration key radius
KEY_CLEAR = 0.3    # clearance on the female key
SPOUT_D = 10.0
VENT_D = 3.0

def to_manifold(mesh: trimesh.Trimesh) -> m3d.Manifold:
    mm = m3d.Mesh(vert_properties=np.asarray(mesh.vertices, dtype=np.float32),
                  tri_verts=np.asarray(mesh.faces, dtype=np.uint32))
    return m3d.Manifold(mm)

def to_trimesh(man: m3d.Manifold) -> trimesh.Trimesh:
    mm = man.to_mesh()
    return trimesh.Trimesh(np.asarray(mm.vert_properties)[:, :3], np.asarray(mm.tri_verts), process=False)

def cylinder(d, z0, z1, x, y):
    return m3d.Manifold.cylinder(z1 - z0, d / 2, d / 2, 48).translate((x, y, z0))

def make_mold(path, out_prefix):
    report = {"file": path}
    t0 = time.time()
    model = trimesh.load(path, force="mesh")
    report["input_watertight"] = bool(model.is_watertight)
    if not model.is_watertight:
        # the usual one-shot "repair"
        trimesh.repair.fill_holes(model)
        trimesh.repair.fix_normals(model)
        report["after_trimesh_repair_watertight"] = bool(model.is_watertight)
    model.apply_translation(-model.bounds[0])
    lo, hi = model.bounds
    man = to_manifold(model)
    report["manifold_status"] = str(man.status())
    if man.is_empty():
        report["result"] = "FAILED: model could not be turned into a solid for booleans"
        report["seconds"] = round(time.time() - t0, 2)
        return report

    size = (hi - lo) + 2 * WALL
    box = m3d.Manifold.cube(tuple(size)).translate(tuple(lo - WALL))
    cavity_block = box - man
    split_z = float((lo[2] + hi[2]) / 2)
    big = 10000.0
    below = m3d.Manifold.cube((big, big, big)).translate((-big / 2, -big / 2, split_z - big))
    above = m3d.Manifold.cube((big, big, big)).translate((-big / 2, -big / 2, split_z))
    bottom = cavity_block ^ below
    top = cavity_block ^ above

    # four keys at the corners of the parting face, inset half a wall
    bx0, by0 = lo[0] - WALL / 2, lo[1] - WALL / 2
    bx1, by1 = hi[0] + WALL / 2, hi[1] + WALL / 2
    for (x, y) in [(bx0, by0), (bx1, by0), (bx0, by1), (bx1, by1)]:
        male = m3d.Manifold.sphere(KEY_R, 48).translate((x, y, split_z))
        female = m3d.Manifold.sphere(KEY_R + KEY_CLEAR, 48).translate((x, y, split_z))
        bottom = bottom + (male ^ above)      # bump on the bottom half
        top = top - female                    # socket in the top half

    # pour spout: straight up from the top of the model at the bbox centre
    cx, cy = float((lo[0] + hi[0]) / 2), float((lo[1] + hi[1]) / 2)
    top = top - cylinder(SPOUT_D, float(hi[2]) - 1.0, float(hi[2]) + WALL + 1, cx, cy)
    # two vents at the two highest vertices that are at least 10 mm apart
    order = np.argsort(-model.vertices[:, 2])
    vents = [model.vertices[order[0]]]
    for i in order[1:]:
        if np.linalg.norm(model.vertices[i][:2] - vents[0][:2]) > 10:
            vents.append(model.vertices[i]); break
    for v in vents:
        top = top - cylinder(VENT_D, float(v[2]) - 0.5, float(hi[2]) + WALL + 1, float(v[0]), float(v[1]))

    tb, tt = to_trimesh(bottom), to_trimesh(top)
    tb.export(out_prefix + "_bottom.stl"); tt.export(out_prefix + "_top.stl")
    report.update({
        "result": "produced two halves",
        "split_z": round(split_z, 2),
        "spout_xy": [round(cx, 2), round(cy, 2)],
        "vents": [[round(float(c), 2) for c in v] for v in vents],
        "bottom_watertight": bool(tb.is_watertight), "top_watertight": bool(tt.is_watertight),
        "mold_volume_cm3": round((tb.volume + tt.volume) / 1000, 1),
        "seconds": round(time.time() - t0, 2),
    })
    return report

if __name__ == "__main__":
    print(json.dumps(make_mold(sys.argv[1], sys.argv[2]), indent=1))

Results, model by model

Every model got two halves, in 0.04 to 2.4 seconds, and every half passed a watertight check. Making the files is the easy part. What the halves do when you pour is not.

ModelPour hole reaches cavity?Surface gripped: as split / bestWhat else
SphereYes0% / 0%Ready to use
Chess pawnYes63% / 0.2% (split down its side)One of its two vents ends in solid mold
Teddy bearNo, stops 4.5 mm above the head53% / 0.4%3 of the 6 high spots in the top half have no vent
Chonky catNo43% / 2.7%8 of the 11 high spots in the top half have no vent
OwlNo31% / 4.8%
Rubber duckNo46% / 1.3%
Cowboy frogBarely: a pinhole of half a square millimetre52% / 2.7%
MugNo, it lands on the mold that fills the mug30% / 8.7%A loose 22 cm³ piece of mold in the bottom half
David bustPartly: a crescent, about a fifth of the hole57% / 27%Needs silicone or more pieces
Venus de MiloNo, 17 mm short71% / 22%Needs silicone or more pieces
Hercules bust (7 overlapping parts in the file)No65% / 31%Needs silicone or more pieces
Sitting catNo63% / 16%Needs silicone or more pieces
VaseNo, it lands on the mold that fills the vase71% / 47%A loose 748 cm³ piece; a vessel needs a separate core
PlanterYes44% / 22%

“Surface gripped” is the share of the model's surface that a rigid mold, printed plastic or plaster, cannot slide off when the halves are pulled straight apart: the cast stays in, or something breaks. Silicone bends and forgives some of it. “Best” is the best of the three straight split directions at the best height, which the script never tried; we computed it.

The two broken versions of the teddy bear:

FileWhat the script did
Teddy bear with a ball pushed into its bodyMade two halves, both reported watertight. 2,727 triangles, about 2,180 mm² of mold surface, sit inside the space the cast should fill, and the cavity is off by the 5.6 cm³ the two parts share.
Teddy bear with a 6 mm holeNo mold. trimesh's repair could not close the hole, and manifold3d refused the mesh as not manifold.
What the one-reply script made Cross-section through the teddy bear's head in the script's mold. The pour hole is drilled down to just below the tips of the ears, the model's highest points, so over the middle of the head it stops 4.5 mm short, in solid mold. The pour hole fills with wax and the head stays empty. The two vents reach the ears. What the script made Teddy bear, cut through the head 1 2 3 4 1 Pour hole, full of wax 2 Stops 4.5 mm short, in solid mold 3 The head stays empty 4 Vents reach the ears ✕ Blocked What the mold needs The same cross-section with the pour hole drilled on until it opens into the top of the head. Wax runs down the hole and fills the head, and the vents at the ear tips let the air out. What it needs Same mold, the hole drilled on to the head 1 2 3 4 1 Same hole, drilled on 2 Opens into the head 3 Wax fills the cavity 4 Vents let the air out ✓ Open
The teddy bear from our test, cut through the head. The script drills the pour hole to 1 mm below the model's highest point. On the bear that point is an ear tip, so over the middle of the head the hole stops 4.5 mm short. From the outside, and in a 3D viewer, the two molds look the same.

We are not the first to see this. On the Gears of Resistance newsletter, a maker who asked ChatGPT for a mold script in December 2024 was “not happy with the placement of the keys” or with where it put the pour spout. Building a generator with trimesh and manifold3d in May 2026, the same newsletter found five bugs, among them vents with “no path to the cavity”, every one “invisible in the cross-section previews”.

Six problems you can't see on screen

Each of these passes a look at the 3D preview. You find them with a cut, a slicer or a ruined pour. They are not rare, either. Of the people who uploaded their own model to Meshcast's mold tools in the 30 days to 14 October 2026, 55% had a file that needed a mesh repair (48% overlapping parts, 15% holes), and 10% had one in the wrong units.

1. The pour hole lands on solid mold

The script aims the hole at the middle of the model and stops it 1 mm below the model's top. That only works when the top is in the middle. On 9 of the 14 models the hole ended in solid plastic (on the mug and the vase, in the block of mold that fills the vessel), and on two more it only grazed the cavity.

Check: slice the half with the pour hole and drag the layer slider down the hole. It has to open into the cavity.

2. The split locks the cast

Splitting at half height is the default answer, and on every figure, bust and statue it left 31 to 71% of the surface gripped by a rigid mold. The direction matters more than the height: the chess pawn went from 63% to 0.2% when we split it down its side instead of across its middle.

The same pear shape with the seam too high, too low, and through its widest cross-section, where it releases
Through the widest cross-section, a rigid mold lifts straight off. Above or below it, the cast is locked in.

Check: look at the model from the direction each half will move. Any surface you can't see from there will grip.

3. High points without vents trap air

Air rises to every high spot in the cavity and stays there unless a vent or the pour hole lets it out. The script vents the two highest points, which on the teddy bear were its ears, and 3 of the 6 high spots in the top half got nothing. On the chonky cat it was 8 of 11.

Check: every bump that points up while the mold stands for pouring needs a vent or the pour hole.

4. Overlapping parts leave walls in the cavity

Many files are several closed parts pushed into each other: a head on a body, a figure built from pieces, a sculpt with an extra blob. Given the teddy bear with a ball pushed into it, the script made two halves that both passed as watertight, but about 2,180 mm² of mold surface sat inside the space the cast should fill, wrapped around the 5.6 cm³ where the two parts overlap. What your slicer makes of that varies; none of it is your model.

Check: count the parts in your model (in Blender, Separate by Loose Parts) and merge overlapping ones with a union before you make the mold.

5. Holes stop the boolean

A 6 mm gap in the teddy bear's surface stopped the script: the usual one-line repair could not close it, and the boolean library refused the mesh. This is the honest failure, an error instead of a bad mold, but the mold still doesn't exist.

Check: run your slicer's repair or Blender's 3D Print Toolbox before you ask for a mold. Why a model gets rejected lists what each mesh error means.

6. Vessels need a core, or a piece comes loose

A mug, vase or planter is hollow. Subtract it from a box and the inside fills with mold material, and once the box is split that piece is joined to nothing. The script left a loose 22 cm³ piece in the mug's bottom half and a 748 cm³ piece in the vase's.

Check: each half should be one piece. In your slicer, Split to objects should find nothing to split. A vessel needs its core planned on purpose.

When an AI assistant is enough

Give the assistant its due: it was right first time on the sphere, and it is fast. It is a fair choice when:

A better second prompt fixes part of the rest. This is what we would send after the first one:

A better second prompt

Before you write the code: test all three axes and split along the one with the fewest undercuts. Put the pour spout over the highest point of the cavity and make sure it opens into it. Add a vent at every local high point in the top half. Union all shells before the boolean, and tell me if either half ends up as more than one body.

We did not send it to an assistant; we computed what it asks for. Split along the best of the three directions, 5 of the 9 figures, busts and statues dropped under 5% of their surface gripped: the teddy bear, the chonky cat, the owl, the duck and the frog. The pawn went to 0.2%. The David and Hercules busts, the Venus and the sitting cat stayed at 16 to 31% whichever way we split them. No two-part rigid mold releases those; they need a flexible silicone mold or more pieces.

And the prompt only helps if you already know to ask for it, which is the knowledge most people go to the assistant for.

A 10-point checklist for any mold

AI-made, Blender-made or from a generator, run every mold through this before you print it:

  1. Closed mesh. One watertight part, no holes. Your slicer's repair or Blender's 3D Print Toolbox will tell you.
  2. Units. The model is the size you meant. A file saved in inches arrives 25.4 times too small, one in metres 1,000 times.
  3. Parting direction. From the direction each half moves, you can see every surface it touches.
  4. Pour hole reaches the cavity. Slice the half and drag the layer slider down the hole.
  5. A vent at every high point. Every bump that points up while you pour.
  6. No loose pieces. Each half is one piece, plus any core you planned.
  7. Wall thickness. Enough plastic that the mold does not bow when you clamp and fill it. Meshcast's rigid mold tool uses 5 mm by default; print it with 3 to 4 perimeters.
  8. Key clearance. 0.2 to 0.4 mm between keys and sockets, or printed halves will not close. The script's 0.3 mm was fine.
  9. Draft. 1 to 2 degrees of taper on smooth rigid walls, 3 to 5 on raw layer lines; silicone needs almost none. More in draft angles and undercuts.
  10. Material amount. Know how much to mix before you start: the cavity plus the pour hole and vents, and a little extra. The silicone calculator does it for silicone.

Use ChatGPT or Claude with a mold tool, not instead of one

An assistant is good at the words around a mold: what to set, what to buy, why a cast stuck. Let it do that, and let a tool that computes and checks the geometry do the rest.

Ask it for a settings link

Every Meshcast tool opens with the settings named in its link, and agent-tools.json lists each tool's settings with their ranges and defaults. Give the assistant that link, or paste the part for your tool, say what you are casting, and ask for a link back. Two that work today:

A link only sets the sliders. Nothing is generated until you press Generate.

Let AI make the model, and the tool make the mold

No model yet? The Make with AI button in the upload area of Meshcast's mold tools turns a short description or a photo into a 3D model and hands it straight to the mold tool. It uses AI credits and shows the cost before anything is charged. Made the model somewhere else, in Meshy or Tripo? Read why AI models often fail to print first.

What the tool checks that a one-reply script does not

And an assistant may write a different script the next time you ask. A tool runs the same code every time.

Try it on your own model

Upload an STL to the silicone mold maker. It repairs the file, suggests the best split, places the pour spout and marks where air would be trapped, before you print. Free account, no card.

Open the silicone mold maker →

Prefer to do it by hand? How to make a mold in Blender writes out the boolean method step by step, and free mold making software compares the options.

Questions

Can ChatGPT make an STL file?

Yes, as code. It writes Python or OpenSCAD that produces an STL, and its sandbox can run the code and hand you the file.

Whether a mold made that way works is what the 10-point checklist on this page is for.

Can Claude make a mold for my 3D print?

Claude wrote the script we tested. On claude.ai every plan can run code, Free, Pro and Max can install mesh libraries, and files can be up to 30 MB (Anthropic help center, October 2026), so it can run a script like ours and hand you two halves.

In our test the halves were watertight, and on 13 of 14 models they failed at least one check you would only notice at the bench.

Can Gemini make a mold from my STL?

It can write the script for you to run. Its API code execution tool, as documented in October 2026, has no mesh library, cannot install one and stops after 30 seconds, so it could not run ours.

We did not test the Gemini app.

Do I need to know Python?

Not to get the files, if the assistant runs the code. Checking them takes no code: slice each half in your slicer and drag the layer slider down through the pour hole and the vents. Each one has to open into the cavity.

Is an AI-made mold food-safe or skin-safe?

The material decides that, not who designed the mold. For food, cast a food-grade platinum silicone mold from the print instead of using the print itself (food-safe molds).

For skin, use a platinum-cure silicone sold as skin-safe and follow its datasheet (platinum vs tin-cure silicone).

Can I sell casts from an AI-made model on Etsy?

Etsy's seller policy since July 2024 counts items you make yourself, including with a 3D printer, as handmade, puts designs made with AI prompts under Designed by, and asks you to say in the listing when an item was created with the use of AI (TechCrunch, July 2024).

Check the current rules before you list, and the licence of every file you used. Meshcast's are on the licences page.

What is the best free AI mold generator?

Honestly, a mold tool that computes the geometry, with AI where it helps: an assistant for settings and advice, an AI model maker when you have no model. In our test the one-reply script passed every check only on the sphere.

The Meshcast silicone mold maker is free to try; downloads need a free account, no card.

Made by meshcast.app. Test run on 14 October 2026: the script by Claude, run with Python 3.11, trimesh 5.1.1 and manifold3d 3.5.4 on the example models from Meshcast's mold tools. Assistants change quickly, so we plan to re-run it and will date every update. Got stuck? Email a photo and I'll help you debug.