← Back to archive

Repo of the Day

mfranzon/print3d

Published: Oct 25, 2026

Open repository ↗

Print 3D skill from text to 3D printing using Bambu Lab slicer

Summary

print3d is a Python Hermes Agent plugin that turns an idea, a reference photo, or a shop listing into a Bambu Studio project for a Bambu Lab X2D with a 0.4 mm nozzle. The agent writes a Blender Python script, runs it, checks the mesh and slice, and uses the reported problems to revise the model before handing over a .3mf project.

What it is useful for

It fills a practical gap between “I need a part” and a file that can be opened in Studio. An engineer can request, for example, a 40 mm nameplate marked MARCO, recreate a photographed knob for a 6 mm D-shaft, or make a business-card box with a sliding lid.

For multi-part designs, the workflow checks part interference, declared press, snug, slide, and free fits, and whether colored parts would be hidden inside another part. It also provides an interactive view.html, renders, a print sheet, and per-part STL files for handoff.

For reference-based work, photos can be measured against a known-size object such as a bank card, ruler, coin, or A4 sheet. The tool records the evidence, uncertainty, and unknown dimensions in spec.json; a likeness check projects the finished mesh over the photographed outline. A listing’s stated dimensions can serve as scale evidence, with the listing’s own quotation and rounding retained. This is especially useful for reproducing replacement parts where CAD is unavailable.

How engineers can use it

For Hermes, install Blender 4.2 or later, Bambu Studio, and uv on the same machine, then run:

hermes plugins install mfranzon/print3d --enable

Start a new Hermes session and give it a brief or a photo path. The README says the plugin registers its MCP server itself; no print3d setup or Hermes configuration file is needed for this route.

For Claude Code, Codex, Cursor, or Gemini CLI, the documented route is:

uv tool install git+https://github.com/mfranzon/print3d
print3d setup

There is also a direct CLI path. Given a model script, it models, checks, slices, and prints a JSON report:

print3d make "a 40mm nameplate that says MARCO" --script examples/nameplate.py

Jobs are written under ~/print3d/jobs by default. Open the resulting .3mf in Bambu Studio; the adjacent .gcode.3mf is the sliced job and does not open in the Prepare tab.

Important boundaries: print3d does not talk to the printer, so printing remains a Studio step. Its presets target the X2D’s 0.4 mm nozzle. Model scripts execute with the user’s permissions outside Hermes’s terminal sandbox, and Hermes asks before tools that run scripts or write files. print3d itself makes no network calls, although the 3D view loads three.js from a CDN on first use, and listing URLs are recorded rather than fetched.