This skill does NOT:
- Render a 3D-looking image — that is
image-prompt with a 3D style. This
produces geometry you can open in Blender, drop into Unity, or view in AR.
- Rig, animate, or retopologise. What comes back is a static mesh.
- Guarantee a printable model. Watertightness is not checked; see
references/limits.md before sending anything to a printer.
- Produce a scene. One prompt is one object.
ROLE
Turn a description into a mesh: write the prompt in the grammar 3D generators
actually read, pick the tier, call the runner, report where the file landed and
what it cost.
PIPELINE
Establish the subject. One object, named concretely. "A low-poly red fox,
sitting, tail curled" is a subject. "Something foxlike for a game" is not, and
the mesh will show it.
Write the prompt. 3D prompting is not image prompting — no camera, no
lighting, no lens. Describe form, silhouette, material and scale. Full grammar
in references/prompt-grammar.md.
Pick the tier. Textured is the default and roughly doubles the cost of
bare geometry. Untextured is the right pick when the mesh is going to be
re-materialised in the target engine anyway.
Estimate + confirm. --cost-only first when the user has not seen a price
for this skill before. Every generation is over the $0.10 confirmation
threshold, so the runner will ask unless --yes is passed.
Execute.
python3 -m common.runners.cli.model3d \
--model tripo-v3 \
--prompt "<the written prompt>" \
--yes
From a photo, add --image-url ./ref.jpg. The prompt then becomes a hint
rather than the whole specification.
Report. Print the saved path, the format, and the credits the vendor
actually consumed — the runner puts that in the manifest. Say what the file
is for: GLB opens in Blender, Unity, Unreal, Godot, and previews natively on
iOS and Android.
FLAGS
--prompt "<text>" — the subject description
--image-url <path|url> — reference photo; switches to image-to-3D
--no-texture — bare geometry, cheaper
--pbr — physically-based materials rather than baked colour
--face-limit N — polygon budget, when the target engine has one
--model-version <string> — override the pinned vendor model
--cost-only / --yes / --check / --output <dir>
CONSTRAINTS
Needs TRIPO_API_KEY. There is no prompt-only fallback worth having here:
a 3D prompt with no mesh is not a deliverable the way an image prompt pasted
into Midjourney is. Without the key, say so and stop.
The download link expires in five minutes. The provider downloads inside
the same call that sees the task succeed, so this is handled — but it is why a
failed save cannot be retried without regenerating, and regenerating bills
again.
One object per call. Multi-object scenes come back fused and unusable.
Generate separately and assemble in the target tool.
Do not promise print-readiness. See
references/limits.md.
REFERENCES (load on demand)
| File |
When to load |
| references/prompt-grammar.md |
Step 2 — what a 3D prompt says that an image prompt does not |
| references/limits.md |
Before promising anything about printing, rigging, or topology |
EXAMPLES
See examples/before-after.md — three calibration runs:
a game prop from text, a product mesh from a photo, and an untextured base for
re-materialising.
1---2name: model-maker3description: Generate a 3D model (GLB mesh) from a text description or a reference photo via Tripo. Textured or bare geometry, polygon budget, PBR materials. Output is a real file for Blender / Unity / Unreal / AR, not a render. Use when: 'make a 3D model', 'text to 3D', 'turn this photo into a mesh', '3D asset for a game', 'сделай 3D-модель', 'меш из фотки', '3D-ассет'.4license: MIT5---67<objective>8Text or a single reference photo → one 3D mesh file, saved locally. Wraps the9runner's `model` modality (Tripo v3) the same way `upscaler` wraps Replicate.1011This skill does NOT:12- Render a 3D-*looking* image — that is `image-prompt` with a 3D style. This13 produces geometry you can open in Blender, drop into Unity, or view in AR.14- Rig, animate, or retopologise. What comes back is a static mesh.15- Guarantee a printable model. Watertightness is not checked; see16 [references/limits.md](references/limits.md) before sending anything to a printer.17- Produce a scene. One prompt is one object.18</objective>1920## ROLE2122Turn a description into a mesh: write the prompt in the grammar 3D generators23actually read, pick the tier, call the runner, report where the file landed and24what it cost.2526## PIPELINE27281. **Establish the subject.** One object, named concretely. "A low-poly red fox,29 sitting, tail curled" is a subject. "Something foxlike for a game" is not, and30 the mesh will show it.31322. **Write the prompt.** 3D prompting is not image prompting — no camera, no33 lighting, no lens. Describe form, silhouette, material and scale. Full grammar34 in [references/prompt-grammar.md](references/prompt-grammar.md).35363. **Pick the tier.** Textured is the default and roughly doubles the cost of37 bare geometry. Untextured is the right pick when the mesh is going to be38 re-materialised in the target engine anyway.39404. **Estimate + confirm.** `--cost-only` first when the user has not seen a price41 for this skill before. Every generation is over the $0.10 confirmation42 threshold, so the runner will ask unless `--yes` is passed.43445. **Execute.**4546 ```bash47 python3 -m common.runners.cli.model3d \48 --model tripo-v3 \49 --prompt "<the written prompt>" \50 --yes51 ```5253 From a photo, add `--image-url ./ref.jpg`. The prompt then becomes a hint54 rather than the whole specification.55566. **Report.** Print the saved path, the format, and the credits the vendor57 actually consumed — the runner puts that in the manifest. Say what the file58 is for: GLB opens in Blender, Unity, Unreal, Godot, and previews natively on59 iOS and Android.6061## FLAGS6263- `--prompt "<text>"` — the subject description64- `--image-url <path|url>` — reference photo; switches to image-to-3D65- `--no-texture` — bare geometry, cheaper66- `--pbr` — physically-based materials rather than baked colour67- `--face-limit N` — polygon budget, when the target engine has one68- `--model-version <string>` — override the pinned vendor model69- `--cost-only` / `--yes` / `--check` / `--output <dir>`7071## CONSTRAINTS7273- **Needs `TRIPO_API_KEY`.** There is no prompt-only fallback worth having here:74 a 3D prompt with no mesh is not a deliverable the way an image prompt pasted75 into Midjourney is. Without the key, say so and stop.7677- **The download link expires in five minutes.** The provider downloads inside78 the same call that sees the task succeed, so this is handled — but it is why a79 failed save cannot be retried without regenerating, and regenerating bills80 again.8182- **One object per call.** Multi-object scenes come back fused and unusable.83 Generate separately and assemble in the target tool.8485- **Do not promise print-readiness.** See86 [references/limits.md](references/limits.md).8788## REFERENCES (load on demand)8990| File | When to load |91|---|---|92| [references/prompt-grammar.md](references/prompt-grammar.md) | Step 2 — what a 3D prompt says that an image prompt does not |93| [references/limits.md](references/limits.md) | Before promising anything about printing, rigging, or topology |9495## EXAMPLES9697See [examples/before-after.md](examples/before-after.md) — three calibration runs:98a game prop from text, a product mesh from a photo, and an untextured base for99re-materialising.